SET NOEXEC OFF IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'KYScriptLog' AND SO.[type] = 'U') BEGIN DECLARE @NOEXEC TABLE ([message] VARCHAR(50)) INSERT INTO @NOEXEC SELECT 'PLEASE DO NOT RUN THIS SCRIPT.' INSERT INTO @NOEXEC SELECT 'Framework is active.' INSERT INTO @NOEXEC SELECT '' INSERT INTO @NOEXEC SELECT 'NOEXEC has been set' SELECT * FROM @NOEXEC SET NOEXEC ON END GO /****** Object: StoredProcedure [dbo].[ky_BGTransfer] Script Date: 10/01/2014 16:17:02 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGTransfer]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_BGTransfer] GO /****** Object: StoredProcedure [dbo].[ky_CreateDiaryStepWS] Script Date: 10/01/2014 16:17:11 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CreateDiaryStepWS]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_CreateDiaryStepWS] GO /****** Object: StoredProcedure [dbo].[ky_WDCaseDocumentsPub] Script Date: 10/01/2014 16:17:49 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDocumentsPub]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDCaseDocumentsPub] GO /****** Object: StoredProcedure [dbo].[ky_BGReverseTransfer] Script Date: 10/01/2014 16:17:02 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGReverseTransfer]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_BGReverseTransfer] GO /****** Object: StoredProcedure [dbo].[ky_CreateDiaryStep] Script Date: 10/01/2014 16:17:10 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CreateDiaryStep]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_CreateDiaryStep] GO /****** Object: StoredProcedure [dbo].[ky_BGAddToInvoice] Script Date: 10/01/2014 16:16:59 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGAddToInvoice]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_BGAddToInvoice] GO /****** Object: UserDefinedFunction [dbo].[ky_WDMTUndertakings] Script Date: 10/01/2014 16:19:28 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDMTUndertakings]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDMTUndertakings] GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListByHighlightPage2Rev] Script Date: 10/01/2014 16:18:23 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByHighlightPage2Rev]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDTaskListByHighlightPage2Rev] GO /****** Object: UserDefinedFunction [dbo].[ky_WDHFUndertakings] Script Date: 10/01/2014 16:19:25 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDHFUndertakings]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDHFUndertakings] GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListPage] Script Date: 10/01/2014 16:18:28 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListPage]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDTaskListPage] GO /****** Object: UserDefinedFunction [dbo].[ky_WDBriefSectionList] Script Date: 10/01/2014 16:19:12 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDBriefSectionList]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDBriefSectionList] GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListByActionTypePage2] Script Date: 10/01/2014 16:18:19 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByActionTypePage2]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDTaskListByActionTypePage2] GO /****** Object: View [dbo].[CaseDocsBriefsView] Script Date: 10/01/2014 16:19:52 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[CaseDocsBriefsView]')) DROP VIEW [dbo].[CaseDocsBriefsView] GO /****** Object: View [dbo].[LastMatterDates] Script Date: 10/01/2014 16:19:59 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[LastMatterDates]')) DROP VIEW [dbo].[LastMatterDates] GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListByActionTypePage2Rev] Script Date: 10/01/2014 16:18:20 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByActionTypePage2Rev]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDTaskListByActionTypePage2Rev] GO /****** Object: StoredProcedure [dbo].[ky_briefsectionadd] Script Date: 10/01/2014 16:17:04 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_briefsectionadd]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_briefsectionadd] GO /****** Object: UserDefinedFunction [dbo].[ky_WDMatterList] Script Date: 10/01/2014 16:19:27 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDMatterList]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDMatterList] GO /****** Object: StoredProcedure [dbo].[ky_ListCasesForPhoneNumber] Script Date: 10/01/2014 16:17:23 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_ListCasesForPhoneNumber]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_ListCasesForPhoneNumber] GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListPage2Rev] Script Date: 10/01/2014 16:18:30 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListPage2Rev]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDTaskListPage2Rev] GO /****** Object: UserDefinedFunction [dbo].[ky_WDMatterList2] Script Date: 10/01/2014 16:19:27 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDMatterList2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDMatterList2] GO /****** Object: StoredProcedure [dbo].[ky_DeleteBrief] Script Date: 10/01/2014 16:17:12 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_DeleteBrief]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_DeleteBrief] GO /****** Object: StoredProcedure [dbo].[ky_WDSetTimeDayBookRateCharge] Script Date: 10/01/2014 16:18:16 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSetTimeDayBookRateCharge]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDSetTimeDayBookRateCharge] GO /****** Object: StoredProcedure [dbo].[spValidateEnteredCase] Script Date: 10/01/2014 16:18:55 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spValidateEnteredCase]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[spValidateEnteredCase] GO /****** Object: View [dbo].[New_FeMatterWIP_View] Script Date: 10/01/2014 16:20:00 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[New_FeMatterWIP_View]')) DROP VIEW [dbo].[New_FeMatterWIP_View] GO /****** Object: View [dbo].[BriefContent] Script Date: 10/01/2014 16:19:52 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[BriefContent]')) DROP VIEW [dbo].[BriefContent] GO /****** Object: StoredProcedure [dbo].[ky_WDAlterTimeDayBook] Script Date: 10/01/2014 16:17:43 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDAlterTimeDayBook]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDAlterTimeDayBook] GO /****** Object: StoredProcedure [dbo].[ky_CloseMatter] Script Date: 10/01/2014 16:17:06 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CloseMatter]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_CloseMatter] GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListByHighlightPage2] Script Date: 10/01/2014 16:18:22 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByHighlightPage2]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDTaskListByHighlightPage2] GO /****** Object: StoredProcedure [dbo].[ky_WDTimeWriteoff] Script Date: 10/01/2014 16:18:30 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTimeWriteoff]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDTimeWriteoff] GO /****** Object: StoredProcedure [dbo].[spGetCaseLookupList] Script Date: 10/01/2014 16:18:49 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spGetCaseLookupList]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[spGetCaseLookupList] GO /****** Object: StoredProcedure [dbo].[ky_WDUpdateTimeEntry2] Script Date: 10/01/2014 16:18:34 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDUpdateTimeEntry2]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDUpdateTimeEntry2] GO /****** Object: StoredProcedure [dbo].[ky_WDUpdateTimeEntry] Script Date: 10/01/2014 16:18:33 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDUpdateTimeEntry]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDUpdateTimeEntry] GO /****** Object: StoredProcedure [dbo].[ky_CaseAssociateExportContact] Script Date: 10/01/2014 16:17:05 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CaseAssociateExportContact]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_CaseAssociateExportContact] GO /****** Object: UserDefinedFunction [dbo].[ky_WDAllCaseAssociates] Script Date: 10/01/2014 16:19:10 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDAllCaseAssociates]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDAllCaseAssociates] GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListByActionTypePage] Script Date: 10/01/2014 16:18:19 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByActionTypePage]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDTaskListByActionTypePage] GO /****** Object: StoredProcedure [dbo].[ky_WDMoveBriefDocuments] Script Date: 10/01/2014 16:18:08 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDMoveBriefDocuments]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDMoveBriefDocuments] GO /****** Object: StoredProcedure [dbo].[ky_WDListMailAssociations2] Script Date: 10/01/2014 16:18:07 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDListMailAssociations2]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDListMailAssociations2] GO /****** Object: UserDefinedFunction [dbo].[ky_SelectContact] Script Date: 10/01/2014 16:19:08 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_SelectContact]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_SelectContact] GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListByHighlightPage] Script Date: 10/01/2014 16:18:21 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByHighlightPage]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDTaskListByHighlightPage] GO /****** Object: StoredProcedure [dbo].[ky_WDRemoveBriefDocuments] Script Date: 10/01/2014 16:18:13 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDRemoveBriefDocuments]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDRemoveBriefDocuments] GO /****** Object: View [dbo].[UDF_TimeEntryDebtLedger] Script Date: 10/01/2014 16:20:08 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[UDF_TimeEntryDebtLedger]')) DROP VIEW [dbo].[UDF_TimeEntryDebtLedger] GO /****** Object: UserDefinedFunction [dbo].[ky_WDAllCaseAssociates2] Script Date: 10/01/2014 16:19:11 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDAllCaseAssociates2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDAllCaseAssociates2] GO /****** Object: StoredProcedure [dbo].[ky_WDPushTask2] Script Date: 10/01/2014 16:18:10 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDPushTask2]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDPushTask2] GO /****** Object: View [dbo].[FeeBillAnalysis] Script Date: 10/01/2014 16:19:56 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FeeBillAnalysis]')) DROP VIEW [dbo].[FeeBillAnalysis] GO /****** Object: StoredProcedure [dbo].[ky_WDPushTask3] Script Date: 10/01/2014 16:18:11 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDPushTask3]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDPushTask3] GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListCount2] Script Date: 10/01/2014 16:18:24 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListCount2]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDTaskListCount2] GO /****** Object: StoredProcedure [dbo].[ky_WDSetTimeInvoiceNo] Script Date: 10/01/2014 16:18:17 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSetTimeInvoiceNo]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDSetTimeInvoiceNo] GO /****** Object: StoredProcedure [dbo].[ky_WDActionDocumentsPub] Script Date: 10/01/2014 16:17:41 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDActionDocumentsPub]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDActionDocumentsPub] GO /****** Object: UserDefinedFunction [dbo].[ky_WDReadTimeEntryLog] Script Date: 10/01/2014 16:19:30 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDReadTimeEntryLog]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDReadTimeEntryLog] GO /****** Object: StoredProcedure [dbo].[ky_QueryCasePhoneLog] Script Date: 10/01/2014 16:17:27 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_QueryCasePhoneLog]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_QueryCasePhoneLog] GO /****** Object: View [dbo].[KPIClientStats] Script Date: 10/01/2014 16:19:59 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[KPIClientStats]')) DROP VIEW [dbo].[KPIClientStats] GO /****** Object: StoredProcedure [dbo].[ky_FinaliseBrief] Script Date: 10/01/2014 16:17:13 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_FinaliseBrief]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_FinaliseBrief] GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListPage2] Script Date: 10/01/2014 16:18:29 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListPage2]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDTaskListPage2] GO /****** Object: UserDefinedFunction [dbo].[ky_WDBriefReorderAllDocs] Script Date: 10/01/2014 16:19:11 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDBriefReorderAllDocs]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDBriefReorderAllDocs] GO /****** Object: StoredProcedure [dbo].[ky_WDCompleteTranscription] Script Date: 10/01/2014 16:17:50 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCompleteTranscription]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDCompleteTranscription] GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListCountByActionType] Script Date: 10/01/2014 16:18:25 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListCountByActionType]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDTaskListCountByActionType] GO /****** Object: StoredProcedure [dbo].[ky_WDPushTask] Script Date: 10/01/2014 16:18:09 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDPushTask]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDPushTask] GO /****** Object: StoredProcedure [dbo].[ky_ReorderAllBriefDocuments] Script Date: 10/01/2014 16:17:29 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_ReorderAllBriefDocuments]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_ReorderAllBriefDocuments] GO /****** Object: StoredProcedure [dbo].[spGetNextAssignNoInDiaryDelegations] Script Date: 10/01/2014 16:18:50 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spGetNextAssignNoInDiaryDelegations]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[spGetNextAssignNoInDiaryDelegations] GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListCount] Script Date: 10/01/2014 16:18:24 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListCount]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDTaskListCount] GO /****** Object: StoredProcedure [dbo].[ky_WDDelegateAction_DiaryDel81] Script Date: 10/01/2014 16:18:02 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDDelegateAction_DiaryDel81]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDDelegateAction_DiaryDel81] GO /****** Object: StoredProcedure [dbo].[ky_ReorderBriefDocSection2] Script Date: 10/01/2014 16:17:31 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_ReorderBriefDocSection2]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_ReorderBriefDocSection2] GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListCountByActionType2] Script Date: 10/01/2014 16:18:26 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListCountByActionType2]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDTaskListCountByActionType2] GO /****** Object: StoredProcedure [dbo].[ky_WDPostDayBook] Script Date: 10/01/2014 16:18:09 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDPostDayBook]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDPostDayBook] GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListCountByHighlight] Script Date: 10/01/2014 16:18:27 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListCountByHighlight]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDTaskListCountByHighlight] GO /****** Object: StoredProcedure [dbo].[ky_WDSearchAllContacts2] Script Date: 10/01/2014 16:18:15 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchAllContacts2]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDSearchAllContacts2] GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListCountByHighlight2] Script Date: 10/01/2014 16:18:28 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListCountByHighlight2]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDTaskListCountByHighlight2] GO /****** Object: StoredProcedure [dbo].[ky_WDSearchAllContacts3] Script Date: 10/01/2014 16:18:16 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchAllContacts3]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDSearchAllContacts3] GO /****** Object: UserDefinedFunction [dbo].[ky_WDBriefReorderSections] Script Date: 10/01/2014 16:19:12 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDBriefReorderSections]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDBriefReorderSections] GO /****** Object: UserDefinedFunction [dbo].[ky_NewerAssignments] Script Date: 10/01/2014 16:19:07 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NewerAssignments]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_NewerAssignments] GO /****** Object: UserDefinedFunction [dbo].[ky_WDRecentMatterList] Script Date: 10/01/2014 16:19:30 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDRecentMatterList]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDRecentMatterList] GO /****** Object: View [dbo].[NoOutstandingTasks] Script Date: 10/01/2014 16:20:01 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[NoOutstandingTasks]')) DROP VIEW [dbo].[NoOutstandingTasks] GO /****** Object: View [dbo].[HandlersStatsFeByTeam] Script Date: 10/01/2014 16:19:58 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[HandlersStatsFeByTeam]')) DROP VIEW [dbo].[HandlersStatsFeByTeam] GO /****** Object: View [dbo].[ClientDiary] Script Date: 10/01/2014 16:19:53 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ClientDiary]')) DROP VIEW [dbo].[ClientDiary] GO /****** Object: StoredProcedure [dbo].[ky_CaseAssociateExportType] Script Date: 10/01/2014 16:17:05 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CaseAssociateExportType]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_CaseAssociateExportType] GO /****** Object: StoredProcedure [dbo].[ky_briefsectionupdate] Script Date: 10/01/2014 16:17:04 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_briefsectionupdate]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_briefsectionupdate] GO /****** Object: StoredProcedure [dbo].[ky_SetGlobalOutlookSettings] Script Date: 10/01/2014 16:17:38 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_SetGlobalOutlookSettings]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_SetGlobalOutlookSettings] GO /****** Object: View [dbo].[NoOverDuePhoneCalls] Script Date: 10/01/2014 16:20:01 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[NoOverDuePhoneCalls]')) DROP VIEW [dbo].[NoOverDuePhoneCalls] GO /****** Object: StoredProcedure [dbo].[ky_FetchLoadgvAssociateParties] Script Date: 10/01/2014 16:17:13 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_FetchLoadgvAssociateParties]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_FetchLoadgvAssociateParties] GO /****** Object: View [dbo].[HandlersStatsFeByDept] Script Date: 10/01/2014 16:19:58 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[HandlersStatsFeByDept]')) DROP VIEW [dbo].[HandlersStatsFeByDept] GO /****** Object: StoredProcedure [dbo].[ky_BriefDocAddToSection] Script Date: 10/01/2014 16:17:03 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BriefDocAddToSection]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_BriefDocAddToSection] GO /****** Object: StoredProcedure [dbo].[ky_DeleteCalendarStep] Script Date: 10/01/2014 16:17:12 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_DeleteCalendarStep]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_DeleteCalendarStep] GO /****** Object: StoredProcedure [dbo].[ky_WDDeleteAction] Script Date: 10/01/2014 16:18:03 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDDeleteAction]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDDeleteAction] GO /****** Object: StoredProcedure [dbo].[ky_MoveBriefSection] Script Date: 10/01/2014 16:17:25 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_MoveBriefSection]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_MoveBriefSection] GO /****** Object: UserDefinedFunction [dbo].[ky_GetAddressFromEmailAddress] Script Date: 10/01/2014 16:19:01 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetAddressFromEmailAddress]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_GetAddressFromEmailAddress] GO /****** Object: StoredProcedure [dbo].[ky_GetGlobalOutlookSettings] Script Date: 10/01/2014 16:17:20 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetGlobalOutlookSettings]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_GetGlobalOutlookSettings] GO /****** Object: StoredProcedure [dbo].[ky_MoveBriefDocumentToSection] Script Date: 10/01/2014 16:17:25 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_MoveBriefDocumentToSection]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_MoveBriefDocumentToSection] GO /****** Object: StoredProcedure [dbo].[spGetCaseTypeLookupList] Script Date: 10/01/2014 16:18:49 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spGetCaseTypeLookupList]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[spGetCaseTypeLookupList] GO /****** Object: StoredProcedure [dbo].[Load_reports_name] Script Date: 10/01/2014 16:18:36 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Load_reports_name]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[Load_reports_name] GO /****** Object: StoredProcedure [dbo].[search_reports] Script Date: 10/01/2014 16:18:47 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[search_reports]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[search_reports] GO /****** Object: StoredProcedure [dbo].[ky_WDCreateDiaryStep] Script Date: 10/01/2014 16:17:52 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCreateDiaryStep]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDCreateDiaryStep] GO /****** Object: UserDefinedFunction [dbo].[ky_WDNextWhile] Script Date: 10/01/2014 16:19:28 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDNextWhile]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDNextWhile] GO /****** Object: StoredProcedure [dbo].[SpReportGroupimport] Script Date: 10/01/2014 16:18:54 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SpReportGroupimport]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[SpReportGroupimport] GO /****** Object: StoredProcedure [dbo].[ky_WDSearchAllContacts] Script Date: 10/01/2014 16:18:14 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchAllContacts]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDSearchAllContacts] GO /****** Object: StoredProcedure [dbo].[load_report_group] Script Date: 10/01/2014 16:18:35 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[load_report_group]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[load_report_group] GO /****** Object: StoredProcedure [dbo].[Load_group_name] Script Date: 10/01/2014 16:18:35 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Load_group_name]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[Load_group_name] GO /****** Object: StoredProcedure [dbo].[ky_WDUpdateAppt5] Script Date: 10/01/2014 16:18:32 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDUpdateAppt5]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDUpdateAppt5] GO /****** Object: View [dbo].[OpenClosedMattersLedger] Script Date: 10/01/2014 16:20:02 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[OpenClosedMattersLedger]')) DROP VIEW [dbo].[OpenClosedMattersLedger] GO /****** Object: StoredProcedure [dbo].[ky_RefreshBG] Script Date: 10/01/2014 16:17:29 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_RefreshBG]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_RefreshBG] GO /****** Object: StoredProcedure [dbo].[ky_IMMoveBriefDocumentWithinSection] Script Date: 10/01/2014 16:17:22 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_IMMoveBriefDocumentWithinSection]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_IMMoveBriefDocumentWithinSection] GO /****** Object: UserDefinedFunction [dbo].[ky_WDGetTimePassed] Script Date: 10/01/2014 16:19:24 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDGetTimePassed]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDGetTimePassed] GO /****** Object: StoredProcedure [dbo].[group_creation] Script Date: 10/01/2014 16:16:56 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[group_creation]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[group_creation] GO /****** Object: StoredProcedure [dbo].[ky_AdvancedMatterSearch] Script Date: 10/01/2014 16:16:59 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_AdvancedMatterSearch]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_AdvancedMatterSearch] GO /****** Object: UserDefinedFunction [dbo].[ky_WDBriefSectionDocs] Script Date: 10/01/2014 16:19:12 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDBriefSectionDocs]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDBriefSectionDocs] GO /****** Object: StoredProcedure [dbo].[ky_WDGetCaseDocumentList] Script Date: 10/01/2014 16:18:06 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDGetCaseDocumentList]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDGetCaseDocumentList] GO /****** Object: View [dbo].[HandlersDiary] Script Date: 10/01/2014 16:19:57 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[HandlersDiary]')) DROP VIEW [dbo].[HandlersDiary] GO /****** Object: StoredProcedure [dbo].[create_report_group] Script Date: 10/01/2014 16:16:54 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[create_report_group]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[create_report_group] GO /****** Object: StoredProcedure [dbo].[spGetCaseDiary] Script Date: 10/01/2014 16:18:48 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spGetCaseDiary]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[spGetCaseDiary] GO /****** Object: View [dbo].[OpenClosedMatterLedger] Script Date: 10/01/2014 16:20:02 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[OpenClosedMatterLedger]')) DROP VIEW [dbo].[OpenClosedMatterLedger] GO /****** Object: StoredProcedure [dbo].[delete_group] Script Date: 10/01/2014 16:16:54 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[delete_group]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[delete_group] GO /****** Object: StoredProcedure [dbo].[pWebCaseDiaryUpdate] Script Date: 10/01/2014 16:18:45 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[pWebCaseDiaryUpdate]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[pWebCaseDiaryUpdate] GO /****** Object: StoredProcedure [dbo].[ky_WDDayBook] Script Date: 10/01/2014 16:18:01 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDDayBook]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDDayBook] GO /****** Object: StoredProcedure [dbo].[ky_UpdateCalendarStep] Script Date: 10/01/2014 16:17:40 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_UpdateCalendarStep]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_UpdateCalendarStep] GO /****** Object: StoredProcedure [dbo].[ky_UngroupBG] Script Date: 10/01/2014 16:17:40 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_UngroupBG]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_UngroupBG] GO /****** Object: StoredProcedure [dbo].[ky_WDHandlerTimeBudgetDashboard] Script Date: 10/01/2014 16:18:06 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDHandlerTimeBudgetDashboard]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDHandlerTimeBudgetDashboard] GO /****** Object: View [dbo].[AllocatedBills] Script Date: 10/01/2014 16:19:51 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AllocatedBills]')) DROP VIEW [dbo].[AllocatedBills] GO /****** Object: StoredProcedure [dbo].[SpImportXml] Script Date: 10/01/2014 16:18:51 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SpImportXml]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[SpImportXml] GO /****** Object: StoredProcedure [dbo].[pWebCaseDiaryAdd] Script Date: 10/01/2014 16:18:40 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[pWebCaseDiaryAdd]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[pWebCaseDiaryAdd] GO /****** Object: UserDefinedFunction [dbo].[ky_WDAllClientContacts] Script Date: 10/01/2014 16:19:11 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDAllClientContacts]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDAllClientContacts] GO /****** Object: View [dbo].[AllocatedBillHeadDetails] Script Date: 10/01/2014 16:19:51 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AllocatedBillHeadDetails]')) DROP VIEW [dbo].[AllocatedBillHeadDetails] GO /****** Object: StoredProcedure [dbo].[ky_CloseCasePhoneCall] Script Date: 10/01/2014 16:17:05 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CloseCasePhoneCall]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_CloseCasePhoneCall] GO /****** Object: StoredProcedure [dbo].[sp_KEYHOUSEEXTRACT] Script Date: 10/01/2014 16:18:47 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_KEYHOUSEEXTRACT]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[sp_KEYHOUSEEXTRACT] GO /****** Object: StoredProcedure [dbo].[ky_ReCalcBillLinesVAT] Script Date: 10/01/2014 16:17:28 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_ReCalcBillLinesVAT]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_ReCalcBillLinesVAT] GO /****** Object: View [dbo].[FeesImportTimeEntry] Script Date: 10/01/2014 16:19:56 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FeesImportTimeEntry]')) DROP VIEW [dbo].[FeesImportTimeEntry] GO /****** Object: StoredProcedure [dbo].[ky_WDGenerateBriefTemplate] Script Date: 10/01/2014 16:18:05 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDGenerateBriefTemplate]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDGenerateBriefTemplate] GO /****** Object: UserDefinedFunction [dbo].[ky_WDMatterSearch] Script Date: 10/01/2014 16:19:28 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDMatterSearch]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDMatterSearch] GO /****** Object: StoredProcedure [dbo].[ky_GetFileLocation] Script Date: 10/01/2014 16:17:20 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetFileLocation]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_GetFileLocation] GO /****** Object: StoredProcedure [dbo].[spInsertErrorLog] Script Date: 10/01/2014 16:18:53 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spInsertErrorLog]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[spInsertErrorLog] GO /****** Object: StoredProcedure [dbo].[ky_DesktopReCalculateFEBreakDown] Script Date: 10/01/2014 16:17:13 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_DesktopReCalculateFEBreakDown]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_DesktopReCalculateFEBreakDown] GO /****** Object: StoredProcedure [dbo].[ky_MoveBriefDocument] Script Date: 10/01/2014 16:17:24 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_MoveBriefDocument]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_MoveBriefDocument] GO /****** Object: StoredProcedure [dbo].[ky_CreateCalendarStep] Script Date: 10/01/2014 16:17:07 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CreateCalendarStep]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_CreateCalendarStep] GO /****** Object: StoredProcedure [dbo].[ky_UngroupGUIDBG] Script Date: 10/01/2014 16:17:40 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_UngroupGUIDBG]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_UngroupGUIDBG] GO /****** Object: StoredProcedure [dbo].[ky_SetCasePhoneCallMatter] Script Date: 10/01/2014 16:17:36 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_SetCasePhoneCallMatter]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_SetCasePhoneCallMatter] GO /****** Object: View [dbo].[FeeAllocated] Script Date: 10/01/2014 16:19:55 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FeeAllocated]')) DROP VIEW [dbo].[FeeAllocated] GO /****** Object: StoredProcedure [dbo].[spGetDocumentClassesLookup] Script Date: 10/01/2014 16:18:49 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spGetDocumentClassesLookup]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[spGetDocumentClassesLookup] GO /****** Object: StoredProcedure [dbo].[ky_GenerateBriefTemplate] Script Date: 10/01/2014 16:17:17 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GenerateBriefTemplate]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_GenerateBriefTemplate] GO /****** Object: StoredProcedure [dbo].[ky_CreditNote] Script Date: 10/01/2014 16:17:12 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CreditNote]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_CreditNote] GO /****** Object: UserDefinedFunction [dbo].[ky_NETFNRemoveSuperfluousSpacing] Script Date: 10/01/2014 16:19:06 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NETFNRemoveSuperfluousSpacing]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_NETFNRemoveSuperfluousSpacing] GO /****** Object: StoredProcedure [dbo].[ky_WDGenerateBrief] Script Date: 10/01/2014 16:18:04 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDGenerateBrief]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDGenerateBrief] GO /****** Object: View [dbo].[FeWIP] Script Date: 10/01/2014 16:19:57 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FeWIP]')) DROP VIEW [dbo].[FeWIP] GO /****** Object: StoredProcedure [dbo].[ky_DesktopCalculateFEBreakDown] Script Date: 10/01/2014 16:17:12 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_DesktopCalculateFEBreakDown]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_DesktopCalculateFEBreakDown] GO /****** Object: UserDefinedFunction [dbo].[ky_BGListTotals] Script Date: 10/01/2014 16:18:58 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGListTotals]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_BGListTotals] GO /****** Object: StoredProcedure [dbo].[ky_GenerateBrief2] Script Date: 10/01/2014 16:17:15 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GenerateBrief2]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_GenerateBrief2] GO /****** Object: StoredProcedure [dbo].[ky_GroupGroupNarrBG] Script Date: 10/01/2014 16:17:20 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GroupGroupNarrBG]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_GroupGroupNarrBG] GO /****** Object: UserDefinedFunction [dbo].[ky_FromDesktopBillFeeBreakdown] Script Date: 10/01/2014 16:19:01 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_FromDesktopBillFeeBreakdown]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_FromDesktopBillFeeBreakdown] GO /****** Object: StoredProcedure [dbo].[ky_GenerateBrief4] Script Date: 10/01/2014 16:17:16 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GenerateBrief4]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_GenerateBrief4] GO /****** Object: View [dbo].[MatterDetailView] Script Date: 10/01/2014 16:20:00 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[MatterDetailView]')) DROP VIEW [dbo].[MatterDetailView] GO /****** Object: StoredProcedure [dbo].[ky_BGResetCR] Script Date: 10/01/2014 16:17:02 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGResetCR]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_BGResetCR] GO /****** Object: View [dbo].[DiaryBriefs] Script Date: 10/01/2014 16:19:54 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[DiaryBriefs]')) DROP VIEW [dbo].[DiaryBriefs] GO /****** Object: StoredProcedure [dbo].[ky_WDAddBriefDocuments] Script Date: 10/01/2014 16:17:41 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDAddBriefDocuments]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDAddBriefDocuments] GO /****** Object: View [dbo].[diarycloseddiary] Script Date: 10/01/2014 16:19:55 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[diarycloseddiary]')) DROP VIEW [dbo].[diarycloseddiary] GO /****** Object: StoredProcedure [dbo].[ky_MoveGroupBG] Script Date: 10/01/2014 16:17:26 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_MoveGroupBG]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_MoveGroupBG] GO /****** Object: View [dbo].[MatterTransactionsBalances] Script Date: 10/01/2014 16:20:00 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[MatterTransactionsBalances]')) DROP VIEW [dbo].[MatterTransactionsBalances] GO /****** Object: StoredProcedure [dbo].[ky_briefdocumentadd] Script Date: 10/01/2014 16:17:03 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_briefdocumentadd]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_briefdocumentadd] GO /****** Object: UserDefinedFunction [dbo].[DAByTrackRef] Script Date: 10/01/2014 16:18:56 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DAByTrackRef]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[DAByTrackRef] GO /****** Object: StoredProcedure [dbo].[ky_GenerateBrief] Script Date: 10/01/2014 16:17:14 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GenerateBrief]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_GenerateBrief] GO /****** Object: StoredProcedure [dbo].[spGetSettings] Script Date: 10/01/2014 16:18:50 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spGetSettings]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[spGetSettings] GO /****** Object: StoredProcedure [dbo].[ky_WDCreateTranscription] Script Date: 10/01/2014 16:18:01 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCreateTranscription]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDCreateTranscription] GO /****** Object: StoredProcedure [dbo].[ky_GenerateBrief3] Script Date: 10/01/2014 16:17:15 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GenerateBrief3]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_GenerateBrief3] GO /****** Object: View [dbo].[CaseDocuments] Script Date: 10/01/2014 16:19:52 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[CaseDocuments]')) DROP VIEW [dbo].[CaseDocuments] GO /****** Object: StoredProcedure [dbo].[ky_GenerateBrief5] Script Date: 10/01/2014 16:17:17 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GenerateBrief5]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_GenerateBrief5] GO /****** Object: StoredProcedure [dbo].[ky_WDCreateDiaryAttachment4] Script Date: 10/01/2014 16:17:51 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCreateDiaryAttachment4]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDCreateDiaryAttachment4] GO /****** Object: StoredProcedure [dbo].[ky_StartCasePhoneCall] Script Date: 10/01/2014 16:17:40 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_StartCasePhoneCall]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_StartCasePhoneCall] GO /****** Object: UserDefinedFunction [dbo].[KHCReportAccess] Script Date: 10/01/2014 16:18:57 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[KHCReportAccess]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[KHCReportAccess] GO /****** Object: View [dbo].[FeesReceivedBreakDown] Script Date: 10/01/2014 16:19:56 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FeesReceivedBreakDown]')) DROP VIEW [dbo].[FeesReceivedBreakDown] GO /****** Object: StoredProcedure [dbo].[ky_GetDocumentsIM] Script Date: 10/01/2014 16:17:19 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetDocumentsIM]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_GetDocumentsIM] GO /****** Object: StoredProcedure [dbo].[spGetNextTrackReferenceInDiaryAttachments] Script Date: 10/01/2014 16:18:50 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spGetNextTrackReferenceInDiaryAttachments]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[spGetNextTrackReferenceInDiaryAttachments] GO /****** Object: View [dbo].[diaryattcloseddiaryatt] Script Date: 10/01/2014 16:19:53 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[diaryattcloseddiaryatt]')) DROP VIEW [dbo].[diaryattcloseddiaryatt] GO /****** Object: UserDefinedFunction [dbo].[IMGetDocInfo] Script Date: 10/01/2014 16:18:56 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[IMGetDocInfo]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[IMGetDocInfo] GO /****** Object: View [dbo].[OutlayDocsSuppliers] Script Date: 10/01/2014 16:20:03 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[OutlayDocsSuppliers]')) DROP VIEW [dbo].[OutlayDocsSuppliers] GO /****** Object: StoredProcedure [dbo].[ky_CalculateFEBreakDown] Script Date: 10/01/2014 16:17:04 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CalculateFEBreakDown]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_CalculateFEBreakDown] GO /****** Object: View [dbo].[TimeLastBilled] Script Date: 10/01/2014 16:20:07 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[TimeLastBilled]')) DROP VIEW [dbo].[TimeLastBilled] GO /****** Object: UserDefinedFunction [dbo].[WDMatterSearch] Script Date: 10/01/2014 16:19:51 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WDMatterSearch]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[WDMatterSearch] GO /****** Object: StoredProcedure [dbo].[ky_BGFeeBreakDown] Script Date: 10/01/2014 16:17:00 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGFeeBreakDown]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_BGFeeBreakDown] GO /****** Object: View [dbo].[TimeEntryLastDate] Script Date: 10/01/2014 16:20:07 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[TimeEntryLastDate]')) DROP VIEW [dbo].[TimeEntryLastDate] GO /****** Object: StoredProcedure [dbo].[ky_BGPayItem] Script Date: 10/01/2014 16:17:01 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGPayItem]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_BGPayItem] GO /****** Object: StoredProcedure [dbo].[SpSyntax] Script Date: 10/01/2014 16:18:54 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SpSyntax]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[SpSyntax] GO /****** Object: UserDefinedFunction [dbo].[ky_WDAllMatterContacts] Script Date: 10/01/2014 16:19:11 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDAllMatterContacts]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDAllMatterContacts] GO /****** Object: UserDefinedFunction [dbo].[ky_Diary] Script Date: 10/01/2014 16:19:00 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_Diary]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_Diary] GO /****** Object: UserDefinedFunction [dbo].[ky_WDAllContacts] Script Date: 10/01/2014 16:19:11 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDAllContacts]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDAllContacts] GO /****** Object: UserDefinedFunction [dbo].[ContactAddresses] Script Date: 10/01/2014 16:18:56 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ContactAddresses]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ContactAddresses] GO /****** Object: StoredProcedure [dbo].[ky_CreateDiaryAttachment] Script Date: 10/01/2014 16:17:08 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CreateDiaryAttachment]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_CreateDiaryAttachment] GO /****** Object: UserDefinedFunction [dbo].[UserMatterAndGroups] Script Date: 10/01/2014 16:19:50 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UserMatterAndGroups]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[UserMatterAndGroups] GO /****** Object: UserDefinedFunction [dbo].[UserClientAndGroupsExpanded] Script Date: 10/01/2014 16:19:50 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UserClientAndGroupsExpanded]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[UserClientAndGroupsExpanded] GO /****** Object: View [dbo].[TimeTasks] Script Date: 10/01/2014 16:20:07 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[TimeTasks]')) DROP VIEW [dbo].[TimeTasks] GO /****** Object: StoredProcedure [dbo].[ky_WDUpdateAllMatterTimeBalances] Script Date: 10/01/2014 16:18:31 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDUpdateAllMatterTimeBalances]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDUpdateAllMatterTimeBalances] GO /****** Object: UserDefinedFunction [dbo].[MatterQuickSearch] Script Date: 10/01/2014 16:19:49 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MatterQuickSearch]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[MatterQuickSearch] GO /****** Object: View [dbo].[TimeAdminTasks] Script Date: 10/01/2014 16:20:06 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[TimeAdminTasks]')) DROP VIEW [dbo].[TimeAdminTasks] GO /****** Object: StoredProcedure [dbo].[ky_WDMatterListCount] Script Date: 10/01/2014 16:18:07 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDMatterListCount]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDMatterListCount] GO /****** Object: UserDefinedFunction [dbo].[MatterAndGroupQuickSearch] Script Date: 10/01/2014 16:19:49 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MatterAndGroupQuickSearch]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[MatterAndGroupQuickSearch] GO /****** Object: View [dbo].[FeMatterWIPold] Script Date: 10/01/2014 16:19:57 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FeMatterWIPold]')) DROP VIEW [dbo].[FeMatterWIPold] GO /****** Object: View [dbo].[EmailAddressHistory] Script Date: 10/01/2014 16:19:55 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[EmailAddressHistory]')) DROP VIEW [dbo].[EmailAddressHistory] GO /****** Object: StoredProcedure [dbo].[delete_report] Script Date: 10/01/2014 16:16:55 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[delete_report]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[delete_report] GO /****** Object: StoredProcedure [dbo].[ky_IMGenerateBrief] Script Date: 10/01/2014 16:17:21 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_IMGenerateBrief]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_IMGenerateBrief] GO /****** Object: StoredProcedure [dbo].[ky_CalculateFEBreakDownBD] Script Date: 10/01/2014 16:17:05 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CalculateFEBreakDownBD]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_CalculateFEBreakDownBD] GO /****** Object: UserDefinedFunction [dbo].[ky_GetFileExtension] Script Date: 10/01/2014 16:19:02 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetFileExtension]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_GetFileExtension] GO /****** Object: StoredProcedure [dbo].[SpCheckReportName] Script Date: 10/01/2014 16:18:48 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SpCheckReportName]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[SpCheckReportName] GO /****** Object: StoredProcedure [dbo].[ky_SetAlarm] Script Date: 10/01/2014 16:17:34 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_SetAlarm]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_SetAlarm] GO /****** Object: StoredProcedure [dbo].[ky_BGClearOrphanedGuide] Script Date: 10/01/2014 16:17:00 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGClearOrphanedGuide]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_BGClearOrphanedGuide] GO /****** Object: UserDefinedFunction [dbo].[ky_GetVerboseType] Script Date: 10/01/2014 16:19:03 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetVerboseType]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_GetVerboseType] GO /****** Object: StoredProcedure [dbo].[report_filename_insert] Script Date: 10/01/2014 16:18:45 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[report_filename_insert]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[report_filename_insert] GO /****** Object: UserDefinedFunction [dbo].[ky_WDListBills] Script Date: 10/01/2014 16:19:25 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDListBills]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDListBills] GO /****** Object: View [dbo].[WDOpenMatters] Script Date: 10/01/2014 16:20:08 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[WDOpenMatters]')) DROP VIEW [dbo].[WDOpenMatters] GO /****** Object: StoredProcedure [dbo].[ky_SetLinkedAlarms] Script Date: 10/01/2014 16:17:38 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_SetLinkedAlarms]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_SetLinkedAlarms] GO /****** Object: UserDefinedFunction [dbo].[ky_WDHFCountDraftInvoices] Script Date: 10/01/2014 16:19:25 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDHFCountDraftInvoices]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDHFCountDraftInvoices] GO /****** Object: StoredProcedure [dbo].[report_parameter_insert] Script Date: 10/01/2014 16:18:47 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[report_parameter_insert]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[report_parameter_insert] GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDiary2] Script Date: 10/01/2014 16:19:13 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDiary2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDCaseDiary2] GO /****** Object: StoredProcedure [dbo].[ky_WDListMailAssociations] Script Date: 10/01/2014 16:18:07 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDListMailAssociations]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDListMailAssociations] GO /****** Object: StoredProcedure [dbo].[ky_WDCaseDocuments2] Script Date: 10/01/2014 16:17:45 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDocuments2]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDCaseDocuments2] GO /****** Object: StoredProcedure [dbo].[ky_WDCopyTimeEntry] Script Date: 10/01/2014 16:17:50 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCopyTimeEntry]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDCopyTimeEntry] GO /****** Object: StoredProcedure [dbo].[load_parameters] Script Date: 10/01/2014 16:18:35 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[load_parameters]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[load_parameters] GO /****** Object: StoredProcedure [dbo].[ky_OrphanedAlarmCleanup] Script Date: 10/01/2014 16:17:26 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_OrphanedAlarmCleanup]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_OrphanedAlarmCleanup] GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDiary3] Script Date: 10/01/2014 16:19:14 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDiary3]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDCaseDiary3] GO /****** Object: StoredProcedure [dbo].[delete_parameter] Script Date: 10/01/2014 16:16:55 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[delete_parameter]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[delete_parameter] GO /****** Object: StoredProcedure [dbo].[ky_WDCaseDocuments] Script Date: 10/01/2014 16:17:45 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDocuments]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDCaseDocuments] GO /****** Object: StoredProcedure [dbo].[pWebCaseDiaryGet] Script Date: 10/01/2014 16:18:40 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[pWebCaseDiaryGet]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[pWebCaseDiaryGet] GO /****** Object: StoredProcedure [dbo].[ky_WDDiaryDocuments] Script Date: 10/01/2014 16:18:03 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDDiaryDocuments]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDDiaryDocuments] GO /****** Object: StoredProcedure [dbo].[ky_UpdateDiaryAttachment] Script Date: 10/01/2014 16:17:40 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_UpdateDiaryAttachment]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_UpdateDiaryAttachment] GO /****** Object: StoredProcedure [dbo].[ky_WDCaseDocuments3] Script Date: 10/01/2014 16:17:46 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDocuments3]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDCaseDocuments3] GO /****** Object: UserDefinedFunction [dbo].[ky_BGListGroupDrillEntries] Script Date: 10/01/2014 16:18:58 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGListGroupDrillEntries]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_BGListGroupDrillEntries] GO /****** Object: StoredProcedure [dbo].[ky_WDCaseDocuments4] Script Date: 10/01/2014 16:17:48 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDocuments4]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDCaseDocuments4] GO /****** Object: UserDefinedFunction [dbo].[ky_WDMatLedger] Script Date: 10/01/2014 16:19:26 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDMatLedger]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDMatLedger] GO /****** Object: UserDefinedFunction [dbo].[ky_BGListGroupedEntries] Script Date: 10/01/2014 16:18:58 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGListGroupedEntries]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_BGListGroupedEntries] GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDiary] Script Date: 10/01/2014 16:19:13 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDiary]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDCaseDiary] GO /****** Object: StoredProcedure [dbo].[pWebCaseDiaryGetList] Script Date: 10/01/2014 16:18:41 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[pWebCaseDiaryGetList]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[pWebCaseDiaryGetList] GO /****** Object: StoredProcedure [dbo].[SpOverwriteImportData] Script Date: 10/01/2014 16:18:54 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SpOverwriteImportData]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[SpOverwriteImportData] GO /****** Object: UserDefinedFunction [dbo].[ky_WDPublishedCaseDiary] Script Date: 10/01/2014 16:19:29 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDPublishedCaseDiary]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDPublishedCaseDiary] GO /****** Object: StoredProcedure [dbo].[spGetHandlersLookupList] Script Date: 10/01/2014 16:18:49 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spGetHandlersLookupList]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[spGetHandlersLookupList] GO /****** Object: StoredProcedure [dbo].[ky_SetMatterAlarms] Script Date: 10/01/2014 16:17:39 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_SetMatterAlarms]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_SetMatterAlarms] GO /****** Object: StoredProcedure [dbo].[load_tree] Script Date: 10/01/2014 16:18:36 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[load_tree]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[load_tree] GO /****** Object: View [dbo].[z_AccExport] Script Date: 10/01/2014 16:20:08 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[z_AccExport]')) DROP VIEW [dbo].[z_AccExport] GO /****** Object: View [dbo].[Solicitors] Script Date: 10/01/2014 16:20:06 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[Solicitors]')) DROP VIEW [dbo].[Solicitors] GO /****** Object: View [dbo].[Partners] Script Date: 10/01/2014 16:20:04 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[Partners]')) DROP VIEW [dbo].[Partners] GO /****** Object: StoredProcedure [dbo].[ky_UpdateRecentMatterList] Script Date: 10/01/2014 16:17:41 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_UpdateRecentMatterList]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_UpdateRecentMatterList] GO /****** Object: UserDefinedFunction [dbo].[ky_WDTimeEntryByRecordID] Script Date: 10/01/2014 16:19:49 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTimeEntryByRecordID]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDTimeEntryByRecordID] GO /****** Object: StoredProcedure [dbo].[ky_FetchAddProfessionalLoadData] Script Date: 10/01/2014 16:17:13 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_FetchAddProfessionalLoadData]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_FetchAddProfessionalLoadData] GO /****** Object: StoredProcedure [dbo].[ky_WDStoreFileBlob] Script Date: 10/01/2014 16:18:17 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDStoreFileBlob]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDStoreFileBlob] GO /****** Object: StoredProcedure [dbo].[load_infiles] Script Date: 10/01/2014 16:18:35 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[load_infiles]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[load_infiles] GO /****** Object: View [dbo].[SupportStaff] Script Date: 10/01/2014 16:20:06 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[SupportStaff]')) DROP VIEW [dbo].[SupportStaff] GO /****** Object: UserDefinedFunction [dbo].[ky_WDGetTAList2] Script Date: 10/01/2014 16:19:23 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDGetTAList2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDGetTAList2] GO /****** Object: StoredProcedure [dbo].[ky_SetActionAutoAlarm] Script Date: 10/01/2014 16:17:33 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_SetActionAutoAlarm]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_SetActionAutoAlarm] GO /****** Object: StoredProcedure [dbo].[ky_WDActionComplete3] Script Date: 10/01/2014 16:17:41 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDActionComplete3]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDActionComplete3] GO /****** Object: UserDefinedFunction [dbo].[ky_WDGetTAList] Script Date: 10/01/2014 16:19:23 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDGetTAList]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDGetTAList] GO /****** Object: StoredProcedure [dbo].[ky_WDActionComplete] Script Date: 10/01/2014 16:17:41 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDActionComplete]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDActionComplete] GO /****** Object: UserDefinedFunction [dbo].[ky_WDGetNoteTAs] Script Date: 10/01/2014 16:19:22 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDGetNoteTAs]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDGetNoteTAs] GO /****** Object: UserDefinedFunction [dbo].[UserMatterAndGroupsExpanded] Script Date: 10/01/2014 16:19:50 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UserMatterAndGroupsExpanded]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[UserMatterAndGroupsExpanded] GO /****** Object: StoredProcedure [dbo].[ky_WDNextActionMissingCasePartner] Script Date: 10/01/2014 16:18:08 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDNextActionMissingCasePartner]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDNextActionMissingCasePartner] GO /****** Object: StoredProcedure [dbo].[spInsertCapturedDocuments] Script Date: 10/01/2014 16:18:53 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spInsertCapturedDocuments]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[spInsertCapturedDocuments] GO /****** Object: StoredProcedure [dbo].[ky_IMMoveBriefDocuments] Script Date: 10/01/2014 16:17:22 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_IMMoveBriefDocuments]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_IMMoveBriefDocuments] GO /****** Object: StoredProcedure [dbo].[spGetCaseActionsForCaseType] Script Date: 10/01/2014 16:18:48 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spGetCaseActionsForCaseType]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[spGetCaseActionsForCaseType] GO /****** Object: UserDefinedFunction [dbo].[ky_FNGetCourtSittings] Script Date: 10/01/2014 16:19:00 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_FNGetCourtSittings]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_FNGetCourtSittings] GO /****** Object: StoredProcedure [dbo].[ky_WDDelegateAction_DiaryDel] Script Date: 10/01/2014 16:18:02 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDDelegateAction_DiaryDel]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDDelegateAction_DiaryDel] GO /****** Object: StoredProcedure [dbo].[spValidateEnteredActionCode] Script Date: 10/01/2014 16:18:55 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spValidateEnteredActionCode]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[spValidateEnteredActionCode] GO /****** Object: StoredProcedure [dbo].[ky_GetCourtSittings] Script Date: 10/01/2014 16:17:18 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetCourtSittings]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_GetCourtSittings] GO /****** Object: StoredProcedure [dbo].[ky_KHC_getbasicmatterlist] Script Date: 10/01/2014 16:17:23 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_KHC_getbasicmatterlist]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_KHC_getbasicmatterlist] GO /****** Object: StoredProcedure [dbo].[ky_WDTaskList] Script Date: 10/01/2014 16:18:18 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskList]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDTaskList] GO /****** Object: StoredProcedure [dbo].[ky_WDCreateDiaryStep5] Script Date: 10/01/2014 16:18:01 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCreateDiaryStep5]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDCreateDiaryStep5] GO /****** Object: StoredProcedure [dbo].[ky_WDCreateDiaryStep3] Script Date: 10/01/2014 16:17:57 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCreateDiaryStep3]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDCreateDiaryStep3] GO /****** Object: StoredProcedure [dbo].[ky_BGProcess] Script Date: 10/01/2014 16:17:01 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGProcess]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_BGProcess] GO /****** Object: StoredProcedure [dbo].[ky_WDCreateDiaryStep4] Script Date: 10/01/2014 16:17:59 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCreateDiaryStep4]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDCreateDiaryStep4] GO /****** Object: UserDefinedFunction [dbo].[ky_GetUNCPathFromFile] Script Date: 10/01/2014 16:19:02 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetUNCPathFromFile]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_GetUNCPathFromFile] GO /****** Object: StoredProcedure [dbo].[ky_BGReset] Script Date: 10/01/2014 16:17:01 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGReset]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_BGReset] GO /****** Object: UserDefinedFunction [dbo].[ky_WDGetEmailTAs] Script Date: 10/01/2014 16:19:22 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDGetEmailTAs]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDGetEmailTAs] GO /****** Object: StoredProcedure [dbo].[KHCCaseAccessed] Script Date: 10/01/2014 16:16:56 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[KHCCaseAccessed]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[KHCCaseAccessed] GO /****** Object: UserDefinedFunction [dbo].[ky_CompBillMatterByBatch] Script Date: 10/01/2014 16:18:59 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CompBillMatterByBatch]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_CompBillMatterByBatch] GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDocListPub] Script Date: 10/01/2014 16:19:19 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDocListPub]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDCaseDocListPub] GO /****** Object: UserDefinedFunction [dbo].[ky_WDTaskListByHighlightSet2Rev] Script Date: 10/01/2014 16:19:45 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByHighlightSet2Rev]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDTaskListByHighlightSet2Rev] GO /****** Object: UserDefinedFunction [dbo].[ky_getDuration] Script Date: 10/01/2014 16:19:01 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_getDuration]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_getDuration] GO /****** Object: UserDefinedFunction [dbo].[ky_WDTaskListSet] Script Date: 10/01/2014 16:19:46 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListSet]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDTaskListSet] GO /****** Object: UserDefinedFunction [dbo].[ky_WDTaskListByActionTypeSet2] Script Date: 10/01/2014 16:19:41 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByActionTypeSet2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDTaskListByActionTypeSet2] GO /****** Object: View [dbo].[OpenClosedMatters] Script Date: 10/01/2014 16:20:02 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[OpenClosedMatters]')) DROP VIEW [dbo].[OpenClosedMatters] GO /****** Object: UserDefinedFunction [dbo].[ky_WDTaskListByActionTypeSet2Rev] Script Date: 10/01/2014 16:19:42 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByActionTypeSet2Rev]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDTaskListByActionTypeSet2Rev] GO /****** Object: UserDefinedFunction [dbo].[ky_WDTaskListByHighlightSet2] Script Date: 10/01/2014 16:19:44 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByHighlightSet2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDTaskListByHighlightSet2] GO /****** Object: UserDefinedFunction [dbo].[ky_WDTaskListSet2] Script Date: 10/01/2014 16:19:47 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListSet2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDTaskListSet2] GO /****** Object: UserDefinedFunction [dbo].[ky_WDGetPhoneTAs] Script Date: 10/01/2014 16:19:22 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDGetPhoneTAs]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDGetPhoneTAs] GO /****** Object: UserDefinedFunction [dbo].[ky_WDTaskListSet2Rev] Script Date: 10/01/2014 16:19:48 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListSet2Rev]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDTaskListSet2Rev] GO /****** Object: View [dbo].[NoOverDueTasks] Script Date: 10/01/2014 16:20:01 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[NoOverDueTasks]')) DROP VIEW [dbo].[NoOverDueTasks] GO /****** Object: UserDefinedFunction [dbo].[ky_NETTFMatterHeaderDetails] Script Date: 10/01/2014 16:19:06 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NETTFMatterHeaderDetails]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_NETTFMatterHeaderDetails] GO /****** Object: UserDefinedFunction [dbo].[ky_WDActionDocListPub] Script Date: 10/01/2014 16:19:10 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDActionDocListPub]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDActionDocListPub] GO /****** Object: View [dbo].[ReportInvoices] Script Date: 10/01/2014 16:20:04 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ReportInvoices]')) DROP VIEW [dbo].[ReportInvoices] GO /****** Object: UserDefinedFunction [dbo].[ky_NETFNMatterClosable] Script Date: 10/01/2014 16:19:05 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NETFNMatterClosable]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_NETFNMatterClosable] GO /****** Object: UserDefinedFunction [dbo].[ky_WDTaskListByActionTypeSet] Script Date: 10/01/2014 16:19:41 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByActionTypeSet]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDTaskListByActionTypeSet] GO /****** Object: UserDefinedFunction [dbo].[ky_NETGetNumberofDaysDiff] Script Date: 10/01/2014 16:19:06 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NETGetNumberofDaysDiff]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_NETGetNumberofDaysDiff] GO /****** Object: UserDefinedFunction [dbo].[ky_WDTaskListByHighlightSet] Script Date: 10/01/2014 16:19:43 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByHighlightSet]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDTaskListByHighlightSet] GO /****** Object: View [dbo].[AssociateCategoryView] Script Date: 10/01/2014 16:19:51 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AssociateCategoryView]')) DROP VIEW [dbo].[AssociateCategoryView] GO /****** Object: UserDefinedFunction [dbo].[ky_WDActionAuthorisedToComplete] Script Date: 10/01/2014 16:19:09 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDActionAuthorisedToComplete]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDActionAuthorisedToComplete] GO /****** Object: UserDefinedFunction [dbo].[ky_HeuristicMultiPhoneNo] Script Date: 10/01/2014 16:19:03 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_HeuristicMultiPhoneNo]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_HeuristicMultiPhoneNo] GO /****** Object: StoredProcedure [dbo].[ky_WDActionComplete2] Script Date: 10/01/2014 16:17:41 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDActionComplete2]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDActionComplete2] GO /****** Object: StoredProcedure [dbo].[ky_WDCheckUnpostableEntries] Script Date: 10/01/2014 16:17:49 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCheckUnpostableEntries]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDCheckUnpostableEntries] GO /****** Object: UserDefinedFunction [dbo].[ky_WDTimeEntry] Script Date: 10/01/2014 16:19:49 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTimeEntry]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDTimeEntry] GO /****** Object: UserDefinedFunction [dbo].[ky_WDTimeDayBookWithAxleErrors] Script Date: 10/01/2014 16:19:48 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTimeDayBookWithAxleErrors]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDTimeDayBookWithAxleErrors] GO /****** Object: StoredProcedure [dbo].[ky_WDUpdateTimeEntryFromDayBook] Script Date: 10/01/2014 16:18:34 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDUpdateTimeEntryFromDayBook]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDUpdateTimeEntryFromDayBook] GO /****** Object: StoredProcedure [dbo].[ky_AddAlarmDelegate] Script Date: 10/01/2014 16:16:56 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_AddAlarmDelegate]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_AddAlarmDelegate] GO /****** Object: StoredProcedure [dbo].[ky_WDUpdateAction_DiaryDel81] Script Date: 10/01/2014 16:18:31 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDUpdateAction_DiaryDel81]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDUpdateAction_DiaryDel81] GO /****** Object: StoredProcedure [dbo].[ky_WDAssignAction_DiaryDel81] Script Date: 10/01/2014 16:17:44 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDAssignAction_DiaryDel81]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDAssignAction_DiaryDel81] GO /****** Object: StoredProcedure [dbo].[ky_WDReleaseAction_DiaryDel81] Script Date: 10/01/2014 16:18:12 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDReleaseAction_DiaryDel81]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDReleaseAction_DiaryDel81] GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchContacts2] Script Date: 10/01/2014 16:19:36 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchContacts2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDSearchContacts2] GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchCaseAssociates2] Script Date: 10/01/2014 16:19:31 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchCaseAssociates2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDSearchCaseAssociates2] GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchMatterContacts2] Script Date: 10/01/2014 16:19:39 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchMatterContacts2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDSearchMatterContacts2] GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchClientContacts2] Script Date: 10/01/2014 16:19:34 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchClientContacts2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDSearchClientContacts2] GO /****** Object: View [dbo].[HandlersStats] Script Date: 10/01/2014 16:19:58 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[HandlersStats]')) DROP VIEW [dbo].[HandlersStats] GO /****** Object: StoredProcedure [dbo].[ky_ReorderBriefSections] Script Date: 10/01/2014 16:17:32 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_ReorderBriefSections]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_ReorderBriefSections] GO /****** Object: UserDefinedFunction [dbo].[ky_NETFNGetColumnSize] Script Date: 10/01/2014 16:19:05 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NETFNGetColumnSize]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_NETFNGetColumnSize] GO /****** Object: StoredProcedure [dbo].[ky_WDCreateDiaryStep2] Script Date: 10/01/2014 16:17:55 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCreateDiaryStep2]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDCreateDiaryStep2] GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchClientContacts] Script Date: 10/01/2014 16:19:33 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchClientContacts]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDSearchClientContacts] GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchMatterContacts] Script Date: 10/01/2014 16:19:38 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchMatterContacts]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDSearchMatterContacts] GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchCaseAssociates] Script Date: 10/01/2014 16:19:31 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchCaseAssociates]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDSearchCaseAssociates] GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchContacts] Script Date: 10/01/2014 16:19:35 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchContacts]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDSearchContacts] GO /****** Object: UserDefinedFunction [dbo].[ky_NETFNGetOldPermissions] Script Date: 10/01/2014 16:19:05 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NETFNGetOldPermissions]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_NETFNGetOldPermissions] GO /****** Object: UserDefinedFunction [dbo].[ky_NETOpenClosedMatterLedger] Script Date: 10/01/2014 16:19:06 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NETOpenClosedMatterLedger]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_NETOpenClosedMatterLedger] GO /****** Object: UserDefinedFunction [dbo].[ky_WDPopDayBook] Script Date: 10/01/2014 16:19:29 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDPopDayBook]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDPopDayBook] GO /****** Object: UserDefinedFunction [dbo].[ky_WDHFBudgets] Script Date: 10/01/2014 16:19:24 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDHFBudgets]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDHFBudgets] GO /****** Object: UserDefinedFunction [dbo].[ky_NETFNConvertDateToClarion] Script Date: 10/01/2014 16:19:05 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NETFNConvertDateToClarion]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_NETFNConvertDateToClarion] GO /****** Object: UserDefinedFunction [dbo].[ky_WDMatSearch] Script Date: 10/01/2014 16:19:26 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDMatSearch]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDMatSearch] GO /****** Object: UserDefinedFunction [dbo].[ky_WDContactSearch] Script Date: 10/01/2014 16:19:20 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDContactSearch]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDContactSearch] GO /****** Object: StoredProcedure [dbo].[ky_MoveBriefDocumentFromSection] Script Date: 10/01/2014 16:17:24 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_MoveBriefDocumentFromSection]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_MoveBriefDocumentFromSection] GO /****** Object: View [dbo].[FeMatterWIP] Script Date: 10/01/2014 16:19:56 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FeMatterWIP]')) DROP VIEW [dbo].[FeMatterWIP] GO /****** Object: StoredProcedure [dbo].[ky_QuickGroupBG] Script Date: 10/01/2014 16:17:28 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_QuickGroupBG]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_QuickGroupBG] GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDiaryPage] Script Date: 10/01/2014 16:19:14 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDiaryPage]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDCaseDiaryPage] GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDocList2] Script Date: 10/01/2014 16:19:16 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDocList2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDCaseDocList2] GO /****** Object: StoredProcedure [dbo].[ky_WDUpdateMatterTimeBalance] Script Date: 10/01/2014 16:18:33 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDUpdateMatterTimeBalance]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDUpdateMatterTimeBalance] GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDiaryPage3] Script Date: 10/01/2014 16:19:15 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDiaryPage3]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDCaseDiaryPage3] GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDocList] Script Date: 10/01/2014 16:19:15 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDocList]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDCaseDocList] GO /****** Object: UserDefinedFunction [dbo].[ky_WDDiaryDocList] Script Date: 10/01/2014 16:19:21 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDDiaryDocList]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDDiaryDocList] GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDocList3] Script Date: 10/01/2014 16:19:17 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDocList3]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDCaseDocList3] GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDocList4] Script Date: 10/01/2014 16:19:18 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDocList4]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDCaseDocList4] GO /****** Object: StoredProcedure [dbo].[ky_SetAlarm2] Script Date: 10/01/2014 16:17:35 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_SetAlarm2]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_SetAlarm2] GO /****** Object: UserDefinedFunction [dbo].[ky_WDActionCheckDependentActions] Script Date: 10/01/2014 16:19:09 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDActionCheckDependentActions]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDActionCheckDependentActions] GO /****** Object: StoredProcedure [dbo].[ky_UpdateActionAlarm] Script Date: 10/01/2014 16:17:40 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_UpdateActionAlarm]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_UpdateActionAlarm] GO /****** Object: StoredProcedure [dbo].[ky_BGDelete] Script Date: 10/01/2014 16:17:00 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGDelete]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_BGDelete] GO /****** Object: UserDefinedFunction [dbo].[ky_GetWeekDayMon1] Script Date: 10/01/2014 16:19:03 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetWeekDayMon1]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_GetWeekDayMon1] GO /****** Object: StoredProcedure [dbo].[ky_WDUpdateAction_DiaryDel] Script Date: 10/01/2014 16:18:31 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDUpdateAction_DiaryDel]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDUpdateAction_DiaryDel] GO /****** Object: StoredProcedure [dbo].[ky_WDReleaseAction_DiaryDel] Script Date: 10/01/2014 16:18:12 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDReleaseAction_DiaryDel]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDReleaseAction_DiaryDel] GO /****** Object: StoredProcedure [dbo].[ky_WDAssignAction_DiaryDel] Script Date: 10/01/2014 16:17:43 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDAssignAction_DiaryDel]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_WDAssignAction_DiaryDel] GO /****** Object: UserDefinedFunction [dbo].[KHCQuickSearch] Script Date: 10/01/2014 16:18:57 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[KHCQuickSearch]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[KHCQuickSearch] GO /****** Object: UserDefinedFunction [dbo].[ky_KHC_GetLastMilestone] Script Date: 10/01/2014 16:19:04 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_KHC_GetLastMilestone]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_KHC_GetLastMilestone] GO /****** Object: UserDefinedFunction [dbo].[ky_KHC_GetNextAction] Script Date: 10/01/2014 16:19:04 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_KHC_GetNextAction]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_KHC_GetNextAction] GO /****** Object: UserDefinedFunction [dbo].[ky_KHC_GetLastAction] Script Date: 10/01/2014 16:19:04 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_KHC_GetLastAction]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_KHC_GetLastAction] GO /****** Object: UserDefinedFunction [dbo].[ky_WDDelView] Script Date: 10/01/2014 16:19:21 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDDelView]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDDelView] GO /****** Object: UserDefinedFunction [dbo].[ky_WDDelTeamView] Script Date: 10/01/2014 16:19:20 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDDelTeamView]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDDelTeamView] GO /****** Object: View [dbo].[LastBillDate] Script Date: 10/01/2014 16:19:59 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[LastBillDate]')) DROP VIEW [dbo].[LastBillDate] GO /****** Object: StoredProcedure [dbo].[ky_InitialiseBG] Script Date: 10/01/2014 16:17:23 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_InitialiseBG]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_InitialiseBG] GO /****** Object: StoredProcedure [dbo].[ky_BGPaid] Script Date: 10/01/2014 16:17:01 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGPaid]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_BGPaid] GO /****** Object: UserDefinedFunction [dbo].[ky_GetNameFromEmailAddress] Script Date: 10/01/2014 16:19:02 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetNameFromEmailAddress]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_GetNameFromEmailAddress] GO /****** Object: UserDefinedFunction [dbo].[ky_BGNewBillFeeBreakdown] Script Date: 10/01/2014 16:18:59 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGNewBillFeeBreakdown]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_BGNewBillFeeBreakdown] GO /****** Object: UserDefinedFunction [dbo].[ky_BGNewBillFeeBreakdownBD] Script Date: 10/01/2014 16:18:59 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGNewBillFeeBreakdownBD]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_BGNewBillFeeBreakdownBD] GO /****** Object: UserDefinedFunction [dbo].[ky_ConvertTimeToClarion] Script Date: 10/01/2014 16:19:00 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_ConvertTimeToClarion]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_ConvertTimeToClarion] GO /****** Object: UserDefinedFunction [dbo].[ky_ConvertDateAndClarionTimeToDateTime] Script Date: 10/01/2014 16:18:59 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_ConvertDateAndClarionTimeToDateTime]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_ConvertDateAndClarionTimeToDateTime] GO /****** Object: UserDefinedFunction [dbo].[ky_RemoveSpuriousWhitespace] Script Date: 10/01/2014 16:19:07 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_RemoveSpuriousWhitespace]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_RemoveSpuriousWhitespace] GO /****** Object: View [dbo].[MatterLastBillDate] Script Date: 10/01/2014 16:20:00 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[MatterLastBillDate]')) DROP VIEW [dbo].[MatterLastBillDate] GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchCaseAssociates3] Script Date: 10/01/2014 16:19:32 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchCaseAssociates3]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDSearchCaseAssociates3] GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchContacts3] Script Date: 10/01/2014 16:19:37 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchContacts3]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDSearchContacts3] GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchMatterContacts3] Script Date: 10/01/2014 16:19:40 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchMatterContacts3]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDSearchMatterContacts3] GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchClientContacts3] Script Date: 10/01/2014 16:19:35 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchClientContacts3]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDSearchClientContacts3] GO /****** Object: StoredProcedure [dbo].[ky_ReorderBriefDocSection] Script Date: 10/01/2014 16:17:30 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_ReorderBriefDocSection]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_ReorderBriefDocSection] GO /****** Object: UserDefinedFunction [dbo].[ky_TimeFromMinutes] Script Date: 10/01/2014 16:19:08 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_TimeFromMinutes]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_TimeFromMinutes] GO /****** Object: StoredProcedure [dbo].[ky_NewGroupBG] Script Date: 10/01/2014 16:18:56 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NewGroupBG]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_NewGroupBG] GO /****** Object: UserDefinedFunction [dbo].[ky_NETOpenClosedMatters] Script Date: 10/01/2014 16:19:06 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NETOpenClosedMatters]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_NETOpenClosedMatters] GO /****** Object: UserDefinedFunction [dbo].[ky_WDGetDate] Script Date: 10/01/2014 16:19:22 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDGetDate]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_WDGetDate] GO /****** Object: UserDefinedFunction [dbo].[ky_RemoveSpuriousWhitespace2] Script Date: 10/01/2014 16:19:08 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_RemoveSpuriousWhitespace2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_RemoveSpuriousWhitespace2] GO /****** Object: UserDefinedFunction [dbo].[ky_GetFirstLineOfAddress] Script Date: 10/01/2014 16:19:02 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetFirstLineOfAddress]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_GetFirstLineOfAddress] GO /****** Object: UserDefinedFunction [dbo].[ky_HeuristicPhoneNumber] Script Date: 10/01/2014 16:19:04 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_HeuristicPhoneNumber]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) DROP FUNCTION [dbo].[ky_HeuristicPhoneNumber] GO /****** Object: StoredProcedure [dbo].[ky_ReorderGroupBG] Script Date: 10/01/2014 16:17:33 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_ReorderGroupBG]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[ky_ReorderGroupBG] GO /****** Object: StoredProcedure [dbo].[ky_FetchLoadgvAssociateParties] Script Date: 10/01/2014 16:17:13 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_FetchLoadgvAssociateParties]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[ky_FetchLoadgvAssociateParties] ( @lstAssociateTypeCode NVARCHAR(20) ) AS /***************************************************************************** Stored Procedure Name: [ky_FetchLoadgvAssociateParties] ''Banks'' Description: This procedure is used load the data for add professional page. 1. CaseAssociate grid. 2. Case Associate type list box *****************************************************************************/ BEGIN SET NOCOUNT ON SELECT A.NAMECODE, A.TYPECODE, A.CATEGORY, B.CODE, B.TYPE, RTRIM(LTRIM(B.NAME)) + ''('' + RTRIM(LTRIM(B.COMPANY)) + '')'' AS NAMECOMP, B.NAME, B.COMPANY, B.ADDRESS, B.PHONENO, B.SEARCH, B.CONTACTNO, C.NAMECODE, C.TYPECODE, C.SEARCHCODE FROM {oj AssociateCategoryView A LEFT OUTER JOIN CaseAssociatesNames B ON A.NAMECODE= B.CODE LEFT OUTER JOIN CaseAssoicatesTypes C ON A.NAMECODE= C.NAMECODE AND A.TYPECODE= C.TYPECODE } WHERE ( {fn UCASE( LTRIM(RTRIM(A.TYPECODE)))} = {fn UCASE(LTRIM(RTRIM(@lstAssociateTypeCode)))} ) ORDER BY A.TYPECODE ASC, A.NAMECODE ASC SET NOCOUNT OFF END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_getDuration] Script Date: 10/01/2014 16:19:01 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_getDuration]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' create function [dbo].[ky_getDuration] (@Start varchar(10), @End varchar(10), @MinDuration int) RETURNS int AS BEGIN DECLARE @iStart int DECLARE @iEnd int DECLARE @diff int IF ISNUMERIC(@Start) = 0 SET @iStart = 0 ELSE SET @iStart = CONVERT(int, @Start) IF ISNUMERIC(@End) = 0 SET @iEnd = 0 ELSE SET @iEnd = CONVERT(int, @End) SET @diff = @iEnd - @iStart IF (@diff < (6000 * @MinDuration)) RETURN @MinDuration SET @diff = CONVERT(int, (@diff / 6000)) RETURN @diff END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_GetWeekDayMon1] Script Date: 10/01/2014 16:19:03 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetWeekDayMon1]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[ky_GetWeekDayMon1] (@date datetime) RETURNS INT AS BEGIN RETURN (SELECT CASE WHEN DATEPART(dw, @date) - DATEPART(dw, ''20000103'') + 1 < 1 THEN DATEPART(dw, @date) - DATEPART(dw, ''20000103'') + 8 ELSE DATEPART(dw, @date) - DATEPART(dw, ''20000103'') + 1 END) END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_GetAddressFromEmailAddress] Script Date: 10/01/2014 16:19:01 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetAddressFromEmailAddress]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_GetAddressFromEmailAddress * * Extracts the name from an e-mail address. The e-mail address should be formatted in the * standard format: * "Person''s Name" * * This function can, however, cope with variations such as * Person''s Name * * email@address.com * * in the first two examples it will return: Person''s Name * in the second two examples it will return: email * **************************************************************************************/ Create Function [dbo].[ky_GetAddressFromEmailAddress] (@address varchar(500)) RETURNS varchar(200) AS BEGIN DECLARE @ltpos int DECLARE @before varchar(500) SET @before = RTRIM(@address) SET @ltpos = CHARINDEX(''<'', @before, 1) IF (@ltpos > 0) BEGIN SET @before = RTRIM(RIGHT(@before, LEN(@before) - @ltpos + 1)) END ELSE BEGIN SET @before = @address END SET @before = RTRIM(LTRIM(Replace(Replace(@before, ''>'', ''''), ''<'', ''''))) RETURN @before END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_GetNameFromEmailAddress] Script Date: 10/01/2014 16:19:02 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetNameFromEmailAddress]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_GetNameFromEmailAddress * * Extracts the name from an e-mail address. The e-mail address should be formatted in the * standard format: * "Person''s Name" * * This function can, however, cope with variations such as * Person''s Name * * email@address.com * * in the first two examples it will return: Person''s Name * in the second two examples it will return: email * **************************************************************************************/ Create Function [dbo].[ky_GetNameFromEmailAddress] (@address varchar(500)) RETURNS varchar(200) AS BEGIN DECLARE @ltpos int DECLARE @before varchar(500) SET @ltpos = CHARINDEX(''<'', @address, 1) IF (@ltpos > 0) BEGIN SET @before = RTRIM(Left(@address, @ltpos - 1)) END ELSE BEGIN SET @before = @address END SET @before = RTRIM(LTrim(Replace(@before, ''"'', ''''))) IF (@before = '''') BEGIN SET @before = RTRIM(LTRIM(Replace(Replace(@address, ''>'', ''''), ''<'', ''''))) END SET @ltpos = CHARINDEX(''@'', @before, 1) IF (@ltpos > 0) BEGIN SET @before = RTRIM(Left(@before, @ltpos - 1)) SET @before = REPLACE(@before, ''.'', '' '') END RETURN @before END ' END GO /****** Object: StoredProcedure [dbo].[ky_GetGlobalOutlookSettings] Script Date: 10/01/2014 16:17:20 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetGlobalOutlookSettings]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_GetGlobalOutlookSettings] AS BEGIN IF NOT EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = ''GlobalOutlookSettings'' AND SO.[type] = ''U'') BEGIN SELECT CONVERT(bit, 1) AS [StoreCaseCode], CONVERT(bit, 1) AS [StoreClientName], CONVERT(bit, 1) AS [StoreCaseDescription], CONVERT(bit, 1) AS [AllowOverride] END ELSE BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = '' IF EXISTS (SELECT * FROM [dbo].[GlobalOutlookSettings]) BEGIN SELECT TOP 1 [StoreCaseCode], [StoreClientName], [StoreCaseDescription], [AllowOverride] FROM [dbo].[GlobalOutlookSettings] END ELSE BEGIN SELECT CONVERT(bit, 1) AS [StoreCaseCode], CONVERT(bit, 1) AS [StoreClientName], CONVERT(bit, 1) AS [StoreCaseDescription], CONVERT(bit, 1) AS [AllowOverride] END'' EXEC (@COMMAND) END END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDUpdateMatterTimeBalance] Script Date: 10/01/2014 16:18:33 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDUpdateMatterTimeBalance]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_WDUpdateMatterTimeBalance] (@matter VARCHAR(20)) AS /******************************************************************* * * ky_WDUpdateMatterTimeBalance * Update Matter Time Balance * *******************************************************************/ BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = '' 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 + '''''''' 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] = ''Charged'' WHERE SO.[name] = ''TimeLedger'' AND SO.[type] = ''U'') BEGIN SET @COMMAND = REPLACE(@COMMAND, ''[CHARGE]'', ''[Charged]'') END EXEC (@COMMAND) END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDNextWhile] Script Date: 10/01/2014 16:19:28 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDNextWhile]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDNextWhile * * Get the dates between now and a specified number of days/weeks/months/years ahead * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDNextWhile] (@interval varchar(2), @number int, @FromDate datetime) RETURNS @Dates Table ([date] datetime, [desc] varchar(20), [wkday] varchar(3)) AS BEGIN DECLARE @ToDate datetime DECLARE @CurDate Datetime DECLARE @DatesIn int DECLARE @WeekCount int DECLARE @Desc varchar(20) DECLARE @CurMonth int DECLARE @NewMonth int SET @ToDate = CASE @interval WHEN ''DD'' THEN DATEADD(DD, @number, @FromDate) WHEN ''WW'' THEN DATEADD(WW, @number, @FromDate) WHEN ''MM'' THEN DATEADD(MM, @number, @FromDate) WHEN ''YY'' THEN DATEADD(YY, @number, @FromDate) ELSE DATEADD(DD, @number, @FromDate) END SET @CurDate = convert(datetime, convert(varchar(8), @FromDate, 112)) SET @WeekCount = 0 SET @DatesIn = 0 SET @CurMonth = 0 WHILE @CurDate <= @ToDate BEGIN SET @NewMonth = DATEDIFF(MM, @FromDate, @CurDate) IF DAY(@CurDate) < DAY(@FromDate) SET @NewMonth = @NewMonth - 1 SET @Desc = CASE WHEN @DatesIn = 0 THEN '''' WHEN @DatesIn = 1 THEN ''(1 day)'' WHEN @DatesIn = 7 THEN ''(1 week)'' WHEN (@CurMonth <> @NewMonth) AND (@NewMonth = 1) THEN ''(1 month)'' WHEN (@CurMonth <> @NewMonth) AND (@NewMonth > 1) THEN ''('' + RTrim(Convert(varchar(2), @NewMonth)) + '' months)'' WHEN @WeekCount = 0 THEN ''('' + RTrim(Convert(varchar(4), (@DatesIn / 7))) + '' weeks)'' WHEN @DatesIn < 21 THEN ''('' + RTrim(Convert(varchar(2), @DatesIn)) + '' days)'' ELSE '''' END IF (@CurMonth <> @NewMonth) SET @CurMonth = @NewMonth INSERT INTO @Dates ([date], [desc], [wkday]) VALUES(@CurDate, @Desc, Convert(varchar(3), DATENAME(WEEKDAY, @CurDate))) SET @DatesIn = @DatesIn + 1 SET @WeekCount = @WeekCount + 1 IF (@WeekCount = 7) SET @WeekCount = 0 SET @CurDate = DATEADD(DD, 1, @CurDate) END RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_GetFirstLineOfAddress] Script Date: 10/01/2014 16:19:02 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetFirstLineOfAddress]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_GetFirstLineOfAddress * * Returns the first line of an address * **************************************************************************************/ create function [dbo].[ky_GetFirstLineOfAddress] (@original varchar(200)) returns varchar(200) AS BEGIN DECLARE @pos int SET @pos = CharIndex(char(10), @original) IF (@pos > 0) BEGIN SET @original = substring(@original, 1, @pos - 1) END SET @pos = CharIndex(char(13), @original) IF (@pos > 0) BEGIN SET @original = substring(@original, 1, @pos - 1) END SET @pos = CharIndex(char(11), @original) IF (@pos > 0) BEGIN SET @original = substring(@original, 1, @pos - 1) END SET @pos = CharIndex('','', @original) IF (@pos > 0) BEGIN SET @original = substring(@original, 1, @pos - 1) END RETURN @original END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDGetTimePassed] Script Date: 10/01/2014 16:19:24 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDGetTimePassed]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDGetTimePassed * * gets the time passed between two dates, to the largest level of granularity, e.g. * anything over a year is expressed in years, anything over a month as months, anything * over a week as weeks. Anything less than that is expressed as days. * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDGetTimePassed] (@datefrom datetime, @dateto datetime) RETURNS varchar(20) AS BEGIN DECLARE @YYYY int DECLARE @MM int DECLARE @WW int DECLARE @DD int SET @DD = DATEDIFF(DD, @datefrom, @dateto) SET @WW = DATEDIFF(WW, @datefrom, @dateto) SET @MM = DATEDIFF(MM, @datefrom, @dateto) SET @YYYY = DATEDIFF(YYYY, @datefrom, @dateto) IF (DATEADD(WW, @WW, @datefrom) > @dateto) SET @WW = @WW - 1 IF (DATEADD(MM, @MM, @datefrom) > @dateto) SET @MM = @MM - 1 IF (DATEADD(YYYY, @YYYY, @datefrom) > @dateto) SET @YYYY = @YYYY - 1 RETURN CASE WHEN @YYYY = null THEN ''N/A'' WHEN @YYYY = 1 THEN ''(1 year)'' WHEN @YYYY > 1 THEN ''('' + convert(varchar(4), @YYYY) + '' years)'' WHEN @MM = 1 THEN ''(1 month)'' WHEN @MM > 1 THEN ''('' + convert(varchar(6), @MM) + '' months)'' WHEN @WW = 1 THEN ''(1 week)'' WHEN @WW > 1 THEN ''('' + convert(varchar(6), @WW) + '' weeks)'' WHEN @DD = 1 THEN ''(1 day)'' ELSE ''('' + convert(varchar(6), @DD) + '' days)'' END END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDGetCaseDocumentList] Script Date: 10/01/2014 16:18:06 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDGetCaseDocumentList]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_WDGetCaseDocumentList] (@casecode VARCHAR(20), @excludemails VARCHAR(1), --O=Outgoing, A=All, anything ELSE - don''t exclude mails @search VARCHAR(100), @doctypes VARCHAR(max), @classlist VARCHAR(max), @sortorder INT) AS /*************************************************************************************************** * * ky_WDGetCaseDocumentList * * Show a list of Case Documents for Add Attachment. * * SORTORDER: * 0 - Default * 1 - Type Ascending * 2 - Type Descending * 3 - Class Ascending * 4 - Class Descending * 5 - Document Ascending * 6 - Document Descending * ***************************************************************************************************/ BEGIN DECLARE @command VARCHAR(max) DECLARE @searchwk VARCHAR(200) DECLARE @searchT INT DECLARE @includelist VARCHAR(max) DECLARE @excludelist VARCHAR(max) SET @command = '' SELECT BAH.[DOCUMENT], BAH.[TYPE], BAH.[Extension], BAH.[VerboseType], BAH.[DOCUMENTDATE], DIA.[DATE] AS [DATEENTERED], BAH.[FILEPATH], BAH.[UNCFILEPATH], DIA.[ACTIONID], BAH.[TRACKREFERENCE], BAH.[NAME], BAH.[DOCCLASS], BAH.[CLASSDESCRIPTION], BAH.[ENTEREDBY], RTRIM(ISNULL(DIA.[CASECODE], '''''''')) AS [CASECODE] FROM [dbo].[diary] DIA CROSS APPLY (SELECT RTRIM(ISNULL(DA.[DOCUMENT], '''''''')) AS [DOCUMENT], RTRIM(UPPER(IsNull(DA.[TYPE], ''''''''))) AS [TYPE], [dbo].[ky_GetFileExtension](DA.[FilePath]) AS [Extension], [dbo].[ky_GetVerboseType]([dbo].[ky_GetFileExtension](DA.[FilePath])) AS [VerboseType], CASE WHEN UNC.[UNC] IS NULL THEN RTRIM(ISNULL(DA.[FILEPATH], '''''''')) ELSE UNC.[UNC] + SUBSTRING(RTRIM(ISNULL(DA.[FILEPATH], '''''''')), 3, LEN(RTRIM(ISNULL(DA.[FILEPATH], ''''''''))) - 2) END AS [FILEPATH], [dbo].[ky_GetUNCPathFromFile](RTRIM(ISNULL(DA.[FILEPATH], ''''''''))) AS [UNCFILEPATH], RTRIM(ISNULL(DA.[NAME], '''''''')) AS [NAME], RTRIM(ISNULL(DA.[DOCCLASS], '''''''')) AS [DOCCLASS], RTRIM(ISNULL(DC.[CLASSDESCRIPTION], '''''''')) AS [CLASSDESCRIPTION], RTRIM(ISNULL(DA.[ENTEREDBY], '''''''')) AS [ENTEREDBY], DA.[DATEENTERED] AS [DOCUMENTDATE], DA.[TRACKREFERENCE] FROM [dbo].[DiaryAttachments] DA INNER JOIN [dbo].[DocumentClasses] DC ON DC.[CLASSCODE] = DA.[DOCCLASS] LEFT OUTER JOIN [dbo].[UNCAlias] UNC ON SUBSTRING(DA.[FilePath], 2, 1) = '''':'''' AND UNC.[Drive] = SUBSTRING(DA.[FilePath], 1, 1) WHERE DA.[DIARYID] = DIA.[ACTIONID]) BAH WHERE DIA.[CASECODE] = '''''' + Replace(@casecode, '''''''', '''''''''''') + '''''''' IF (@excludemails = ''O'') BEGIN SET @command = @command + '' AND ( DIA.[ActionType] <> ''''E'''' OR ( DIA.[ProcessType] = ''''I'''' AND DIA.[ActionType] = ''''E''''))'' END IF (@excludemails = ''A'') BEGIN SET @command = @command + '' AND DIA.[ActionType] <> ''''E'''''' END SET @searchwk = ''%'' + REPLACE(RTRIM(ISNULL(@search, '''')), '''''''', '''''''''''') + ''%'' SET @searchwk = REPLACE(@searchwk, ''%%'', ''%'') SET @searchwk = REPLACE(@searchwk, ''%%'', ''%'') SET @searchT = 0 BEGIN TRY SET @searchT = convert(INT, @search) END TRY BEGIN CATCH SET @searchT = 0 END CATCH IF (@searchwk <> ''%'') BEGIN IF (@searchT <> 0) BEGIN SET @command = @command + '' AND ( BAH.[Document] LIKE '''''' + @searchwk + '''''' OR BAH.[TrackReference] = '' + convert(VARCHAR(10), @searchT) + '')'' END ELSE BEGIN SET @command = @command + '' AND BAH.[Document] LIKE '''''' + @searchwk + '''''''' END END SET @doctypes = RTRIM(ISNULL(@doctypes, '''')) SET @includelist = '''' SET @excludelist = '''' IF (@doctypes <> '''') BEGIN IF (PATINDEX(''%''''Word Document''''%'', @doctypes) > 0) BEGIN IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''DOC'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''DOCX'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''RTF'''''' END IF (PATINDEX(''%''''Image File''''%'', @doctypes) > 0) BEGIN IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''JPG'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''JPEG'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''GIF'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''PNG'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''BMP'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''TIF'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''TIFF'''''' END IF (PATINDEX(''%''''Outlook Message''''%'', @doctypes) > 0) BEGIN IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''MSG'''''' END IF (PATINDEX(''%''''Adobe PDF''''%'', @doctypes) > 0) BEGIN IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''PDF'''''' END IF (PATINDEX(''%''''PowerPoint''''%'', @doctypes) > 0) BEGIN IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''PPT'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''PPTX'''''' END IF (PATINDEX(''%''''Multimedia File''''%'', @doctypes) > 0) BEGIN IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''WAV'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''MP3'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''MP4'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''MKV'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''AVI'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''MPG'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''MPEG'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''WMV'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''M4V'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''OGG'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''AC3'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''FLAC'''''' END IF (PATINDEX(''%''''Excel Spreadsheet''''%'', @doctypes) > 0) BEGIN IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''XLS'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''XLSX'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''CSV'''''' END IF (PATINDEX(''%''''WinZip (archive)''''%'', @doctypes) > 0) BEGIN IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''ZIP'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''ZIPX'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''RAR'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''7Z'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''S7Z'''''' IF (@includelist <> '''') BEGIN SET @includelist = @includelist + '', '' END SET @includelist = @includelist + ''''''CAB'''''' END IF (PATINDEX(''%''''Other''''%'', @doctypes) > 0) BEGIN IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''DOC'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''DOCX'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''RTF'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''JPG'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''JPEG'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''GIF'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''PNG'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''BMP'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''TIF'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''TIFF'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''MSG'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''PDF'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''PPT'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''PPTX'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''WAV'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''MP3'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''MP4'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''MKV'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''AVI'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''MPG'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''MPEG'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''WMV'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''M4V'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''OGG'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''AC3'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''FLAC'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''XLS'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''XLSX'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''CSV'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''ZIP'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''ZIPX'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''RAR'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''7Z'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''S7Z'''''' IF (@excludelist <> '''') BEGIN SET @excludelist = @excludelist + '', '' END SET @excludelist = @excludelist + ''''''CAB'''''' END END IF ((@includelist <> '''') AND (@excludelist <> '''')) BEGIN SET @command = @command + '' AND ( BAH.[Extension] IN ('' + @includelist + '') OR BAH.[Extension] NOT IN ('' + @excludelist + ''))'' END ELSE IF (@includelist <> '''') BEGIN SET @command = @command + '' AND BAH.[Extension] IN ('' + @includelist + '')'' END ELSE IF (@excludelist <> '''') BEGIN SET @command = @command + '' AND BAH.[Extension] NOT IN ('' + @excludelist + '')'' END IF (@classlist <> '''') BEGIN SET @command = @command + '' AND BAH.[DOCCLASS] IN ('' + @classlist + '')'' END SET @sortorder = ISNULL(@sortorder, 0) IF (@sortorder <= 0) BEGIN SET @command = @command + '' ORDER BY DIA.[ACTIONID] DESC'' END IF (@sortorder = 1) BEGIN SET @command = @command + '' ORDER BY BAH.[VerboseType] ASC, DIA.[ACTIONID] DESC'' END IF (@sortorder = 2) BEGIN SET @command = @command + '' ORDER BY BAH.[VerboseType] DESC, DIA.[ACTIONID] DESC'' END IF (@sortorder = 3) BEGIN SET @command = @command + '' ORDER BY BAH.[CLASSDESCRIPTION] ASC, DIA.[ACTIONID] DESC'' END IF (@sortorder = 4) BEGIN SET @command = @command + '' ORDER BY BAH.[CLASSDESCRIPTION] DESC, DIA.[ACTIONID] DESC'' END IF (@sortorder = 5) BEGIN SET @command = @command + '' ORDER BY BAH.[DOCUMENT] ASC, DIA.[ACTIONID] DESC'' END IF (@sortorder = 6) BEGIN SET @command = @command + '' ORDER BY BAH.[DOCUMENT] DESC, DIA.[ACTIONID] DESC'' END IF (@sortorder > 6) BEGIN SET @command = @command + '' ORDER BY DIA.[ACTIONID] DESC'' END EXEC (@command) END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_ConvertTimeToClarion] Script Date: 10/01/2014 16:19:00 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_ConvertTimeToClarion]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_ConvertTimeToClarion * * converts a SQL Date (ignoring any DATE part in that date) * to the Clarion Time value, i.e. the number of 1/100 of a second since * midnight, plus one. * **************************************************************************************/ create function [dbo].[ky_ConvertTimeToClarion] (@datetime datetime) RETURNS int AS BEGIN DECLARE @hour int DECLARE @minute int DECLARE @second int DECLARE @centi int DECLARE @result int SET @centi = convert(int, convert(decimal(4, 1), DATEPART(millisecond, @datetime)) / convert(decimal(4, 1), 10)) SET @second = DATEPART(second, @datetime) SET @minute = DATEPART(minute, @datetime) SET @hour = DATEPART(hour, @datetime) SET @result = @hour SET @result = 60 * @result SET @result = @result + @minute SET @result = 60 * @result SET @result = @result + @second SET @result = 100 * @result SET @result = @result + @centi + 1 RETURN @result END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_ConvertDateAndClarionTimeToDateTime] Script Date: 10/01/2014 16:18:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_ConvertDateAndClarionTimeToDateTime]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_ConvertDateAndClarionTimeToDateTime * * converts a SQL Date (ignoring any TIME part in that date) plus a CLARION TIME, * which is a time represented as an integer number, denoting the number of * 1/100 of a second since midnight, but for some strange reason starting at * midnight = 1 instead of 0, and combines the two into an ordinary SQL DateTime value * * PLEASE NOTE that in some tables this value is stored in a field of type char(10), * and that in the past, occasionally, data was written to these fields in * a standard character representation of the time, i.e. something like * 09:33:20 - this function also caters for that eventuality. * **************************************************************************************/ create function [dbo].[ky_ConvertDateAndClarionTimeToDateTime] (@date datetime, @CT char(12)) returns datetime AS BEGIN DECLARE @CTRES varchar(23) DECLARE @resultdate datetime DECLARE @CTVAL int DECLARE @CTHOURS int IF (RTRIM(IsNull(@CT, '''')) = '''') BEGIN SET @CTRES = CONVERT(varchar, @date, 112) SET @CTRES = REPLACE(@CTRES, ''-'', '''') RETURN convert(datetime, @CTRES) END IF (RTRIM(@CT) = ''0'') BEGIN SET @CTRES = CONVERT(varchar, @date, 112) SET @CTRES = REPLACE(@CTRES, ''-'', '''') RETURN convert(datetime, @CTRES) END IF (@CT LIKE ''%:%'') BEGIN SET @CTRES = CONVERT(varchar, @date, 112) SET @CTRES = REPLACE(@CTRES, ''-'', '''') SET @resultdate = convert(datetime, @CTRES) SET @resultdate = DATEADD(MILLISECOND, 10 * floor(datepart(millisecond, convert(datetime, RTRIM(@CT))) / 10), @resultdate) SET @resultdate = DATEADD(second, datepart(second, convert(datetime, RTRIM(@CT))), @resultdate) SET @resultdate = DATEADD(minute, datepart(minute, convert(datetime, RTRIM(@CT))), @resultdate) SET @resultdate = DATEADD(hour, datepart(hour, convert(datetime, RTRIM(@CT))), @resultdate) RETURN @resultdate END SET @CTVAL = convert(int, @CT) - 1 SET @CTHOURS = floor(@CTVAL / 360000) IF (@CTHOURS > 23) BEGIN SET @CTRES = CONVERT(varchar, @date, 112) SET @CTRES = REPLACE(@CTRES, ''-'', '''') RETURN convert(datetime, @CTRES) END SET @CTVAL = @CTVAL * 10 SET @CTRES = CONVERT(varchar, @date, 112) SET @CTRES = REPLACE(@CTRES, ''-'', '''') SET @resultdate = convert(datetime, @CTRES) SET @resultdate = DATEADD(MILLISECOND, @CTVAL, @resultdate) RETURN @resultdate END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDGetDate] Script Date: 10/01/2014 16:19:22 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDGetDate]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDGetDate * * Emulates the old Clarion GetDate function * **************************************************************************************/ create function [dbo].[ky_WDGetDate] (@fromdate datetime, @timetype varchar(10), @timevalue int) returns datetime AS BEGIN DECLARE @MO int IF ((ISNULL(@timetype, '''') = '''') OR (UPPER(ISNULL(@timetype, '''')) = ''NOW'')) BEGIN SET @fromdate = @fromdate END IF ((UPPER(ISNULL(@timetype, '''')) = ''DAYS'') OR (UPPER(ISNULL(@timetype, '''')) = ''DAY(S)'')) BEGIN SET @fromdate = dateadd(DD, @timevalue, @fromdate) END IF ((UPPER(ISNULL(@timetype, '''')) = ''WEEKS'') OR (UPPER(ISNULL(@timetype, '''')) = ''WEEK(S)'')) BEGIN SET @fromdate = dateadd(WK, @timevalue, @fromdate) END IF ((UPPER(ISNULL(@timetype, '''')) = ''MONTHS'') OR (UPPER(ISNULL(@timetype, '''')) = ''MONTH(S)'')) BEGIN SET @fromdate = dateadd(MM, @timevalue, @fromdate) END IF ((UPPER(ISNULL(@timetype, '''')) = ''YEARS'') OR (UPPER(ISNULL(@timetype, '''')) = ''YEAR(S)'')) BEGIN SET @fromdate = dateadd(YY, @timevalue, @fromdate) END SET @MO = DATEPART(dw, dateadd(d, 6, @fromdate)) - DATEPART(dw, ''20000103'') SET @MO = CASE WHEN @MO > 0 THEN @MO ELSE @MO + 7 END SET @MO = CASE WHEN @MO < 5 THEN 0 ELSE (7 - @MO) END --Always make sure you return a Monday / Friday SET @fromdate = DATEADD(d, @mo, @fromdate) --We should look into including code to avoid Bank Holidays here ... RETURN @fromdate END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_RemoveSpuriousWhitespace] Script Date: 10/01/2014 16:19:07 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_RemoveSpuriousWhitespace]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_RemoveSpuriousWhitespace * * Removes newlines, line feeds, non-breaking spaces and multiple spaces from the input * string in order to produce an output format suitable for display in lists. * **************************************************************************************/ create function [dbo].[ky_RemoveSpuriousWhitespace] (@original varchar(300), @maxlen int) returns varchar(255) AS BEGIN DECLARE @len int SET @original = replace(@original, char(10), '' '') SET @original = replace(@original, char(13), '' '') SET @original = replace(@original, char(160), '' '') SET @len = 0 WHILE (@len <> len(@original)) BEGIN SET @len = len(@original) SET @original = replace(@original, '' '', '' '') END RETURN substring(@original, 1, @maxlen) END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_RemoveSpuriousWhitespace2] Script Date: 10/01/2014 16:19:08 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_RemoveSpuriousWhitespace2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_RemoveSpuriousWhitespace2 * * Removes newlines, line feeds, non-breaking spaces and multiple spaces from the input * string in order to produce an output format suitable for display in lists. * **************************************************************************************/ create function [dbo].[ky_RemoveSpuriousWhitespace2] (@original varchar(5000), @maxlen int) returns varchar(5000) AS BEGIN DECLARE @len int SET @original = replace(@original, char(10), '' '') SET @original = replace(@original, char(13), '' '') SET @original = replace(@original, char(160), '' '') SET @original = RTRIM(@original) SET @len = 0 WHILE (@len <> len(@original)) BEGIN SET @len = len(@original) SET @original = replace(@original, '' '', '' '') END RETURN substring(@original, 1, @maxlen) END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_NETFNConvertDateToClarion] Script Date: 10/01/2014 16:19:05 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NETFNConvertDateToClarion]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' CREATE FUNCTION [dbo].[ky_NETFNConvertDateToClarion] (@datetime DATETIME) RETURNS INT AS /***************************************************************************** ky_NETFNConvertDateToClarion Converts a date/time value to a Clarion number. *****************************************************************************/ BEGIN DECLARE @notime DATETIME SET @notime = CONVERT(VARCHAR(8), @datetime, 112) RETURN DATEDIFF(dd, ''18001228'', @datetime) END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_TimeFromMinutes] Script Date: 10/01/2014 16:19:08 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_TimeFromMinutes]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' create function [dbo].[ky_TimeFromMinutes] (@time int) RETURNS varchar(6) AS BEGIN DECLARE @sign varchar(1) IF (@time < 0) BEGIN SET @time = -@time SET @sign = ''-'' END ELSE BEGIN SET @sign = '''' END RETURN @sign + RIGHT(''00'' + Convert(VARCHAR(4), CONVERT(int, @time / 60)), 2) + '':'' + RIGHT(''00'' + convert(VARCHAR(2), @time - (60 * CONVERT(int, @time / 60))), 2) END ' END GO /****** Object: StoredProcedure [dbo].[sp_KEYHOUSEEXTRACT] Script Date: 10/01/2014 16:18:47 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_KEYHOUSEEXTRACT]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[sp_KEYHOUSEEXTRACT] AS Declare @Today varchar(12), @SQL nvarchar(2048) set @Today = cast(datepart(dd, getdate()) As varchar(2)) + ''/'' + cast(datepart(mm, getdate()) As varchar(2)) + ''/'' + cast(datepart(yyyy, getdate()) as char(4)) TRUNCATE TABLE CLIENTEXTRACT TRUNCATE TABLE DEFENDANTEXTRACT TRUNCATE TABLE OUTLAYEXTRACT TRUNCATE TABLE OUTLAYEXTRACTPETTY TRUNCATE TABLE FEEEXTRACT insert into clientextract(CLIENTID , CLIENTCODEALPHA , CLIENTNAME , CLIENTADD1 , CLIENTADD2 , CLIENTADD3 , CLIENTADD4 , CLIENTADD5 , CLIENTPOSTCODE , CLIENTPHONE , CLIENTFAX , CLIENTEMAIL) select CLIENTID , CLIENTCODEALPHA , CLIENTNAME , CLIENTADD1 , CLIENTADD2 , CLIENTADD3 , CLIENTADD4 , CLIENTADD5 , CLIENTPOSTCODE , CLIENTPHONE , CLIENTFAX , CLIENTEMAIL from ClientAll where ClientAll.CLIENTEXTRACTED is null insert into DEFENDANTEXTRACT( DEFCLIENTCODEALPHA, DEFCASENUMBER ,DEFKEYREF, DEFCORRREF , DEFRECNO, DEFNAME , DEFTA , DEFADD1, DEFADD2 , DEFADD3 , DEFADD4 , DEFADD5 ,DEFRECEIPT, DEFOURREF) SELECT DEFCLIENTCODEALPHA, DEFCASENUMBER ,DEFCLIENTCODEALPHA + ''\'' + CAST(DEFCASENUMBER AS VARCHAR(20)) , DEFCORRREF , DEFRECNO, DEFNAME , DEFTA , DEFADD1, DEFADD2 , DEFADD3 , DEFADD4 , DEFADD5 ,DEFRECEIPT,DEFOURREF FROM DEFENDANTALL WHERE DEFENDANTALL.DEFEXTRACTED IS NULL and DEFENDANTALL.DEFORGCODE <> 3 and DEFENDANTALL.deforgcode <> 4 INSERT INTO OUTLAYEXTRACT (OUTLAYRECNO, OUTLAYPOSTDATE , OUTLAYEFFECDATE , OUTLAYCLIENTCODE , OUTLAYDEFRECNO, OUTLAYCODE, OUTLAYDESC, OUTLAYAMT , OUTLAYOFFICIAL, OUTLAYSOL ,OUTLAYINVNO, DEFCORRREF, DEFOURREF, DEFORGCODE , OUTLAYFINALBILL) SELECT OUTLAYRECNO, OUTLAYPOSTDATE , OUTLAYEFFECDATE , OUTLAYCLIENTCODE , OUTLAYDEFRECNO, OUTLAYCODE, OUTLAYDESC, OUTLAYAMT , OUTLAYOFFICIAL , DEFOURSOL, OUTLAYINVNO, DEFCORRREF, DEFOURREF, DEFORGCODE, OUTLAYFINALBILL FROM OUTLAY INNER JOIN OUTLAYTYPES ON OUTLAY.OUTLAYCODE = OUTLAYTYPES.OUTLAYTYPECODE INNER JOIN DEFENDANT ON OUTLAYDEFRECNO = DEFENDANT.DEFRECNO WHERE OUTLAYTYPES.OUTLAYTYPEBILLABLE = ''Y'' AND OUTLAYTYPEGROUP <> ''P'' AND OUTLAYEXTRACTED IS NULL SET @SQL = N''SET DATEFORMAT DMY INSERT INTO OUTLAYEXTRACTPETTY (OUTLAYRECNO, OUTLAYPOSTDATE , OUTLAYEFFECDATE , OUTLAYCLIENTCODE , OUTLAYDEFRECNO, OUTLAYCODE, OUTLAYDESC, OUTLAYAMT , OUTLAYOFFICIAL, OUTLAYSOL , OUTLAYINVNO,DEFCORRREF, DEFOURREF,DEFORGCODE,OUTLAYFINALBILL ) SELECT OUTLAYRECNO, OUTLAYPOSTDATE , OUTLAYEFFECDATE , OUTLAYCLIENTCODE , OUTLAYDEFRECNO, OUTLAYCODE, OUTLAYDESC, OUTLAYAMT , OUTLAYOFFICIAL , DEFOURSOL, OUTLAYINVNO,DEFCORRREF, DEFOURREF, DEFORGCODE,OUTLAYFINALBILL FROM OUTLAY INNER JOIN OUTLAYTYPES ON OUTLAY.OUTLAYCODE = OUTLAYTYPES.OUTLAYTYPECODE INNER JOIN DEFENDANT ON OUTLAYDEFRECNO = DEFENDANT.DEFRECNO WHERE OUTLAYTYPES.OUTLAYTYPEBILLABLE = ''''Y'''' AND OUTLAYTYPEGROUP = ''''P'''' AND OUTLAYEXTRACTED IS NULL AND OUTLAYPOSTEDTONOMINAL = ''''Y'''' and DEFENDANT.DEFORGCODE <> 3 and defendant.deforgcode <> 4 AND OUTLAYEFFECDATE <= '''''' + @Today +'''''''' eXEC sp_executesql @SQL SET @SQL = N''SET DATEFORMAT DMY INSERT INTO FEEEXTRACT (FEERECNO , FEEPOSTDATE , FEEEFFECDATE , FEECLIENTCODE ,FEEDEFRECNO , FEECODE , FEEDESC ,FEEAMT , FEEOFFICIAL, FEESOL, FEEINVNO,DEFCORRREF, DEFOURREF, DEFORGCODE ,FEEFINALBILL) SELECT FEERECNO , FEEPOSTDATE , FEEEFFECDATE , FEECLIENTCODE ,FEEDEFRECNO , FEECODE , FEEDESC ,FEEAMT , FEEOFFICIAL , DEFOURSOL, FEEINVNO, DEFCORRREF, DEFOURREF, DEFORGCODE, FEEFINALBILL FROM FEE INNER JOIN FEETYPES ON FEE.FEECODE = FEETYPES.FEETYPECODE INNER JOIN DEFENDANT ON FEEDEFRECNO = DEFENDANT.DEFRECNO WHERE FEETYPES.FEEBILLABLE = ''''Y'''' AND FEEEXTRACTED IS NULL AND FEEPOSTEDTONOM = ''''Y'''' and DEFENDANT.DEFORGCODE <> 3 and defendant.deforgcode <> 4 AND feeEFFECDATE <= '''''' + @Today +'''''''' eXEC sp_executesql @SQL ' END GO /****** Object: UserDefinedFunction [dbo].[ky_NETFNRemoveSuperfluousSpacing] Script Date: 10/01/2014 16:19:06 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NETFNRemoveSuperfluousSpacing]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' CREATE FUNCTION [dbo].[ky_NETFNRemoveSuperfluousSpacing] (@Original VARCHAR(8000)) RETURNS VARCHAR(8000) AS BEGIN SET @Original = REPLACE(@Original, CHAR(13), ''***BR***'') SET @Original = REPLACE(@Original, CHAR(10), ''***BR***'') SET @Original = REPLACE(@Original, CHAR(11), ''***BR***'') SET @Original = @Original + ''***END***'' WHILE (PATINDEX(''%***BR******BR***%'', @Original) > 0) BEGIN SET @Original = REPLACE(@Original, ''***BR******BR***'', ''***BR***'') END SET @Original = REPLACE(@Original, ''***BR******END***'', '''') SET @Original = REPLACE(@Original, ''***END***'', '''') SET @Original = REPLACE(@Original, ''***BR***'', CHAR(13) + CHAR(10)) RETURN @ORIGINAL END ' END GO /****** Object: StoredProcedure [dbo].[ky_GetFileLocation] Script Date: 10/01/2014 16:17:20 ******/ SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetFileLocation]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[ky_GetFileLocation]( @pTrackRef int, @pFileName char(255), @pFileType char(3), -- @pFileLocation Char(255) output, @pFullFileName char(255) output, @pStatus int output) AS -- Start Transaction ----------------------------------------------------------------------------------------------------------------------------------------- -- Select @pFileLocation = ''c:\dump\'' -- Select @pFullFileName = rtrim(@pFileLocation) + rtrim(@pFullFileName) + ''_''+CAST(@pTrackRef as char) +''.''+rtrim(@pFileType) Select @pStatus = 1 -- End Of Processing -------------------------------------------------------------------------------------------------------------------- ExitPoint: Return -- Error Processing ------------------------------------------------------------------------------------------------------------------------------------- Tran_Fail: Select @pStatus = -1 goto ExitPoint ' END GO /****** Object: UserDefinedFunction [dbo].[ky_GetVerboseType] Script Date: 10/01/2014 16:19:03 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetVerboseType]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************ * * Given a file path, get the file extension * *************************************************************************/ CREATE FUNCTION [dbo].[ky_GetVerboseType] (@Extension varchar(10)) RETURNS varchar(50) AS BEGIN RETURN CASE @Extension WHEN ''DOC'' THEN ''Word Document'' WHEN ''DOCX'' THEN ''Word Document'' WHEN ''RTF'' THEN ''Word Document'' WHEN ''JPG'' THEN ''Image File'' WHEN ''JPEG'' THEN ''Image File'' WHEN ''GIF'' THEN ''Image File'' WHEN ''PNG'' THEN ''Image File'' WHEN ''BMP'' THEN ''Image File'' WHEN ''TIF'' THEN ''Image File'' WHEN ''TIFF'' THEN ''Image File'' WHEN ''MSG'' THEN ''Outlook Message'' WHEN ''PDF'' THEN ''Adobe PDF'' WHEN ''PPT'' THEN ''PowerPoint'' WHEN ''PPTX'' THEN ''PowerPoint'' WHEN ''WAV'' THEN ''Multimedia File'' WHEN ''MP3'' THEN ''Multimedia File'' WHEN ''MP4'' THEN ''Multimedia File'' WHEN ''MKV'' THEN ''Multimedia File'' WHEN ''AVI'' THEN ''Multimedia File'' WHEN ''MPG'' THEN ''Multimedia File'' WHEN ''MPEG'' THEN ''Multimedia File'' WHEN ''WMV'' THEN ''Multimedia File'' WHEN ''M4V'' THEN ''Multimedia File'' WHEN ''OGG'' THEN ''Multimedia File'' WHEN ''AC3'' THEN ''Multimedia File'' WHEN ''FLAC'' THEN ''Multimedia File'' WHEN ''XLS'' THEN ''Excel Spreadsheet'' WHEN ''XLSX'' THEN ''Excel Spreadsheet'' WHEN ''CSV'' THEN ''Excel Spreadsheet'' WHEN ''ZIP'' THEN ''WinZip (archive)'' WHEN ''ZIPX'' THEN ''WinZip (archive)'' WHEN ''RAR'' THEN ''WinZip (archive)'' WHEN ''7Z'' THEN ''WinZip (archive)'' WHEN ''S7Z'' THEN ''WinZip (archive)'' WHEN ''CAB'' THEN ''WinZip (archive)'' ELSE ''Other'' END END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_GetFileExtension] Script Date: 10/01/2014 16:19:02 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetFileExtension]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************ * * Given a file path, get the file extension * *************************************************************************/ CREATE FUNCTION [dbo].[ky_GetFileExtension] (@Path varchar(max)) RETURNS varchar(max) AS BEGIN DECLARE @rev varchar(max) DECLARE @pos int SET @rev = REVERSE(RTRIM(ISNULL(@Path, ''''))) SET @pos = CHARINDEX(''.'', @rev) IF (@pos = 0) BEGIN RETURN '''' END RETURN REVERSE(LEFT(@rev, @pos - 1)) END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_HeuristicPhoneNumber] Script Date: 10/01/2014 16:19:04 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_HeuristicPhoneNumber]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_HeuristicPhoneNumber * * Interprets a free-form phone number based on the Address that accompanies it * **************************************************************************************/ CREATE function [dbo].[ky_HeuristicPhoneNumber] (@Address VARCHAR(500), @FromPhone VARCHAR(30)) RETURNS VARCHAR(30) AS BEGIN DECLARE @StartPos INT DECLARE @FromLen INT DECLARE @Pre INT DECLARE @PreFrom VARCHAR(30) DECLARE @OrgPhone VARCHAR(30) DECLARE @Prefix VARCHAR(4) DECLARE @SufPos INT SET @OrgPhone = RTRIM(LTrim(IsNull(@FromPhone, ''''))) IF (@OrgPhone = '''') BEGIN RETURN '''' END SET @StartPos = 1 SET @FromLen = Len(@FromPhone) SET @PreFrom = '''' SET @Pre = 0 WHILE (@StartPos <= @FromLen) BEGIN IF (@Pre = 0) BEGIN SET @Pre = CASE SUBSTRING(@FromPhone, @StartPos, 1) WHEN ''+'' THEN 1 WHEN ''0'' THEN 1 WHEN ''1'' THEN 1 WHEN ''2'' THEN 1 WHEN ''3'' THEN 1 WHEN ''4'' THEN 1 WHEN ''5'' THEN 1 WHEN ''6'' THEN 1 WHEN ''7'' THEN 1 WHEN ''8'' THEN 1 WHEN ''9'' THEN 1 WHEN ''('' THEN 1 WHEN '')'' THEN 1 ELSE 0 END IF (@Pre = 1) BEGIN SET @PreFrom = SUBSTRING(@FromPhone, 1, @StartPos - 1) SET @OrgPhone = SUBSTRING(@FromPhone, @StartPos, @FromLen - @StartPos + 1) SET @OrgPhone = RTRIM(LTrim(IsNull(@OrgPhone, ''''))) IF (@OrgPhone = '''') BEGIN RETURN '''' END END END SET @StartPos = @StartPos + 1 END SET @OrgPhone = Replace(@OrgPhone, '' '', '''') SET @OrgPhone = Replace(@OrgPhone, ''-'', '''') SET @OrgPhone = Replace(@OrgPhone, '','', '''') SET @OrgPhone = Replace(@OrgPhone, ''.'', '''') SET @OrgPhone = Replace(@OrgPhone, ''('', '''') SET @OrgPhone = Replace(@OrgPhone, '')'', '''') SET @OrgPhone = Replace(@OrgPhone, '''', '''') SET @SufPos = 1 WHILE (@SufPos <= LEN(@OrgPhone)) BEGIN IF ((SUBSTRING(@OrgPhone, @SufPos, 1) < ''0'') OR (SUBSTRING(@OrgPhone, @SufPos, 1) > ''9'')) BEGIN IF (@SufPos > 5) BEGIN SET @OrgPhone = SUBSTRING(@OrgPhone, 1, @SufPos - 1) END END SET @SufPos = @SufPos + 1 END IF (isnumeric(@OrgPhone) = 0) BEGIN RETURN @FromPhone END SET @OrgPhone = ''='' + @OrgPhone IF (patindex(''%=00%'', @OrgPhone) > 0) BEGIN SET @OrgPhone = Replace(@OrgPhone, ''=00'', ''+'') END IF (patindex(''%=+%'', @OrgPhone) > 0) BEGIN SET @OrgPhone = Replace(@OrgPhone, ''=+'', ''+'') END IF (patindex(''%=0%'', @OrgPhone) > 0) BEGIN SET @OrgPhone = Replace(@OrgPhone, ''=0'', ''+353'') END IF (patindex(''%=%'', @OrgPhone) > 0) BEGIN SET @Address = replace(@Address, ''Dublin Road'', '''') SET @Address = replace(@Address, ''Dublin Street'', '''') SET @Address = replace(@Address, ''Dublin Way'', '''') SET @Address = replace(@Address, ''Dublin Avenue'', '''') SET @Address = replace(@Address, ''Cork Road'', '''') SET @Address = replace(@Address, ''Cork Street'', '''') SET @Address = replace(@Address, ''Cork Way'', '''') SET @Address = replace(@Address, ''Cork Avenue'', '''') SET @Address = replace(@Address, ''Limerick Road'', '''') SET @Address = replace(@Address, ''Limerick Street'', '''') SET @Address = replace(@Address, ''Limerick Way'', '''') SET @Address = replace(@Address, ''Limerick Avenue'', '''') SET @Address = replace(@Address, ''Galway Road'', '''') SET @Address = replace(@Address, ''Galway Street'', '''') SET @Address = replace(@Address, ''Galway Way'', '''') SET @Address = replace(@Address, ''Galway Avenue'', '''') SET @Address = replace(@Address, ''Waterford Road'', '''') SET @Address = replace(@Address, ''Waterford Street'', '''') SET @Address = replace(@Address, ''Waterford Way'', '''') SET @Address = replace(@Address, ''Waterford Avenue'', '''') SET @Address = replace(@Address, ''Wicklow Road'', '''') SET @Address = replace(@Address, ''Wicklow Street'', '''') SET @Address = replace(@Address, ''Wicklow Way'', '''') SET @Address = replace(@Address, ''Wicklow Avenue'', '''') SET @Address = replace(@Address, ''Arklow Road'', '''') SET @Address = replace(@Address, ''Arklow Street'', '''') SET @Address = replace(@Address, ''Arklow Way'', '''') SET @Address = replace(@Address, ''Arklow Avenue'', '''') SET @Address = replace(@Address, ''Sligo Road'', '''') SET @Address = replace(@Address, ''Sligo Street'', '''') SET @Address = replace(@Address, ''Sligo Way'', '''') SET @Address = replace(@Address, ''Sligo Avenue'', '''') SET @Prefix = CASE WHEN patindex(''%Dublin%'', @Address) > 0 THEN ''1'' WHEN patindex(''%Cork%'', @Address) > 0 THEN ''21'' WHEN patindex(''%Limerick%'', @Address) > 0 THEN ''61'' WHEN patindex(''%Sligo%'', @Address) > 0 THEN ''71'' WHEN patindex(''%Galway%'', @Address) > 0 THEN ''91'' WHEN patindex(''%Waterford%'', @Address) > 0 THEN ''51'' WHEN patindex(''%Wicklow%'', @Address) > 0 THEN ''404'' WHEN patindex(''%Arklow%'', @Address) > 0 THEN ''402'' ELSE ''1'' END SET @OrgPhone = Replace(@OrgPhone, ''='', ''+353'' + @Prefix) END RETURN RTRIM(LTrim(@PreFrom + @OrgPhone)) END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_NETFNGetColumnSize] Script Date: 10/01/2014 16:19:05 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NETFNGetColumnSize]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' CREATE FUNCTION [dbo].[ky_NETFNGetColumnSize] (@ObjectID INT, @ColumnID INT) RETURNS INT AS BEGIN DECLARE @MAXLEN INT SELECT @MAXLEN = CASE WHEN SC.[system_type_id] IN (35, 99) THEN 0 WHEN (SC.[system_type_id] IN (167, 231)) AND (SC.[max_length] = -1) THEN 0 WHEN SC.[system_type_id] IN (167, 175, 231, 239) THEN SC.[max_length] WHEN SC.[system_type_id] = 204 THEN 1 --bit WHEN SC.[system_type_id] = 48 THEN 3 --tinyint - valid values 0 to 255 WHEN SC.[system_type_id] = 52 THEN 6 --SMALLINT - valid values -32768 to 32767 WHEN SC.[system_type_id] = 56 THEN 11 --int - valid values -2147483648 to 2147483647 WHEN SC.[system_type_id] = 127 THEN 20 --BIGINT - valid values -9223372036854775808 to 9223372036854775807 WHEN (SC.[system_type_id] IN (60, 106, 108, 122)) AND (SC.[scale] = 0) THEN SC.[precision] + 1 -- Allow for- sign WHEN (SC.[system_type_id] IN (60, 106, 108, 122)) AND (SC.[scale] <> 0) THEN SC.[precision] + 2 -- Allow for DECIMAL point and - sign ELSE 0 END FROM sys.[columns] SC WHERE SC.[object_id] = @objectid AND SC.[column_id] = @columnid RETURN @MAXLEN END ' END GO /****** Object: StoredProcedure [dbo].[pWebCaseDiaryGetList] Script Date: 10/01/2014 16:18:41 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[pWebCaseDiaryGetList]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- Returns a query resultset from table [dbo].[diary] -- given the search criteria and sorting condition. -- It will return a subset of the data based -- on the current page number and batch size. Table joins can -- be performed if the join clause is specified. -- -- If the resultset is not empty, it will return: -- 1) The total number of rows which match the condition; -- 2) The resultset in the current page -- If nothing matches the search condition, it will return: -- 1) count is 0 ; -- 2) empty resultset. CREATE PROCEDURE [dbo].[pWebCaseDiaryGetList] @p_join_str nvarchar(4000), @p_where_str nvarchar(4000), @p_sort_str nvarchar(4000), @p_page_number int, @p_batch_size int AS DECLARE @l_temp_insert nvarchar(4000), @l_temp_select nvarchar(4000), @l_temp_from nvarchar(4000), @l_final_sort nvarchar(4000), @l_temp_cols nvarchar(4000), @l_temp_colsWithAlias nvarchar(4000), @l_query_select nvarchar(4000), @l_query_from nvarchar(4000), @l_query_where nvarchar(4000), @l_query_cols nvarchar(4000), @l_from_str nvarchar(4000), @l_join_str nvarchar(4000), @l_sort_str nvarchar(4000), @l_where_str nvarchar(4000), @l_count_query nvarchar(4000), @l_end_gen_row_num integer, @l_start_gen_row_num integer BEGIN -- 2014-06-19 the software to which this pertains has no knowledge of the DisplayText field -- Set up the from string as the base table. SET @l_from_str = ''[dbo].[diary] Diary_'' -- Set up the join string. SET @l_join_str = @p_join_str IF @p_join_str is null SET @l_join_str = '' '' -- Set up the where string. SET @l_where_str = '' '' IF @p_where_str is not null SET @l_where_str = ''WHERE '' + @p_where_str -- Get the total count of rows the query will return IF @p_page_number > 0 and @p_batch_size >= 0 BEGIN SET @l_count_query = ''SELECT count(*) '' + ''FROM '' + @l_from_str + '' '' + @l_join_str + '' '' + @l_where_str + '' '' -- Run the count query EXECUTE (@l_count_query) END -- Get the list. IF @p_page_number > 0 AND @p_batch_size > 0 BEGIN -- If the caller did not pass a sort string, use a default value IF @p_sort_str IS NOT NULL SET @l_sort_str = ''ORDER BY '' + @p_sort_str ELSE SET @l_sort_str = N''ORDER BY Diary_.[ACTIONID] asc '' -- Calculate the rows to be included in the list -- before geting the list. SET @l_end_gen_row_num = @p_page_number * @p_batch_size; SET @l_start_gen_row_num = @l_end_gen_row_num - (@p_batch_size-1); -- Create a temporary table to keep the numbering -- of the rows returned. It contains the necessary colums -- from base table plus an identity field used for numbering SELECT 1 AS IS_SECONDARY_TEMP_T_GETLIST_COL INTO #IS_SECONDARY_TEMP_T_GETLIST SELECT Identity(int,1,1) AS IS_ROWNUM_COL, [ACTIONID] INTO #IS_TEMP_T_GETLIST FROM [dbo].[diary], #IS_SECONDARY_TEMP_T_GETLIST WHERE 1=2 -- Now copy column data into temporary table. SET @l_temp_insert = ''INSERT INTO #IS_TEMP_T_GETLIST ('' SET @l_temp_cols = N''[ACTIONID]'' SET @l_temp_select = '') '' + ''SELECT '' + ''TOP '' + convert(varchar, @l_end_gen_row_num) + '' '' SET @l_temp_colsWithAlias = N''Diary_.[ACTIONID]'' SET @l_temp_from = '' FROM '' + @l_from_str + '' '' + @l_join_str + '' '' + @l_where_str + '' '' + @l_sort_str EXECUTE (@l_temp_insert + @l_temp_cols + @l_temp_select + @l_temp_colsWithAlias + @l_temp_from) -- Construct the main query SET @l_query_select = ''SELECT '' SET @l_query_cols = N''Diary_.[CASECODE], Diary_.[DATE], Diary_.[STATUS], Diary_.[ACTIONCODE], Diary_.[ACTIONSTATUS], Diary_.[ACTIONTYPE], Diary_.[PROCESSTYPE], Diary_.[FNCODE], Diary_.[TEAMCODE], Diary_.[TEXT1], Diary_.[TEXT2], Diary_.[DELEGATEDFNR], Diary_.[DELEGATEDDATE], Diary_.[DELEGATEDBACKDATE], Diary_.[DEFERRED], Diary_.[DUEDATE], Diary_.[IMAGENO], Diary_.[PUBLISH], Diary_.[DYSTARTTIME], Diary_.[DYENDTIME], Diary_.[DURATION], Diary_.[ACTIONID], Diary_.[ORGINALACTIONID], Diary_.[PRIORITY], Diary_.[HIGHLIGHTED], Diary_.[MILESTEONETYPE], Diary_.[ATTACHMENTS], Diary_.[PROCESSSTATUS], Diary_.[WORKPROCESS], Diary_.[BILLABLE], Diary_.[BILLDESCRIPTION], Diary_.[EMAILADDRESS], Diary_.[ADDRESSTO], Diary_.[CCTo], Diary_.[BCCTo], Diary_.[EMAIL], Diary_.[SUBJECT], Diary_.[DELEGATIONSTATUS], Diary_.[DRAFTBILLNO], Diary_.[CHEQUEREQNO], Diary_.[TxmSent], Diary_.[Location], Diary_.[HearingType], Diary_.[ForCopy], CAST(BINARY_CHECKSUM(Diary_.[CASECODE],Diary_.[DATE],Diary_.[STATUS],Diary_.[ACTIONCODE],Diary_.[ACTIONSTATUS],Diary_.[ACTIONTYPE],Diary_.[PROCESSTYPE],Diary_.[FNCODE],Diary_.[TEAMCODE],Diary_.[TEXT1],Diary_.[TEXT2],Diary_.[DELEGATEDFNR],Diary_.[DELEGATEDDATE],Diary_.[DELEGATEDBACKDATE],Diary_.[DEFERRED],Diary_.[DUEDATE],Diary_.[IMAGENO],Diary_.[PUBLISH],Diary_.[DYSTARTTIME],Diary_.[DYENDTIME],Diary_.[DURATION],Diary_.[ACTIONID],Diary_.[ORGINALACTIONID],Diary_.[PRIORITY],Diary_.[HIGHLIGHTED],Diary_.[MILESTEONETYPE],Diary_.[ATTACHMENTS],Diary_.[PROCESSSTATUS],Diary_.[WORKPROCESS],Diary_.[BILLABLE],Diary_.[BILLDESCRIPTION],Diary_.[EMAILADDRESS],Diary_.[ADDRESSTO],Diary_.[CCTo],Diary_.[BCCTo],Diary_.[EMAIL],Diary_.[SUBJECT],Diary_.[DELEGATIONSTATUS],Diary_.[DRAFTBILLNO],Diary_.[CHEQUEREQNO],Diary_.[TxmSent],Diary_.[Location],Diary_.[HearingType],Diary_.[ForCopy]) AS nvarchar(4000)) AS IS_CHECKSUM_COLUMN_12345 '' SET @l_query_from = ''FROM ( '' + N''SELECT TOP 100 PERCENT IS_ROWNUM_COL, [ACTIONID] from #IS_TEMP_T_GETLIST '' + ''WHERE IS_ROWNUM_COL >= ''+ convert(varchar, @l_start_gen_row_num) + '') IS_ALIAS, '' + @l_from_str + '' ''; SET @l_query_where = N''WHERE Diary_.[ACTIONID] = IS_ALIAS.[ACTIONID] '' SET @l_final_sort = ''ORDER BY IS_ROWNUM_COL Asc '' -- Run the query EXECUTE (@l_query_select + @l_query_cols + @l_query_from + @l_query_where + @l_final_sort) END ELSE BEGIN -- If page number and batch size are not valid numbers -- return an empty result set SET @l_query_select = ''SELECT '' SET @l_query_cols = N''Diary_.[CASECODE], Diary_.[DATE], Diary_.[STATUS], Diary_.[ACTIONCODE], Diary_.[ACTIONSTATUS], Diary_.[ACTIONTYPE], Diary_.[PROCESSTYPE], Diary_.[FNCODE], Diary_.[TEAMCODE], Diary_.[TEXT1], Diary_.[TEXT2], Diary_.[DELEGATEDFNR], Diary_.[DELEGATEDDATE], Diary_.[DELEGATEDBACKDATE], Diary_.[DEFERRED], Diary_.[DUEDATE], Diary_.[IMAGENO], Diary_.[PUBLISH], Diary_.[DYSTARTTIME], Diary_.[DYENDTIME], Diary_.[DURATION], Diary_.[ACTIONID], Diary_.[ORGINALACTIONID], Diary_.[PRIORITY], Diary_.[HIGHLIGHTED], Diary_.[MILESTEONETYPE], Diary_.[ATTACHMENTS], Diary_.[PROCESSSTATUS], Diary_.[WORKPROCESS], Diary_.[BILLABLE], Diary_.[BILLDESCRIPTION], Diary_.[EMAILADDRESS], Diary_.[ADDRESSTO], Diary_.[CCTo], Diary_.[BCCTo], Diary_.[EMAIL], Diary_.[SUBJECT], Diary_.[DELEGATIONSTATUS], Diary_.[DRAFTBILLNO], Diary_.[CHEQUEREQNO], Diary_.[TxmSent], Diary_.[Location], Diary_.[HearingType], Diary_.[ForCopy], CAST(BINARY_CHECKSUM(Diary_.[CASECODE],Diary_.[DATE],Diary_.[STATUS],Diary_.[ACTIONCODE],Diary_.[ACTIONSTATUS],Diary_.[ACTIONTYPE],Diary_.[PROCESSTYPE],Diary_.[FNCODE],Diary_.[TEAMCODE],Diary_.[TEXT1],Diary_.[TEXT2],Diary_.[DELEGATEDFNR],Diary_.[DELEGATEDDATE],Diary_.[DELEGATEDBACKDATE],Diary_.[DEFERRED],Diary_.[DUEDATE],Diary_.[IMAGENO],Diary_.[PUBLISH],Diary_.[DYSTARTTIME],Diary_.[DYENDTIME],Diary_.[DURATION],Diary_.[ACTIONID],Diary_.[ORGINALACTIONID],Diary_.[PRIORITY],Diary_.[HIGHLIGHTED],Diary_.[MILESTEONETYPE],Diary_.[ATTACHMENTS],Diary_.[PROCESSSTATUS],Diary_.[WORKPROCESS],Diary_.[BILLABLE],Diary_.[BILLDESCRIPTION],Diary_.[EMAILADDRESS],Diary_.[ADDRESSTO],Diary_.[CCTo],Diary_.[BCCTo],Diary_.[EMAIL],Diary_.[SUBJECT],Diary_.[DELEGATIONSTATUS],Diary_.[DRAFTBILLNO],Diary_.[CHEQUEREQNO],Diary_.[TxmSent],Diary_.[Location],Diary_.[HearingType],Diary_.[ForCopy]) AS nvarchar(4000)) AS IS_CHECKSUM_COLUMN_12345'' SET @l_query_from = '' FROM [dbo].[diary] Diary_ '' + ''WHERE 1=2;'' EXECUTE (@l_query_select + @l_query_cols + @l_query_from); END END ' END GO /****** Object: StoredProcedure [dbo].[load_tree] Script Date: 10/01/2014 16:18:36 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[load_tree]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- ============================================= -- Author: Magesh Kumar -- Create date: 3-MAR-2014 -- Description: This SP used to Fetch datas to create Report Tree View -- ============================================= CREATE PROCEDURE [dbo].[load_tree] @report_type CHAR(10), @UserCode NVARCHAR(5), @Supervisor NVARCHAR(5) As BEGIN set nocount on DECLARE @num INT,@node VARCHAR(100),@rid INT,@gid INT , @t INT DECLARE @temp TABLE(id INT,nodename VARCHAR(100),rid INT,gid INT) DECLARE @temp2 TABLE(id INT,nodename VARCHAR(100),pid INT,rid INT) Declare @query as nvarchar(max) declare @query1 as nvarchar(max) if @UserCode=''ADM'' or @Supervisor=''Yes'' begin set @query=''DECLARE _cur CURSOR FOR(SELECT row_number() OVER(ORDER BY T.RID) AS row,t.groupname,t.rep_id FROM ( SELECT DISTINCT(CG.groupName),0 AS RID,CG.groupid AS GID,0 AS Rep_ID FROM crreportgroup CRG INNER JOIN crgroup CG ON CG.groupid = CRG.groupid INNER JOIN crreport CR2 ON CRG.Reportid =CR2.Reportid AND CR2.report_type=''''''+@report_type+'''''' UNION ALL SELECT CR.Name,CRG1.groupid,CRG1.groupid,cr.reportid FROM crreportgroup CRG1 INNER JOIN crreport CR ON CR.reportid = CRG1.reportid AND CR.report_type = ''''''+@report_type+'''''' INNER JOIN crgroup CG1 ON CRG1.groupid = CG1.groupid )T )'' set @query1=''SELECT row_number() OVER(ORDER BY T.RID) AS row,t.groupname,T.RID,T.GID FROM ( SELECT DISTINCT(CG.groupName),0 AS RID,CG.groupid AS GID,0 AS Rep_ID FROM crreportgroup CRG INNER JOIN crgroup CG ON CG.groupid = CRG.groupid INNER JOIN crreport CR2 ON CRG.Reportid =CR2.Reportid AND CR2.report_type=''''''+@report_type+'''''' UNION ALL SELECT CR.Name,CRG1.groupid,CRG1.groupid,cr.reportid FROM crreportgroup CRG1 INNER JOIN crreport CR ON CR.reportid = CRG1.reportid AND CR.report_type = ''''''+@report_type+'''''' INNER JOIN crgroup CG1 ON CRG1.groupid = CG1.groupid )T '' end else begin set @query=''DECLARE _cur CURSOR FOR(SELECT row_number() OVER ( ORDER BY T.RID) AS row, t.groupname, t.rep_id FROM (SELECT DISTINCT (CG.groupName), 0 AS RID, CG.groupid AS GID, 0 AS Rep_ID FROM crreportgroup AS CRG INNER JOIN crgroup AS CG ON CG.groupid = CRG.groupid INNER JOIN crreport AS CR2 ON CRG.Reportid = CR2.Reportid AND CR2.report_type=''''''+@report_type+'''''' UNION ALL SELECT CR.Name, CRG1.groupid, CRG1.groupid, cr.reportid FROM crreportgroup AS CRG1 INNER JOIN crreport AS CR ON CR.reportid = CRG1.reportid AND CR.report_type = ''''''+@report_type+'''''' INNER JOIN crgroup AS CG1 ON CRG1.groupid = CG1.groupid WHERE CR.Reportid IN (SELECT crreport.ReportID FROM crreport LEFT OUTER JOIN ModuleGroupPermissions ON crreport.Reportid = ModuleGroupPermissions.ReportID WHERE ModuleGroupPermissions.GroupID IS NULL UNION ALL SELECT ModuleGroupPermissions.ReportID FROM ModuleGroupPermissions INNER JOIN ModuleGroup ON ModuleGroupPermissions.GroupID = ModuleGroup.GroupID WHERE ModuleGroup.GroupID IN (SELECT GroupID FROM ModuleGroupUsers WHERE UserCode = ''''''+@UserCode+''''''))) AS T)'' set @query1=''SELECT row_number() OVER ( ORDER BY T.RID) AS row, t.groupname, T.RID, T.GID FROM (SELECT DISTINCT (CG.groupName), 0 AS RID, CG.groupid AS GID, 0 AS Rep_ID FROM crreportgroup AS CRG INNER JOIN crgroup AS CG ON CG.groupid = CRG.groupid INNER JOIN crreport AS CR2 ON CRG.Reportid = CR2.Reportid AND CR2.report_type=''''''+@report_type+'''''' UNION ALL SELECT CR.Name, CRG1.groupid, CRG1.groupid, cr.reportid FROM crreportgroup AS CRG1 INNER JOIN crreport AS CR ON CR.reportid = CRG1.reportid AND CR.report_type = ''''''+@report_type+'''''' INNER JOIN crgroup AS CG1 ON CRG1.groupid = CG1.groupid WHERE CR.Reportid IN (SELECT crreport.ReportID FROM crreport LEFT OUTER JOIN ModuleGroupPermissions ON crreport.Reportid = ModuleGroupPermissions.ReportID WHERE ModuleGroupPermissions.GroupID IS NULL UNION ALL SELECT ModuleGroupPermissions.ReportID FROM ModuleGroupPermissions INNER JOIN ModuleGroup ON ModuleGroupPermissions.GroupID = ModuleGroup.GroupID WHERE ModuleGroup.GroupID IN (SELECT GroupID FROM ModuleGroupUsers WHERE UserCode = ''''''+@UserCode+''''''))) AS T'' end exec (@query) --exec (@query1) BEGIN --INSERT INTO @temp INSERT INTO @temp( id ,nodename ,rid ,gid ) exec (@query1) END OPEN _cur FETCH NEXT FROM _cur INTO @num,@node,@rid WHILE @@FETCH_STATUS=0 BEGIN IF EXISTS (SELECT TOP 1 1 FROM @temp WHERE id=@num AND rid=(SELECT gid FROM @temp WHERE id=@num)) BEGIN SET @gid=(SELECT id FROM @temp WHERE rid=0 AND gid=(SELECT gid FROM @temp WHERE id=@num AND rid=(SELECT gid FROM @temp WHERE id=@num))) INSERT INTO @temp2 VALUES (@num,@node,@gid,@rid) END ELSE BEGIN INSERT INTO @temp2 VALUES (@num,@node,0,@rid) END FETCH NEXT FROM _cur INTO @num,@node,@rid END close _cur DEALLOCATE _cur SELECT id,nodename ''Report Tree View'',pid,rid FROM @temp2 --SELECT 0,0,0,0 set nocount off END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_NETGetNumberofDaysDiff] Script Date: 10/01/2014 16:19:06 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NETGetNumberofDaysDiff]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[ky_NETGetNumberofDaysDiff] ( @date1 DATETIME ) RETURNS NVARCHAR(200) AS /* Created By : Arun V Date : 28June2014 06:11 PM Description : This function is used to get the date difference between user date and Current Date Modification History ----------------------------------------------------- Date | Modified By | Description ----------------------------------------------------- 03July2014 Arun.v If Days different get zero 0 Days will not displayed. */ BEGIN DECLARE @date2 DATETIME SET @date2 = GETDATE() RETURN ( SELECT ISNULL((CASE WHEN DATEDIFF( mm, @date1, @date2) / 12<>0 THEN CONVERT(NVARCHAR(10),ABS(DATEDIFF( mm, @date1, @date2) / 12)) + '' Years '' END),'''') + ISNULL((CASE WHEN DATEDIFF( mm, @date1, @date2) % 12<>0 THEN CONVERT(NVARCHAR(10), ABS(DATEDIFF( mm, @date1, @date2) % 12)) + '' Months '' END),'''') + ISNULL((CASE WHEN DATEDIFF( dd, DATEADD( mm, DATEDIFF( mm, @date1, @date2), @date1), @date2)<> 0 THEN CONVERT(NVARCHAR(10),ABS(DATEDIFF( dd, DATEADD( mm, DATEDIFF( mm, @date1, @date2), @date1), @date2))) + '' Days '' END),'''') ) END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDActionAuthorisedToComplete] Script Date: 10/01/2014 16:19:09 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDActionAuthorisedToComplete]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[ky_WDActionAuthorisedToComplete] (@ActionID int, @CurFee varchar(10)) RETURNS @DV TABLE ([IsAuthorisedToComplete] int) AS BEGIN INSERT INTO @DV ([IsAuthorisedToComplete]) SELECT CASE RTRIM(ISNULL(TAC.[AuthorisationRequired], ''L'')) WHEN '''' THEN convert(int, 0) WHEN ''L'' THEN convert(int, 0) WHEN ''C'' THEN CASE WHEN RTRIM(ISNULL(MAT.[FECode], '''')) = @CurFee THEN CONVERT(int, 0) ELSE CONVERT(int, 1) END WHEN ''P'' THEN CASE WHEN RTRIM(ISNULL(MAT.[Partner], '''')) = @CurFee THEN CONVERT(int, 0) ELSE CONVERT(int, 2) END WHEN ''F'' THEN CASE WHEN RTRIM(ISNULL(CNT.[FE], '''')) = @CurFee THEN CONVERT(int, 0) ELSE CONVERT(int, 3) END WHEN ''A'' THEN CASE WHEN RTRIM(ISNULL(FHA.[Type], '''')) = ''P'' THEN CONVERT(int, 0) ELSE CONVERT(int, 4) END WHEN ''O'' THEN CASE WHEN RTRIM(ISNULL(FHA.[Type], '''')) = ''P'' THEN CONVERT(int, 0) ELSE CONVERT(int, 5) END ELSE convert(int, 6) END AS [IsAuthorisedToComplete] 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 RETURN END' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDGetEmailTAs] Script Date: 10/01/2014 16:19:22 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDGetEmailTAs]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /******************************************************************************************* * * ky_WDGetEmailTAs * returns a list of likely candidates for the "Email" action. * *******************************************************************************************/ Create function [dbo].[ky_WDGetEmailTAs] (@Case varchar(20)) RETURNS @TAC Table ([ACTIONCODE] varchar(20), [WKTCODE] varchar(20), [DESC] varchar(300), [WKDESC] varchar(300), [ISDEFAULT] int) AS BEGIN INSERT INTO @TAC ([ACTIONCODE], [WKTCODE], [DESC], [WKDESC], [ISDEFAULT]) select RTRIM(ISNULL(TAC.[ACTIONCODE], '''')), RTRIM(ISNULL(TAC.[WKTCODE], '''')), RTRIM(ISNULL(TAC.[DESC], '''')), RTRIM(ISNULL(TMP.[WKDESC], '''')), CASE WHEN RTRIM(ISNULL(DTA.[Action], '''')) = TAC.[ActionCode] THEN 1 ELSE 0 END from [dbo].[TemplateActions] TAC INNER JOIN [dbo].[ActionWorkTypes] AWT ON AWT.[ACTIONCODE] = TAC.[ACTIONCODE] AND AWT.[WORKTYPE] = TAC.[WKTCODE] LEFT OUTER JOIN [dbo].[Templates] TMP ON TMP.[WKCODE] = TAC.[WKTCODE] LEFT OUTER JOIN [dbo].[CaseMaster] CSM ON CSM.[CSCODE] = @Case OUTER APPLY (select top 1 [Action] From [dbo].[DefaultEmailTA]) DTA ORDER BY CASE WHEN TAC.[ACTIONCODE] = DTA.[Action] THEN 0 WHEN TAC.[ACTIONCATEGORY] = ''E'' AND TAC.[WKTCODE] = CSM.[CSWKTCODE] AND TAC.[DESC] LIKE ''%e%mail%'' THEN 1 WHEN TAC.[ACTIONCATEGORY] = ''E'' AND TAC.[WKTCODE] = CSM.[CSWKTCODE] THEN 2 WHEN TAC.[ACTIONCATEGORY] = ''E'' AND TAC.[DESC] LIKE ''%e%mail%'' THEN 3 WHEN TAC.[ACTIONCATEGORY] = ''E'' THEN 4 WHEN TAC.[WKTCODE] = CSM.[CSWKTCODE] THEN 5 WHEN TAC.[DESC] LIKE ''%e%mail%'' THEN 6 WHEN TAC.[DESC] >= ''a'' THEN 7 ELSE 8 END, TAC.[ACTIONCODE], TAC.[DESC] RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDActionCheckDependentActions] Script Date: 10/01/2014 16:19:09 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDActionCheckDependentActions]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' CREATE FUNCTION [dbo].[ky_WDActionCheckDependentActions] (@ActionID int) RETURNS @DV TABLE ([ErrorMessage] varchar(1000)) AS BEGIN INSERT INTO @DV ([ErrorMessage]) SELECT CONVERT(varchar(1000), LTRIM( 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 RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDGetNoteTAs] Script Date: 10/01/2014 16:19:22 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDGetNoteTAs]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /******************************************************************************************* * * ky_WDGetNoteTAs * returns a list of likely candidates for the "Note" action. * *******************************************************************************************/ Create function [dbo].[ky_WDGetNoteTAs] (@Case varchar(20)) RETURNS @TAC Table ([ACTIONCODE] varchar(20), [WKTCODE] varchar(20), [DESC] varchar(300), [WKDESC] varchar(300), [ISDEFAULT] int) AS BEGIN INSERT INTO @TAC ([ACTIONCODE], [WKTCODE], [DESC], [WKDESC], [ISDEFAULT]) select RTRIM(ISNULL(TAC.[ACTIONCODE], '''')), RTRIM(ISNULL(TAC.[WKTCODE], '''')), RTRIM(ISNULL(TAC.[DESC], '''')), RTRIM(ISNULL(TMP.[WKDESC], '''')), CASE WHEN RTRIM(ISNULL(DTA.[Action], '''')) = TAC.[ActionCode] THEN 1 ELSE 0 END from [dbo].[TemplateActions] TAC INNER JOIN [dbo].[ActionWorkTypes] AWT ON AWT.[ACTIONCODE] = TAC.[ACTIONCODE] AND AWT.[WORKTYPE] = TAC.[WKTCODE] LEFT OUTER JOIN [dbo].[Templates] TMP ON TMP.[WKCODE] = TAC.[WKTCODE] LEFT OUTER JOIN [dbo].[CaseMaster] CSM ON CSM.[CSCODE] = @Case OUTER APPLY (select top 1 [Action] From [dbo].[DefaultNoteTA]) DTA ORDER BY CASE WHEN TAC.[ACTIONCODE] = DTA.[Action] THEN 0 WHEN TAC.[ACTIONCATEGORY] = ''N'' AND TAC.[WKTCODE] = CSM.[CSWKTCODE] AND TAC.[DESC] LIKE ''%note%'' THEN 1 WHEN TAC.[ACTIONCATEGORY] = ''N'' AND TAC.[WKTCODE] = CSM.[CSWKTCODE] THEN 2 WHEN TAC.[ACTIONCATEGORY] = ''N'' AND TAC.[DESC] LIKE ''%note%'' THEN 3 WHEN TAC.[ACTIONCATEGORY] = ''N'' THEN 4 WHEN TAC.[WKTCODE] = CSM.[CSWKTCODE] THEN 5 WHEN TAC.[DESC] = ''Note'' THEN 6 WHEN TAC.[DESC] = ''Note to File'' THEN 7 WHEN TAC.[DESC] LIKE ''%note%'' THEN 8 WHEN TAC.[DESC] >= ''a'' THEN 9 ELSE 10 END, TAC.[ACTIONCODE], TAC.[DESC] RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDGetTAList2] Script Date: 10/01/2014 16:19:23 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDGetTAList2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'/******************************************************************************************* * * ky_WDGetTAList2 * Returns a list of Template Actions for the appropriate workflow. If there is a default Note * action or a default Phone action, this will be listed at the top of the list, regardless of * the workflow. * * Supersedes ky_WDGetTAList. Better handling of missing Templates * *******************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDGetTAList2] (@matter varchar(20), @WKTCode varchar(10), @ActionCategory varchar(1)) RETURNS @TA TABLE ([WORKTYPE] varchar(10), [SEQ] int, [ACTIONCODE] varchar(20), [DESC] varchar(255), [ActionCategory] varchar(1), [Highlighted] varchar(1), [Publisher] varchar(1), [Billable] varchar(1), [Priority] varchar(10), [Status] varchar(5)) AS BEGIN DECLARE @DEFAULTTA varchar(20) SET @ActionCategory = RTRIM(ISNULL(@ActionCategory, '''')) SET @WKTCODE = RTRIM(ISNULL(@WKTCODE, '''')) IF (@ActionCategory = ''N'') BEGIN SELECT @DEFAULTTA = DA.[Action] from [dbo].[DefaultNoteTA] DA END IF (@ActionCategory = ''T'') BEGIN SELECT @DEFAULTTA = DA.[Action] from [dbo].[DefaultPhoneTA] DA END INSERT INTO @TA ([WORKTYPE], [SEQ], [ACTIONCODE], [DESC], [ActionCategory], [Highlighted], [Publisher], [Billable], [Priority], [Status]) SELECT RTRIM(ISNULL(TA.[WKTCODE], '''')) AS [WORKTYPE], IsNull(AWT.[SEQ], 999999), RTRIM(ISNULL(TA.[ACTIONCODE], '''')) AS [ACTIONCODE], REPLACE(REPLACE(RTRIM(ISNULL(TA.[DESC], '''')), CHAR(13) + CHAR(10), '' ''), CHAR(10), '' '') AS [DESC], ISNULL(TA.[ACTIONCATEGORY], ''A'') AS [ACTIONCATEGORY], CASE WHEN ISNULL(TA.[HIGHLIGHTED], ''N'') = ''Y'' THEN ''Y'' ELSE ''N'' END AS [HIGHLIGHTED], ISNULL(TA.[PUBLISHER], ''N'') AS [PUBLISHER], ISNULL(TA.[BILLABLE], ''N'') AS [BILLABLE], RTRIM(ISNULL(TA.[PRIORITY], ''Normal'')) AS [PRIORITY], RTRIM(ISNULL(TA.[STATUS], ''NA'')) AS [STATUS] FROM [dbo].[TemplateActions] TA LEFT OUTER JOIN [dbo].[ActionWorkTypes] AWT ON AWT.[ACTIONCODE] = TA.[ACTIONCODE] LEFT OUTER JOIN [dbo].[CaseMaster] CSM ON CSM.[CSCODE] = @matter LEFT OUTER JOIN [dbo].[Templates] T ON T.[WKCODE] = TA.[WKTCODE] WHERE ( ( @WKTCODE = '''' AND TA.[WKTCODE] = CSM.[CSWKTCODE]) OR ( @WKTCODE <> '''' AND TA.[WKTCODE] = @WKTCODE) OR TA.[ACTIONCODE] = @DEFAULTTA) AND ( ( T.[WKCODE] = TA.[WKTCODE] AND AWT.[WORKTYPE] = T.[WKCODE]) OR ( T.[WKCODE] IS NULL AND AWT.[WORKTYPE] IS NULL)) ORDER BY CASE WHEN @ActionCategory = '''' THEN 0 WHEN @ActionCategory = TA.[ActionCategory] THEN CASE WHEN TA.[ACTIONCODE] = @DEFAULTTA THEN 1 WHEN @ActionCategory = ''N'' AND TA.[DESC] LIKE ''%note%'' THEN 2 WHEN @ActionCategory = ''P'' AND TA.[DESC] LIKE ''%appointment%'' THEN 2 WHEN @ActionCategory = ''T'' AND TA.[DESC] LIKE ''%phone%'' THEN 2 ELSE 3 END ELSE 4 END, ISNULL(AWT.[SEQ], 999999) RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDCreateDiaryStep5] Script Date: 10/01/2014 16:18:01 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCreateDiaryStep5]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_WDCreateDiaryStep5] (@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 .NET version - Version 5, suitable for Add Task * as well as assigning a mail to Case, and applying a duration. * *************************************************************************/ 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 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, @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 = LTrim(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 SELECT @NewActionID = ISNULL(MAX(DIA.[ActionID]), 0) + 1 FROM [dbo].[diary] DIA 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], [DisplayText], [Attachments], [EmailAddress], [AddressTo], [Location], [ccTo], [bccTo], [email], [Subject], [Publish], [ActionType], [ProcessType], [DYSTARTTIME], [DYENDTIME], [Date], [DUEDATE], [TxmDate]) VALUES(@NewActionID, @pStatus, @pCaseCode, @pActionCode, @pActionStatus, @pPriority, @pHighlighted, @pBillable, @pWorkProcess, @pFnCode, @pTeamCode, convert(text, @pText1), [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), @pText1), ''''), 200), @pAttachments, @pEmailAddress, @pAddressTo, @pLocation, @pccTo, @pbccTo, @pemail, @pSubject, @pPublish, @pActionType, @pProcessType, @pTime, @pEndTime, @pDate, @pDueDate, @pSentDate) 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 ' END GO /****** Object: StoredProcedure [dbo].[spGetCaseActionsForCaseType] Script Date: 10/01/2014 16:18:48 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spGetCaseActionsForCaseType]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[spGetCaseActionsForCaseType] (@CaseType NVARCHAR(4)) AS BEGIN SELECT A.WORKTYPE, A.ACTIONCODE, A.SEQ, B.ACTIONCODE, B."DESC", B.WKTCODE, B.ACTTYPE, B.STATUS, B.PROCESSTYPE, B.MILESTONETYPE FROM {oj dbo.ActionWorkTypes A LEFT OUTER JOIN dbo.TemplateActions B ON A.ACTIONCODE= B.ACTIONCODE } WHERE ( {fn UCASE( A.WORKTYPE)} = {fn UCASE(@CaseType)} ) ORDER BY {fn UCASE( A.WORKTYPE)}, A.SEQ END ' END GO /****** Object: StoredProcedure [dbo].[spValidateEnteredActionCode] Script Date: 10/01/2014 16:18:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spValidateEnteredActionCode]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[spValidateEnteredActionCode] ( @ActionCode AS NVARCHAR(20) ) AS BEGIN IF EXISTS(SELECT 1 FROM TemplateActions WHERE ActionCode = @ActionCode) SELECT [DESC] FROM TemplateActions WHERE ActionCode = @ActionCode ELSE SELECT 0 END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDGetTAList] Script Date: 10/01/2014 16:19:23 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDGetTAList]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /******************************************************************************************* * * ky_WDGetTAList * Returns a list of Template Actions for the appropriate workflow. If there is a default Note * action or a default Phone action, this will be listed at the top of the list, regardless of * the workflow. * *******************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDGetTAList] (@matter varchar(20), @WKTCode varchar(10), @ActionCategory varchar(1)) RETURNS @TA TABLE ([WORKTYPE] varchar(10), [SEQ] int, [ACTIONCODE] varchar(20), [DESC] varchar(255), [ActionCategory] varchar(1), [Highlighted] varchar(1), [Publisher] varchar(1), [Billable] varchar(1), [Priority] varchar(10), [Status] varchar(5)) AS BEGIN DECLARE @DEFAULTTA varchar(20) SET @ActionCategory = RTRIM(ISNULL(@ActionCategory, '''')) SET @WKTCODE = RTRIM(ISNULL(@WKTCODE, '''')) IF (@ActionCategory = ''N'') BEGIN SELECT @DEFAULTTA = DA.[Action] from [dbo].[DefaultNoteTA] DA END IF (@ActionCategory = ''T'') BEGIN SELECT @DEFAULTTA = DA.[Action] from [dbo].[DefaultPhoneTA] DA END INSERT INTO @TA ([WORKTYPE], [SEQ], [ACTIONCODE], [DESC], [ActionCategory], [Highlighted], [Publisher], [Billable], [Priority], [Status]) SELECT RTRIM(ISNULL(AWT.[WORKTYPE], '''')) AS [WORKTYPE], AWT.[SEQ], RTRIM(ISNULL(AWT.[ACTIONCODE], '''')) AS [ACTIONCODE], REPLACE(REPLACE(RTRIM(ISNULL(TA.[DESC], '''')), CHAR(13) + CHAR(10), '' ''), CHAR(10), '' '') AS [DESC], ISNULL(TA.[ACTIONCATEGORY], ''A'') AS [ACTIONCATEGORY], CASE WHEN ISNULL(TA.[HIGHLIGHTED], ''N'') = ''Y'' THEN ''Y'' ELSE ''N'' END AS [HIGHLIGHTED], ISNULL(TA.[PUBLISHER], ''N'') AS [PUBLISHER], ISNULL(TA.[BILLABLE], ''N'') AS [BILLABLE], RTRIM(ISNULL(TA.[PRIORITY], ''Normal'')) AS [PRIORITY], RTRIM(ISNULL(TA.[STATUS], ''NA'')) AS [STATUS] FROM [dbo].[CaseMaster] CSM INNER JOIN [dbo].[ActionWorkTypes] AWT INNER JOIN [dbo].[TemplateActions] TA ON TA.[ACTIONCODE] = AWT.[ACTIONCODE] ON ( @WKTCODE = '''' AND AWT.[WORKTYPE] = CSM.[CSWKTCODE]) OR ( @WKTCODE <> '''' AND AWT.[WORKTYPE] = @WKTCODE) OR TA.[ACTIONCODE] = @DEFAULTTA WHERE CSM.[CSCODE] = @matter ORDER BY CASE WHEN @ActionCategory = '''' THEN 0 WHEN @ActionCategory = TA.[ActionCategory] THEN CASE WHEN TA.[ACTIONCODE] = @DEFAULTTA THEN 1 WHEN @ActionCategory = ''N'' AND TA.[DESC] LIKE ''%note%'' THEN 2 WHEN @ActionCategory = ''P'' AND TA.[DESC] LIKE ''%appointment%'' THEN 2 WHEN @ActionCategory = ''T'' AND TA.[DESC] LIKE ''%phone%'' THEN 2 ELSE 3 END ELSE 4 END, AWT.[SEQ] RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDGetPhoneTAs] Script Date: 10/01/2014 16:19:22 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDGetPhoneTAs]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /******************************************************************************************* * * ky_WDGetPhoneTAs * returns a list of likely candidates for the "Phone" action. * *******************************************************************************************/ Create function [dbo].[ky_WDGetPhoneTAs] (@Case varchar(20)) RETURNS @TAC Table ([ACTIONCODE] varchar(20), [WKTCODE] varchar(20), [DESC] varchar(300), [WKDESC] varchar(300), [ISDEFAULT] int) AS BEGIN INSERT INTO @TAC ([ACTIONCODE], [WKTCODE], [DESC], [WKDESC], [ISDEFAULT]) select RTRIM(ISNULL(TAC.[ACTIONCODE], '''')), RTRIM(ISNULL(TAC.[WKTCODE], '''')), RTRIM(ISNULL(TAC.[DESC], '''')), RTRIM(ISNULL(TMP.[WKDESC], '''')), CASE WHEN RTRIM(ISNULL(DTA.[Action], '''')) = TAC.[ActionCode] THEN 1 ELSE 0 END from [dbo].[TemplateActions] TAC INNER JOIN [dbo].[ActionWorkTypes] AWT ON AWT.[ACTIONCODE] = TAC.[ACTIONCODE] AND AWT.[WORKTYPE] = TAC.[WKTCODE] LEFT OUTER JOIN [dbo].[Templates] TMP ON TMP.[WKCODE] = TAC.[WKTCODE] LEFT OUTER JOIN [dbo].[CaseMaster] CSM ON CSM.[CSCODE] = @Case OUTER APPLY (select top 1 [Action] From [dbo].[DefaultPhoneTA]) DTA ORDER BY CASE WHEN TAC.[ACTIONCODE] = DTA.[Action] THEN 0 WHEN TAC.[ACTIONCATEGORY] = ''T'' AND TAC.[WKTCODE] = CSM.[CSWKTCODE] AND TAC.[DESC] LIKE ''%phone%'' THEN 1 WHEN TAC.[ACTIONCATEGORY] = ''T'' AND TAC.[WKTCODE] = CSM.[CSWKTCODE] THEN 2 WHEN TAC.[ACTIONCATEGORY] = ''T'' AND TAC.[DESC] LIKE ''%phone%'' THEN 3 WHEN TAC.[ACTIONCATEGORY] = ''T'' THEN 4 WHEN TAC.[WKTCODE] = CSM.[CSWKTCODE] THEN 5 WHEN TAC.[DESC] LIKE ''%phone%'' THEN 6 WHEN TAC.[DESC] >= ''a'' THEN 7 ELSE 8 END, TAC.[ACTIONCODE], TAC.[DESC] RETURN END ' END GO /****** Object: StoredProcedure [dbo].[spInsertCapturedDocuments] Script Date: 10/01/2014 16:18:53 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spInsertCapturedDocuments]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[spInsertCapturedDocuments] (@ActionID BIGINT, @TrackRefNo INT, @MatterCode VARCHAR(20), @HandlerCode VARCHAR(10), @ActionCode VARCHAR(15), @Description VARCHAR(MAX), @DocumentName VARCHAR(100), @DocumentPath VARCHAR(255), @DocumentExtn VARCHAR(10), @DocumentClass VARCHAR(20), @AssignDate DATETIME, @FileModifyDate DATETIME, @FileLastAccessedDate DATETIME, @SetAsComplete SMALLINT, @SetDelType VARCHAR(10), @DueDate DATETIME, @WorkProcess SMALLINT) --@SetStatus SMALLINT = 0 --@Owner VARCHAR(1) = ''Y'', --@DYSTARTTIME VARCHAR(10), --Time in seconds, confirm with Pino --@DYENDTIME VARCHAR(10), --Time in seconds, confirm with Pino AS /************************************************************************** * * spInsertCapturedDocuments * * Inserts Captured Documents into Case * Modification 2014-06-19 - PINO - added functionality to handle DisplayText column * use handler CODE rather than NAME for ENTEREDBY and LASTACCESSBY * Modification 2014-09-18 - PINO - Fixed MAX function - will return NULL on an empty table * **************************************************************************/ BEGIN DECLARE @HandlerTeamCode VARCHAR(10) --can be read internally DECLARE @ActionStatus VARCHAR(10) --= NULL -- read FROM value in selected action code --can be read internally DECLARE @ActionType CHAR(1) --= ''A'' -- read FROM value in selected action code -- need to check IF this category/type --can be read internally DECLARE @ProcessType CHAR(1) --= ''I'' -- read FROM value in selected action code --can be read internally DECLARE @PriorityText CHAR(20) --= ''Normal'' -- read FROM value in selected action code --can be read internally DECLARE @Publish CHAR(1) --= ''N'' -- read FROM value in selected action code --can be read internally DECLARE @Priority CHAR(1) --= ''N'' -- read FROM value in selected action code --can be read internally DECLARE @Highlighted CHAR(1) --= ''N'' -- read FROM value in selected action code --can be read internally DECLARE @DYSTARTTIME CHAR(10) --Time in seconds, confirm with Pino DECLARE @DYENDTIME CHAR(10) --Time in seconds, confirm with Pino SET @ActionID = ISNULL(@ActionID, 0) SET @ActionType = ''A'' SET @ProcessType = ''I'' SET @PriorityText = ''Normal'' SET @Publish = ''N'' SET @Priority = ''N'' SET @Highlighted = ''N'' SELECT @HandlerTeamCode = RTRIM(ISNULL(HAN.[Team], '''')) FROM [dbo].[Handlers] HAN WHERE HAN.[CODE] = @HandlerCode SELECT @ActionStatus = RTRIM(ISNULL(TA.[Status], '''')), @ActionType = RTRIM(ISNULL(TA.[ACTTYPE], '''')), @ProcessType = RTRIM(ISNULL(TA.[PROCESSTYPE], '''')), @Publish = CASE WHEN RTRIM(ISNULL(TA.[PUBLISHER], '''')) IN (''N'', ''P'', ''E'', ''A'') THEN RTRIM(ISNULL(TA.[PUBLISHER], '''')) ELSE ''N'' END, @PriorityText = CASE WHEN RTRIM(ISNULL(TA.[PRIORITY], ''Normal'')) IN (''Low'', ''Normal'', ''High'') THEN RTRIM(ISNULL(TA.[PRIORITY], ''Normal'')) ELSE ''Normal'' END, @Highlighted = CASE WHEN RTRIM(ISNULL(TA.[HIGHLIGHTED], ''N'')) = ''Y'' THEN ''Y'' ELSE ''N'' END FROM [dbo].[TemplateActions] TA WHERE TA.[ACTIONCODE] = @ActionCode SET @Priority = CONVERT(VARCHAR(1), @PriorityText) SET @DYSTARTTIME = dbo.ky_ConvertTimeToClarion(@AssignDate) SET @DYENDTIME = @DYSTARTTIME --PRINT @HandlerName + '' @HandlerName'' --PRINT @HandlerTeamCode + '' @HandlerTeamCode'' --PRINT @ActionStatus + '' @ActionStatus'' --PRINT @ActionType + '' @ActionType'' --PRINT @ProcessType + '' @ProcessType'' --PRINT @Publish + '' @Publish'' --PRINT @Priority + '' @Priority'' --PRINT @Highlighted + '' @Highlighted'' --PRINT @DYSTARTTIME + '' @DYSTARTTIME'' ----SELECT FROM WHERE IF (@ActionID = 0) BEGIN SELECT @ActionID = ISNULL(MAX(ActionID), 0) + 1 FROM [dbo].[diary] SET @ActionID = ISNULL(@ActionID, 1) INSERT INTO [dbo].[diary] ([CASECODE], [DATE], [STATUS], [ACTIONCODE], [ACTIONSTATUS], [ACTIONTYPE], [PROCESSTYPE], [FNCODE], [TEAMCODE], [TEXT1], [DisplayText], [DUEDATE], [IMAGENO], [PUBLISH], [DYSTARTTIME], [DYENDTIME], [ACTIONID], [ORGINALACTIONID], [PRIORITY], [HIGHLIGHTED], [MILESTEONETYPE], [ATTACHMENTS], [WORKPROCESS], [BILLABLE], [DELEGATIONSTATUS], [TXMSENT]) VALUES(@MatterCode, @AssignDate, @SetAsComplete, @ActionCode, @ActionStatus, @ActionType, @ProcessType, @HandlerCode, @HandlerTeamCode, @Description, [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), @Description), ''''), 200), @DueDate, 0, @Publish, @DYSTARTTIME, @DYENDTIME, @ActionID, @ActionID, @Priority, @Highlighted, @HandlerCode, '''', @WorkProcess, 0, 0, 0) INSERT INTO [dbo].[DiaryDelegations] ([ACTIONID], [HANDLER], [TEAM], [DATE], [TIME], [DUEDATE], [DUETIME], [STATUS], -- need to check [OWNER], -- need to check [DELEGATE],-- need to check [DELEGATESTATUS], -- need to check [ACTIONTYPE], [FROMHANDLER], [DELTYPE]) VALUES(@ActionID, @HandlerCode, @HandlerTeamCode, @AssignDate, @DYSTARTTIME, @AssignDate, @DYENDTIME, @SetAsComplete, -- need to check ''Y'', @HandlerCode, 0, -- need to check @ActionType, @HandlerCode, @SetDelType) END INSERT INTO [dbo].[DiaryAttachments] ([DIARYID], [TRACKREFERENCE], [CASECODE], [NAME], [DOCUMENT], [FILEPATH], [TYPE], [DOCCLASS], [DATEENTERED], [ENTEREDBY], [LASTACCESSDATE], [LASTACCESSBY], [SYSTEM], [DICTATIONFILE], [SOURCE]) VALUES(@ActionID, @TrackRefNo, @MatterCode, '''', @DocumentName, @DocumentPath, @DocumentExtn, @DocumentClass, @AssignDate, @HandlerCode, @FileLastAccessedDate, @HandlerCode, ''N'', ''N'', ''Captured'') --Return ActionID for a new INSERT INTO diary SELECT @ActionID AS ActionID END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDCreateDiaryStep4] Script Date: 10/01/2014 16:17:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCreateDiaryStep4]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_WDCreateDiaryStep4] (@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), @pDuration int) AS /************************************************************************ * * Create Diary Step WinDev/WebDev version - Version 4, suitable for Add Task * as well as assigning a mail to Case, and applying a duration. * *************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @strcasecode nVarChar(17) 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 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, @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 = LTrim(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 SELECT @NewActionID = ISNULL(MAX(DIA.[ActionID]), 0) + 1 FROM [dbo].[diary] DIA 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], [DisplayText], [Attachments], [EmailAddress], [AddressTo], [ccTo], [bccTo], [email], [Subject], [Publish], [ActionType], [ProcessType], [DYSTARTTIME], [DYENDTIME], [Date], [DUEDATE], [TxmDate]) VALUES(@NewActionID, @pStatus, @pCaseCode, @pActionCode, @pActionStatus, @pPriority, @pHighlighted, @pBillable, @pWorkProcess, @pFnCode, @pTeamCode, convert(text, @pText1), [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), @pText1), ''''), 200), @pAttachments, @pEmailAddress, @pAddressTo, @pccTo, @pbccTo, @pemail, @pSubject, @pPublish, @pActionType, @pProcessType, @pTime, @pEndTime, @pDate, @pDueDate, @pSentDate) 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 ' END GO /****** Object: StoredProcedure [dbo].[ky_WDCreateDiaryStep3] Script Date: 10/01/2014 16:17:57 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCreateDiaryStep3]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_WDCreateDiaryStep3] (@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(150), @pAddressTo varchar(2000), @pccTo varchar(2000), @pbccTo varchar(2000), @pemail char(1), @pSubject varchar(500), @pProcessType char(1), @pActionID int, @pDuration int) AS /************************************************************************ * * Create Diary Step WinDev/WebDev version - Version 3, suitable for Add Task * as well as assigning a mail to Case, and applying a duration. * *************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @strcasecode nVarChar(17) 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) SET @pDuration = ISNULL(@pDuration, 0) IF (@pDuration <= 0) BEGIN SET @pDuration = 30 END SET @pDuration = @pDuration * 60 -- 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))) 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'' -- Start Transaction ----------------------------------------------------------------------------------------------------------------------------------------- BEGIN TRAN Key_Tran_01 IF @@error <> 0 GOTO Tran_Fail -- Get CaseCode From Matters Table ----------------------------------------------------------------------------------------------------------------------------------------- SELECT @strCaseCode = (SELECT Top 1 [Code] From [dbo].[Matters] WHERE [code] = @pCaseCode) IF @@error <> 0 GOTO Tran_Fail SET @strCaseCode = RTrim(Isnull(@strCaseCode, '''')) Set @pFNCode = RTrim(@pFNCode) Set @pTeamCode = RTrim(@pTeamCode) IF LEN(@strCaseCode) < 2 GOTO Tran_Fail IF LEN(@strCaseCode) > @CaseCodeLen GOTO Tran_Fail IF LEN(@pFNCode) > @FELen GOTO Tran_Fail IF LEN(@pTeamCode) > @TeamLen GOTO Tran_Fail -- Set Publish and Subject ----------------------------------------------------------------------------------------------------------------------------------- Select @pPublish = CASE WHEN RTRIM(ISNULL(@pPublish, '''')) <> '''' THEN @pPublish ELSE TAC.[PUBLISHER] END, @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 = LTrim(RTrim(@pSubject)) IF LEN(@pSubject) > @SubjectLen BEGIN SET @pSubject = Substring(@pSubject, 1, @SubjectLen) End -- Write Diary Record ----------------------------------------------------------------------------------------------------------------------------------------- INSERT INTO [dbo].[Diary] ([ActionID], [Status], [CaseCode], [ActionCode], [ActionStatus], [PRIORITY], [HIGHLIGHTED], [BILLABLE], [WORKPROCESS], [FnCode], [TeamCode], [Text1], [DisplayText], [Attachments], [EmailAddress], [AddressTo], [ccTo], [bccTo], [email], [Subject], [Publish], [ActionType], [ProcessType], [DYSTARTTIME], [DYENDTIME], [Date], [DUEDATE], [TxmDate]) VALUES(@pActionID, @pStatus, @pCaseCode, @pActionCode, @pActionStatus, @pPriority, @pHighlighted, @pBillable, @pWorkProcess, @pFnCode, @pTeamCode, convert(text, @pText1), [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), @pText1), ''''), 200), @pAttachments, @pEmailAddress, @pAddressTo, @pccTo, @pbccTo, @pemail, @pSubject, @pPublish, @pActionType, @pProcessType, @pTime, @pEndTime, @pDate, @pDueDate, @pSentDate) IF @@error <> 0 GOTO Tran_Fail -- Write the diary delegation record ------------------------------------------------------------ INSERT INTO [DiaryDelegations] ([ACTIONID], [HANDLER], [TEAM], [DATE], [TIME], [DATER], [TIMER], [DUEDATE], [DUETIME], [REVIEW], [STATUS], [OWNER], [DELEGATE], [DELEGATESTATUS], [ActionType], [FromHandler], [ReturnedBy], [DelType]) VALUES(@pActionID, @pFnCode, @pTeamCode, @dDate, @pTime, @dDate, @pTime, @dDueDate, @pDueTime, '' '', @pStatus, ''Y'', @pFnCode, 0, @pActionType, '' '', '' '', ''Created'') -- Commit Transaction ------------------------------------------------------------------------------------------------------------------ COMMIT TRAN Key_Tran_01 IF @@error <> 0 GOTO Tran_Fail -- End Of Processing -------------------------------------------------------------------------------------------------------------------- ExitPoint: Return -- Error Processing ------------------------------------------------------------------------------------------------------------------------------------- Tran_Fail: rollback tran Key_Tran_01 GoTo ExitPoint END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDCreateDiaryStep2] Script Date: 10/01/2014 16:17:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCreateDiaryStep2]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_WDCreateDiaryStep2] (@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(150), @pAddressTo varchar(2000), @pccTo varchar(2000), @pbccTo varchar(2000), @pemail char(1), @pSubject varchar(500), @pProcessType char(1), @pActionID int) AS /************************************************************************ * * Create Diary Step WinDev/WebDev version - Version 2, suitable for Add Task * as well as assigning a mail to Case * *************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @strcasecode nVarChar(17) DECLARE @intAssignno int DECLARE @SubjectLen int DECLARE @CaseCodeLen int DECLARE @FELen int DECLARE @TeamLen int DECLARE @dDate datetime DECLARE @pTime char(10) DECLARE @dDueDate datetime DECLARE @pDueTime char(10) -- 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 @dDueDate = convert(datetime, convert(varchar, @pDueDate, 112)) SET @pDueTime = convert(char(10), (1000 * convert(int, DATEDIFF(ms, @dDueDate, @pDueDate) / 10000)) + 1) 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'' -- Start Transaction ----------------------------------------------------------------------------------------------------------------------------------------- BEGIN TRAN Key_Tran_01 IF @@error <> 0 GOTO Tran_Fail -- Get CaseCode From Matters Table ----------------------------------------------------------------------------------------------------------------------------------------- SELECT @strCaseCode = (SELECT Top 1 [Code] From [dbo].[Matters] WHERE [code] = @pCaseCode) IF @@error <> 0 GOTO Tran_Fail SET @strCaseCode = RTrim(Isnull(@strCaseCode, '''')) Set @pFNCode = RTrim(@pFNCode) Set @pTeamCode = RTrim(@pTeamCode) IF LEN(@strCaseCode) < 2 GOTO Tran_Fail IF LEN(@strCaseCode) > @CaseCodeLen GOTO Tran_Fail IF LEN(@pFNCode) > @FELen GOTO Tran_Fail IF LEN(@pTeamCode) > @TeamLen GOTO Tran_Fail -- Set Publish and Subject ----------------------------------------------------------------------------------------------------------------------------------- Select @pPublish = CASE WHEN RTRIM(ISNULL(@pPublish, '''')) <> '''' THEN @pPublish ELSE TAC.[PUBLISHER] END, @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 = LTrim(RTrim(@pSubject)) IF LEN(@pSubject) > @SubjectLen BEGIN SET @pSubject = Substring(@pSubject, 1, @SubjectLen) End -- Write Diary Record ----------------------------------------------------------------------------------------------------------------------------------------- INSERT INTO [dbo].[Diary] ([ActionID], [Status], [CaseCode], [ActionCode], [ActionStatus], [PRIORITY], [HIGHLIGHTED], [BILLABLE], [WORKPROCESS], [FnCode], [TeamCode], [Text1], [DisplayText], [Attachments], [EmailAddress], [AddressTo], [ccTo], [bccTo], [email], [Subject], [Publish], [ActionType], [ProcessType], [DYStartTime], [Date], [TxmDate]) VALUES(@pActionID, @pStatus, @pCaseCode, @pActionCode, @pActionStatus, @pPriority, @pHighlighted, @pBillable, @pWorkProcess, @pFnCode, @pTeamCode, convert(text, @pText1), [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), @pText1), ''''), 200), @pAttachments, @pEmailAddress, @pAddressTo, @pccTo, @pbccTo, @pemail, @pSubject, @pPublish, @pActionType, @pProcessType, @pTime, @pDate, @pSentDate) IF @@error <> 0 GOTO Tran_Fail -- Write the diary delegation record ------------------------------------------------------------ INSERT INTO [DiaryDelegations] ([ACTIONID], [HANDLER], [TEAM], [DATE], [TIME], [DATER], [TIMER], [DUEDATE], [DUETIME], [REVIEW], [STATUS], [OWNER], [DELEGATE], [DELEGATESTATUS], [ActionType], [FromHandler], [ReturnedBy], [DelType]) VALUES(@pActionID, @pFnCode, @pTeamCode, @dDate, @pTime, @dDate, @pTime, @dDueDate, @pDueTime, '' '', @pStatus, ''Y'', @pFnCode, 0, @pActionType, '' '', '' '', ''Created'') -- Commit Transaction ------------------------------------------------------------------------------------------------------------------ COMMIT TRAN Key_Tran_01 IF @@error <> 0 GOTO Tran_Fail -- End Of Processing -------------------------------------------------------------------------------------------------------------------- ExitPoint: Return -- Error Processing ------------------------------------------------------------------------------------------------------------------------------------- Tran_Fail: rollback tran Key_Tran_01 GoTo ExitPoint END ' END GO /****** Object: StoredProcedure [dbo].[load_infiles] Script Date: 10/01/2014 16:18:35 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[load_infiles]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- ============================================= -- Author: Magesh Kumar -- Create date: 12June2014 07:59 PM -- Description: This SP used to Load combo based on the in-file selected WHILE creating parameters -- ============================================= CREATE PROCEDURE [dbo].[load_infiles] -- Add the parameters for the stored procedure here @type AS VARCHAR(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; IF (@type=''Contacts'') BEGIN SELECT RTRIM(LTRIM(A.CODE)) AS CODE, RTRIM(LTRIM(A.NAME)) AS NAME, RTRIM(LTRIM(A.TEL)) AS TEL, RTRIM(LTRIM( A.EMAIL)) AS EMAIL, RTRIM(LTRIM( A.FE)) AS FE, RTRIM(LTRIM( A.CLIENT)) AS CLIENT, RTRIM(LTRIM( A.OTHERREF)) AS OTHERREF, RTRIM(LTRIM( A.OPSISREF)) AS OPSISREF, RTRIM(LTRIM( A.CONTACTNO)) AS CONTACTNO, RTRIM(LTRIM( A.COMPBILLONOFF)) AS COMPBILLONOFF, RTRIM(LTRIM(A.CLIENTGROUP)) AS CLIENTGROUP, RTRIM(LTRIM( A.TAXTYPE)) AS TAXTYPE FROM contacts A ORDER BY {fn UCASE( A.CODE)} END ELSE IF (@type=''Handlers'') BEGIN SELECT RTRIM(LTRIM(A.CODE)) AS CODE, RTRIM(LTRIM( A.NAME)) AS NAME, RTRIM(LTRIM( A.TEAM)) AS TEAM, RTRIM(LTRIM( A.TYPE)) AS TYPE, RTRIM(LTRIM( A.DEPT)) AS DEPT, RTRIM(LTRIM( A.LOGON)) AS LOGON, RTRIM(LTRIM( A.EXCHANGEALIAS)) AS EXCHANGEALIAS FROM dbo.Handlers A ORDER BY {fn UCASE( A.CODE)} END ELSE IF (@type=''Departments'') BEGIN SELECT RTRIM(LTRIM(A.CODE)) AS CODE, RTRIM(LTRIM( A."DESC")) AS [DESC], RTRIM(LTRIM( A.RETIRED)) AS RETIRED FROM Departments A ORDER BY {fn UCASE( A.CODE)} END ELSE IF (@type=''WorkTypes'') BEGIN SELECT RTRIM(LTRIM(A.CODE)) AS CODE, RTRIM(LTRIM( A."DESC")) AS [DESC], RTRIM(LTRIM( A.RETIRED)) AS RETIRED FROM dbo.WorkTypes A ORDER BY {fn UCASE( A.CODE)} END ELSE IF (@type=''Fee Earners'') BEGIN SELECT RTRIM(LTRIM(A.CODE)) AS CODE, RTRIM(LTRIM(A.NAME)) AS NAME, RTRIM(LTRIM( A.RETIRED)) AS RETIRED FROM FeeEarnerCodes A ORDER BY {fn UCASE( A.CODE)} END ELSE IF (@type=''Action'') BEGIN SELECT RTRIM(LTRIM(A.ACTIONCODE)) AS ACTIONCODE, RTRIM(LTRIM( A."DESC")) AS [DESC], RTRIM(LTRIM( A.WKTCODE)) AS WKTCODE, RTRIM(LTRIM( A.ACTTYPE)) AS ACTTYPE, RTRIM(LTRIM( A.ACTIONCATEGORY)) AS ACTIONCATEGORY, RTRIM(LTRIM( A.[STATUS])) AS [STATUS], RTRIM(LTRIM( A.MILESTONETYPE)) AS MILESTONETYPE, RTRIM(LTRIM( B.WKTYPE)) AS WKTYPE, RTRIM(LTRIM( B.WKCODE)) AS WKCODE, RTRIM(LTRIM( B.WKDESC)) AS WKDESC, RTRIM(LTRIM( B.WKACTION)) AS WKACTION, RTRIM(LTRIM( B.DEPT)) AS DEPT FROM {oj dbo.TemplateActions A LEFT OUTER JOIN dbo.Templates B ON A.WKTCODE= B.WKCODE } ORDER BY {fn UCASE( A.ACTIONCODE)} END ELSE IF (@type=''Task'') BEGIN SELECT RTRIM(LTRIM(A.CODE)) AS CODE, RTRIM(LTRIM( A."DESC")) AS [DESC], RTRIM(LTRIM( A."DEFAULT")) AS [DEFAULT] FROM TasksCodes A ORDER BY {fn UCASE( A.CODE)} END ELSE IF (@type=''UnderstakingStatus'') BEGIN SELECT RTRIM(LTRIM(A.RECORDID)) AS RECORDID, RTRIM(LTRIM( A.STATUSDESC)) STATUSDESC FROM dbo.UndertakingStatus A ORDER BY {fn UCASE( A.STATUSDESC)} END ELSE IF (@type=''CaseAssociates'') BEGIN SELECT RTRIM(LTRIM(A.CODE)) AS CODE, RTRIM(LTRIM( A.TYPE)) AS [TYPE], RTRIM(LTRIM( A.NAME)) AS NAME, RTRIM(LTRIM( A.COMPANY)) AS COMPANY, RTRIM(LTRIM( A.ADDRESS)) AS [ADDRESS], RTRIM(LTRIM( A.SEARCH)) AS SEARCH, RTRIM(LTRIM( A.CONTACTNO)) AS CONTACTNO, RTRIM(LTRIM( B.CODE)) AS CODE, RTRIM(LTRIM(B.DESCRIPTION)) AS [DESCRIPTION] FROM {oj dbo.CaseAssociatesNames A LEFT OUTER JOIN dbo.AssociateTypes B ON A.TYPE= B.CODE } END END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDActionComplete2] Script Date: 10/01/2014 16:17:41 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDActionComplete2]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_WDActionComplete2] (@ActionID int, @CurFee varchar(10), @NextActionsXML varchar(4000), @TakeOwnership int) AS /************************************************************************************** * * ky_WDActionComplete2 * * Completes / Returns an Action - depending on whether this SP is invoked by the owner * or a delegate. Also allows for taking ownership * **************************************************************************************/ BEGIN DECLARE @CurTeam varchar(10) DECLARE @Now datetime DECLARE @NowDateOnly datetime DECLARE @NowClarionTime 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 @NA TABLE ([ID] int identity(1, 1), [ActionID] int, [Code] varchar(5)) DECLARE @AlarmType int DECLARE @DisabledAlarmStatusID int DECLARE @ActionTypeID int SELECT @AlarmType = ISNULL(ALT1.[TypeID], ALT2.[TypeID]) FROM AlarmTypes ALT2 LEFT OUTER JOIN 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(nvarchar(500), ''Actioned'') WHERE ALS1.[Description] = N''Disabled'' Select @ActionTypeID = ALT1.[TypeID] from [dbo].[AlarmTypes] ALT1 WHERE ALT1.[Description] = N''Action'' Select @CurTeam = HAN.[TEAM] from [dbo].[Handlers] HAN WHERE HAN.[CODE] = @CurFee /* 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) /* if not authorised, do not do anything else */ SET @Continue = @IsAuthorisedToComplete 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 */ SET @Continue = @CountFailedDependentActions 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 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)) 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 FROM [dbo].[Diary] DIA WHERE DIA.[ACTIONID] = @ActionID AND DIA.[ACTIONTYPE] IN (''T'', ''E'') 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 isn''t a phone or e-mail, update some date information too */ UPDATE DIA SET DIA.[STATUS] = 1, DIA.[PROCESSSTATUS] = 0, DIA.[DATE] = @Now, DIA.[DYSTARTTIME] = @NowClarionTime FROM [dbo].[Diary] DIA WHERE DIA.[ACTIONID] = @ActionID AND IsNull(DIA.[ACTIONTYPE], '''') NOT IN (''T'', ''E'') 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 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 Y Do not YYY N Do 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'') 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'') 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, 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'') 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 */ SELECT @MaxActionID = IsNull(MAX(DIA.[ActionID]), 0) FROM [dbo].[Diary] DIA 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]) SELECT @MaxActionID, BLCH.[Code] from OPENXML(@idoc, ''NA/NextAction'', 2) WITH(Process varchar(1) ''Process'', Decision varchar(10) ''Decision'', Code varchar(5) ''Code'') 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]) SELECT NA.[ActionID], DIA.[CASECODE] AS [CASECODE], [dbo].[ky_WDGetDate](@Now, TNA.[WHENTYPE], TNA.[WHEN]) 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].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), TAC.[DESC]), ''''), 200) As [DisplayText], @NowClarionTime AS [DYStartTime], @NowClarionTime AS [DYEndTime], [dbo].[ky_WDGetDate](@NowDateOnly, TNA.[WHENTYPE], TNA.[WHEN]) 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] 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) 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], DIA.[FNCODE] AS [HANDLER], DIA.[TEAMCODE] 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 RTRIM(substring(DIA.[TEXT1], 1, 255)) WHEN DIA.[ProcessType] = ''I'' THEN RTRIM(substring( ''Email From:'' + RTrim([dbo].[ky_GetNameFromEmailAddress](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 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 */ 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 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 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], DEL.[DATE], DEL.[TIME], '''' 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], DEL.[DATE], @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], DEL.[TIME], @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 COMMIT END ELSE -- ELSE (IF (@Continue = 0)) BEGIN ROLLBACK END -- END IF (@Continue = 0) END ' END GO /****** Object: StoredProcedure [dbo].[ky_CreateDiaryStep] Script Date: 10/01/2014 16:17:10 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CreateDiaryStep]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_CreateDiaryStep] (@pStatus Int=0, @pDate varchar(23), @pCaseCode char(17), @pActionCode char(15), @pActionStatus char(3), @pFnCode char(5), @pTeamCode char(5), @pText1 varchar(8000), @pAttachments char(1), @pEmailAddress varchar(150), @pAddressTo varchar(2000), @pccTo varchar(2000), @pbccTo varchar(2000), @pemail char(1), @pSubject varchar(500), @pProcessType char(1), @pTime char(10), @pActionId int=0 output) AS /************************************************************************ * * Create Diary Step * *************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @strcasecode nVarChar(17) DECLARE @intActionID Int DECLARE @intAssignno int DECLARE @pPublish char(1) DECLARE @SubjectLen int DECLARE @CaseCodeLen int DECLARE @FELen int DECLARE @TeamLen int select @SubjectLen = sc.[length] from sysobjects so inner join syscolumns sc on sc.[id] = so.[id] and sc.[name] = ''subject'' where so.[name] = ''diary'' IF (@SubjectLen = 16) SET @SubjectLen = 2000 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'' -- Start Transaction ----------------------------------------------------------------------------------------------------------------------------------------- BEGIN TRAN Key_Tran_01 IF @@error <> 0 GOTO Tran_Fail -- Get CaseCode From Matters Table ----------------------------------------------------------------------------------------------------------------------------------------- SELECT @strCaseCode = (SELECT Top 1 [Code] FROM [dbo].[Matters] WHERE [code] = @pCaseCode) IF @@error <> 0 GOTO Tran_Fail SET @strCaseCode = RTrim(Isnull(@strCaseCode, '''')) Set @pFNCode = RTrim(@pFNCode) Set @pTeamCode = RTrim(@pTeamCode) IF LEN(@strCaseCode) < 2 GOTO Tran_Fail IF LEN(@strCaseCode) > @CaseCodeLen GOTO Tran_Fail IF LEN(@pFNCode) > @FELen GOTO Tran_Fail IF LEN(@pTeamCode) > @TeamLen GOTO Tran_Fail -- Set Publish and Subject ----------------------------------------------------------------------------------------------------------------------------------- Select @pPublish = (Select PUBLISHER from TemplateActions where actioncode=@pActionCode) IF @pPublish IS NULL SELECT @pPublish = ''N'' SET @pSubject = LTrim(RTrim(@pSubject)) IF LEN(@pSubject) > @SubjectLen BEGIN SET @pSubject = Substring(@pSubject, 1, @SubjectLen) END -- Get Next ActionID ----------------------------------------------------------------------------------------------------------------------------------------- --Moved this to the Insert statement to ensure that the creation of a new --Action ID is atomic; even though it would be rare, it is possible --for two people to invoke this procedure at the same time, causing the system --to try and generate more than one Diary entry for the same ActionID, and this --will cause one of these inserts to fail. --SELECT @intActionID = ( SELECT Top 1 -- ActionID -- FROM Diary -- ORDER BY ActionID DESC) -- --IF @@error <> 0 GOTO Tran_Fail -- --IF @intActionID IS NULL SELECT @intActionID = 0 -- --SELECT @intActionID = @intActionID + 1 -- Write Diary Record ----------------------------------------------------------------------------------------------------------------------------------------- INSERT INTO [dbo].[Diary] ([Status], [CaseCode], [ActionCode], [ActionStatus], [FnCode], [TeamCode], [Text1], [DisplayText], [Attachments], [EmailAddress], [AddressTo], [ccTo], [bccTo], [email], [Subject], [Publish], [ActionType], [ProcessType], [DYStartTime], [ActionId], [Date]) SELECT @pStatus, @pCaseCode, @pActionCode, @pActionStatus, @pFnCode, @pTeamCode, convert(text, @pText1), [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), @pText1), ''''), 200), @pAttachments, @pEmailAddress, @pAddressTo, @pccTo, @pbccTo, @pemail, @pSubject, @pPublish, ''E'', @pProcessType, @pTime, IsNull(Max(ActionID), 0) + 1, convert(datetime, @pDate) FROM [dbo].[diary] IF @@error <> 0 GOTO Tran_Fail SELECT @intActionID = MAX(DIA.[ActionID]) FROM [dbo].[Diary] DIA WHERE RTRIM(DIA.[CaseCode]) = RTRIM(@pCaseCode) AND DIA.[DATE] = convert(datetime, @pDate) -- Write the diary delegation record ------------------------------------------------------------ INSERT INTO [DiaryDelegations] ([ACTIONID], [HANDLER], [TEAM], [DATE], [TIME], [DATER], [TIMER], [DUEDATE], [DUETIME], [REVIEW], [STATUS], [OWNER], [DELEGATE], [DELEGATESTATUS], [ActionType], [FromHandler], [ReturnedBy], [DelType]) VALUES(@intActionID, @pFnCode, @pTeamCode, convert(datetime, @pDate), @pTime, 0, '''', @pDate, @pTime, '' '', @pStatus, ''Y'', @pFnCode, 0, ''E'', '' '', '' '', ''Created'') -- Commit Transaction ------------------------------------------------------------------------------------------------------------------ COMMIT TRAN Key_Tran_01 IF @@error <> 0 GOTO Tran_Fail Select @pActionId = @intActionID -- End Of Processing -------------------------------------------------------------------------------------------------------------------- ExitPoint: Return -- Error Processing ------------------------------------------------------------------------------------------------------------------------------------- Tran_Fail: rollback tran Key_Tran_01 Select @pActionId = -1 goto ExitPoint END ' END GO /****** Object: StoredProcedure [dbo].[ky_CreateDiaryStepWS] Script Date: 10/01/2014 16:17:11 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CreateDiaryStepWS]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_CreateDiaryStepWS] (@pStatus Int=0, @pDate varchar(23), @pSentDate varchar(23), @pCaseCode char(17), @pActionCode char(15), @pActionStatus char(3), @pFnCode char(5), @pTeamCode char(5), @pText1 varchar(8000), @pAttachments char(1), @pEmailAddress varchar(150), @pAddressTo varchar(2000), @pccTo varchar(2000), @pbccTo varchar(2000), @pemail char(1), @pSubject varchar(500), @pProcessType char(1), @pTime char(10), @pActionId int=0 output) AS /************************************************************************ * * Create Diary Step WS (?) * *************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @strcasecode nVarChar(17) DECLARE @intActionID Int DECLARE @intAssignno int DECLARE @pPublish char(1) DECLARE @SubjectLen int DECLARE @CaseCodeLen int DECLARE @FELen int DECLARE @TeamLen int DECLARE @dDate datetime SET @dDate = convert(datetime, convert(varchar(4), year(convert(datetime, @pDate))) + right(convert(varchar(3), 100 + month(convert(datetime, @pDate))), 2) + right(convert(varchar(3), 100 + day(convert(datetime, @pDate))), 2)) select @SubjectLen = sc.[length] from sysobjects so inner join syscolumns sc on sc.[id] = so.[id] and sc.[name] = ''subject'' where so.[name] = ''diary'' IF (@SubjectLen = 16) SET @SubjectLen = 2000 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'' -- Start Transaction ----------------------------------------------------------------------------------------------------------------------------------------- BEGIN TRAN Key_Tran_01 IF @@error <> 0 GOTO Tran_Fail -- Get CaseCode From Matters Table ----------------------------------------------------------------------------------------------------------------------------------------- SELECT @strCaseCode = (SELECT Top 1 [Code] From [dbo].[Matters] WHERE [code] = @pCaseCode) IF @@error <> 0 GOTO Tran_Fail SET @strCaseCode = RTrim(Isnull(@strCaseCode, '''')) Set @pFNCode = RTrim(@pFNCode) Set @pTeamCode = RTrim(@pTeamCode) IF LEN(@strCaseCode) < 2 GOTO Tran_Fail IF LEN(@strCaseCode) > @CaseCodeLen GOTO Tran_Fail IF LEN(@pFNCode) > @FELen GOTO Tran_Fail IF LEN(@pTeamCode) > @TeamLen GOTO Tran_Fail -- Set Publish and Subject ----------------------------------------------------------------------------------------------------------------------------------- Select @pPublish = (Select PUBLISHER From TemplateActions where actioncode=@pActionCode) IF @pPublish IS NULL SELECT @pPublish = ''N'' SET @pSubject = LTrim(RTrim(@pSubject)) IF LEN(@pSubject) > @SubjectLen BEGIN SET @pSubject = Substring(@pSubject, 1, @SubjectLen) End -- Get Next ActionID ----------------------------------------------------------------------------------------------------------------------------------------- --Moved this to the Insert statement to ensure that the creation of a new --Action ID is atomic; even though it would be rare, it is possible --for two people to invoke this procedure at the same time, causing the system --to try and generate more than one Diary entry for the same ActionID, and this --will cause one of these inserts to fail. --SELECT @intActionID = ( SELECT Top 1 -- ActionID -- FROM Diary -- ORDER BY ActionID DESC) -- --IF @@error <> 0 GOTO Tran_Fail -- --IF @intActionID IS NULL SELECT @intActionID = 0 -- --SELECT @intActionID = @intActionID + 1 -- Write Diary Record ----------------------------------------------------------------------------------------------------------------------------------------- INSERT INTO [dbo].[Diary] ([Status], [CaseCode], [ActionCode], [ActionStatus], [FnCode], [TeamCode], [Text1], [DisplayText], [Attachments], [EmailAddress], [AddressTo], [ccTo], [bccTo], [email], [Subject], [Publish], [ActionType], [ProcessType], [DYStartTime], [ActionId], [Date], [TxmDate]) SELECT @pStatus, @pCaseCode, @pActionCode, @pActionStatus, @pFnCode, @pTeamCode, convert(text, @pText1), [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), @pText1), ''''), 200), @pAttachments, @pEmailAddress, @pAddressTo, @pccTo, @pbccTo, @pemail, @pSubject, @pPublish, ''E'', @pProcessType, @pTime, IsNull(Max(ActionID), 0) + 1, convert(datetime, @pDate), convert(datetime, @pSentDate) From [dbo].[Diary] IF @@error <> 0 GOTO Tran_Fail SELECT @intActionID = MAX(DIA.[ActionID]) FROM [dbo].[Diary] DIA WHERE RTRIM(DIA.[CaseCode]) = RTRIM(@pCaseCode) AND DIA.[DATE] = convert(datetime, @pDate) -- Write the diary delegation record ------------------------------------------------------------ INSERT INTO [DiaryDelegations] ([ACTIONID], [HANDLER], [TEAM], [DATE], [TIME], [DATER], [TIMER], [DUEDATE], [DUETIME], [REVIEW], [STATUS], [OWNER], [DELEGATE], [DELEGATESTATUS], [ActionType], [FromHandler], [ReturnedBy], [DelType]) VALUES(@intActionID, @pFnCode, @pTeamCode, @dDate, @pTime, 0, '''', @pDate, @pTime, '' '', @pStatus, ''Y'', @pFnCode, 0, ''E'', '' '', '' '', ''Created'') -- Commit Transaction ------------------------------------------------------------------------------------------------------------------ COMMIT TRAN Key_Tran_01 IF @@error <> 0 GOTO Tran_Fail Select @pActionId = @intActionID -- End Of Processing -------------------------------------------------------------------------------------------------------------------- ExitPoint: Return -- Error Processing ------------------------------------------------------------------------------------------------------------------------------------- Tran_Fail: rollback tran Key_Tran_01 Select @pActionId = -1 GoTo ExitPoint /****** Object: View [dbo].[HandlersStats] Script Date: 01/25/2012 15:49:46 ******/ SET ANSI_NULLS ON END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchClientContacts3] Script Date: 10/01/2014 16:19:35 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchClientContacts3]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDSearchClientContacts3 * * Returns a list of Client Contacts matching a search criterion * by name, addres, or phone number * * Includes functionality to exclude matters to which the fee earner has not been authorised * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDSearchClientContacts3] (@fe varchar(10), @search varchar(50), @mattersearch varchar(50), @include int, @expand int, @clientcode varchar(10), @namecode varchar(10), @IncludePhone int, @IncludeEmails int) RETURNS @SR TABLE ([Name] varchar(200), [Address] varchar(200), [Phone] varchar(30), [Mobile] varchar(30), [Fax] varchar(30), [Email] varchar(100), [Case] varchar(20), [Clientcode] varchar(10), [Namecode] varchar(10)) AS BEGIN IF (@include = 0) RETURN DECLARE @fePerm int SELECT @fePerm = ISNULL(JPM.[JPER_Permissions], 0) FROM [dbo].[HandlerOPE] HOP LEFT OUTER JOIN [dbo].[JPermissions] JPM ON JPM.[JPER_UserNumber] = HOP.[OPE_NUMBER] WHERE HOP.[Handler] = @fe SET @search = ''%'' + RTrim(IsNull(@search, '''')) + ''%'' SET @search = replace(@search, ''%%'', ''%'') SET @mattersearch = ''%'' + RTrim(IsNull(@mattersearch, '''')) + ''%'' SET @mattersearch = replace(@mattersearch, ''%%'', ''%'') SET @clientcode = RTrim(IsNull(@clientcode, '''')) IF (@clientcode = '''') SET @clientcode = ''%'' SET @namecode = RTrim(IsNull(@namecode, '''')) IF (@namecode = '''') SET @namecode = ''%'' IF (@expand = 0) BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], CASE WHEN CAS.[TOTAL] = 0 THEN '''' WHEN CAS.[TOTAL] = 1 THEN SIC.[CODE] ELSE convert(varchar(5), CAS.[TOTAL]) + '' Cases'' END AS [Cases], CAN.[CLCODE], '''' FROM (SELECT CLC.[CLCODE], CASE WHEN RTrim(IsNull(CLC.[CLNAMECON], '''')) = '''' THEN RTRIM(IsNull(CNN.[NAME], '''')) ELSE RTrim(IsNull(CLC.[CLNAMECON], '''')) END AS [NAME], CASE WHEN RTrim(IsNull(CLC.[ADDRESS], '''')) = '''' THEN RTRIM(IsNull(CNN.[ADDRESS], '''')) ELSE RTrim(IsNull(CLC.[ADDRESS], '''')) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CLC.[HomePhone], '''')) = '''' THEN RTRIM(IsNull(CNN.[Tel], '''')) ELSE RTrim(IsNull(CLC.[HomePhone], '''')) END AS [PHONENO], RTrim(IsNull(CLC.[Mobile], '''')) AS [MOBILENO], CASE WHEN RTrim(IsNull(CLC.[WorkPhone], '''')) = '''' THEN RTRIM(IsNull(CNN.[Fax], '''')) ELSE RTrim(IsNull(CLC.[WorkPhone], '''')) END AS [FAXNO], CASE WHEN RTrim(IsNull(CLC.[EmailAddress], '''')) = '''' THEN RTRIM(IsNull(CNN.[email], '''')) ELSE RTrim(IsNull(CLC.[EmailAddress], '''')) END AS [EMAIL] FROM [dbo].[ClientContacts] CLC LEFT OUTER JOIN [dbo].[Contacts] CNN ON CNN.[CODE] = CLC.[CLCODE] WHERE ( CLC.[clnamecon] like @search OR CLC.[address] like @search OR ( @IncludePhone = 1 AND CLC.[homephone] like @search) OR ( @IncludePhone = 1 AND CLC.[workphone] like @search) OR ( @IncludePhone = 1 AND CLC.[mobile] like @search) OR ( @IncludeEmails = 1 AND CLC.[EmailAddress] like @search))) CAN CROSS APPLY (SELECT COUNT(1) AS TOTAL FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = CAN.[CLCODE] AND ( MAT.[description] like @mattersearch OR MAT.[Code] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch) AND ( (IsNull(MAT.[Permissions], 0) = 0) OR ((IsNull(MAT.[Permissions], 0) & @fePerm) <> 0))) CAS CROSS APPLY (SELECT TOP 1 MAT.[CODE] FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = CAN.[CLCODE] AND ( MAT.[description] like @mattersearch OR MAT.[Code] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch) AND ( (IsNull(MAT.[Permissions], 0) = 0) OR ((IsNull(MAT.[Permissions], 0) & @fePerm) <> 0))) SIC END ELSE BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], SIC.[Code] AS [Cases], CAN.[CLCODE], '''' FROM (SELECT CLC.[CLCODE], CASE WHEN RTrim(IsNull(CLC.[CLNAMECON], '''')) = '''' THEN RTRIM(IsNull(CNN.[NAME], '''')) ELSE RTrim(IsNull(CLC.[CLNAMECON], '''')) END AS [NAME], CASE WHEN RTrim(IsNull(CLC.[ADDRESS], '''')) = '''' THEN RTRIM(IsNull(CNN.[ADDRESS], '''')) ELSE RTrim(IsNull(CLC.[ADDRESS], '''')) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CLC.[HomePhone], '''')) = '''' THEN RTRIM(IsNull(CNN.[Tel], '''')) ELSE RTrim(IsNull(CLC.[HomePhone], '''')) END AS [PHONENO], RTrim(IsNull(CLC.[Mobile], '''')) AS [MOBILENO], CASE WHEN RTrim(IsNull(CLC.[WorkPhone], '''')) = '''' THEN RTRIM(IsNull(CNN.[Fax], '''')) ELSE RTrim(IsNull(CLC.[WorkPhone], '''')) END AS [FAXNO], CASE WHEN RTrim(IsNull(CLC.[EmailAddress], '''')) = '''' THEN RTRIM(IsNull(CNN.[email], '''')) ELSE RTrim(IsNull(CLC.[EmailAddress], '''')) END AS [EMAIL] FROM [dbo].[ClientContacts] CLC LEFT OUTER JOIN [dbo].[Contacts] CNN ON CNN.[CODE] = CLC.[CLCODE] WHERE ( CLC.[clnamecon] like @search OR CLC.[address] like @search OR ( @IncludePhone = 1 AND CLC.[homephone] like @search) OR ( @IncludePhone = 1 AND CLC.[workphone] like @search) OR ( @IncludePhone = 1 AND CLC.[mobile] like @search) OR ( @IncludeEmails = 1 AND CLC.[EmailAddress] like @search))) CAN CROSS APPLY (SELECT MAT.[CODE] FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = CAN.[CLCODE] AND ( MAT.[description] like @mattersearch OR MAT.[Code] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch) AND ( (IsNull(MAT.[Permissions], 0) = 0) OR ((IsNull(MAT.[Permissions], 0) & @fePerm) <> 0))) SIC END DELETE @SR WHERE [ClientCode] NOT LIKE @clientcode OR [NameCode] NOT LIKE @namecode UPDATE @SR SET [Phone] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Phone]), [Mobile] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Mobile]), [Fax] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Fax]) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchMatterContacts2] Script Date: 10/01/2014 16:19:39 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchMatterContacts2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDSearchMatterContacts2 * * Returns a list of Matter Contacts matching a search criterion * on matter description or user defined fields * * Includes functionality to exclude matters to which the fee earner has not been authorised * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDSearchMatterContacts2] (@fe varchar(10), @search varchar(50), @mattersearch varchar(50), @include int, @expand int, @clientcode varchar(10), @namecode varchar(10), @IncludePhone int) RETURNS @SR TABLE ([Name] varchar(200), [Address] varchar(200), [Phone] varchar(30), [Mobile] varchar(30), [Fax] varchar(30), [Email] varchar(100), [Case] varchar(20), [Clientcode] varchar(10), [Namecode] varchar(10)) AS BEGIN IF (@include = 0) RETURN DECLARE @fePerm int SELECT @fePerm = ISNULL(JPM.[JPER_Permissions], 0) FROM [dbo].[HandlerOPE] HOP LEFT OUTER JOIN [dbo].[JPermissions] JPM ON JPM.[JPER_UserNumber] = HOP.[OPE_NUMBER] WHERE HOP.[Handler] = @fe SET @search = ''%'' + RTrim(IsNull(@search, '''')) + ''%'' SET @search = replace(@search, ''%%'', ''%'') SET @mattersearch = ''%'' + RTrim(IsNull(@mattersearch, '''')) + ''%'' SET @mattersearch = replace(@mattersearch, ''%%'', ''%'') SET @clientcode = RTrim(IsNull(@clientcode, '''')) IF (@clientcode = '''') SET @clientcode = ''%'' SET @namecode = RTrim(IsNull(@namecode, '''')) IF (@namecode = '''') SET @namecode = ''%'' IF (@expand = 0) BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT RES.[NAME], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], CASE WHEN COUNT(1) > 1 THEN convert(varchar(5), COUNT(1)) + '' Cases'' ELSE MAX(RES.[Cases]) END AS [Cases], RES.[ClientCode], '''' FROM (SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], CAN.[Code] AS [Cases], CAN.[ClientCode] AS [ClientCode] FROM (SELECT MAT.[CODE], CNN.[CODE] AS [CLIENTCODE], RTRIM(IsNull(CNN.[NAME], '''')) AS [NAME], RTRIM(IsNull(CNN.[ADDRESS], '''')) AS [ADDRESS], RTRIM(IsNull(CNN.[Tel], '''')) AS [PHONENO], RTRIM(IsNull(CLN.[CLMOBNO], '''')) AS [MOBILENO], RTRIM(IsNull(CNN.[Fax], '''')) AS [FAXNO], RTRIM(IsNull(CNN.[email], '''')) AS [EMAIL] FROM [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[Contacts] CNN ON CNN.[CODE] = MAT.[ClientCode] LEFT OUTER JOIN [dbo].[client] CLN ON CLN.[CLCODE] = MAT.[ClientCode] WHERE ( MAT.[description] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch) AND ( (IsNull(MAT.[Permissions], 0) = 0) OR ((IsNull(MAT.[Permissions], 0) & @fePerm) <> 0)) AND ( CLN.[CLNAME] like @search OR CLN.[CLADDR] like @search OR CLN.[CLTEL] like @search OR CLN.[CLMOBNO] like @search OR CLN.[CLFAX] like @search OR CLN.[CLEMAIL] like @search) AND ( CNN.[Name] like @search OR CNN.[Address] like @search OR CNN.[Tel] like @search OR CNN.[Fax] like @search OR CNN.[email] like @search)) CAN) RES GROUP BY RES.[Name], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], RES.[ClientCode] END ELSE BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], CAN.[Code] AS [Cases], CAN.[ClientCode] AS [ClientCode], '''' FROM (SELECT MAT.[CODE], CNN.[CODE] AS [CLIENTCODE], RTRIM(IsNull(CNN.[NAME], '''')) AS [NAME], RTRIM(IsNull(CNN.[ADDRESS], '''')) AS [ADDRESS], RTRIM(IsNull(CNN.[Tel], '''')) AS [PHONENO], RTRIM(IsNull(CLN.[CLMOBNO], '''')) AS [MOBILENO], RTRIM(IsNull(CNN.[Fax], '''')) AS [FAXNO], RTRIM(IsNull(CNN.[email], '''')) AS [EMAIL] FROM [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[Contacts] CNN ON CNN.[CODE] = MAT.[ClientCode] LEFT OUTER JOIN [dbo].[client] CLN ON CLN.[CLCODE] = MAT.[ClientCode] WHERE ( MAT.[description] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch) AND ( (IsNull(MAT.[Permissions], 0) = 0) OR ((IsNull(MAT.[Permissions], 0) & @fePerm) <> 0)) AND ( CLN.[CLNAME] like @search OR CLN.[CLADDR] like @search OR CLN.[CLTEL] like @search OR CLN.[CLMOBNO] like @search OR CLN.[CLFAX] like @search OR CLN.[CLEMAIL] like @search) AND ( CNN.[Name] like @search OR CNN.[Address] like @search OR CNN.[Tel] like @search OR CNN.[Fax] like @search OR CNN.[email] like @search)) CAN END DELETE @SR WHERE [ClientCode] NOT LIKE @clientcode OR [NameCode] NOT LIKE @namecode UPDATE @SR SET [Phone] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Phone]), [Mobile] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Mobile]), [Fax] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Fax]) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchClientContacts2] Script Date: 10/01/2014 16:19:34 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchClientContacts2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDSearchClientContacts2 * * Returns a list of Client Contacts matching a search criterion * by name, addres, or phone number * * Includes functionality to exclude matters to which the fee earner has not been authorised * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDSearchClientContacts2] (@fe varchar(10), @search varchar(50), @mattersearch varchar(50), @include int, @expand int, @clientcode varchar(10), @namecode varchar(10), @IncludePhone int) RETURNS @SR TABLE ([Name] varchar(200), [Address] varchar(200), [Phone] varchar(30), [Mobile] varchar(30), [Fax] varchar(30), [Email] varchar(100), [Case] varchar(20), [Clientcode] varchar(10), [Namecode] varchar(10)) AS BEGIN IF (@include = 0) RETURN DECLARE @fePerm int SELECT @fePerm = ISNULL(JPM.[JPER_Permissions], 0) FROM [dbo].[HandlerOPE] HOP LEFT OUTER JOIN [dbo].[JPermissions] JPM ON JPM.[JPER_UserNumber] = HOP.[OPE_NUMBER] WHERE HOP.[Handler] = @fe SET @search = ''%'' + RTrim(IsNull(@search, '''')) + ''%'' SET @search = replace(@search, ''%%'', ''%'') SET @mattersearch = ''%'' + RTrim(IsNull(@mattersearch, '''')) + ''%'' SET @mattersearch = replace(@mattersearch, ''%%'', ''%'') SET @clientcode = RTrim(IsNull(@clientcode, '''')) IF (@clientcode = '''') SET @clientcode = ''%'' SET @namecode = RTrim(IsNull(@namecode, '''')) IF (@namecode = '''') SET @namecode = ''%'' IF (@expand = 0) BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], CASE WHEN CAS.[TOTAL] = 0 THEN '''' WHEN CAS.[TOTAL] = 1 THEN SIC.[CODE] ELSE convert(varchar(5), CAS.[TOTAL]) + '' Cases'' END AS [Cases], CAN.[CLCODE], '''' FROM (SELECT CLC.[CLCODE], CASE WHEN RTrim(IsNull(CLC.[CLNAMECON], '''')) = '''' THEN RTRIM(IsNull(CNN.[NAME], '''')) ELSE RTrim(IsNull(CLC.[CLNAMECON], '''')) END AS [NAME], CASE WHEN RTrim(IsNull(CLC.[ADDRESS], '''')) = '''' THEN RTRIM(IsNull(CNN.[ADDRESS], '''')) ELSE RTrim(IsNull(CLC.[ADDRESS], '''')) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CLC.[HomePhone], '''')) = '''' THEN RTRIM(IsNull(CNN.[Tel], '''')) ELSE RTrim(IsNull(CLC.[HomePhone], '''')) END AS [PHONENO], RTrim(IsNull(CLC.[Mobile], '''')) AS [MOBILENO], CASE WHEN RTrim(IsNull(CLC.[WorkPhone], '''')) = '''' THEN RTRIM(IsNull(CNN.[Fax], '''')) ELSE RTrim(IsNull(CLC.[WorkPhone], '''')) END AS [FAXNO], CASE WHEN RTrim(IsNull(CLC.[EmailAddress], '''')) = '''' THEN RTRIM(IsNull(CNN.[email], '''')) ELSE RTrim(IsNull(CLC.[EmailAddress], '''')) END AS [EMAIL] FROM [dbo].[ClientContacts] CLC LEFT OUTER JOIN [dbo].[Contacts] CNN ON CNN.[CODE] = CLC.[CLCODE] WHERE ( CLC.[clnamecon] like @search OR CLC.[address] like @search OR ( @IncludePhone = 1 AND CLC.[homephone] like @search) OR ( @IncludePhone = 1 AND CLC.[workphone] like @search) OR ( @IncludePhone = 1 AND CLC.[mobile] like @search))) CAN CROSS APPLY (SELECT COUNT(1) AS TOTAL FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = CAN.[CLCODE] AND ( MAT.[description] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch) AND ( (IsNull(MAT.[Permissions], 0) = 0) OR ((IsNull(MAT.[Permissions], 0) & @fePerm) <> 0))) CAS CROSS APPLY (SELECT TOP 1 MAT.[CODE] FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = CAN.[CLCODE] AND ( MAT.[description] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch) AND ( (IsNull(MAT.[Permissions], 0) = 0) OR ((IsNull(MAT.[Permissions], 0) & @fePerm) <> 0))) SIC END ELSE BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], SIC.[Code] AS [Cases], CAN.[CLCODE], '''' FROM (SELECT CLC.[CLCODE], CASE WHEN RTrim(IsNull(CLC.[CLNAMECON], '''')) = '''' THEN RTRIM(IsNull(CNN.[NAME], '''')) ELSE RTrim(IsNull(CLC.[CLNAMECON], '''')) END AS [NAME], CASE WHEN RTrim(IsNull(CLC.[ADDRESS], '''')) = '''' THEN RTRIM(IsNull(CNN.[ADDRESS], '''')) ELSE RTrim(IsNull(CLC.[ADDRESS], '''')) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CLC.[HomePhone], '''')) = '''' THEN RTRIM(IsNull(CNN.[Tel], '''')) ELSE RTrim(IsNull(CLC.[HomePhone], '''')) END AS [PHONENO], RTrim(IsNull(CLC.[Mobile], '''')) AS [MOBILENO], CASE WHEN RTrim(IsNull(CLC.[WorkPhone], '''')) = '''' THEN RTRIM(IsNull(CNN.[Fax], '''')) ELSE RTrim(IsNull(CLC.[WorkPhone], '''')) END AS [FAXNO], CASE WHEN RTrim(IsNull(CLC.[EmailAddress], '''')) = '''' THEN RTRIM(IsNull(CNN.[email], '''')) ELSE RTrim(IsNull(CLC.[EmailAddress], '''')) END AS [EMAIL] FROM [dbo].[ClientContacts] CLC LEFT OUTER JOIN [dbo].[Contacts] CNN ON CNN.[CODE] = CLC.[CLCODE] WHERE ( CLC.[clnamecon] like @search OR CLC.[address] like @search OR ( @IncludePhone = 1 AND CLC.[homephone] like @search) OR ( @IncludePhone = 1 AND CLC.[workphone] like @search) OR ( @IncludePhone = 1 AND CLC.[mobile] like @search))) CAN CROSS APPLY (SELECT MAT.[CODE] FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = CAN.[CLCODE] AND ( MAT.[description] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch) AND ( (IsNull(MAT.[Permissions], 0) = 0) OR ((IsNull(MAT.[Permissions], 0) & @fePerm) <> 0))) SIC END DELETE @SR WHERE [ClientCode] NOT LIKE @clientcode OR [NameCode] NOT LIKE @namecode UPDATE @SR SET [Phone] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Phone]), [Mobile] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Mobile]), [Fax] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Fax]) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchMatterContacts3] Script Date: 10/01/2014 16:19:40 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchMatterContacts3]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDSearchMatterContacts3 * * Returns a list of Matter Contacts matching a search criterion * on matter description or user defined fields * * Includes functionality to exclude matters to which the fee earner has not been authorised * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDSearchMatterContacts3] (@fe varchar(10), @search varchar(50), @mattersearch varchar(50), @include int, @expand int, @clientcode varchar(10), @namecode varchar(10), @IncludePhone int, @IncludeEmails int) RETURNS @SR TABLE ([Name] varchar(200), [Address] varchar(200), [Phone] varchar(30), [Mobile] varchar(30), [Fax] varchar(30), [Email] varchar(100), [Case] varchar(20), [Clientcode] varchar(10), [Namecode] varchar(10)) AS BEGIN IF (@include = 0) RETURN DECLARE @fePerm int SELECT @fePerm = ISNULL(JPM.[JPER_Permissions], 0) FROM [dbo].[HandlerOPE] HOP LEFT OUTER JOIN [dbo].[JPermissions] JPM ON JPM.[JPER_UserNumber] = HOP.[OPE_NUMBER] WHERE HOP.[Handler] = @fe SET @search = ''%'' + RTrim(IsNull(@search, '''')) + ''%'' SET @search = replace(@search, ''%%'', ''%'') SET @mattersearch = ''%'' + RTrim(IsNull(@mattersearch, '''')) + ''%'' SET @mattersearch = replace(@mattersearch, ''%%'', ''%'') SET @clientcode = RTrim(IsNull(@clientcode, '''')) IF (@clientcode = '''') SET @clientcode = ''%'' SET @namecode = RTrim(IsNull(@namecode, '''')) IF (@namecode = '''') SET @namecode = ''%'' IF (@expand = 0) BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT RES.[NAME], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], CASE WHEN COUNT(1) > 1 THEN convert(varchar(5), COUNT(1)) + '' Cases'' ELSE MAX(RES.[Cases]) END AS [Cases], RES.[ClientCode], '''' FROM (SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], CAN.[Code] AS [Cases], CAN.[ClientCode] AS [ClientCode] FROM (SELECT MAT.[CODE], CNN.[CODE] AS [CLIENTCODE], RTRIM(IsNull(CNN.[NAME], '''')) AS [NAME], RTRIM(IsNull(CNN.[ADDRESS], '''')) AS [ADDRESS], RTRIM(IsNull(CNN.[Tel], '''')) AS [PHONENO], RTRIM(IsNull(CLN.[CLMOBNO], '''')) AS [MOBILENO], RTRIM(IsNull(CNN.[Fax], '''')) AS [FAXNO], RTRIM(IsNull(CNN.[email], '''')) AS [EMAIL] FROM [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[Contacts] CNN ON CNN.[CODE] = MAT.[ClientCode] LEFT OUTER JOIN [dbo].[client] CLN ON CLN.[CLCODE] = MAT.[ClientCode] WHERE ( MAT.[description] like @mattersearch OR MAT.[Code] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch) AND ( (IsNull(MAT.[Permissions], 0) = 0) OR ((IsNull(MAT.[Permissions], 0) & @fePerm) <> 0)) AND ( CLN.[CLNAME] like @search OR CLN.[CLADDR] like @search OR ( @IncludePhone = 1 and CLN.[CLTEL] like @search) OR ( @IncludePhone = 1 and CLN.[CLMOBNO] like @search) OR ( @IncludePhone = 1 and CLN.[CLFAX] like @search) OR ( @IncludeEmails = 1 and CLN.[CLEMAIL] like @search)) AND ( CNN.[Name] like @search OR CNN.[Address] like @search OR ( @IncludePhone = 1 and CNN.[Tel] like @search) OR ( @IncludePhone = 1 and CNN.[Fax] like @search) OR ( @IncludeEmails = 1 and CNN.[email] like @search))) CAN) RES GROUP BY RES.[Name], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], RES.[ClientCode] END ELSE BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], CAN.[Code] AS [Cases], CAN.[ClientCode] AS [ClientCode], '''' FROM (SELECT MAT.[CODE], CNN.[CODE] AS [CLIENTCODE], RTRIM(IsNull(CNN.[NAME], '''')) AS [NAME], RTRIM(IsNull(CNN.[ADDRESS], '''')) AS [ADDRESS], RTRIM(IsNull(CNN.[Tel], '''')) AS [PHONENO], RTRIM(IsNull(CLN.[CLMOBNO], '''')) AS [MOBILENO], RTRIM(IsNull(CNN.[Fax], '''')) AS [FAXNO], RTRIM(IsNull(CNN.[email], '''')) AS [EMAIL] FROM [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[Contacts] CNN ON CNN.[CODE] = MAT.[ClientCode] LEFT OUTER JOIN [dbo].[client] CLN ON CLN.[CLCODE] = MAT.[ClientCode] WHERE ( MAT.[description] like @mattersearch OR MAT.[Code] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch) AND ( (IsNull(MAT.[Permissions], 0) = 0) OR ((IsNull(MAT.[Permissions], 0) & @fePerm) <> 0)) AND ( CLN.[CLNAME] like @search OR CLN.[CLADDR] like @search OR ( @IncludePhone = 1 and CLN.[CLTEL] like @search) OR ( @IncludePhone = 1 and CLN.[CLMOBNO] like @search) OR ( @IncludePhone = 1 and CLN.[CLFAX] like @search) OR ( @IncludeEmails = 1 and CLN.[CLEMAIL] like @search)) AND ( CNN.[Name] like @search OR CNN.[Address] like @search OR ( @IncludePhone = 1 and CNN.[Tel] like @search) OR ( @IncludePhone = 1 and CNN.[Fax] like @search) OR ( @IncludeEmails = 1 and CNN.[email] like @search))) CAN END DELETE @SR WHERE [ClientCode] NOT LIKE @clientcode OR [NameCode] NOT LIKE @namecode UPDATE @SR SET [Phone] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Phone]), [Mobile] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Mobile]), [Fax] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Fax]) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchContacts3] Script Date: 10/01/2014 16:19:37 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchContacts3]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDSearchContacts3 * * Returns a list of Contacts matching a search criterion * by name, addres, or phone number * * Includes functionality to exclude matters to which the fee earner has not been authorised * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDSearchContacts3] (@fe varchar(10), @search varchar(50), @mattersearch varchar(50), @include int, @expand int, @clientcode varchar(10), @namecode varchar(10), @IncludePhone int, @IncludeEmails int) RETURNS @SR TABLE ([Name] varchar(200), [Address] varchar(200), [Phone] varchar(30), [Mobile] varchar(30), [Fax] varchar(30), [Email] varchar(100), [Case] varchar(20), [Clientcode] varchar(10), [Namecode] varchar(10)) AS BEGIN IF (@include = 0) RETURN DECLARE @fePerm int SELECT @fePerm = ISNULL(JPM.[JPER_Permissions], 0) FROM [dbo].[HandlerOPE] HOP LEFT OUTER JOIN [dbo].[JPermissions] JPM ON JPM.[JPER_UserNumber] = HOP.[OPE_NUMBER] WHERE HOP.[Handler] = @fe SET @search = ''%'' + RTrim(IsNull(@search, '''')) + ''%'' SET @search = replace(@search, ''%%'', ''%'') SET @mattersearch = ''%'' + RTrim(IsNull(@mattersearch, '''')) + ''%'' SET @mattersearch = replace(@mattersearch, ''%%'', ''%'') SET @clientcode = RTrim(IsNull(@clientcode, '''')) IF (@clientcode = '''') SET @clientcode = ''%'' SET @namecode = RTrim(IsNull(@namecode, '''')) IF (@namecode = '''') SET @namecode = ''%'' IF (@expand = 0) BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT CONVERT(varchar(200), RTRIM(ISNULL(CON.[NAME], ''''))) AS [NAME], CASE WHEN RTrim(IsNull(CON.[ADDRESS], '''')) = '''' THEN [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CON.[OtherAddress], 1, 200)) ELSE [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CON.[Address], 1, 200)) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CON.[Tel], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CON.[Tel], ''''))) WHEN RTrim(IsNull(CLI.[CLMOBNO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CON.[Tel], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CON.[Fax], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CLI.[CLMOBNO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CON.[Fax], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CON.[email], ''''))) AS [EMAIL], CASE WHEN CAS.[TOTAL] = 0 THEN '''' WHEN CAS.[TOTAL] = 1 THEN SIC.[CASECODE] ELSE convert(varchar(5), CAS.[TOTAL]) + '' Cases'' END AS [Cases], CON.[Code] AS [ClientCode], '''' AS [NameCode] FROM [dbo].[Contacts] CON INNER JOIN [dbo].[client] CLI ON CLI.[clcode] = CON.[code] CROSS APPLY (SELECT COUNT(1) AS TOTAL FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = CON.[CODE] AND ( MAT.[description] like @mattersearch OR MAT.[Code] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch) AND ( (IsNull(MAT.[Permissions], 0) = 0) OR ((IsNull(MAT.[Permissions], 0) & @fePerm) <> 0))) CAS CROSS APPLY (SELECT TOP 1 MAT.[CODE] AS [CASECODE] FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = CON.[CODE] AND ( MAT.[description] like @mattersearch OR MAT.[Code] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch) AND ( (IsNull(MAT.[Permissions], 0) = 0) OR ((IsNull(MAT.[Permissions], 0) & @fePerm) <> 0))) SIC WHERE ( CON.[name] like @search OR CON.[address] like @search OR ( @IncludePhone = 1 AND CON.[tel] like @search) OR ( @IncludePhone = 1 AND CON.[fax] like @search) OR ( @IncludePhone = 1 AND CLI.[CLMOBNO] like @search) OR ( @IncludeEmails = 1 AND CLI.[CLEMAIL] like @search) OR CON.[otheraddress] like @search) END ELSE BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT CONVERT(varchar(200), RTRIM(ISNULL(CON.[NAME], ''''))) AS [NAME], CASE WHEN RTrim(IsNull(CON.[ADDRESS], '''')) = '''' THEN [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CON.[OtherAddress], 1, 200)) ELSE [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CON.[Address], 1, 200)) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CON.[Tel], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CON.[Tel], ''''))) WHEN RTrim(IsNull(CLI.[CLMOBNO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CLI.[CLMOBNO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CON.[Fax], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CLI.[CLMOBNO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CON.[FAX], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CON.[email], ''''))) AS [EMAIL], SIC.[CaseCode] AS [Cases], CON.[Code] AS [ClientCode], '''' AS [NameCode] FROM [dbo].[Contacts] CON INNER JOIN [dbo].[client] CLI ON CLI.[clcode] = CON.[code] CROSS APPLY (SELECT MAT.[CODE] AS [CASECODE] FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = CON.[CODE] AND ( MAT.[description] like @mattersearch OR MAT.[Code] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch) AND ( (IsNull(MAT.[Permissions], 0) = 0) OR ((IsNull(MAT.[Permissions], 0) & @fePerm) <> 0))) SIC WHERE ( CON.[name] like @search OR CON.[address] like @search OR ( @IncludePhone = 1 AND CON.[tel] like @search) OR ( @IncludePhone = 1 AND CON.[fax] like @search) OR ( @IncludeEmails = 1 AND CON.[email] like @search) OR CON.[otheraddress] like @search) END DELETE @SR WHERE [ClientCode] NOT LIKE @clientcode OR [NameCode] NOT LIKE @namecode UPDATE @SR SET [Phone] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Phone]), [Mobile] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Mobile]), [Fax] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Fax]) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchCaseAssociates2] Script Date: 10/01/2014 16:19:31 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchCaseAssociates2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDSearchCaseAssociates2 * * Returns a list of Case Associates matching a search criterion * by name, addres, or phone number * * Includes functionality to exclude matters to which the fee earner has not been authorised * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDSearchCaseAssociates2] (@fe varchar(10), @search varchar(50), @mattersearch varchar(50), @include int, @expand int, @clientcode varchar(10), @namecode varchar(10), @IncludePhone int) RETURNS @SR TABLE ([Name] varchar(200), [Address] varchar(200), [Phone] varchar(30), [Mobile] varchar(30), [Fax] varchar(30), [Email] varchar(100), [Case] varchar(20), [Clientcode] varchar(10), [Namecode] varchar(10)) AS BEGIN IF (@include = 0) RETURN DECLARE @fePerm int SELECT @fePerm = ISNULL(JPM.[JPER_Permissions], 0) FROM [dbo].[HandlerOPE] HOP LEFT OUTER JOIN [dbo].[JPermissions] JPM ON JPM.[JPER_UserNumber] = HOP.[OPE_NUMBER] WHERE HOP.[Handler] = @fe SET @search = ''%'' + RTrim(IsNull(@search, '''')) + ''%'' SET @search = replace(@search, ''%%'', ''%'') SET @mattersearch = ''%'' + RTrim(IsNull(@mattersearch, '''')) + ''%'' SET @mattersearch = replace(@mattersearch, ''%%'', ''%'') SET @clientcode = RTrim(IsNull(@clientcode, '''')) IF (@clientcode = '''') SET @clientcode = ''%'' SET @namecode = RTrim(IsNull(@namecode, '''')) IF (@namecode = '''') SET @namecode = ''%'' IF (@expand = 0) BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT CASE WHEN RTrim(IsNull(CAN.[NAME], '''')) = '''' THEN CONVERT(varchar(200), RTRIM(ISNULL(CAN.[LEGALNAME], ''''))) ELSE CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) END AS [NAME], CASE WHEN RTrim(IsNull(CAN.[ADDRESS], '''')) = '''' THEN [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[LegalAddress], 1, 200)) ELSE [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], CASE WHEN CAS.[TOTAL] = 0 THEN '''' WHEN CAS.[TOTAL] = 1 THEN SIC.[CASECODE] ELSE convert(varchar(5), CAS.[TOTAL]) + '' Cases'' END AS [Cases], CASE WHEN CAS.[TOTALCLIENTS] = 0 THEN '''' WHEN CAS.[TOTALCLIENTS] = 1 THEN SIC.[ClientCode] ELSE convert(varchar(5), CAS.[TOTALCLIENTS]) + '' Clients'' END AS [ClientCode], CAN.[Code] As [NameCode] FROM [dbo].[CaseAssociatesNames] CAN CROSS APPLY (SELECT COUNT(DISTINCT MA1.[Code]) AS TOTAL, COUNT(DISTINCT MA1.[ClientCode]) AS TOTALCLIENTS FROM [dbo].[casecontacts] CCO INNER JOIN [dbo].[matters] MA1 ON MA1.[Code] = CCO.[CASECODE] AND ( MA1.[description] like @mattersearch OR MA1.[user1] like @mattersearch OR MA1.[user2] like @mattersearch OR MA1.[user3] like @mattersearch) AND ( (IsNull(MA1.[Permissions], 0) = 0) OR ((IsNull(MA1.[Permissions], 0) & @fePerm) <> 0)) AND MA1.ClientCode LIKE @clientcode WHERE CCO.[NAMECODE] = CAN.[CODE]) CAS CROSS APPLY (SELECT TOP 1 CCO.[CASECODE], MA1.[ClientCode] FROM [dbo].[casecontacts] CCO INNER JOIN [dbo].[matters] MA1 ON MA1.[Code] = CCO.[CASECODE] AND ( MA1.[description] like @mattersearch OR MA1.[user1] like @mattersearch OR MA1.[user2] like @mattersearch OR MA1.[user3] like @mattersearch) AND ( (IsNull(MA1.[Permissions], 0) = 0) OR ((IsNull(MA1.[Permissions], 0) & @fePerm) <> 0)) AND MA1.ClientCode LIKE @clientcode WHERE CCO.[NAMECODE] = CAN.[CODE]) SIC WHERE ( CAN.[name] like @search OR CAN.[address] like @search OR ( @IncludePhone = 1 AND CAN.[phoneno] like @search) OR ( @IncludePhone = 1 AND CAN.[faxno] like @search) OR ( @IncludePhone = 1 AND CAN.[mobileno] like @search) OR CAN.[legalname] like @search OR CAN.[legaladdress] like @search) UNION SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], CASE WHEN CAS.[TOTAL] = 0 THEN '''' WHEN CAS.[TOTAL] = 1 THEN SIC.[CASECODE] ELSE convert(varchar(5), CAS.[TOTAL]) + '' Cases'' END AS [Cases], CASE WHEN CAS.[TOTALCLIENTS] = 0 THEN '''' WHEN CAS.[TOTALCLIENTS] = 1 THEN SIC.[ClientCode] ELSE convert(varchar(5), CAS.[TOTALCLIENTS]) + '' Clients'' END AS [ClientCode], CAN.[NameCode] As [NameCode] FROM (SELECT CAC.[NAMECODE], CAC.[KEYID], CASE WHEN RTrim(IsNull(CAC.[NAME], '''')) = '''' THEN RTRIM(IsNull(CNN.[NAME], '''')) ELSE RTrim(IsNull(CAC.[NAME], '''')) END AS [NAME], CASE WHEN RTrim(IsNull(CAC.[ADDRESS], '''')) = '''' THEN RTRIM(IsNull(CNN.[ADDRESS], '''')) ELSE RTrim(IsNull(CAC.[ADDRESS], '''')) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CAC.[PHONE], '''')) = '''' THEN RTRIM(IsNull(CNN.[PHONENO], '''')) ELSE RTrim(IsNull(CAC.[PHONE], '''')) END AS [PHONENO], RTrim(IsNull(CAC.[MOBILE], '''')) AS [MOBILENO], CASE WHEN RTrim(IsNull(CAC.[FAX], '''')) = '''' THEN RTRIM(IsNull(CNN.[FAXNO], '''')) ELSE RTrim(IsNull(CAC.[FAX], '''')) END AS [FAXNO], CASE WHEN RTrim(IsNull(CAC.[EMAIL], '''')) = '''' THEN RTRIM(IsNull(CNN.[EMAIL], '''')) ELSE RTrim(IsNull(CAC.[EMAIL], '''')) END AS [EMAIL] FROM [dbo].[CaseAssociatesContacts] CAC LEFT OUTER JOIN [dbo].[CaseAssociatesNames] CNN ON CNN.[CODE] = CAC.[NAMECODE] WHERE ( CAC.[name] like @search OR CAC.[address] like @search OR ( @IncludePhone = 1 AND CAC.[phone] like @search) OR ( @IncludePhone = 1 AND CAC.[fax] like @search) OR ( @IncludePhone = 1 AND CAC.[mobile] like @search))) CAN CROSS APPLY (SELECT COUNT(DISTINCT MA1.[Code]) AS TOTAL, COUNT(DISTINCT MA1.[ClientCode]) AS TOTALCLIENTS FROM [dbo].[casecontacts] CCO INNER JOIN [dbo].[matters] MA1 ON MA1.[Code] = CCO.[CASECODE] AND ( MA1.[description] like @mattersearch OR MA1.[user1] like @mattersearch OR MA1.[user2] like @mattersearch OR MA1.[user3] like @mattersearch) AND ( (IsNull(MA1.[Permissions], 0) = 0) OR ((IsNull(MA1.[Permissions], 0) & @fePerm) <> 0)) AND MA1.ClientCode LIKE @clientcode WHERE CCO.[NAMECODE] = CAN.[NAMECODE] OR CCO.[AssignedContact] = CAN.[KEYID]) CAS CROSS APPLY (SELECT TOP 1 CCO.[CASECODE], MA1.[ClientCode] FROM [dbo].[casecontacts] CCO INNER JOIN [dbo].[matters] MA1 ON MA1.[Code] = CCO.[CASECODE] AND ( MA1.[description] like @mattersearch OR MA1.[user1] like @mattersearch OR MA1.[user2] like @mattersearch OR MA1.[user3] like @mattersearch) AND ( (IsNull(MA1.[Permissions], 0) = 0) OR ((IsNull(MA1.[Permissions], 0) & @fePerm) <> 0)) AND MA1.ClientCode LIKE @clientcode WHERE CCO.[NAMECODE] = CAN.[NAMECODE] OR CCO.[AssignedContact] = CAN.[KEYID]) SIC END ELSE BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT CASE WHEN RTrim(IsNull(CAN.[NAME], '''')) = '''' THEN CONVERT(varchar(200), RTRIM(ISNULL(CAN.[LEGALNAME], ''''))) ELSE CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) END AS [NAME], CASE WHEN RTrim(IsNull(CAN.[ADDRESS], '''')) = '''' THEN [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[LegalAddress], 1, 200)) ELSE [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], SIC.[CASECODE] AS [Cases], SIC.[ClientCode] AS [ClientCode], CAN.[Code] As [NameCode] FROM [dbo].[CaseAssociatesNames] CAN CROSS APPLY (SELECT CCO.[CASECODE], MA1.[ClientCode] FROM [dbo].[casecontacts] CCO INNER JOIN [dbo].[matters] MA1 ON MA1.[Code] = CCO.[CASECODE] AND ( MA1.[description] like @mattersearch OR MA1.[user1] like @mattersearch OR MA1.[user2] like @mattersearch OR MA1.[user3] like @mattersearch) AND ( (IsNull(MA1.[Permissions], 0) = 0) OR ((IsNull(MA1.[Permissions], 0) & @fePerm) <> 0)) AND MA1.ClientCode LIKE @clientcode WHERE CCO.[NAMECODE] = CAN.[CODE]) SIC WHERE ( CAN.[name] like @search OR CAN.[address] like @search OR ( @IncludePhone = 1 AND CAN.[phoneno] like @search) OR ( @IncludePhone = 1 AND CAN.[faxno] like @search) OR ( @IncludePhone = 1 AND CAN.[mobileno] like @search) OR CAN.[legalname] like @search OR CAN.[legaladdress] like @search) UNION SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], SIC.[CASECODE] AS [Cases], SIC.[ClientCode] AS [ClientCode], CAN.[NameCode] As [NameCode] FROM (SELECT CAC.[NAMECODE], CAC.[KEYID], CASE WHEN RTrim(IsNull(CAC.[NAME], '''')) = '''' THEN RTRIM(IsNull(CNN.[NAME], '''')) ELSE RTrim(IsNull(CAC.[NAME], '''')) END AS [NAME], CASE WHEN RTrim(IsNull(CAC.[ADDRESS], '''')) = '''' THEN RTRIM(IsNull(CNN.[ADDRESS], '''')) ELSE RTrim(IsNull(CAC.[ADDRESS], '''')) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CAC.[PHONE], '''')) = '''' THEN RTRIM(IsNull(CNN.[PHONENO], '''')) ELSE RTrim(IsNull(CAC.[PHONE], '''')) END AS [PHONENO], RTrim(IsNull(CAC.[MOBILE], '''')) AS [MOBILENO], CASE WHEN RTrim(IsNull(CAC.[FAX], '''')) = '''' THEN RTRIM(IsNull(CNN.[FAXNO], '''')) ELSE RTrim(IsNull(CAC.[FAX], '''')) END AS [FAXNO], CASE WHEN RTrim(IsNull(CAC.[EMAIL], '''')) = '''' THEN RTRIM(IsNull(CNN.[EMAIL], '''')) ELSE RTrim(IsNull(CAC.[EMAIL], '''')) END AS [EMAIL] FROM [dbo].[CaseAssociatesContacts] CAC LEFT OUTER JOIN [dbo].[CaseAssociatesNames] CNN ON CNN.[CODE] = CAC.[NAMECODE] WHERE ( CAC.[name] like @search OR CAC.[address] like @search OR ( @IncludePhone = 1 AND CAC.[phone] like @search) OR ( @IncludePhone = 1 AND CAC.[fax] like @search) OR ( @IncludePhone = 1 AND CAC.[mobile] like @search))) CAN CROSS APPLY (SELECT CCO.[CASECODE], MA1.[ClientCode] FROM [dbo].[casecontacts] CCO INNER JOIN [dbo].[matters] MA1 ON MA1.[Code] = CCO.[CASECODE] AND ( MA1.[description] like @mattersearch OR MA1.[user1] like @mattersearch OR MA1.[user2] like @mattersearch OR MA1.[user3] like @mattersearch) AND ( (IsNull(MA1.[Permissions], 0) = 0) OR ((IsNull(MA1.[Permissions], 0) & @fePerm) <> 0)) AND MA1.ClientCode LIKE @clientcode WHERE CCO.[NAMECODE] = CAN.[NAMECODE] OR CCO.[AssignedContact] = CAN.[KEYID]) SIC END DELETE @SR WHERE [NameCode] NOT LIKE @namecode UPDATE @SR SET [Phone] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Phone]), [Mobile] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Mobile]), [Fax] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Fax]) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchCaseAssociates3] Script Date: 10/01/2014 16:19:32 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchCaseAssociates3]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDSearchCaseAssociates3 * * Returns a list of Case Associates matching a search criterion * by name, addres, or phone number * * Includes functionality to exclude matters to which the fee earner has not been authorised * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDSearchCaseAssociates3] (@fe varchar(10), @search varchar(50), @mattersearch varchar(50), @include int, @expand int, @clientcode varchar(10), @namecode varchar(10), @IncludePhone int, @IncludeEmails int) RETURNS @SR TABLE ([Name] varchar(200), [Address] varchar(200), [Phone] varchar(30), [Mobile] varchar(30), [Fax] varchar(30), [Email] varchar(100), [Case] varchar(20), [Clientcode] varchar(10), [Namecode] varchar(10)) AS BEGIN IF (@include = 0) RETURN DECLARE @fePerm int SELECT @fePerm = ISNULL(JPM.[JPER_Permissions], 0) FROM [dbo].[HandlerOPE] HOP LEFT OUTER JOIN [dbo].[JPermissions] JPM ON JPM.[JPER_UserNumber] = HOP.[OPE_NUMBER] WHERE HOP.[Handler] = @fe SET @search = ''%'' + RTrim(IsNull(@search, '''')) + ''%'' SET @search = replace(@search, ''%%'', ''%'') SET @mattersearch = ''%'' + RTrim(IsNull(@mattersearch, '''')) + ''%'' SET @mattersearch = replace(@mattersearch, ''%%'', ''%'') SET @clientcode = RTrim(IsNull(@clientcode, '''')) IF (@clientcode = '''') SET @clientcode = ''%'' SET @namecode = RTrim(IsNull(@namecode, '''')) IF (@namecode = '''') SET @namecode = ''%'' IF (@expand = 0) BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT CASE WHEN RTrim(IsNull(CAN.[NAME], '''')) = '''' THEN CONVERT(varchar(200), RTRIM(ISNULL(CAN.[LEGALNAME], ''''))) ELSE CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) END AS [NAME], CASE WHEN RTrim(IsNull(CAN.[ADDRESS], '''')) = '''' THEN [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[LegalAddress], 1, 200)) ELSE [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], CASE WHEN CAS.[TOTAL] = 0 THEN '''' WHEN CAS.[TOTAL] = 1 THEN SIC.[CASECODE] ELSE convert(varchar(5), CAS.[TOTAL]) + '' Cases'' END AS [Cases], CASE WHEN CAS.[TOTALCLIENTS] = 0 THEN '''' WHEN CAS.[TOTALCLIENTS] = 1 THEN SIC.[ClientCode] ELSE convert(varchar(5), CAS.[TOTALCLIENTS]) + '' Clients'' END AS [ClientCode], CAN.[Code] As [NameCode] FROM [dbo].[CaseAssociatesNames] CAN CROSS APPLY (SELECT COUNT(DISTINCT MA1.[Code]) AS TOTAL, COUNT(DISTINCT MA1.[ClientCode]) AS TOTALCLIENTS FROM [dbo].[casecontacts] CCO INNER JOIN [dbo].[matters] MA1 ON MA1.[Code] = CCO.[CASECODE] AND ( MA1.[description] like @mattersearch OR MA1.[Code] like @mattersearch OR MA1.[user1] like @mattersearch OR MA1.[user2] like @mattersearch OR MA1.[user3] like @mattersearch) AND ( (IsNull(MA1.[Permissions], 0) = 0) OR ((IsNull(MA1.[Permissions], 0) & @fePerm) <> 0)) AND MA1.ClientCode LIKE @clientcode WHERE CCO.[NAMECODE] = CAN.[CODE]) CAS CROSS APPLY (SELECT TOP 1 CCO.[CASECODE], MA1.[ClientCode] FROM [dbo].[casecontacts] CCO INNER JOIN [dbo].[matters] MA1 ON MA1.[Code] = CCO.[CASECODE] AND ( MA1.[description] like @mattersearch OR MA1.[Code] like @mattersearch OR MA1.[user1] like @mattersearch OR MA1.[user2] like @mattersearch OR MA1.[user3] like @mattersearch) AND ( (IsNull(MA1.[Permissions], 0) = 0) OR ((IsNull(MA1.[Permissions], 0) & @fePerm) <> 0)) AND MA1.ClientCode LIKE @clientcode WHERE CCO.[NAMECODE] = CAN.[CODE]) SIC WHERE ( CAN.[name] like @search OR CAN.[address] like @search OR ( @IncludePhone = 1 AND CAN.[phoneno] like @search) OR ( @IncludePhone = 1 AND CAN.[faxno] like @search) OR ( @IncludePhone = 1 AND CAN.[mobileno] like @search) OR ( @IncludeEmails = 1 AND CAN.[EMAIL] like @search) OR CAN.[legalname] like @search OR CAN.[legaladdress] like @search) UNION SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], CASE WHEN CAS.[TOTAL] = 0 THEN '''' WHEN CAS.[TOTAL] = 1 THEN SIC.[CASECODE] ELSE convert(varchar(5), CAS.[TOTAL]) + '' Cases'' END AS [Cases], CASE WHEN CAS.[TOTALCLIENTS] = 0 THEN '''' WHEN CAS.[TOTALCLIENTS] = 1 THEN SIC.[ClientCode] ELSE convert(varchar(5), CAS.[TOTALCLIENTS]) + '' Clients'' END AS [ClientCode], CAN.[NameCode] As [NameCode] FROM (SELECT CAC.[NAMECODE], CAC.[KEYID], CASE WHEN RTrim(IsNull(CAC.[NAME], '''')) = '''' THEN RTRIM(IsNull(CNN.[NAME], '''')) ELSE RTrim(IsNull(CAC.[NAME], '''')) END AS [NAME], CASE WHEN RTrim(IsNull(CAC.[ADDRESS], '''')) = '''' THEN RTRIM(IsNull(CNN.[ADDRESS], '''')) ELSE RTrim(IsNull(CAC.[ADDRESS], '''')) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CAC.[PHONE], '''')) = '''' THEN RTRIM(IsNull(CNN.[PHONENO], '''')) ELSE RTrim(IsNull(CAC.[PHONE], '''')) END AS [PHONENO], RTrim(IsNull(CAC.[MOBILE], '''')) AS [MOBILENO], CASE WHEN RTrim(IsNull(CAC.[FAX], '''')) = '''' THEN RTRIM(IsNull(CNN.[FAXNO], '''')) ELSE RTrim(IsNull(CAC.[FAX], '''')) END AS [FAXNO], CASE WHEN RTrim(IsNull(CAC.[EMAIL], '''')) = '''' THEN RTRIM(IsNull(CNN.[EMAIL], '''')) ELSE RTrim(IsNull(CAC.[EMAIL], '''')) END AS [EMAIL] FROM [dbo].[CaseAssociatesContacts] CAC LEFT OUTER JOIN [dbo].[CaseAssociatesNames] CNN ON CNN.[CODE] = CAC.[NAMECODE] WHERE ( CAC.[name] like @search OR CAC.[address] like @search OR ( @IncludePhone = 1 AND CAC.[phone] like @search) OR ( @IncludePhone = 1 AND CAC.[fax] like @search) OR ( @IncludePhone = 1 AND CAC.[mobile] like @search) OR ( @IncludeEmails = 1 AND CAC.[EMAIL] like @search))) CAN CROSS APPLY (SELECT COUNT(DISTINCT MA1.[Code]) AS TOTAL, COUNT(DISTINCT MA1.[ClientCode]) AS TOTALCLIENTS FROM [dbo].[casecontacts] CCO INNER JOIN [dbo].[matters] MA1 ON MA1.[Code] = CCO.[CASECODE] AND ( MA1.[description] like @mattersearch OR MA1.[Code] like @mattersearch OR MA1.[user1] like @mattersearch OR MA1.[user2] like @mattersearch OR MA1.[user3] like @mattersearch) AND ( (IsNull(MA1.[Permissions], 0) = 0) OR ((IsNull(MA1.[Permissions], 0) & @fePerm) <> 0)) AND MA1.ClientCode LIKE @clientcode WHERE CCO.[NAMECODE] = CAN.[NAMECODE] OR CCO.[AssignedContact] = CAN.[KEYID]) CAS CROSS APPLY (SELECT TOP 1 CCO.[CASECODE], MA1.[ClientCode] FROM [dbo].[casecontacts] CCO INNER JOIN [dbo].[matters] MA1 ON MA1.[Code] = CCO.[CASECODE] AND ( MA1.[description] like @mattersearch OR MA1.[Code] like @mattersearch OR MA1.[user1] like @mattersearch OR MA1.[user2] like @mattersearch OR MA1.[user3] like @mattersearch) AND ( (IsNull(MA1.[Permissions], 0) = 0) OR ((IsNull(MA1.[Permissions], 0) & @fePerm) <> 0)) AND MA1.ClientCode LIKE @clientcode WHERE CCO.[NAMECODE] = CAN.[NAMECODE] OR CCO.[AssignedContact] = CAN.[KEYID]) SIC END ELSE BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT CASE WHEN RTrim(IsNull(CAN.[NAME], '''')) = '''' THEN CONVERT(varchar(200), RTRIM(ISNULL(CAN.[LEGALNAME], ''''))) ELSE CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) END AS [NAME], CASE WHEN RTrim(IsNull(CAN.[ADDRESS], '''')) = '''' THEN [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[LegalAddress], 1, 200)) ELSE [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], SIC.[CASECODE] AS [Cases], SIC.[ClientCode] AS [ClientCode], CAN.[Code] As [NameCode] FROM [dbo].[CaseAssociatesNames] CAN CROSS APPLY (SELECT CCO.[CASECODE], MA1.[ClientCode] FROM [dbo].[casecontacts] CCO INNER JOIN [dbo].[matters] MA1 ON MA1.[Code] = CCO.[CASECODE] AND ( MA1.[description] like @mattersearch OR MA1.[Code] like @mattersearch OR MA1.[user1] like @mattersearch OR MA1.[user2] like @mattersearch OR MA1.[user3] like @mattersearch) AND ( (IsNull(MA1.[Permissions], 0) = 0) OR ((IsNull(MA1.[Permissions], 0) & @fePerm) <> 0)) AND MA1.ClientCode LIKE @clientcode WHERE CCO.[NAMECODE] = CAN.[CODE]) SIC WHERE ( CAN.[name] like @search OR CAN.[address] like @search OR ( @IncludePhone = 1 AND CAN.[phoneno] like @search) OR ( @IncludePhone = 1 AND CAN.[faxno] like @search) OR ( @IncludePhone = 1 AND CAN.[mobileno] like @search) OR ( @IncludeEmails = 1 AND CAN.[EMAIL] like @search) OR CAN.[legalname] like @search OR CAN.[legaladdress] like @search) UNION SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], SIC.[CASECODE] AS [Cases], SIC.[ClientCode] AS [ClientCode], CAN.[NameCode] As [NameCode] FROM (SELECT CAC.[NAMECODE], CAC.[KEYID], CASE WHEN RTrim(IsNull(CAC.[NAME], '''')) = '''' THEN RTRIM(IsNull(CNN.[NAME], '''')) ELSE RTrim(IsNull(CAC.[NAME], '''')) END AS [NAME], CASE WHEN RTrim(IsNull(CAC.[ADDRESS], '''')) = '''' THEN RTRIM(IsNull(CNN.[ADDRESS], '''')) ELSE RTrim(IsNull(CAC.[ADDRESS], '''')) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CAC.[PHONE], '''')) = '''' THEN RTRIM(IsNull(CNN.[PHONENO], '''')) ELSE RTrim(IsNull(CAC.[PHONE], '''')) END AS [PHONENO], RTrim(IsNull(CAC.[MOBILE], '''')) AS [MOBILENO], CASE WHEN RTrim(IsNull(CAC.[FAX], '''')) = '''' THEN RTRIM(IsNull(CNN.[FAXNO], '''')) ELSE RTrim(IsNull(CAC.[FAX], '''')) END AS [FAXNO], CASE WHEN RTrim(IsNull(CAC.[EMAIL], '''')) = '''' THEN RTRIM(IsNull(CNN.[EMAIL], '''')) ELSE RTrim(IsNull(CAC.[EMAIL], '''')) END AS [EMAIL] FROM [dbo].[CaseAssociatesContacts] CAC LEFT OUTER JOIN [dbo].[CaseAssociatesNames] CNN ON CNN.[CODE] = CAC.[NAMECODE] WHERE ( CAC.[name] like @search OR CAC.[address] like @search OR ( @IncludePhone = 1 AND CAC.[phone] like @search) OR ( @IncludePhone = 1 AND CAC.[fax] like @search) OR ( @IncludePhone = 1 AND CAC.[mobile] like @search) OR ( @IncludeEmails = 1 AND CAC.[EMAIL] like @search))) CAN CROSS APPLY (SELECT CCO.[CASECODE], MA1.[ClientCode] FROM [dbo].[casecontacts] CCO INNER JOIN [dbo].[matters] MA1 ON MA1.[Code] = CCO.[CASECODE] AND ( MA1.[description] like @mattersearch OR MA1.[Code] like @mattersearch OR MA1.[user1] like @mattersearch OR MA1.[user2] like @mattersearch OR MA1.[user3] like @mattersearch) AND ( (IsNull(MA1.[Permissions], 0) = 0) OR ((IsNull(MA1.[Permissions], 0) & @fePerm) <> 0)) AND MA1.ClientCode LIKE @clientcode WHERE CCO.[NAMECODE] = CAN.[NAMECODE] OR CCO.[AssignedContact] = CAN.[KEYID]) SIC END DELETE @SR WHERE [NameCode] NOT LIKE @namecode UPDATE @SR SET [Phone] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Phone]), [Mobile] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Mobile]), [Fax] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Fax]) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDMatterList2] Script Date: 10/01/2014 16:19:27 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDMatterList2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDMatterList2 * * Lists cases. Exclude cases that the Handler is not authorised to see. * With support for Paging. * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDMatterList2] (@fecode varchar(10), @startno int, @count int, @search varchar(50), @order int) RETURNS @ML TABLE ([matid] int IDENTITY(1, 1), [CaseCode] varchar(20), [FECode] varchar(10), [HandlerName] varchar(100), [ContactName] varchar(100), [Description] varchar(200), [Colour] varchar(10), [ColourDescription] varchar(50), [User1] varchar(50), [User2] varchar(50), [User3] varchar(50), [LastAccessed] varchar(21), [TDBTime] varchar(5), [TDBStopwatchRunning] int, [TDBRecordID] int) AS BEGIN DECLARE @JPER int SELECT @JPER = CASE WHEN IsNull(JP.[JPER_Permissions], 0) = 0 THEN 0 ELSE JP.[JPER_Permissions] END FROM [dbo].[HandlerOPE] OPE LEFT OUTER JOIN [dbo].[JPermissions] JP ON JP.[JPER_UserNumber] = OPE.[OPE_NUMBER] WHERE OPE.[Handler] = @fecode SET @JPER = ISNULL(@JPER, 0) SET @search = ''%'' + RTrim(IsNull(@Search, '''')) + ''%'' SET @search = Replace(@search, ''%%'', ''%'') /* @order = display order 1 = by Code 2 = by Most Recent First */ /* This avoids unnecessary nesting as we can subsequently break out of each IF statement. SQL Server doesn''t have a "switch" construct. */ WHILE (1 = 1) BEGIN IF (@order = 3) BEGIN INSERT INTO @ML (CASECODE) SELECT RTRIM(IsNull(MAT.[CODE], '''')) AS [CASECODE] FROM [dbo].[MATTERS] MAT INNER JOIN [dbo].[contacts] CON ON CON.[Code] = MAT.[ClientCode] INNER JOIN ( SELECT RL.[DateField], RL.[MATTER] FROM [dbo].[RecentMatterList] RL WHERE RL.[FEE] = @fecode) RML ON RML.[MATTER] = MAT.[CODE] WHERE ( MAT.[Description] LIKE @search OR CON.[NAME] LIKE @search) AND ( (IsNull(MAT.[Permissions], 0) = 0) OR ((IsNull(MAT.[Permissions], 0) & @JPER) <> 0)) ORDER BY IsNull(RML.[DateField], convert(datetime, 0)) desc, MAT.[CODE] ASC INSERT INTO @ML (CASECODE) SELECT TOP (@startno + @count) RTRIM(IsNull(MAT.[CODE], '''')) AS [CASECODE] FROM [dbo].[MATTERS] MAT INNER JOIN [dbo].[contacts] CON ON CON.[Code] = MAT.[ClientCode] LEFT OUTER JOIN ( SELECT RL.[DateField], RL.[MATTER] FROM [dbo].[RecentMatterList] RL WHERE RL.[FEE] = @fecode) RML ON RML.[MATTER] = MAT.[CODE] WHERE ( MAT.[Description] LIKE @search OR CON.[NAME] LIKE @search) AND ( (IsNull(MAT.[Permissions], 0) = 0) OR ((IsNull(MAT.[Permissions], 0) & @JPER) <> 0)) AND RML.[MATTER] IS NULL ORDER BY MAT.[CODE] ASC BREAK END IF (@order = 1) BEGIN INSERT INTO @ML (CASECODE) SELECT TOP (@startno + @count) RTRIM(IsNull(MAT.[CODE], '''')) AS [CASECODE] FROM [dbo].[MATTERS] MAT INNER JOIN [dbo].[contacts] CON ON CON.[Code] = MAT.[ClientCode] WHERE ( MAT.[Description] LIKE @search OR CON.[NAME] LIKE @search) AND ( (IsNull(MAT.[Permissions], 0) = 0) OR ((IsNull(MAT.[Permissions], 0) & @JPER) <> 0)) ORDER BY MAT.[CODE] ASC BREAK END IF (@order = 2) BEGIN INSERT INTO @ML (CASECODE) SELECT TOP (@startno + @count) RTRIM(IsNull(MAT.[CODE], '''')) AS [CASECODE] FROM [dbo].[MATTERS] MAT INNER JOIN [dbo].[contacts] CON ON CON.[Code] = MAT.[ClientCode] WHERE ( MAT.[Description] LIKE @search OR CON.[NAME] LIKE @search) AND ( (IsNull(MAT.[Permissions], 0) = 0) OR ((IsNull(MAT.[Permissions], 0) & @JPER) <> 0)) ORDER BY MAT.[Started] DESC BREAK END END DELETE @ML WHERE [matid] < @startno DELETE @ML WHERE [matid] > (@startno + @count - 1) UPDATE ML SET ML.[DESCRIPTION] = RTrim(IsNull(MAT.[DESCRIPTION], '''')), ML.[ContactName] = RTrim(IsNull(CON.[Name], '''')), ML.[FECode] = RTrim(IsNull(MAT.[FECode], '''')), ML.[HandlerName] = RTrim(IsNull(HAN.[Name], '''')), ML.[Colour] = RTrim(IsNull(MAT.[FileColour], '''')), ML.[ColourDescription] = RTrim(IsNull(COL.[COLOURDESC], '''')), ML.[User1] = RTRIM(ISNULL(MAT.[User1], '''')), ML.[User2] = RTRIM(ISNULL(MAT.[User2], '''')), ML.[User3] = RTRIM(ISNULL(MAT.[User3], '''')), ML.[LastAccessed] = CASE WHEN IsNull(RML.[DateField], convert(datetime, 0)) = convert(datetime, 0) THEN '''' ELSE convert(varchar, RML.[DateField], 106) + '' '' + convert(varchar(5), RML.[DateField], 108) END FROM @ML ML INNER JOIN [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[FileColours] COL ON COL.[COLOURCODE] = MAT.[FileColour] LEFT OUTER JOIN [dbo].[RecentMatterList] RML ON RML.[FEE] = @FECode 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] ON MAT.[CODE] = ML.[CASECODE] UPDATE ML SET ML.[TDBTime] = right(''00'' + convert(varchar(2), floor(TDB.[TIME] / 60)), 2) + '':'' + right(''00'' + convert(varchar(2), TDB.[TIME] - (60 * floor(TDB.[TIME] / 60))), 2), ML.[TDBStopwatchRunning] = CASE WHEN TDB.[StopwatchStartTime] IS null THEN 0 ELSE 1 END, ML.[TDBRecordID] = CASE WHEN TDB.[RECORDID] IS null THEN 0 ELSE TDB.[RECORDID] END FROM @ML ML LEFT OUTER JOIN [dbo].[TimeDayBook] TDB ON TDB.[MATTER] = ML.[CaseCode] AND TDB.[FEEEARN] = @fecode RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchContacts2] Script Date: 10/01/2014 16:19:36 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchContacts2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDSearchContacts2 * * Returns a list of Contacts matching a search criterion * by name, addres, or phone number * * Includes functionality to exclude matters to which the fee earner has not been authorised * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDSearchContacts2] (@fe varchar(10), @search varchar(50), @mattersearch varchar(50), @include int, @expand int, @clientcode varchar(10), @namecode varchar(10), @IncludePhone int) RETURNS @SR TABLE ([Name] varchar(200), [Address] varchar(200), [Phone] varchar(30), [Mobile] varchar(30), [Fax] varchar(30), [Email] varchar(100), [Case] varchar(20), [Clientcode] varchar(10), [Namecode] varchar(10)) AS BEGIN IF (@include = 0) RETURN DECLARE @fePerm int SELECT @fePerm = ISNULL(JPM.[JPER_Permissions], 0) FROM [dbo].[HandlerOPE] HOP LEFT OUTER JOIN [dbo].[JPermissions] JPM ON JPM.[JPER_UserNumber] = HOP.[OPE_NUMBER] WHERE HOP.[Handler] = @fe SET @search = ''%'' + RTrim(IsNull(@search, '''')) + ''%'' SET @search = replace(@search, ''%%'', ''%'') SET @mattersearch = ''%'' + RTrim(IsNull(@mattersearch, '''')) + ''%'' SET @mattersearch = replace(@mattersearch, ''%%'', ''%'') SET @clientcode = RTrim(IsNull(@clientcode, '''')) IF (@clientcode = '''') SET @clientcode = ''%'' SET @namecode = RTrim(IsNull(@namecode, '''')) IF (@namecode = '''') SET @namecode = ''%'' IF (@expand = 0) BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT CONVERT(varchar(200), RTRIM(ISNULL(CON.[NAME], ''''))) AS [NAME], CASE WHEN RTrim(IsNull(CON.[ADDRESS], '''')) = '''' THEN [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CON.[OtherAddress], 1, 200)) ELSE [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CON.[Address], 1, 200)) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CON.[Tel], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CON.[Tel], ''''))) WHEN RTrim(IsNull(CLI.[CLMOBNO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CON.[Tel], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CON.[Fax], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CLI.[CLMOBNO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CON.[Fax], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CON.[email], ''''))) AS [EMAIL], CASE WHEN CAS.[TOTAL] = 0 THEN '''' WHEN CAS.[TOTAL] = 1 THEN SIC.[CASECODE] ELSE convert(varchar(5), CAS.[TOTAL]) + '' Cases'' END AS [Cases], CON.[Code] AS [ClientCode], '''' AS [NameCode] FROM [dbo].[Contacts] CON INNER JOIN [dbo].[client] CLI ON CLI.[clcode] = CON.[code] CROSS APPLY (SELECT COUNT(1) AS TOTAL FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = CON.[CODE] AND ( MAT.[description] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch) AND ( (IsNull(MAT.[Permissions], 0) = 0) OR ((IsNull(MAT.[Permissions], 0) & @fePerm) <> 0))) CAS CROSS APPLY (SELECT TOP 1 MAT.[CODE] AS [CASECODE] FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = CON.[CODE] AND ( MAT.[description] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch) AND ( (IsNull(MAT.[Permissions], 0) = 0) OR ((IsNull(MAT.[Permissions], 0) & @fePerm) <> 0))) SIC WHERE ( CON.[name] like @search OR CON.[address] like @search OR ( @IncludePhone = 1 AND CON.[tel] like @search) OR ( @IncludePhone = 1 AND CON.[fax] like @search) OR ( @IncludePhone = 1 AND CLI.[CLMOBNO] like @search) OR CON.[otheraddress] like @search) END ELSE BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT CONVERT(varchar(200), RTRIM(ISNULL(CON.[NAME], ''''))) AS [NAME], CASE WHEN RTrim(IsNull(CON.[ADDRESS], '''')) = '''' THEN [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CON.[OtherAddress], 1, 200)) ELSE [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CON.[Address], 1, 200)) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CON.[Tel], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CON.[Tel], ''''))) WHEN RTrim(IsNull(CLI.[CLMOBNO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CLI.[CLMOBNO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CON.[Fax], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CLI.[CLMOBNO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CON.[FAX], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CON.[email], ''''))) AS [EMAIL], SIC.[CaseCode] AS [Cases], CON.[Code] AS [ClientCode], '''' AS [NameCode] FROM [dbo].[Contacts] CON INNER JOIN [dbo].[client] CLI ON CLI.[clcode] = CON.[code] CROSS APPLY (SELECT MAT.[CODE] AS [CASECODE] FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = CON.[CODE] AND ( MAT.[description] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch) AND ( (IsNull(MAT.[Permissions], 0) = 0) OR ((IsNull(MAT.[Permissions], 0) & @fePerm) <> 0))) SIC WHERE ( CON.[name] like @search OR CON.[address] like @search OR ( @IncludePhone = 1 AND CON.[tel] like @search) OR ( @IncludePhone = 1 AND CON.[fax] like @search) OR CON.[otheraddress] like @search) END DELETE @SR WHERE [ClientCode] NOT LIKE @clientcode OR [NameCode] NOT LIKE @namecode UPDATE @SR SET [Phone] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Phone]), [Mobile] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Mobile]), [Fax] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Fax]) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDMatSearch] Script Date: 10/01/2014 16:19:26 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDMatSearch]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[ky_WDMatSearch] (@SEARCH VARCHAR(100), @feeearn VARCHAR(10), @start int, @pagesize int) RETURNS @MatRes TABLE ([id] int identity(1, 1), [CODE] varchar(20), [NAME] varchar(200), [Description] varchar(300), [FECode] varchar(10), [Tel] varchar(30), [EMAIL] varchar(100), [TDBTime] varchar(10), [TDBStopwatchRunning] int, [TDBRecordID] int) AS BEGIN DECLARE @fePerm int SELECT @fePerm = ISNULL(JPM.[JPER_Permissions], 0) FROM [dbo].[HandlerOPE] HOP LEFT OUTER JOIN [dbo].[JPermissions] JPM ON JPM.[JPER_UserNumber] = HOP.[OPE_NUMBER] WHERE HOP.[HANDLER] = @feeearn INSERT INTO @MatRes ([CODE], [NAME], [Description], [FECode], [Tel], [EMAIL], [TDBTime], [TDBStopwatchRunning], [TDBRecordID]) SELECT RTRIM(ISNULL(MAT.[CODE], '''')) AS [CODE], RTRIM(ISNULL(CON.[NAME], '''')) AS [NAME], RTRIM(ISNULL(MAT.[Description], '''')) AS [Description], RTRIM(ISNULL(MAT.[FECode], '''')) AS [FECode], RTRIM(ISNULL(CON.[Tel], '''')) AS [Tel], RTRIM(ISNULL(CON.[EMAIL], '''')) AS [EMAIL], CASE WHEN ISNULL(TDB.[TIME], 0) = 0 THEN '''' ELSE CASE WHEN ISNULL(TDB.[TIME], 0) < 0 THEN ''-'' ELSE '''' END + RIGHT(''00'' + convert(VARCHAR(2), FLOOR(ABS(ISNULL(TDB.[TIME], 0)) / 60)), 2) + '':'' + RIGHT(''00'' + convert(VARCHAR(2), ABS(ISNULL(TDB.[TIME], 0)) - (60 * FLOOR(ABS(ISNULL(TDB.[TIME], 0)) / 60))), 2) END AS [TDBTime], CASE WHEN TDB.[StopwatchStartTime] IS NULL THEN 0 ELSE 1 END AS [TDBStopwatchRunning], CASE WHEN TDB.[RECORDID] IS NULL THEN 0 ELSE TDB.[RECORDID] END AS [TDBRecordID] FROM [dbo].[Matters] MAT INNER JOIN [dbo].[Contacts] CON ON CON.[CODE] = MAT.[ClientCode] LEFT OUTER JOIN [dbo].[TimeDayBook] TDB ON TDB.[MATTER] = MAT.[CODE] AND TDB.[FEEEARN] = @feeearn WHERE ( MAT.[Description] LIKE @SEARCH OR MAT.[CODE] LIKE @SEARCH OR MAT.[User1] LIKE @SEARCH OR MAT.[User2] LIKE @SEARCH OR MAT.[User3] LIKE @SEARCH OR MAT.[YourRef] LIKE @SEARCH OR CON.[NAME] LIKE @SEARCH) AND ( (ISNULL(MAT.[Permissions], 0) = 0) OR ((ISNULL(MAT.[Permissions], 0) & @fePerm) <> 0)) DELETE MR FROM @MatRes MR WHERE MR.[ID] < @start DELETE MR FROM @MatRes MR WHERE MR.[ID] >= @start + @pagesize RETURN END' END GO /****** Object: UserDefinedFunction [dbo].[ky_NETFNGetOldPermissions] Script Date: 10/01/2014 16:19:05 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NETFNGetOldPermissions]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' CREATE FUNCTION [dbo].[ky_NETFNGetOldPermissions] (@HANDLER VARCHAR(10)) RETURNS BIGINT AS BEGIN DECLARE @PERMISSIONS BIGINT DECLARE @LOGONS TABLE ([CODE] VARCHAR(10), [LOGON] VARCHAR(10), [NAME] varchar(50), [OPE_NUMBER] int) DECLARE @LOGONS2 TABLE ([CODE] VARCHAR(10), [LOGON] VARCHAR(10), [NAME] varchar(50), [OPE_NUMBER] int) /* To aid uniformity, all queries have the same form. In this first one it should not be necessary to join to @LOGONs but doing so is harmless and it makes this query look the same as all the others. The Outer Apply links to DS1, DS2, DS3 and DS4 check that the DSSW21 entry has not already been matched to a handler. If this is so, it tries to match the DSSW21 record to a handler with an exact name match. */ INSERT INTO @LOGONS2 ([CODE], [LOGON], [NAME], [OPE_NUMBER]) SELECT MTC.[CODE], MTC.[LOGON], MTC.[NAME], MTC.[MATCH] FROM (select HAN.[CODE], HAN.[LOGON], HAN.[NAME], CASE WHEN DS1.[OPE_NUMBER] IS NOT NULL THEN DS1.[OPE_NUMBER] ELSE DS2.[OPE_NUMBER] END AS [Match] from [dbo].[Handlers] HAN OUTER APPLY (SELECT TOP 1 DS.[OPE_NUMBER] FROM [dbo].[DSSW21] DS WHERE RTrim(HAN.[NAME]) LIKE RTrim(DS.[OPE_FIRSTNAME]) + ''%'' + RTRIM(DS.[OPE_SURNAME])) DS1 OUTER APPLY (SELECT TOP 1 DS.[OPE_NUMBER] FROM [dbo].[DSSW21] DS WHERE RTrim(HAN.[NAME]) LIKE RTrim(DS.[OPE_SURNAME]) + ''%'' + RTRIM(DS.[OPE_FIRSTNAME])) DS2 OUTER APPLY (SELECT TOP 1 DS.[OPE_NUMBER] FROM [dbo].[DSSW21] DS WHERE Soundex(RTrim(HAN.[NAME])) = SOUNDEX(RTrim(DS.[OPE_SURNAME]) + '' '' + RTRIM(DS.[OPE_FIRSTNAME]))) DS3 OUTER APPLY (SELECT TOP 1 DS.[OPE_NUMBER] FROM [dbo].[DSSW21] DS WHERE Soundex(RTrim(HAN.[NAME])) = SOUNDEX(RTrim(DS.[OPE_FIRSTNAME]) + '' '' + RTRIM(DS.[OPE_SURNAME]))) DS4 OUTER APPLY (SELECT TOP 1 DS.[OPE_NUMBER] FROM [dbo].[DSSW21] DS LEFT OUTER JOIN [dbo].[Handlers] HN ON HN.[NAME] LIKE RTrim(DS.[OPE_FIRSTNAME]) + ''%'' + RTRIM(DS.[OPE_SURNAME]) OR HN.[NAME] LIKE RTrim(DS.[OPE_SURNAME]) + ''%'' + RTRIM(DS.[OPE_FIRSTNAME]) WHERE DS1.[OPE_NUMBER] IS NULL AND DS2.[OPE_NUMBER] IS NULL AND DS3.[OPE_NUMBER] IS NULL AND DS4.[OPE_NUMBER] IS NULL AND HN.[CODE] IS NULL AND ( RTrim(HAN.[NAME]) LIKE ''%'' + RTrim(DS.[OPE_FIRSTNAME]) + ''%'' OR RTrim(HAN.[NAME]) LIKE ''%'' + RTrim(DS.[OPE_SURNAME]) + ''%'')) DS5 WHERE HAN.[CODE] = @HANDLER AND RTRIM(ISNULL(HAN.[Logon], '''')) <> '''') MTC LEFT OUTER JOIN @LOGONS LO ON LO.[OPE_NUMBER] = MTC.[Match] WHERE MTC.[Match] IS NOT NULL AND LO.[OPE_NUMBER] IS NULL -- This eliminates duplicate matches. If there are more than one handler matching a DSSW21 entry, we can''t be sure which one it is, -- and we will ignore the match. We only include the ones that have exactly ONE match INSERT INTO @LOGONS ([CODE], [LOGON], [NAME], [OPE_NUMBER]) SELECT LO.[CODE], LO.[LOGON], LO.[NAME], LO.[OPE_NUMBER] FROM ( SELECT OPE_NUMBER from @LOGONS2 GROUP BY OPE_NUMBER HAVING COUNT(1) = 1) MH INNER JOIN @LOGONS2 LO ON LO.[OPE_NUMBER] = MH.[OPE_NUMBER] DELETE @LOGONS2 /* The Outer Apply links to DS1, DS2, DS3 and DS4 check that the DSSW21 entry has not already been matched to a handler. If this is so, it tries to match the DSSW21 record to a handler with an exact name match. */ INSERT INTO @LOGONS2 ([CODE], [LOGON], [NAME], [OPE_NUMBER]) SELECT MTC.[CODE], MTC.[LOGON], MTC.[NAME], MTC.[MATCH] FROM (select HAN.[CODE], HAN.[LOGON], HAN.[NAME], CASE WHEN DS1.[OPE_NUMBER] IS NOT NULL THEN DS1.[OPE_NUMBER] WHEN DS2.[OPE_NUMBER] IS NOT NULL THEN DS2.[OPE_NUMBER] WHEN DS3.[OPE_NUMBER] IS NOT NULL THEN DS3.[OPE_NUMBER] ELSE DS4.[OPE_NUMBER] END AS [Match] from [dbo].[Handlers] HAN OUTER APPLY (SELECT TOP 1 DS.[OPE_NUMBER] FROM [dbo].[DSSW21] DS WHERE RTrim(HAN.[NAME]) LIKE RTrim(DS.[OPE_FIRSTNAME]) + ''%'' + RTRIM(DS.[OPE_SURNAME])) DS1 OUTER APPLY (SELECT TOP 1 DS.[OPE_NUMBER] FROM [dbo].[DSSW21] DS WHERE RTrim(HAN.[NAME]) LIKE RTrim(DS.[OPE_SURNAME]) + ''%'' + RTRIM(DS.[OPE_FIRSTNAME])) DS2 OUTER APPLY (SELECT TOP 1 DS.[OPE_NUMBER] FROM [dbo].[DSSW21] DS WHERE Soundex(RTrim(HAN.[NAME])) = SOUNDEX(RTrim(DS.[OPE_SURNAME]) + '' '' + RTRIM(DS.[OPE_FIRSTNAME]))) DS3 OUTER APPLY (SELECT TOP 1 DS.[OPE_NUMBER] FROM [dbo].[DSSW21] DS WHERE Soundex(RTrim(HAN.[NAME])) = SOUNDEX(RTrim(DS.[OPE_FIRSTNAME]) + '' '' + RTRIM(DS.[OPE_SURNAME]))) DS4 OUTER APPLY (SELECT TOP 1 DS.[OPE_NUMBER] FROM [dbo].[DSSW21] DS LEFT OUTER JOIN [dbo].[Handlers] HN ON HN.[NAME] LIKE RTrim(DS.[OPE_FIRSTNAME]) + ''%'' + RTRIM(DS.[OPE_SURNAME]) OR HN.[NAME] LIKE RTrim(DS.[OPE_SURNAME]) + ''%'' + RTRIM(DS.[OPE_FIRSTNAME]) WHERE DS1.[OPE_NUMBER] IS NULL AND DS2.[OPE_NUMBER] IS NULL AND DS3.[OPE_NUMBER] IS NULL AND DS4.[OPE_NUMBER] IS NULL AND HN.[CODE] IS NULL AND ( RTrim(HAN.[NAME]) LIKE ''%'' + RTrim(DS.[OPE_FIRSTNAME]) + ''%'' OR RTrim(HAN.[NAME]) LIKE ''%'' + RTrim(DS.[OPE_SURNAME]) + ''%'')) DS5 WHERE HAN.[CODE] = @HANDLER AND RTRIM(ISNULL(HAN.[Logon], '''')) <> '''') MTC LEFT OUTER JOIN @LOGONS LO ON LO.[OPE_NUMBER] = MTC.[Match] WHERE MTC.[Match] IS NOT NULL AND LO.[OPE_NUMBER] IS NULL INSERT INTO @LOGONS ([CODE], [LOGON], [NAME], [OPE_NUMBER]) SELECT LO.[CODE], LO.[LOGON], LO.[NAME], LO.[OPE_NUMBER] FROM ( SELECT OPE_NUMBER from @LOGONS2 GROUP BY OPE_NUMBER HAVING COUNT(1) = 1) MH INNER JOIN @LOGONS2 LO ON LO.[OPE_NUMBER] = MH.[OPE_NUMBER] DELETE @LOGONS2 INSERT INTO @LOGONS2 ([CODE], [LOGON], [NAME], [OPE_NUMBER]) SELECT MTC.[CODE], MTC.[LOGON], MTC.[NAME], MTC.[MATCH] FROM (select HAN.[CODE], HAN.[LOGON], HAN.[NAME], CASE WHEN DS1.[OPE_NUMBER] IS NOT NULL THEN DS1.[OPE_NUMBER] WHEN DS2.[OPE_NUMBER] IS NOT NULL THEN DS2.[OPE_NUMBER] WHEN DS3.[OPE_NUMBER] IS NOT NULL THEN DS3.[OPE_NUMBER] WHEN DS4.[OPE_NUMBER] IS NOT NULL THEN DS4.[OPE_NUMBER] ELSE DS5.[OPE_NUMBER] END AS [Match] from [dbo].[Handlers] HAN OUTER APPLY (SELECT TOP 1 DS.[OPE_NUMBER] FROM [dbo].[DSSW21] DS WHERE RTrim(HAN.[NAME]) LIKE RTrim(DS.[OPE_FIRSTNAME]) + ''%'' + RTRIM(DS.[OPE_SURNAME])) DS1 OUTER APPLY (SELECT TOP 1 DS.[OPE_NUMBER] FROM [dbo].[DSSW21] DS WHERE RTrim(HAN.[NAME]) LIKE RTrim(DS.[OPE_SURNAME]) + ''%'' + RTRIM(DS.[OPE_FIRSTNAME])) DS2 OUTER APPLY (SELECT TOP 1 DS.[OPE_NUMBER] FROM [dbo].[DSSW21] DS WHERE Soundex(RTrim(HAN.[NAME])) = SOUNDEX(RTrim(DS.[OPE_SURNAME]) + '' '' + RTRIM(DS.[OPE_FIRSTNAME]))) DS3 OUTER APPLY (SELECT TOP 1 DS.[OPE_NUMBER] FROM [dbo].[DSSW21] DS WHERE Soundex(RTrim(HAN.[NAME])) = SOUNDEX(RTrim(DS.[OPE_FIRSTNAME]) + '' '' + RTRIM(DS.[OPE_SURNAME]))) DS4 OUTER APPLY (SELECT TOP 1 DS.[OPE_NUMBER] FROM [dbo].[DSSW21] DS LEFT OUTER JOIN [dbo].[Handlers] HN ON HN.[NAME] LIKE RTrim(DS.[OPE_FIRSTNAME]) + ''%'' + RTRIM(DS.[OPE_SURNAME]) OR HN.[NAME] LIKE RTrim(DS.[OPE_SURNAME]) + ''%'' + RTRIM(DS.[OPE_FIRSTNAME]) WHERE DS1.[OPE_NUMBER] IS NULL AND DS2.[OPE_NUMBER] IS NULL AND DS3.[OPE_NUMBER] IS NULL AND DS4.[OPE_NUMBER] IS NULL AND HN.[CODE] IS NULL AND ( RTrim(HAN.[NAME]) LIKE ''%'' + RTrim(DS.[OPE_FIRSTNAME]) + ''%'' OR RTrim(HAN.[NAME]) LIKE ''%'' + RTrim(DS.[OPE_SURNAME]) + ''%'')) DS5 WHERE HAN.[CODE] = @HANDLER AND RTRIM(ISNULL(HAN.[Logon], '''')) <> '''') MTC LEFT OUTER JOIN @LOGONS LO ON LO.[OPE_NUMBER] = MTC.[Match] WHERE MTC.[Match] IS NOT NULL AND LO.[OPE_NUMBER] IS NULL INSERT INTO @LOGONS ([CODE], [LOGON], [NAME], [OPE_NUMBER]) SELECT LO.[CODE], LO.[LOGON], LO.[NAME], LO.[OPE_NUMBER] FROM ( SELECT OPE_NUMBER from @LOGONS2 GROUP BY OPE_NUMBER HAVING COUNT(1) = 1) MH INNER JOIN @LOGONS2 LO ON LO.[OPE_NUMBER] = MH.[OPE_NUMBER] DELETE @LOGONS2 SELECT @PERMISSIONS = CONVERT(BIGINT, ISNULL(JP.[JPER_Permissions], 0)) from [dbo].[Handlers] HAN LEFT OUTER JOIN @LOGONS LO INNER JOIN [dbo].[DSSW21] DS ON DS.[OPE_NUMBER] = LO.[OPE_NUMBER] ON LO.[CODE] = HAN.[CODE] LEFT OUTER JOIN JPermissions JP ON JP.[JPER_UserNumber] = LO.[OPE_NUMBER] WHERE LO.[OPE_NUMBER] IS NOT NULL ORDER BY LO.[OPE_NUMBER] SET @PERMISSIONS = ISNULL(@PERMISSIONS, 0) RETURN @PERMISSIONS END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_NETFNMatterClosable] Script Date: 10/01/2014 16:19:05 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NETFNMatterClosable]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' CREATE FUNCTION [dbo].[ky_NETFNMatterClosable] (@MATTER VARCHAR(20)) RETURNS @Closables TABLE ([AlreadyClosed] int, [HasOutstandingBal] int, [HasOutstandingTimeBal] int, [HasOutstandingChargeBal] int, [HasOutstandingRec] int, [HasOutstandingDiary] int, [HasOutstandingUndertakings] int) AS /************************************************************************************** * * ky_NETFNMatterClosable 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. * **************************************************************************************/ BEGIN DECLARE @AlreadyClosed INT DECLARE @HasOutstandingRec INT DECLARE @HasOutstandingBal INT DECLARE @HasOutstandingTimeBal INT DECLARE @HasOutstandingChargeBal INT DECLARE @HasOutstandingDiary INT DECLARE @HasOutstandingUndertakings INT SELECT @AlreadyClosed = CASE WHEN MAT.[Closed] = ''Y'' THEN 1 ELSE 0 END, @HasOutstandingBal = CASE WHEN ISNULL(MAT.[DebtBal], 0) <> 0 THEN 1 WHEN ISNULL(MAT.[OutlayBal], 0) <> 0 THEN 1 WHEN ISNULL(MAT.[ClientBal], 0) <> 0 THEN 1 WHEN ISNULL(MAT.[ClientCurBal], 0) <> 0 THEN 1 WHEN ISNULL(MAT.[ClientDepBal], 0) <> 0 THEN 1 ELSE 0 END, @HasOutstandingTimeBal = CASE WHEN ISNULL(MAT.[TimeBal], 0) <> 0 THEN 1 ELSE 0 END, @HasOutstandingChargeBal = CASE WHEN ISNULL(MAT.[ChargeBal], 0) <> 0 THEN 1 ELSE 0 END FROM [dbo].[matters] MAT WHERE MAT.[Code] = @MATTER SELECT @HasOutstandingRec = CASE WHEN COUNT(1) = 0 THEN 0 ELSE 1 END FROM [dbo].[Control] CTL INNER JOIN [dbo].[MatterLedger] MAL INNER JOIN [dbo].[BatchH] BAH INNER JOIN [dbo].[BankRecHistory] REH ON REH.[BANKAC] = BAH.[CODE] ON BAH.[BATCHNO] = MAL.[BATCHNO] AND ISNULL(BAH.[RECNO], 0) <= 0 AND BAH.[TYPE] IN (''P'', ''R'', ''T'') ON MAL.[MATTER] = @MATTER AND MAL.[YEAR] = CTL.[YEAR] WHERE CTL.[RECINSTALLED] = ''Y'' 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 INSERT INTO @Closables ([AlreadyClosed], [HasOutstandingBal], [HasOutstandingTimeBal], [HasOutstandingChargeBal], [HasOutstandingRec], [HasOutstandingDiary], [HasOutstandingUndertakings]) SELECT @AlreadyClosed AS [AlreadyClosed], @HasOutstandingBal AS [HasOutstandingBal], @HasOutstandingTimeBal AS [HasOutstandingTimeBal], @HasOutstandingChargeBal AS [HasOutstandingChargeBal], @HasOutstandingRec AS [HasOutstandingRec], @HasOutstandingDiary AS [HasOutstandingDiary], @HasOutstandingUndertakings AS [HasOutstandingUndertakings] RETURN END ' END GO /****** Object: StoredProcedure [dbo].[spGetCaseTypeLookupList] Script Date: 10/01/2014 16:18:49 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spGetCaseTypeLookupList]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[spGetCaseTypeLookupList] AS BEGIN SELECT RTRIM(A.WKCODE) AS Code, RTRIM(A.WKDESC) AS [Description], RTRIM(WKPATH) AS CTPath FROM Templates A ORDER BY {fn UCASE( A.WKCODE)} END ' END GO /****** Object: View [dbo].[FeeAllocated] Script Date: 10/01/2014 16:19:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FeeAllocated]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[FeeAllocated] AS SELECT BatchH_1.BATCHNO AS ReceiptBatchNo, BatchH_1.TYPE, dbo.Allocations.ABATCHNO AS InvoiceBatchNo, BatchH_1.TYPE AS Expr3, dbo.Allocations.FEES AS FeesAllocated, BatchH_1.MATTER AS Mattercode, dbo.matters.FECode, BatchH_1.[YEAR] AS ReceiptYear, BatchH_1.PERNO AS ReceiptPeriod, dbo.Allocations.[VALUE] AS TotalReceipt FROM dbo.matters INNER JOIN dbo.BatchH BatchH_1 ON dbo.matters.Code = BatchH_1.MATTER RIGHT OUTER JOIN dbo.Allocations INNER JOIN dbo.BatchH BatchH_2 ON dbo.Allocations.BATCHNO = BatchH_2.BATCHNO ON BatchH_1.BATCHNO = dbo.Allocations.ABATCHNO WHERE (BatchH_1.TYPE = ''R'') ' GO /****** Object: View [dbo].[AllocatedBillHeadDetails] Script Date: 10/01/2014 16:19:51 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AllocatedBillHeadDetails]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[AllocatedBillHeadDetails] AS SELECT dbo.Allocations.ABATCHNO, dbo.Suppliers.CODE, dbo.Suppliers.NAME, dbo.Suppliers.ADDRESS, dbo.BatchH.PREF, dbo.BatchH.DATE, dbo.BatchH.REF, dbo.BatchH.NARR, dbo.BatchH.VALUE FROM dbo.Suppliers INNER JOIN dbo.SupplierLedger ON dbo.Suppliers.CODE = dbo.SupplierLedger.SUPP INNER JOIN dbo.Allocations ON dbo.SupplierLedger.BATCHNO = dbo.Allocations.ABATCHNO INNER JOIN dbo.BatchH ON dbo.SupplierLedger.BATCHNO = dbo.BatchH.BATCHNO GROUP BY dbo.Allocations.ABATCHNO, dbo.Suppliers.CODE, dbo.Suppliers.NAME, dbo.Suppliers.ADDRESS, dbo.SupplierLedger.TYPE, dbo.BatchH.PREF, dbo.BatchH.DATE, dbo.BatchH.REF, dbo.BatchH.NARR, dbo.BatchH.VALUE HAVING (dbo.SupplierLedger.TYPE = ''P'') ' GO /****** Object: View [dbo].[AllocatedBills] Script Date: 10/01/2014 16:19:51 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AllocatedBills]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[AllocatedBills] AS SELECT DISTINCT dbo.BatchH.BATCHNO, dbo.BatchH.PREF, dbo.BatchH.REF, dbo.BatchH.[DATE], dbo.BatchH.NARR, dbo.BatchH.[VALUE], dbo.BatchH.VATTOT FROM dbo.Allocations LEFT OUTER JOIN dbo.BatchH ON dbo.Allocations.BATCHNO = dbo.BatchH.BATCHNO AND dbo.Allocations.PREF = dbo.BatchH.PREF ' GO /****** Object: View [dbo].[HandlersStats] Script Date: 10/01/2014 16:19:58 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[HandlersStats]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[HandlersStats] AS SELECT TOP (100) PERCENT dbo.Handlers.CODE AS SolicitorCode, dbo.Handlers.NAME AS Solicitor, Handlers_1.NAME AS TeamName, dbo.Departments.[DESC] AS Department, ISNULL ((SELECT SUM(TIME) AS TotalRecordedTime FROM dbo.TimeEntry WHERE (DATE >= (SELECT FromDate FROM dbo.KPIParameters)) AND (DATE <= (SELECT ToDate FROM dbo.KPIParameters AS KPIParameters_1)) AND (FEEEARN = dbo.Handlers.CODE) AND (TASK <> ''BILLED'') AND (TASK <> ''CREDIT'') AND (TASK <> ''WRI'') AND (MATTER <> ''~'')), 0) AS TimeRecorded, ISNULL ((SELECT ChargableTimeBudget FROM dbo.HandlerBudgets AS HandlerBudgets_1 WHERE (Handler = dbo.Handlers.CODE) AND (Month = (SELECT Period FROM dbo.KPIParameters AS KPIParameters_1)) AND (Year = (SELECT Year FROM dbo.KPIParameters AS KPIParameters_1))), 0) AS TimeWeeklyBudget, ISNULL ((SELECT SUM(TIME) AS TotalRecordedTime FROM dbo.TimeEntry AS TimeEntry_1 WHERE (DATE >= (SELECT StartOfYear FROM dbo.KPIParameters AS KPIParameters_2)) AND (DATE <= (SELECT ToDate FROM dbo.KPIParameters AS KPIParameters_1)) AND (FEEEARN = dbo.Handlers.CODE) AND (TASK <> ''BILLED'') AND (TASK <> ''CREDIT'') AND (TASK <> ''WRI'')), 0) AS TimeRecordedYTD, ISNULL ((SELECT SUM(dbo.BatchDetails.VALUE) AS Expr1 FROM dbo.BatchDetails INNER JOIN dbo.BatchH ON dbo.BatchDetails.BATCHNO = dbo.BatchH.BATCHNO WHERE (dbo.BatchDetails.FEE = dbo.Handlers.CODE) AND (dbo.BatchDetails.TYPE = ''I'') AND (dbo.BatchDetails.YEAR = (SELECT Year FROM dbo.KPIParameters AS KPIParameters_3)) AND (dbo.BatchDetails.PERNO = (SELECT Period FROM dbo.KPIParameters AS KPIParameters_1)) AND (dbo.BatchDetails.OUTLAY = ''F'') AND (dbo.BatchH.INVCR = ''I'')), 0) - ISNULL ((SELECT SUM(BatchDetails_1.VALUE) AS Expr1 FROM dbo.BatchDetails AS BatchDetails_1 INNER JOIN dbo.BatchH AS BatchH_1 ON BatchDetails_1.BATCHNO = BatchH_1.BATCHNO WHERE (BatchDetails_1.FEE = dbo.Handlers.CODE) AND (BatchDetails_1.TYPE = ''I'') AND (BatchDetails_1.YEAR = (SELECT Year FROM dbo.KPIParameters AS KPIParameters_3)) AND (BatchDetails_1.PERNO = (SELECT Period FROM dbo.KPIParameters AS KPIParameters_1)) AND (BatchDetails_1.OUTLAY = ''F'') AND (BatchH_1.INVCR = ''C'')), 0) AS FeesCurrnetPeriod, ISNULL ((SELECT FeesBudget FROM dbo.HandlerBudgets AS HandlerBudgets_1 WHERE (Handler = dbo.Handlers.CODE) AND (Month = (SELECT Period FROM dbo.KPIParameters AS KPIParameters_1)) AND (Year = (SELECT Year FROM dbo.KPIParameters AS KPIParameters_1))), 0) AS FeesCurrnetBudget, ISNULL ((SELECT SUM(BatchDetails_4.VALUE) AS Expr1 FROM dbo.BatchDetails AS BatchDetails_4 INNER JOIN dbo.BatchH AS BatchH_4 ON BatchDetails_4.BATCHNO = BatchH_4.BATCHNO WHERE (BatchDetails_4.FEE = dbo.Handlers.CODE) AND (BatchDetails_4.TYPE = ''I'') AND (BatchDetails_4.YEAR = (SELECT Year - (CASE WHEN (SELECT Period AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1) = 1 THEN 1 ELSE 0 END) AS Expr1 FROM dbo.KPIParameters AS KPIParameters_3)) AND (BatchDetails_4.PERNO = (SELECT Period + (CASE WHEN (SELECT Period AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1) = 1 THEN + 11 ELSE - 1 END) AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1)) AND (BatchDetails_4.OUTLAY = ''F'') AND (BatchH_4.INVCR = ''I'')), 0) - ISNULL ((SELECT SUM(BatchDetails_1.VALUE) AS Expr1 FROM dbo.BatchDetails AS BatchDetails_1 INNER JOIN dbo.BatchH AS BatchH_1 ON BatchDetails_1.BATCHNO = BatchH_1.BATCHNO WHERE (BatchDetails_1.FEE = dbo.Handlers.CODE) AND (BatchDetails_1.TYPE = ''I'') AND (BatchDetails_1.YEAR = (SELECT Year - (CASE WHEN (SELECT Period AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1) = 1 THEN 1 ELSE 0 END) AS Expr1 FROM dbo.KPIParameters AS KPIParameters_3)) AND (BatchDetails_1.PERNO = (SELECT Period + (CASE WHEN (SELECT Period AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1) = 1 THEN + 11 ELSE - 1 END) AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1)) AND (BatchDetails_1.OUTLAY = ''F'') AND (BatchH_1.INVCR = ''C'')), 0) AS FeesLastPeriod, ISNULL ((SELECT FeesBudget FROM dbo.HandlerBudgets AS HandlersBudgets_2 WHERE (Handler = dbo.Handlers.CODE) AND (Month = (SELECT Period + (CASE WHEN (SELECT Period AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1) = 1 THEN + 11 ELSE - 1 END) AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1)) AND (Year = (SELECT Year - (CASE WHEN (SELECT Period AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1) = 1 THEN 1 ELSE 0 END) AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1))), 0) AS FeesLastPeriodBudget, ISNULL ((SELECT SUM(BatchDetails_2.VALUE) AS Expr1 FROM dbo.BatchDetails AS BatchDetails_2 INNER JOIN dbo.BatchH AS BatchH_2 ON BatchDetails_2.BATCHNO = BatchH_2.BATCHNO WHERE (BatchDetails_2.FEE = dbo.Handlers.CODE) AND (BatchDetails_2.TYPE = ''I'') AND (BatchDetails_2.YEAR = (SELECT Year FROM dbo.KPIParameters AS KPIParameters_3)) AND (BatchDetails_2.PERNO <= (SELECT Period FROM dbo.KPIParameters AS KPIParameters_1)) AND (BatchDetails_2.OUTLAY = ''F'') AND (BatchH_2.INVCR = ''I'')), 0) - ISNULL ((SELECT SUM(BatchDetails_3.VALUE) AS Expr1 FROM dbo.BatchDetails AS BatchDetails_3 INNER JOIN dbo.BatchH AS BatchH_3 ON BatchDetails_3.BATCHNO = BatchH_3.BATCHNO WHERE (BatchDetails_3.FEE = dbo.Handlers.CODE) AND (BatchDetails_3.TYPE = ''I'') AND (BatchDetails_3.YEAR = (SELECT Year FROM dbo.KPIParameters AS KPIParameters_3)) AND (BatchDetails_3.PERNO <= (SELECT Period FROM dbo.KPIParameters AS KPIParameters_1)) AND (BatchDetails_3.OUTLAY = ''F'') AND (BatchH_3.INVCR = ''C'')), 0) AS FeeYTD, ISNULL ((SELECT SUM(BatchDetails_4.VALUE) AS Expr1 FROM dbo.BatchDetails AS BatchDetails_4 INNER JOIN dbo.BatchH AS BatchH_4 ON BatchDetails_4.BATCHNO = BatchH_4.BATCHNO WHERE (BatchDetails_4.FEE = dbo.Handlers.CODE) AND (BatchDetails_4.TYPE = ''I'') AND (BatchDetails_4.YEAR = (SELECT Year - 1 AS Expr1 FROM dbo.KPIParameters AS KPIParameters_3)) AND (BatchDetails_4.PERNO <= (SELECT Period FROM dbo.KPIParameters AS KPIParameters_1)) AND (BatchDetails_4.OUTLAY = ''F'') AND (BatchH_4.INVCR = ''I'')), 0) - ISNULL ((SELECT SUM(BatchDetails_1.VALUE) AS Expr1 FROM dbo.BatchDetails AS BatchDetails_1 INNER JOIN dbo.BatchH AS BatchH_1 ON BatchDetails_1.BATCHNO = BatchH_1.BATCHNO WHERE (BatchDetails_1.FEE = dbo.Handlers.CODE) AND (BatchDetails_1.TYPE = ''I'') AND (BatchDetails_1.YEAR = (SELECT Year - 1 AS Expr1 FROM dbo.KPIParameters AS KPIParameters_3)) AND (BatchDetails_1.PERNO <= (SELECT Period AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1)) AND (BatchDetails_1.OUTLAY = ''F'') AND (BatchH_1.INVCR = ''C'')), 0) AS FeesYTDLastYear, ISNULL ((SELECT SUM(FeesBudget) AS Expr1 FROM dbo.HandlerBudgets AS HandlersBudgets_1 WHERE (Handler = dbo.Handlers.CODE) AND (Month <= (SELECT Period FROM dbo.KPIParameters AS KPIParameters_1)) AND (Year = (SELECT Year FROM dbo.KPIParameters AS KPIParameters_1))), 0) AS FeesYTDBudget, ISNULL ((SELECT SUM(dbo.DebtorsLedger.OSVALUE) AS Expr1 FROM dbo.DebtorsLedger INNER JOIN dbo.matters ON dbo.DebtorsLedger.MATTER = dbo.matters.Code WHERE (dbo.matters.FECode = dbo.Handlers.CODE) AND (dbo.DebtorsLedger.DATE <= { fn NOW() } - 60) AND (dbo.DebtorsLedger.OSVALUE <> 0)), 0) AS OSInvoicesOver60, ISNULL ((SELECT SUM(DebtorsLedger_1.OSVALUE) AS Expr1 FROM dbo.DebtorsLedger AS DebtorsLedger_1 INNER JOIN dbo.matters AS matters_1 ON DebtorsLedger_1.MATTER = matters_1.Code WHERE (matters_1.FECode = dbo.Handlers.CODE) AND (DebtorsLedger_1.OSVALUE <> 0)), 0) AS OSInvoices, ISNULL ((SELECT SUM(DebtorsLedger_2.OSFEES) AS Expr1 FROM dbo.DebtorsLedger AS DebtorsLedger_2 INNER JOIN dbo.matters AS matters_2 ON DebtorsLedger_2.MATTER = matters_2.Code WHERE (matters_2.FECode = dbo.Handlers.CODE) AND (DebtorsLedger_2.DATE <= { fn NOW() } - 60) AND (DebtorsLedger_2.OSVALUE <> 0)), 0) AS OSFeesOver60, ISNULL ((SELECT SUM(DebtorsLedger_1.OSFEES) AS Expr1 FROM dbo.DebtorsLedger AS DebtorsLedger_1 INNER JOIN dbo.matters AS matters_1 ON DebtorsLedger_1.MATTER = matters_1.Code WHERE (matters_1.FECode = dbo.Handlers.CODE) AND (DebtorsLedger_1.OSVALUE <> 0)), 0) AS OSFees, 000 AS UnBilledOutlay, ISNULL ((SELECT SUM(dbo.BillHeader.TOTAL) AS Expr1 FROM dbo.BillHeader INNER JOIN dbo.matters AS matters_5 ON dbo.BillHeader.MATTER = matters_5.Code WHERE (matters_5.FECode = dbo.Handlers.CODE) AND (dbo.BillHeader.BILLNO = 0)), 0) AS DraftInvoice, ISNULL ((SELECT COUNT(DelType) AS Expr1 FROM dbo.DiaryDelegations WHERE (STATUS = 0) AND (DelType IN (''Created'', ''Delegated'', ''Released'')) AND (HANDLER = dbo.Handlers.CODE)), 0) AS NoDiaryDelOS, ISNULL ((SELECT COUNT(DelType) AS Expr1 FROM dbo.DiaryDelegations AS DiaryDelegations_1 WHERE (STATUS = 0) AND (DelType IN (''Created'', ''Delegated'', ''Released'')) AND (HANDLER = dbo.Handlers.CODE) AND (DUEDATE <= { fn NOW() })), 0) AS NoDiaryDelOSOverdue, ISNULL ((SELECT COUNT(a.DelType) AS Expr1 FROM dbo.DiaryDelegations AS a INNER JOIN dbo.diary AS b ON a.ACTIONID = b.ACTIONID WHERE (a.STATUS = 1) AND (a.DelType = ''Completed'') AND (a.HANDLER = dbo.Handlers.CODE)), 0) AS NoDiaryDelComp, ISNULL ((SELECT COUNT(a.DelType) AS Expr1 FROM dbo.DiaryDelegations AS a INNER JOIN dbo.diary AS b ON a.ACTIONID = b.ACTIONID WHERE (a.STATUS = 0) AND (b.PRIORITY = ''H'') AND (a.HANDLER = dbo.Handlers.CODE)), 0) AS NoDiaryDelOSHighPriority, ISNULL ((SELECT COUNT(a.MATTER) AS Expr1 FROM dbo.Undertakings AS a INNER JOIN dbo.matters AS b ON a.MATTER = b.Code WHERE (b.FECode = dbo.Handlers.CODE) AND (a.DISCHARGEDATE = 0)), 0) AS NoUndertakings, ISNULL ((SELECT COUNT(a.MATTER) AS Expr1 FROM dbo.Undertakings AS a INNER JOIN dbo.matters AS b ON a.MATTER = b.Code WHERE (b.FECode = dbo.Handlers.CODE) AND (a.DISCHARGEDATE = 0) AND (a.DATE <= { fn NOW() } + 30)), 0) AS NoUndertakingsWithin30, ISNULL ((SELECT COUNT(Code) AS Expr1 FROM dbo.matters AS matters_3 WHERE (FECode = dbo.Handlers.CODE)), 0) AS NoOpenMatters, ISNULL ((SELECT COUNT(Code) AS Expr1 FROM dbo.matters AS matters_3 WHERE (PCODE <> '''') AND (FECode = dbo.Handlers.CODE)), 0) AS NoActiveMatters, ISNULL ((SELECT COUNT(Code) AS Expr1 FROM dbo.matters AS matters_3 WHERE (PCODE <> '''') AND (Section68 <> ''Y'') AND (FECode = dbo.Handlers.CODE)), 0) AS NoSection68Matters, ISNULL ((SELECT COUNT(Code) AS Expr1 FROM dbo.matters AS matters_4 WHERE (FECode = dbo.Handlers.CODE) AND (Started >= (SELECT FromDate FROM dbo.KPIParameters AS KPIParameters_5)) AND (Started <= (SELECT ToDate FROM dbo.KPIParameters AS KPIParameters_4))) + (SELECT COUNT(CODE) AS Expr1 FROM dbo.Closed WHERE (FECODE = dbo.Handlers.CODE) AND (STARTED >= (SELECT FromDate FROM dbo.KPIParameters AS KPIParameters_5)) AND (STARTED <= (SELECT ToDate FROM dbo.KPIParameters AS KPIParameters_4))), 0) AS NoNewOpenedMatters, ISNULL ((SELECT COUNT(Code) AS Expr1 FROM dbo.matters AS matters_4 WHERE (FECode = dbo.Handlers.CODE) AND (Started >= (SELECT StartOfYear FROM dbo.KPIParameters AS KPIParameters_5)) AND (Started <= (SELECT ToDate FROM dbo.KPIParameters AS KPIParameters_4))) + (SELECT COUNT(CODE) AS Expr1 FROM dbo.Closed AS Closed_1 WHERE (FECODE = dbo.Handlers.CODE) AND (STARTED >= (SELECT StartOfYear FROM dbo.KPIParameters AS KPIParameters_5)) AND (STARTED <= (SELECT ToDate FROM dbo.KPIParameters AS KPIParameters_4))), 0) AS NoMattersYTD, ISNULL ((SELECT COUNT(MATTER) AS Expr1 FROM dbo.TimeDayBook WHERE (FEEEARN = dbo.Handlers.CODE)), 0) AS NoUnPostedTimeEntrys, ISNULL ((SELECT COUNT(BillHeader_1.MATTER) AS Expr1 FROM dbo.BillHeader AS BillHeader_1 INNER JOIN dbo.matters AS matters_5 ON BillHeader_1.MATTER = matters_5.Code WHERE (matters_5.FECode = dbo.Handlers.CODE) AND (BillHeader_1.BILLNO = 0)), 0) AS NoDraftInvoice, ISNULL ((SELECT COUNT(StatuteLimits) AS Expr1 FROM dbo.matters AS matters_6 WHERE (StatuteLimits IS NOT NULL) AND (FECode = dbo.Handlers.CODE)), 0) AS NoStatuteOfLimitations, ISNULL ((SELECT COUNT(StatuteLimits) AS Expr1 FROM dbo.matters AS matters_6 WHERE (StatuteLimits IS NOT NULL) AND (FECode = dbo.Handlers.CODE) AND (StatuteLimits <= { fn NOW() } + 30)), 0) AS NoStatuteOfLimitationsWithin30, dbo.Handlers.TEAM, dbo.Handlers.Type, dbo.Handlers.TEAMCODE, ISNULL ((SELECT SUM(TIME) AS TotalRecordedTime FROM dbo.TimeEntry AS TimeEntry_1 WHERE (DATE >= (SELECT StartOfYear FROM dbo.KPIParameters AS KPIParameters_2)) AND (DATE <= (SELECT ToDate FROM dbo.KPIParameters AS KPIParameters_1)) AND (FEEEARN = dbo.Handlers.CODE) AND (MATTER = ''~'') AND (TASK <> ''BILLED'') AND (TASK <> ''CREDIT'') AND (TASK <> ''WRI'') OR (DATE >= (SELECT StartOfYear FROM dbo.KPIParameters AS KPIParameters_2)) AND (DATE <= (SELECT ToDate FROM dbo.KPIParameters AS KPIParameters_1)) AND (FEEEARN = dbo.Handlers.CODE) AND (TASK <> ''BILLED'') AND (TASK <> ''CREDIT'') AND (TASK <> ''WRI'') AND (REC_IRR = ''N'')), 0) AS NonChargableTime, ISNULL ((SELECT SUM(CHARGE) AS TotalCharge FROM dbo.TimeEntry AS TimeEntry_1 WHERE (TIMEORCHARGE <> ''B'') AND (REC_IRR <> ''N'') AND (FEEEARN = dbo.Handlers.CODE) AND (MATTER <> ''~'')), 0) AS WIP, dbo.Handlers.Dept FROM dbo.Handlers INNER JOIN dbo.Handlers AS Handlers_1 ON dbo.Handlers.TEAM = Handlers_1.CODE LEFT OUTER JOIN dbo.Departments ON dbo.Handlers.Dept = dbo.Departments.CODE WHERE (dbo.Handlers.Type = ''L'' OR dbo.Handlers.Type = ''P'') AND (dbo.Handlers.TEAMCODE <> ''Y'') ' GO /****** Object: View [dbo].[ReportInvoices] Script Date: 10/01/2014 16:20:04 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ReportInvoices]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[ReportInvoices] AS SELECT TOP 100 PERCENT dbo.BatchDetails.BATCHNO, dbo.BatchDetails.TYPE, dbo.BatchDetails.PREF, dbo.BatchDetails.REF, dbo.BatchDetails.DATE, dbo.BatchDetails.NARR, dbo.BatchDetails.VALUE AS BatchDValue, dbo.BatchDetails.VATCODE AS BatchDVATCode, dbo.BatchDetails.VATVAL AS BatchDVATValue, dbo.BatchDetails.OUTLAY, dbo.BatchDetails.YEAR, dbo.BatchDetails.PERNO, dbo.FeeEarnerCodes.NAME, dbo.BatchDetails.CODE, dbo.BatchDetails.FEE, dbo.BatchH.MATTER, dbo.BatchH.INVCR, dbo.BatchH.POSTED, dbo.BatchH.OUTLAYTOT AS BatchHOutlay, dbo.BatchH.VATTOT AS BatchHVAT, dbo.BatchH.FEETOT AS BatchHFee, dbo.BatchH.VALUE AS BatchHValue, LTRIM(ISNULL(dbo.matters.Description, '''') + ISNULL(dbo.Closed.DESCRIPTION, '''')) AS MatterDescription, LTRIM(ISNULL(dbo.matters.ClientCode, '''') + ISNULL(dbo.Closed.CLIENTCODE, '''')) AS Client, LTRIM(ISNULL(dbo.matters.Dept, '''') + ISNULL(dbo.Closed.DEPT, '''')) AS Dept, LTRIM(ISNULL(dbo.matters.WType, '''') + ISNULL(dbo.Closed.WTYPE, '''')) AS WType, LTRIM(ISNULL(dbo.matters.FECode, '''') + ISNULL(dbo.Closed.FECODE, '''')) AS FECODE, dbo.BatchH.REF AS BatchHRef FROM dbo.Closed RIGHT OUTER JOIN dbo.BatchH ON dbo.Closed.CODE = dbo.BatchH.MATTER RIGHT OUTER JOIN dbo.BatchDetails LEFT OUTER JOIN dbo.FeeEarnerCodes ON dbo.BatchDetails.FEE = dbo.FeeEarnerCodes.CODE ON dbo.BatchH.BATCHNO = dbo.BatchDetails.BATCHNO LEFT OUTER JOIN dbo.matters ON dbo.BatchH.MATTER = dbo.matters.Code WHERE (dbo.BatchDetails.TYPE = ''I'') ORDER BY dbo.BatchDetails.BATCHNO ' GO /****** Object: StoredProcedure [dbo].[ky_RefreshBG] Script Date: 10/01/2014 16:17:29 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_RefreshBG]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_RefreshBG] (@PDraftNo int, @PBatchNo int, @PTimeRefDate DATETIME, @POutlayDate DATETIME, @PTimeRefAmount money, @POutlayAmount money) AS BEGIN DECLARE @continue int DECLARE @CurrBGC int DECLARE @NewGroupID uniqueidentifier DECLARE @BGC TABLE ([Date] datetime not null, [TDate] datetime not null, [ODate] datetime not null, [Description] varchar(255) not null, [DRAFTNO] int not null, [BATCHNO] int not null, [ADDRESSEE] varchar(400) not null, [OURREF] varchar(15) not null, [YOURREF] varchar(20) not null, [MATTER] varchar(17) not null, [IsAdhoc] int default 0 not null, [OAmount] money default 0 not null, [TAmount] money default 0 not null) DECLARE @BGG TABLE ([Narrative] varchar(1000) not null) DECLARE @BGD TABLE ([ID] uniqueidentifier not null, [IncludeInBill] int not null, [Seqno] int not null, [Type] varchar(1) not null, [Matter] varchar(11) null, [FEEEARN] varchar(5) null, [OUTLAYCODE] varchar(10) null, [DATE] datetime not null, [Narrative] varchar(1000) not null, [InvoiceNo] int not null, [Charge] decimal(19, 2) not null, [BilledAmount] decimal(19, 2) not null, [BillNow] decimal(19, 2) not null, [OriginalID] int not null, [ORGInvoiceNo] int null, [ORGIncludeInBill] int null, [ORGBILLINGDATE] datetime null, [ORGBILLINGYEAR] int null, [ORGBILLINGPERIOD] int null, [ORGAMOUNT] decimal(17, 2) null, [PaidNow] decimal(19, 2) default 0 not null) declare @RSQN table ([ID] int identity(1, 1), [UNID] uniqueidentifier) declare @RSQN2 table ([ID] int identity(1, 1), [MAXID] int, [GROUPSEQ] int, [GROUPID] uniqueidentifier, [UNID] uniqueidentifier) BEGIN TRANSACTION SET @continue = 0 if (@continue = 0) begin begin try IF (@PDraftNo Is Not Null) BEGIN -- In case an inconsistent Draft/Batch number combination was passed in, -- or Batch Number was left NULL SELECT @PBatchNo = IsNull([BATCHNO], 0) FROM [dbo].[BILLHEADER] BIH WHERE BIH.[DRAFTNO] = @PDraftNo END ELSE BEGIN -- Get the Bill Header details IF they are present SELECT @PDraftNo = IsNull([DRAFTNO], 0) FROM [dbo].[BILLHEADER] BIH WHERE BIH.[BATCHNO] = @PBatchNo AND IsNull(@PBatchNo, 0) <> 0 SET @PDraftNo = IsNull(@PDraftNo, 0) END end try begin catch SET @continue = 1 end catch end if (@continue = 0) begin begin try IF (@PDraftNo <> 0) BEGIN INSERT INTO @BGC ([Date], [TDate], [ODate], [TAmount], [OAmount], [Description], [DRAFTNO], [BATCHNO], [ADDRESSEE], [OURREF], [YOURREF], [MATTER]) SELECT getDate(), convert(DATETIME, ISNULL(@PTimeRefDate, ISNULL(BIH.[WriteDown], getDate()))), convert(DATETIME, ISNULL(@POutlayDate, ISNULL(BIH.[WriteDown], getDate()))), IsNull(@PTimeRefAmount, 0), IsNull(@POutlayAmount, 0), '''', @PDraftNo, BIH.[BATCHNO], IsNull(BIH.[ADDRESSEE], ''''), IsNull(BIH.[OURREF], ''''), IsNull(BIH.[YOURREF], ''''), BIH.[Matter] FROM [dbo].[BillHeader] BIH WHERE BIH.[DraftNo] = @PDraftNo INSERT INTO @BGG ([Narrative]) SELECT ''NEW'' FROM [dbo].[BillHeader] BIH WHERE BIH.[DraftNo] = @PDraftNo INSERT INTO @BGD ([ID], [IncludeInBill], [Seqno], [Type], [Matter], [FEEEARN], [OUTLAYCODE], [DATE], [Narrative], [InvoiceNo], [Charge], [BilledAmount], [BillNow], [OriginalID], [ORGInvoiceNo], [ORGIncludeInBill], [ORGBILLINGDATE], [ORGBILLINGYEAR], [ORGBILLINGPERIOD], [ORGAMOUNT]) SELECT NewID(), 1, 0, ''F'' As [TYPE], TIE.[Matter], TIE.[FEEEARN], convert(char(10), '''') AS [OUTLAYCODE], TIE.[DATE], convert(varchar(1000), TIE.[COMMENT]), IsNull(TIE.[INVOICENO], 0) As InvoiceNo, convert(decimal(19,2), TIE.[CHARGE]) As [CHARGE], ISNULL(TIE.[BilledAmount], 0) AS [BilledAmount], convert(decimal(19,2), TIE.[CHARGE]) - ISNULL(TIE.[BilledAmount], 0) As [BillNow], TIE.[RecordID], TIE.[INVOICENO], TIE.[IncludeInBill], TIE.[BILLINGDATE], TIE.[BILLINGYEAR], TIE.[BILLINGPERIOD], TIE.[BilledAmount] FROM [dbo].[BillHeader] BIH CROSS APPLY @BGG BGG INNER JOIN [dbo].[Matters] MAT ON ( ( (RTRIM(ISNULL(MAT.[CompBillingMatter], '''')) = BIH.[MATTER]) AND (RTRIM(ISNULL(MAT.[CompBillingMatter], '''')) <> MAT.[MATTER])) OR MAT.[Code] = BIH.[MATTER]) INNER JOIN [dbo].[TimeEntry] TIE LEFT OUTER JOIN [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[CODE] = HAN.[TEAM] ON HAN.[CODE] = TIE.[FEEEARN] ON TIE.[Matter] = MAT.[Code] AND TIE.[REC_IRR] <> ''N'' AND TIE.[CHARGE] <> 0 AND ISNULL(TIE.[BilledAmount], 0) <> TIE.[CHARGE] AND ISNULL(TIE.[DATE], getDate()) <= convert(DATETIME, ISNULL(@PTimeRefDate, ISNULL(BIH.[WriteDown], getDate()))) AND ISNULL(TIE.[IncludeInBill], 1) <> 2 AND TIE.[TIMEORCHARGE] IN (''T'', ''C'') WHERE BIH.[DRAFTNO] = @PDraftNo INSERT INTO @bgd ([ID], [IncludeInBill], [Seqno], [Type], [Matter], [FEEEARN], [OUTLAYCODE], [DATE], [Narrative], [InvoiceNo], [Charge], [BilledAmount], [BillNow], [OriginalID], [ORGInvoiceNo], [ORGIncludeInBill], [ORGBILLINGDATE], [ORGBILLINGYEAR], [ORGBILLINGPERIOD], [ORGAMOUNT]) SELECT NewID(), 1, 0, ''O'' As [TYPE], MAL.[Matter], IsNull(HAN.[Code], '''') AS [FEEEARN], IsNull(BAD.[OUTLAYCODE], '''') AS [OUTLAYCODE], MAL.[DATE], convert(varchar(1000), MAL.[NARR]), IsNull(MAL.[INVOICENO], 0) As InvoiceNo, convert(decimal(19,2), IsNull(MAL.[VALUEO], 0)) As [CHARGE], convert(decimal(19,2), ISNULL(MAL.[BilledOutlayValue], 0)) As [BilledAmount], convert(decimal(19,2), IsNull(MAL.[VALUEO], 0)) - convert(decimal(19,2), ISNULL(MAL.[BilledOutlayValue], 0)) As [BillNow], MAL.[LREF], MAL.[INVOICENO], MAL.[IncludeInBill], MAL.[BILLINGDATE], MAL.[BILLINGYEAR], MAL.[BILLINGPERIOD], MAL.[BilledOutlayValue] FROM [dbo].[BillHeader] BIH CROSS APPLY @BGG BGG INNER JOIN [dbo].[Matters] MAT ON ( RTRIM(ISNULL(MAT.[CompBillingMatter], '''')) = BIH.[MATTER] OR MAT.[Code] = BIH.[MATTER]) INNER JOIN [dbo].[MatterLedger] MAL LEFT OUTER JOIN [dbo].[BatchDetails] BAD LEFT OUTER JOIN [dbo].[OutlayCode] OLC ON OLC.[CODE] = BAD.[OUTLAYCODE] ON BAD.[PREF] = MAL.[PREF] AND BAD.[BATCHNO] = MAL.[BATCHNO] ON MAL.[Matter] = MAT.[Code] AND IsNull(BAD.[TYPE], '''') <> ''I'' AND MAL.[VALUEO] <> 0 AND convert(decimal(17,2), ISNULL(MAL.[BilledOutlayValue], 0)) <> convert(decimal(17,2), IsNull(MAL.[VALUEO], 0)) AND ISNULL(MAL.[DATE], getDate()) <= convert(DATETIME, ISNULL(@POutlayDate, ISNULL(BIH.[WriteDown], getDate()))) AND ISNULL(MAL.[IncludeInBill], 1) <> 2 LEFT OUTER JOIN [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[CODE] = HAN.[TEAM] ON HAN.[CODE] = Case When IsNull(MAL.[FEE], '''') = '''' THEN MAT.[FECODE] ELSE MAL.[FEE] END WHERE BIH.[DRAFTNO] = @PDraftNo END ELSE BEGIN INSERT INTO @BGC ([Date], [TDate], [ODate], [TAmount], [OAmount], [Description], [DRAFTNO], [BATCHNO], [ADDRESSEE], [OURREF], [YOURREF], [MATTER]) SELECT getDate(), convert(DATETIME, ISNULL(@PTimeRefDate, ISNULL(BAH.[WriteDown], getDate()))), convert(DATETIME, ISNULL(@POutlayDate, ISNULL(BAH.[WriteDown], getDate()))), IsNull(@PTimeRefAmount, 0), IsNull(@POutlayAmount, 0), '''', IsNull(BIH.[DRAFTNO], 0), BAH.[BATCHNO], IsNull(BIH.[ADDRESSEE], ''''), IsNull(BIH.[OURREF], ''''), IsNull(BIH.[YOURREF], ''''), BAH.[Matter] FROM [dbo].[BATCHH] BAH LEFT OUTER JOIN [dbo].[BillHeader] BIH ON BIH.[BATCHNO] = BAH.[BATCHNO] WHERE BAH.[BATCHNO] = @PBATCHNo INSERT INTO @BGG ([Narrative]) SELECT ''NEW'' FROM [dbo].[BATCHH] BAH WHERE BAH.[BATCHNO] = @PBATCHNo INSERT INTO @BGD ([ID], [IncludeInBill], [Seqno], [Type], [Matter], [FEEEARN], [OUTLAYCODE], [DATE], [Narrative], [InvoiceNo], [Charge], [BilledAmount], [BillNow], [OriginalID], [ORGInvoiceNo], [ORGIncludeInBill], [ORGBILLINGDATE], [ORGBILLINGYEAR], [ORGBILLINGPERIOD], [ORGAMOUNT]) SELECT NewID(), 1, 0, ''F'' As [TYPE], TIE.[Matter], TIE.[FEEEARN], convert(char(10), '''') AS [OUTLAYCODE], TIE.[DATE], convert(varchar(1000), TIE.[COMMENT]), IsNull(TIE.[INVOICENO], 0) As InvoiceNo, convert(decimal(19,2), TIE.[CHARGE]) As [CHARGE], ISNULL(TIE.[BilledAmount], 0) AS [BilledAmount], convert(decimal(19,2), TIE.[CHARGE]) - ISNULL(TIE.[BilledAmount], 0) As [BillNow], TIE.[RecordID], TIE.[INVOICENO], TIE.[IncludeInBill], TIE.[BILLINGDATE], TIE.[BILLINGYEAR], TIE.[BILLINGPERIOD], TIE.[BilledAmount] FROM [dbo].[BatchH] BAH CROSS APPLY @BGG BGG INNER JOIN [dbo].[Matters] MAT ON ( ( (RTRIM(ISNULL(MAT.[CompBillingMatter], '''')) = BAH.[MATTER]) AND (RTRIM(ISNULL(MAT.[CompBillingMatter], '''')) <> MAT.[MATTER])) OR MAT.[Code] = BAH.[MATTER]) INNER JOIN [dbo].[TimeEntry] TIE LEFT OUTER JOIN [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[CODE] = HAN.[TEAM] ON HAN.[CODE] = TIE.[FEEEARN] ON TIE.[Matter] = MAT.[Code] AND TIE.[REC_IRR] <> ''N'' AND TIE.[CHARGE] <> 0 AND ISNULL(TIE.[BilledAmount], 0) <> TIE.[CHARGE] AND ISNULL(TIE.[DATE], getDate()) <= convert(DATETIME, ISNULL(@PTimeRefDate, ISNULL(BAH.[WriteDown], getDate()))) AND ISNULL(TIE.[IncludeInBill], 1) <> 2 AND TIE.[TIMEORCHARGE] IN (''T'', ''C'') WHERE BAH.[BATCHNO] = @PBatchNo INSERT INTO @BGD ([ID], [IncludeInBill], [Seqno], [Type], [Matter], [FEEEARN], [OUTLAYCODE], [DATE], [Narrative], [InvoiceNo], [Charge], [BilledAmount], [BillNow], [OriginalID], [ORGInvoiceNo], [ORGIncludeInBill], [ORGBILLINGDATE], [ORGBILLINGYEAR], [ORGBILLINGPERIOD], [ORGAMOUNT]) SELECT NewID(), 1, 0, ''O'' As [TYPE], MAL.[Matter], IsNull(HAN.[Code], '''') AS [FEEEARN], IsNull(BAD.[OUTLAYCODE], '''') AS [OUTLAYCODE], MAL.[DATE], convert(varchar(1000), MAL.[NARR]), IsNull(MAL.[INVOICENO], 0) As InvoiceNo, convert(decimal(19,2), IsNull(MAL.[VALUEO], 0)) As [CHARGE], convert(decimal(19,2), ISNULL(MAL.[BilledOutlayValue], 0)) As [BilledAmount], convert(decimal(19,2), IsNull(MAL.[VALUEO], 0)) - convert(decimal(19,2), ISNULL(MAL.[BilledOutlayValue], 0)) As [BillNow], MAL.[LREF], MAL.[INVOICENO], MAL.[IncludeInBill], MAL.[BILLINGDATE], MAL.[BILLINGYEAR], MAL.[BILLINGPERIOD], MAL.[BilledOutlayValue] FROM [dbo].[BatchH] BAH CROSS APPLY @BGG BGG INNER JOIN [dbo].[Matters] MAT ON ( RTRIM(ISNULL(MAT.[CompBillingMatter], '''')) = BAH.[MATTER] OR MAT.[Code] = BAH.[MATTER]) INNER JOIN [dbo].[MatterLedger] MAL LEFT OUTER JOIN [dbo].[BatchDetails] BAD INNER JOIN [dbo].[OutlayCode] OLC ON OLC.[CODE] = BAD.[OUTLAYCODE] ON BAD.[PREF] = MAL.[PREF] AND BAD.[BATCHNO] = MAL.[BATCHNO] ON MAL.[Matter] = MAT.[Code] AND MAL.[VALUEO] <> 0 AND convert(decimal(17,2), ISNULL(MAL.[BilledOutlayValue], 0)) <> convert(decimal(17,2), IsNull(MAL.[VALUEO], 0)) AND ISNULL(MAL.[DATE], getDate()) <= convert(DATETIME, ISNULL(@POutlayDate, ISNULL(BAH.[WriteDown], getDate()))) AND ISNULL(MAL.[IncludeInBill], 1) <> 2 LEFT OUTER JOIN [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[CODE] = HAN.[TEAM] ON HAN.[CODE] = Case When IsNull(MAL.[FEE], '''') = '''' THEN MAT.[FECODE] ELSE MAL.[FEE] END WHERE BAH.[BATCHNO] = @PBatchNo END end try begin catch SET @continue = 2 end catch end if (@continue = 0) begin begin try SELECT @CurrBGC = BGC.[ID] from @bgc BGCN inner join [dbo].[BGControl] BGC ON BGC.[DRAFTNO] = BGCN.[DRAFTNO] AND BGC.[BATCHNO] = BGCN.[BATCHNO] end try begin catch SET @continue = 3 end catch end if (@continue = 0) begin begin try INSERT INTO @RSQN ([UNID]) SELECT BGD.[ID] FROM @BGD BGD LEFT OUTER JOIN [dbo].[BGDetail] BGDO ON BGDO.[BGControlID] = @CurrBGC AND BGDO.[Type] = BGD.[Type] AND BGDO.[OriginalID] = BGD.[OriginalID] WHERE BGDO.[ID] IS NULL ORDER BY BGD.[Type], RTRIM(IsNull(BGD.[Matter], '''')), IsNull(convert(varchar, BGD.[Date], 121), ''''), BGD.[Narrative], BGD.[OriginalID] end try begin catch SET @continue = 4 end catch end if (@continue = 0) begin begin try SET @NewGroupID = NEWID() end try begin catch SET @continue = 5 end catch end if (@continue = 0) begin begin try INSERT INTO [dbo].[BGGroups] ([ID], [Seqno], [BGControlID], [Narrative]) SELECT @NewGroupID, BGNS.[NewSeqNo], @CurrBGC, GRP.[Narrative] FROM (SELECT COUNT(1) AS [TOTAL] FROM @RSQN) TOT CROSS APPLY (SELECT IsNull(MAX(BGG.[SeqNo]), 0) + 1 AS [NewSeqNo] FROM [dbo].[BGGroups] BGG WHERE BGG.[BGControlID] = @CurrBGC) BGNS CROSS APPLY @BGG GRP WHERE TOT.[TOTAL] > 0 end try begin catch SET @continue = 6 end catch end if (@continue = 0) begin begin try UPDATE BGD SET BGD.[Seqno] = RSQ.[ID] FROM @BGD BGD INNER JOIN @RSQN RSQ ON RSQ.[UNID] = BGD.[ID] end try begin catch SET @continue = 7 end catch end if (@continue = 0) begin begin try INSERT INTO [dbo].[BGDetail] ([ID], [IncludeInBill], [Seqno], [BGGroupID], [BGControlID], [Type], [Matter], [FEEEARN], [OUTLAYCODE], [DATE], [Narrative], [InvoiceNo], [Charge], [BilledAmount], [BillNow], [OriginalID], [ORGInvoiceNo], [ORGIncludeInBill], [ORGBILLINGDATE], [ORGBILLINGYEAR], [ORGBILLINGPERIOD], [ORGAMOUNT], [PaidNow]) select NEWID(), BGDN.[IncludeInBill], BGDN.[Seqno], @NewGroupID, @CurrBGC, BGDN.[Type], BGDN.[Matter], BGDN.[FEEEARN], BGDN.[OUTLAYCODE], BGDN.[DATE], BGDN.[Narrative], BGDN.[InvoiceNo], BGDN.[Charge], BGDN.[BilledAmount], BGDN.[BillNow], BGDN.[OriginalID], BGDN.[ORGInvoiceNo], BGDN.[ORGIncludeInBill], BGDN.[ORGBILLINGDATE], BGDN.[ORGBILLINGYEAR], BGDN.[ORGBILLINGPERIOD], BGDN.[ORGAMOUNT], BGDN.[PaidNow] from @bgd BGDN where BGDN.[Seqno] > 0 ORDER BY BGDN.[Seqno] end try begin catch SET @continue = 8 end catch end if (@continue = 0) begin begin try -- Make sure that those lines that were originally flagged as to be fully paid, -- remain fully paid UPDATE BGD SET BGD.[Charge] = BGDN.[charge], BGD.[BilledAmount] = BGDN.[BilledAmount], BGD.[BillNow] = BGDN.[BillNow] FROM @BGD BGDN INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGControlID] = @CurrBGC AND BGD.[Type] = BGDN.[Type] AND BGD.[OriginalID] = BGDN.[OriginalID] AND BGD.[BillNow] = BGD.[Charge] - BGD.[BilledAmount] -- Make sure that those lines where the BillNow value exceeds the new charge -- are set to be fully paid UPDATE BGD SET BGD.[Charge] = BGDN.[charge], BGD.[BilledAmount] = BGDN.[BilledAmount], BGD.[BillNow] = BGDN.[BillNow] FROM @BGD BGDN INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGControlID] = @CurrBGC AND BGD.[Type] = BGDN.[Type] AND BGD.[OriginalID] = BGDN.[OriginalID] AND BGDN.[Charge] - BGDN.[BilledAmount] >= 0 AND BGD.[BillNow] > BGDN.[Charge] - BGDN.[BilledAmount] -- Make sure that those lines where the BillNow (refund) value exceeds the new charge -- are set to be fully paid UPDATE BGD SET BGD.[Charge] = BGDN.[charge], BGD.[BilledAmount] = BGDN.[BilledAmount], BGD.[BillNow] = BGDN.[BillNow] FROM @BGD BGDN INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGControlID] = @CurrBGC AND BGD.[Type] = BGDN.[Type] AND BGD.[OriginalID] = BGDN.[OriginalID] AND BGDN.[Charge] - BGDN.[BilledAmount] <= 0 AND BGD.[BillNow] < BGDN.[Charge] - BGDN.[BilledAmount] -- If the BillNow value is set, and it fits within what remains to be paid, leave BillNow as is, but update Charge and Billed Amount UPDATE BGD SET BGD.[Charge] = BGDN.[charge], BGD.[BilledAmount] = BGDN.[BilledAmount] FROM @BGD BGDN INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGControlID] = @CurrBGC AND BGD.[Type] = BGDN.[Type] AND BGD.[OriginalID] = BGDN.[OriginalID] AND BGD.[BillNow] <> BGDN.[Charge] - BGDN.[BilledAmount] -- Remove entries that should no longer be in this billing guide DELETE BGD FROM [dbo].[BGDetail] BGD LEFT OUTER JOIN @bgd BGDN ON BGDN.[Type] = BGD.[type] AND BGDN.[OriginalID] = BGD.[OriginalID] WHERE BGD.[BGControlID] = @CurrBGC AND BGDN.[ID] is null DELETE BGG FROM [dbo].[BGGroups] BGG CROSS APPLY (SELECT COUNT(1) AS [TOTAL] FROM [dbo].[BGDetail] BGD WHERE BGD.[BGGroupID] = BGG.[ID]) ING WHERE BGG.[BGControlID] = @CurrBGC AND ING.[TOTAL] = 0 end try begin catch SET @continue = 9 end catch end if (@continue = 0) begin begin try INSERT INTO @RSQN2 ([GROUPID], [GROUPSEQ], [UNID], [MAXID]) select BGG.[ID], BGG.[SeqNo], BGD.[ID], 0 from [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[id] WHERE BGG.[BGControlID] = @CurrBGC ORDER BY BGG.[SeqNo], BGD.[Seqno] end try begin catch SET @continue = 10 end catch end if (@continue = 0) begin begin try UPDATE BGD SET BGD.[SeqNo] = R.[ID] - NR.[MAXID] from @RSQN2 R CROSS APPLY (SELECT ISNULL(MAX(RB.[ID]), 0) AS [MAXID] FROM @RSQN2 RB WHERE RB.[GROUPSEQ] < R.[GROUPSEQ]) NR INNER JOIN [dbo].[BGDetail] BGD ON BGD.[ID] = R.[UNID] end try begin catch SET @continue = 11 end catch end IF (@continue = 0) COMMIT ELSE ROLLBACK END ' END GO /****** Object: StoredProcedure [dbo].[ky_InitialiseBG] Script Date: 10/01/2014 16:17:23 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_InitialiseBG]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_InitialiseBG] (@PDraftNo int, @PBatchNo int, @PTimeRefDate DATETIME, @POutlayDate DATETIME, @PTimeRefAmount money, @POutlayAmount money) AS BEGIN declare @continue int declare @NewControlID int declare @RSQ table ([ID] int identity(1, 1), [UNID] uniqueidentifier) BEGIN TRANSACTION set @continue = 0 if (@continue = 0) begin begin try SELECT @NewControlID = IsNull(Max(ID), 0) + 1 FROM [dbo].[BGControl] end try begin catch SET @continue = 1 end catch end /* if (@continue = 0) begin begin try -- If multiple Billing Guides for certain Time Entries or Matter Ledger records, -- give the charge for these particular billing guide entries back to the other ones, -- so that they can charge the customer the full amount should they so desire UPDATE BGDO SET BGDO.[Charge] = BGDO.[Charge] + BGD.[Charge] from [dbo].[BGControl] BGC INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGControlID] = BGC.[ID] INNER JOIN [dbo].[BGDetail] BGDO ON BGDO.[Type] = BGD.[Type] AND BGDO.[OriginalID] = BGD.[OriginalID] AND ISNULL(BGDO.[OriginalID], 0) <> 0 AND BGDO.[BGControlID] <> BGD.[BGControlID] WHERE ( (IsNull(@PDraftNo, 0) <> 0) AND (BGC.[DraftNo] = IsNull(@PDraftNo, 0))) OR ( (IsNull(@PDraftNo, 0) = 0) AND (BGC.[BatchNo] = @PBatchNo)) end try begin catch SET @continue = 11 end catch end */ if (@continue = 0) begin begin try DELETE BGD from [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] ON BGG.[BGControlID] = BGC.[Id] WHERE ( (IsNull(@PDraftNo, 0) <> 0) AND (BGC.[DraftNo] = IsNull(@PDraftNo, 0))) OR ( (IsNull(@PDraftNo, 0) = 0) AND (BGC.[BatchNo] = @PBatchNo)) end try begin catch SET @continue = 3 end catch end if (@continue = 0) begin begin try DELETE BGG from [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG ON BGG.[BGControlID] = BGC.[Id] WHERE ( (IsNull(@PDraftNo, 0) <> 0) AND (BGC.[DraftNo] = IsNull(@PDraftNo, 0))) OR ( (IsNull(@PDraftNo, 0) = 0) AND (BGC.[BatchNo] = @PBatchNo)) end try begin catch SET @continue = 4 end catch end if (@continue = 0) begin begin try DELETE BGC from [dbo].[BGControl] BGC WHERE ( (IsNull(@PDraftNo, 0) <> 0) AND (BGC.[DraftNo] = IsNull(@PDraftNo, 0))) OR ( (IsNull(@PDraftNo, 0) = 0) AND (BGC.[BatchNo] = @PBatchNo)) end try begin catch SET @continue = 5 end catch end if (@continue = 0) begin begin try IF (@PDraftNo Is Not Null) BEGIN -- In case an inconsistent Draft/Batch number combination was passed in, -- or Batch Number was left NULL SELECT @PBatchNo = IsNull([BATCHNO], 0) FROM [dbo].[BILLHEADER] BIH WHERE BIH.[DRAFTNO] = @PDraftNo END ELSE BEGIN -- Get the Bill Header details IF they are present SELECT @PDraftNo = IsNull([DRAFTNO], 0) FROM [dbo].[BILLHEADER] BIH WHERE BIH.[BATCHNO] = @PBatchNo AND IsNull(@PBatchNo, 0) <> 0 SET @PDraftNo = IsNull(@PDraftNo, 0) END end try begin catch SET @continue = 6 end catch end if (@continue = 0) begin begin try IF (@PDraftNo <> 0) BEGIN INSERT INTO [dbo].[BGControl] ([ID], [Date], [TDate], [ODate], [TAmount], [OAmount], [Description], [DRAFTNO], [BATCHNO], [ADDRESSEE], [OURREF], [YOURREF], [MATTER]) SELECT @NewControlID, getDate(), convert(DATETIME, ISNULL(@PTimeRefDate, ISNULL(BIH.[WriteDown], getDate()))), convert(DATETIME, ISNULL(@POutlayDate, ISNULL(BIH.[WriteDown], getDate()))), IsNull(@PTimeRefAmount, 0), IsNull(@POutlayAmount, 0), '''', @PDraftNo, BIH.[BATCHNO], IsNull(BIH.[ADDRESSEE], ''''), IsNull(BIH.[OURREF], ''''), IsNull(BIH.[YOURREF], ''''), BIH.[Matter] FROM [dbo].[BillHeader] BIH WHERE BIH.[DraftNo] = @PDraftNo INSERT INTO [dbo].[BGGroups] ([ID], [SeqNo], [BGControlID], [Narrative]) SELECT NewID(), 0, @NewControlID, '''' FROM [dbo].[BillHeader] BIH WHERE BIH.[DraftNo] = @PDraftNo INSERT INTO [dbo].[BGDetail] ([ID], [IncludeInBill], [BGControlID], [Seqno], [BGGroupID], [Type], [Matter], [FEEEARN], [OUTLAYCODE], [DATE], [Narrative], [InvoiceNo], [Charge], [BilledAmount], [BillNow], [OriginalID], [ORGInvoiceNo], [ORGIncludeInBill], [ORGBILLINGDATE], [ORGBILLINGYEAR], [ORGBILLINGPERIOD], [ORGAMOUNT]) SELECT NewId(), 1, @NewControlID, 0, BGG.[ID], ''F'' As [TYPE], TIE.[Matter], TIE.[FEEEARN], convert(char(10), '''') AS [OUTLAYCODE], TIE.[DATE], ISNULL(convert(varchar(1000), TIE.[COMMENT]), ''''), IsNull(TIE.[INVOICENO], 0) As InvoiceNo, convert(decimal(19,2), TIE.[CHARGE]) As [CHARGE], ISNULL(TIE.[BilledAmount], 0) AS [BilledAmount], convert(decimal(19,2), TIE.[CHARGE]) - ISNULL(TIE.[BilledAmount], 0) As [BillNow], TIE.[RecordID], TIE.[INVOICENO], TIE.[IncludeInBill], TIE.[BILLINGDATE], TIE.[BILLINGYEAR], TIE.[BILLINGPERIOD], TIE.[BilledAmount] FROM [dbo].[BillHeader] BIH INNER JOIN [dbo].[BGGroups] BGG ON BGG.[BGControlID] = @NewControlID AND BGG.[SeqNo] = 0 INNER JOIN [dbo].[Matters] MAT ON ( ( (RTRIM(ISNULL(MAT.[CompBillingMatter], '''')) = BIH.[MATTER]) AND (RTRIM(ISNULL(MAT.[CompBillingMatter], '''')) <> MAT.[MATTER])) OR MAT.[Code] = BIH.[MATTER]) INNER JOIN [dbo].[TimeEntry] TIE LEFT OUTER JOIN [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[CODE] = HAN.[TEAM] ON HAN.[CODE] = TIE.[FEEEARN] ON TIE.[Matter] = MAT.[Code] AND TIE.[REC_IRR] <> ''N'' AND TIE.[CHARGE] <> 0 AND ISNULL(TIE.[BilledAmount], 0) <> TIE.[CHARGE] AND ISNULL(TIE.[DATE], getDate()) <= convert(DATETIME, ISNULL(@PTimeRefDate, ISNULL(BIH.[WriteDown], getDate()))) AND ISNULL(TIE.[IncludeInBill], 1) <> 2 AND TIE.[TIMEORCHARGE] IN (''T'', ''C'') WHERE BIH.[DRAFTNO] = @PDraftNo INSERT INTO [dbo].[BGDetail] ([ID], [IncludeInBill], [BGControlID], [Seqno], [BGGroupID], [Type], [Matter], [FEEEARN], [OUTLAYCODE], [DATE], [Narrative], [InvoiceNo], [Charge], [BilledAmount], [BillNow], [OriginalID], [ORGInvoiceNo], [ORGIncludeInBill], [ORGBILLINGDATE], [ORGBILLINGYEAR], [ORGBILLINGPERIOD], [ORGAMOUNT]) SELECT NewId(), 1, @NewControlID, 0, BGG.[ID], ''O'' As [TYPE], MAL.[Matter], IsNull(HAN.[Code], '''') AS [FEEEARN], IsNull(BAD.[OUTLAYCODE], '''') AS [OUTLAYCODE], MAL.[DATE], ISNULL(convert(varchar(1000), MAL.[NARR]), ''''), IsNull(MAL.[INVOICENO], 0) As InvoiceNo, convert(decimal(19,2), IsNull(MAL.[VALUEO], 0)) As [CHARGE], convert(decimal(19,2), ISNULL(MAL.[BilledOutlayValue], 0)) As [BilledAmount], convert(decimal(19,2), IsNull(MAL.[VALUEO], 0)) - convert(decimal(19,2), ISNULL(MAL.[BilledOutlayValue], 0)) As [BillNow], MAL.[LREF], MAL.[INVOICENO], MAL.[IncludeInBill], MAL.[BILLINGDATE], MAL.[BILLINGYEAR], MAL.[BILLINGPERIOD], MAL.[BilledOutlayValue] FROM [dbo].[BillHeader] BIH INNER JOIN [dbo].[BGGroups] BGG ON BGG.[BGControlID] = @NewControlID AND BGG.[SeqNo] = 0 INNER JOIN [dbo].[Matters] MAT ON ( RTRIM(ISNULL(MAT.[CompBillingMatter], '''')) = BIH.[MATTER] OR MAT.[Code] = BIH.[MATTER]) INNER JOIN [dbo].[MatterLedger] MAL LEFT OUTER JOIN [dbo].[BatchDetails] BAD LEFT OUTER JOIN [dbo].[OutlayCode] OLC ON OLC.[CODE] = BAD.[OUTLAYCODE] ON BAD.[PREF] = MAL.[PREF] AND BAD.[BATCHNO] = MAL.[BATCHNO] ON MAL.[Matter] = MAT.[Code] AND IsNull(BAD.[TYPE], '''') <> ''I'' AND MAL.[VALUEO] <> 0 AND convert(decimal(17,2), ISNULL(MAL.[BilledOutlayValue], 0)) <> convert(decimal(17,2), IsNull(MAL.[VALUEO], 0)) AND ISNULL(MAL.[DATE], getDate()) <= convert(DATETIME, ISNULL(@POutlayDate, ISNULL(BIH.[WriteDown], getDate()))) AND ISNULL(MAL.[IncludeInBill], 1) <> 2 LEFT OUTER JOIN [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[CODE] = HAN.[TEAM] ON HAN.[CODE] = Case When IsNull(MAL.[FEE], '''') = '''' THEN MAT.[FECODE] ELSE MAL.[FEE] END WHERE BIH.[DRAFTNO] = @PDraftNo END ELSE BEGIN INSERT INTO [dbo].[BGControl] ([ID], [Date], [TDate], [ODate], [TAmount], [OAmount], [Description], [DRAFTNO], [BATCHNO], [ADDRESSEE], [OURREF], [YOURREF], [MATTER]) SELECT @NewControlID, getDate(), convert(DATETIME, ISNULL(@PTimeRefDate, ISNULL(BAH.[WriteDown], getDate()))), convert(DATETIME, ISNULL(@POutlayDate, ISNULL(BAH.[WriteDown], getDate()))), IsNull(@PTimeRefAmount, 0), IsNull(@POutlayAmount, 0), '''', IsNull(BIH.[DRAFTNO], 0), BAH.[BATCHNO], IsNull(BIH.[ADDRESSEE], ''''), IsNull(BIH.[OURREF], ''''), IsNull(BIH.[YOURREF], ''''), BAH.[Matter] FROM [dbo].[BATCHH] BAH LEFT OUTER JOIN [dbo].[BillHeader] BIH ON BIH.[BATCHNO] = BAH.[BATCHNO] WHERE BAH.[BATCHNO] = @PBATCHNo INSERT INTO [dbo].[BGGroups] ([ID], [SeqNo], [BGControlID], [Narrative]) SELECT NewID(), 0, @NewControlID, '''' FROM [dbo].[BATCHH] BAH WHERE BAH.[BATCHNO] = @PBATCHNo INSERT INTO [dbo].[BGDetail] ([ID], [IncludeInBill], [BGControlID], [Seqno], [BGGroupID], [Type], [Matter], [FEEEARN], [OUTLAYCODE], [DATE], [Narrative], [InvoiceNo], [Charge], [BilledAmount], [BillNow], [OriginalID], [ORGInvoiceNo], [ORGIncludeInBill], [ORGBILLINGDATE], [ORGBILLINGYEAR], [ORGBILLINGPERIOD], [ORGAMOUNT]) SELECT NewId(), 1, @NewControlID, 0, BGG.[ID], ''F'' As [TYPE], TIE.[Matter], TIE.[FEEEARN], convert(char(10), '''') AS [OUTLAYCODE], TIE.[DATE], ISNULL(convert(varchar(1000), TIE.[COMMENT]), ''''), IsNull(TIE.[INVOICENO], 0) As InvoiceNo, convert(decimal(19,2), TIE.[CHARGE]) As [CHARGE], ISNULL(TIE.[BilledAmount], 0) AS [BilledAmount], convert(decimal(19,2), TIE.[CHARGE]) - ISNULL(TIE.[BilledAmount], 0) As [BillNow], TIE.[RecordID], TIE.[INVOICENO], TIE.[IncludeInBill], TIE.[BILLINGDATE], TIE.[BILLINGYEAR], TIE.[BILLINGPERIOD], TIE.[BilledAmount] FROM [dbo].[BatchH] BAH INNER JOIN [dbo].[BGGroups] BGG ON BGG.[BGControlID] = @NewControlID AND BGG.[SeqNo] = 0 INNER JOIN [dbo].[Matters] MAT ON ( ( (RTRIM(ISNULL(MAT.[CompBillingMatter], '''')) = BAH.[MATTER]) AND (RTRIM(ISNULL(MAT.[CompBillingMatter], '''')) <> MAT.[MATTER])) OR MAT.[Code] = BAH.[MATTER]) INNER JOIN [dbo].[TimeEntry] TIE LEFT OUTER JOIN [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[CODE] = HAN.[TEAM] ON HAN.[CODE] = TIE.[FEEEARN] ON TIE.[Matter] = MAT.[Code] AND TIE.[REC_IRR] <> ''N'' AND TIE.[CHARGE] <> 0 AND ISNULL(TIE.[BilledAmount], 0) <> TIE.[CHARGE] AND ISNULL(TIE.[DATE], getDate()) <= convert(DATETIME, ISNULL(@PTimeRefDate, ISNULL(BAH.[WriteDown], getDate()))) AND ISNULL(TIE.[IncludeInBill], 1) <> 2 AND TIE.[TIMEORCHARGE] IN (''T'', ''C'') WHERE BAH.[BATCHNO] = @PBatchNo INSERT INTO [dbo].[BGDetail] ([ID], [IncludeInBill], [BGControlID], [Seqno], [BGGroupID], [Type], [Matter], [FEEEARN], [OUTLAYCODE], [DATE], [Narrative], [InvoiceNo], [Charge], [BilledAmount], [BillNow], [OriginalID], [ORGInvoiceNo], [ORGIncludeInBill], [ORGBILLINGDATE], [ORGBILLINGYEAR], [ORGBILLINGPERIOD], [ORGAMOUNT]) SELECT NewId(), 1, @NewControlID, 0, BGG.[ID], ''O'' As [TYPE], MAL.[Matter], IsNull(HAN.[Code], '''') AS [FEEEARN], IsNull(BAD.[OUTLAYCODE], '''') AS [OUTLAYCODE], MAL.[DATE], ISNULL(convert(varchar(1000), MAL.[NARR]), ''''), IsNull(MAL.[INVOICENO], 0) As InvoiceNo, convert(decimal(19,2), IsNull(MAL.[VALUEO], 0)) As [CHARGE], convert(decimal(19,2), ISNULL(MAL.[BilledOutlayValue], 0)) As [BilledAmount], convert(decimal(19,2), IsNull(MAL.[VALUEO], 0)) - convert(decimal(19,2), ISNULL(MAL.[BilledOutlayValue], 0)) As [BillNow], MAL.[LREF], MAL.[INVOICENO], MAL.[IncludeInBill], MAL.[BILLINGDATE], MAL.[BILLINGYEAR], MAL.[BILLINGPERIOD], MAL.[BilledOutlayValue] FROM [dbo].[BatchH] BAH INNER JOIN [dbo].[BGGroups] BGG ON BGG.[BGControlID] = @NewControlID AND BGG.[SeqNo] = 0 INNER JOIN [dbo].[Matters] MAT ON ( RTRIM(ISNULL(MAT.[CompBillingMatter], '''')) = BAH.[MATTER] OR MAT.[Code] = BAH.[MATTER]) INNER JOIN [dbo].[MatterLedger] MAL LEFT OUTER JOIN [dbo].[BatchDetails] BAD INNER JOIN [dbo].[OutlayCode] OLC ON OLC.[CODE] = BAD.[OUTLAYCODE] ON BAD.[PREF] = MAL.[PREF] AND BAD.[BATCHNO] = MAL.[BATCHNO] ON MAL.[Matter] = MAT.[Code] AND MAL.[VALUEO] <> 0 AND convert(decimal(17,2), ISNULL(MAL.[BilledOutlayValue], 0)) <> convert(decimal(17,2), IsNull(MAL.[VALUEO], 0)) AND ISNULL(MAL.[DATE], getDate()) <= convert(DATETIME, ISNULL(@POutlayDate, ISNULL(BAH.[WriteDown], getDate()))) AND ISNULL(MAL.[IncludeInBill], 1) <> 2 LEFT OUTER JOIN [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[CODE] = HAN.[TEAM] ON HAN.[CODE] = Case When IsNull(MAL.[FEE], '''') = '''' THEN MAT.[FECODE] ELSE MAL.[FEE] END WHERE BAH.[BATCHNO] = @PBatchNo END end try begin catch SET @continue = 7 end catch end if (@continue = 0) begin begin try INSERT INTO @RSQ ([UNID]) SELECT [ID] FROM [dbo].[BGDetail] WHERE [BGControlID] = @NewControlID ORDER BY [Type], RTRIM(IsNull([Matter], '''')), IsNull(convert(varchar, [Date], 121), ''''), Narrative, OriginalID end try begin catch SET @continue = 8 end catch end if (@continue = 0) begin begin try UPDATE BGD SET BGD.[Seqno] = RSQ.[ID] FROM @RSQ RSQ INNER JOIN [dbo].[BGDetail] BGD ON BGD.[ID] = RSQ.[UNID] WHERE BGD.[BGControlID] = @NewControlID end try begin catch SET @continue = 9 end catch end if (@continue = 0) begin begin try UPDATE BGDT SET BGDT.[BillNow] = CASE WHEN BGCT.[TAmount] = 0 THEN BGDT.[BillNow] WHEN IsNull(LSTB.[TotalBilled], 0) + BGDT.[BillNow] <= BGCT.[TAmount] THEN BGDT.[BillNow] WHEN IsNull(LSTB.[TotalBilled], 0) > BGCT.[TAmount] THEN 0 ELSE BGCT.[TAmount] - IsNull(LSTB.[TotalBilled], 0) END from ( select BGC.[id] AS [BGControlID], BGD.[id], IsNull(SUM(IsNull(BGD2.[BillNow], 0)), 0) As TotalBilled from [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD LEFT OUTER JOIN [dbo].[BGDetail] BGD2 INNER JOIN [dbo].[BGGroups] BGG2 ON BGG2.[ID] = BGD2.[BGGroupID] ON BGD2.[BGControlID] = BGD.[BGControlID] AND BGD2.[Type] = BGD.[Type] AND ( BGD2.[DATE] < BGD.[DATE] OR ( BGD2.[DATE] = BGD.[DATE] AND BGD2.[Narrative] < BGD.[Narrative]) OR ( BGD2.[DATE] = BGD.[DATE] AND BGD2.[Narrative] = BGD.[Narrative] AND BGD2.[ID] < BGD.[ID])) ON BGD.[BGGroupID] = BGG.[id] AND BGD.[TYPE] = ''F'' ON BGG.[BGControlID] = BGC.[id] where BGC.[id] = @NewControlID GROUP BY BGC.[id], BGG.[seqno], BGD.[id]) LSTB INNER JOIN [dbo].[BGControl] BGCT ON BGCT.[id] = LSTB.[BGControlID] INNER JOIN [dbo].[BGDetail] BGDT ON BGDT.[id] = LSTB.[id] UPDATE BGDT SET BGDT.[BillNow] = CASE WHEN BGCT.[OAmount] = 0 THEN BGDT.[BillNow] WHEN IsNull(LSTB.[TotalBilled], 0) + BGDT.[BillNow] <= BGCT.[OAmount] THEN BGDT.[BillNow] WHEN IsNull(LSTB.[TotalBilled], 0) > BGCT.[OAmount] THEN 0 ELSE BGCT.[OAmount] - IsNull(LSTB.[TotalBilled], 0) END from ( select BGC.[id] AS [BGControlID], BGD.[id], IsNull(SUM(IsNull(BGD2.[BillNow], 0)), 0) As TotalBilled from [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD LEFT OUTER JOIN [dbo].[BGDetail] BGD2 ON BGD2.[BGControlID] = BGD.[BGControlID] AND BGD2.[Type] = BGD.[Type] AND ( BGD2.[DATE] < BGD.[DATE] OR ( BGD2.[DATE] = BGD.[DATE] AND BGD2.[Narrative] < BGD.[Narrative]) OR ( BGD2.[DATE] = BGD.[DATE] AND BGD2.[Narrative] = BGD.[Narrative] AND BGD2.[ID] < BGD.[ID])) ON BGD.[BGGroupID] = BGG.[id] AND BGD.[TYPE] = ''O'' ON BGG.[BGControlID] = BGC.[id] where BGC.[id] = @NewControlID GROUP BY BGC.[id], BGG.[seqno], BGD.[id]) LSTB INNER JOIN [dbo].[BGControl] BGCT ON BGCT.[id] = LSTB.[BGControlID] INNER JOIN [dbo].[BGDetail] BGDT ON BGDT.[id] = LSTB.[id] end try begin catch SET @continue = 10 end catch end if (@continue = 0) begin begin try UPDATE BGD SET BGD.[BillNow] = 0, --BGD.[BillNow] - IsNull(BO.[BilledPreviously], 0), -- BGD.[Charge] = BGD.[Charge] - IsNull(BO.[BilledPreviously], 0), BGD.[IncludeInBill] = 0 --CASE WHEN BGD.[BillNow] - IsNull(BO.[BilledPreviously], 0) = 0 -- THEN 0 -- ELSE BGD.[IncludeInBill] END from [dbo].[BGDetail] BGD CROSS APPLY (SELECT ISNULL(SUM(BGDO.[BillNow]), 0) AS [BilledPreviously] FROM [dbo].[BGDetail] BGDO WHERE BGDO.[Type] = BGD.[Type] AND BGDO.[OriginalID] = BGD.[OriginalID] AND ISNULL(BGDO.[OriginalID], 0) <> 0 AND BGDO.[BGControlID] <> @NewControlID AND BGDO.[InvoiceNo] = 0) BO where BGD.[BGControlID] = @NewControlID and BO.[BilledPreviously] <> 0 /* DELETE BGD from [dbo].[BGDetail] BGD where BGD.[BGControlID] = @NewControlID and BGD.[Charge] = 0 UPDATE BGDO SET BGDO.[Charge] = BGDO.[Charge] - BGD.[Charge] from [dbo].[BGDetail] BGD INNER JOIN [dbo].[BGDetail] BGDO ON BGDO.[Type] = BGD.[Type] AND BGDO.[OriginalID] = BGD.[OriginalID] AND ISNULL(BGDO.[OriginalID], 0) <> 0 AND BGDO.[BGControlID] <> @NewControlID where BGD.[BGControlID] = @NewControlID */ end try begin catch SET @continue = 11 end catch end IF (@continue = 0) COMMIT ELSE ROLLBACK END ' END GO /****** Object: StoredProcedure [dbo].[ky_ReCalcBillLinesVAT] Script Date: 10/01/2014 16:17:28 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_ReCalcBillLinesVAT]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[ky_ReCalcBillLinesVAT] (@DraftNo int) AS BEGIN DECLARE @FDRAFTNO int DECLARE @FFEEEARNER varchar(5) DECLARE @FNET decimal(13, 2) DECLARE @FVATVALUE decimal(13, 2) DECLARE @LINENO int DECLARE @FTOTVALUE decimal(11, 2) DECLARE @KeyID int DECLARE @FVATCODE varchar(1) DECLARE @CUMVATVALUE decimal(13, 2) DECLARE @CUMNETVALUE decimal(13, 2) DECLARE @NEWFEEVATAMT decimal(13, 2) DECLARE FBreakDown CURSOR FOR SELECT VATCODE, FECODE, SUM(VALUE) AS FValue, SUM(VATAMT) AS VatAmt FROM BillFeeBreakDown WHERE (DRAFTNO = @DraftNo) GROUP BY VATCODE, FECODE ORDER BY FECODE, VATCODE OPEN FBreakDown FETCH FBreakDown INTO @FVATCODE, @FFEEEARNER, @FTOTVALUE, @FVATVALUE; --here is the total amt and total VAT for this FE WHILE @@FETCH_STATUS = 0 BEGIN -- initialise cumulative NET and VAT values to zero Select @CUMVATVALUE = 0 Select @CUMNETVALUE = 0 -- now we need to go through each detail line to recalculate the VATAMT DECLARE FeeDetailLine CURSOR FOR SELECT NET, KeyID FROM BillDetails Where DraftNo = @DraftNo and FeeEarner = @FFEEEARNER and VATCODE = @FVATCODE and NET <> 0 Order by [LineNo] OPEN FeeDetailLine FETCH FeeDetailLine INTO @FNET, @KeyID; --here is the total amt for this FE line WHILE @@FETCH_STATUS = 0 BEGIN Select @CUMNETVALUE = @CUMNETVALUE + @FNET -- do calculation -- (Cumulative NetValue / TOTFEValue) * TOTFEVAT - Cumulative VAT Value = FEVAT Select @NEWFEEVATAMT = (@CUMNETVALUE/@FTOTVALUE) * @FVATVALUE - @CUMVATVALUE select @CUMVATVALUE = @CUMVATVALUE + @NEWFEEVATAMT -- now need to update this BillDetail Line UPDATE BillDetails SET VATVALUE = @NEWFEEVATAMT WHERE DraftNo = @DRAFTNo AND FEEEARNER = @FFEEEARNER AND KEYID = @KeyID FETCH FeeDetailLine INTO @FNET, @KeyID; --here is the total amt for this FE line END CLOSE FeeDetailLine DEALLOCATE FeeDetailLine FETCH FBreakDown INTO @FVATCODE, @FFEEEARNER, @FTOTVALUE, @FVATVALUE; --here is the total amt and total VAT for this FE END -- BEGIN CLOSE FBreakDown DEALLOCATE FBreakDown END ' END GO /****** Object: StoredProcedure [dbo].[ky_DesktopReCalculateFEBreakDown] Script Date: 10/01/2014 16:17:13 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_DesktopReCalculateFEBreakDown]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_DesktopReCalculateFEBreakDown] (@DRAFTNO INT) AS /******************************************************************************************** * * ky_DesktopReCalculateFEBreakDown * * ReCalculates the Fee Earner Breakdown for the Desktop application - this is to be called * after the user has made a manual correction to the Bill Details * ********************************************************************************************/ BEGIN DECLARE @TOTVALUE DECIMAL(11, 2) DECLARE @TOTVAT DECIMAL(15, 2) DECLARE @BFEB TABLE ([MATTER] [VARCHAR](20) NOT NULL, [DRAFTNO] [INT] NOT NULL, [BILLNO] [INT] NOT NULL, [FECODE] [CHAR](3) NULL, [TYPE] [CHAR](1) NULL, [PERCENT] [DECIMAL](5, 2) NULL, [CALCULATION] [DECIMAL](9, 5) NULL, [VALUE] [DECIMAL](11, 2) NULL, [VATCODE] [CHAR](1) NULL, [VATAMT] [DECIMAL](11, 2) NULL, [RECORDID] [DECIMAL](17, 0) IDENTITY(1,1) NOT NULL, [VATCalculation] [DECIMAL](15, 5) NULL) INSERT INTO @BFEB ([MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT], [VATCALCULATION]) SELECT BFBD.[MATTER], BFBD.[DRAFTNO], BFBD.[BILLNO], BFBD.[FECODE], ''F'' AS [TYPE], BFBD.[PERCENT], BFBD.[CALCULATION], CONVERT(DECIMAL(11, 2), 0) AS [VALUE], BFBD.[VATCODE] As [VATCODE], CONVERT(DECIMAL(11, 2), 0) AS [VATAMT], CONVERT(DECIMAL(15, 5), 0) AS [VATCalculation] FROM [dbo].[BillFeeBreakdown] BFBD WHERE BFBD.[DRAFTNO] = @DraftNo SELECT @TOTVALUE = IsNull(SUM(BD.[NET]), 0), @TOTVAT = ISNULL(SUM(BD.[VATVALUE]), 0) FROM [dbo].[BillDetails] BD WHERE BD.[DRAFTNO] = @DraftNo AND BD.[TYPE] = ''F'' -- This should always come out AS VERY close to 100, but it allows for a rounding error DECLARE @calculation DECIMAL(9, 5) SELECT @calculation = SUM(BFB.[CALCULATION]) FROM @BFEB BFB SET @calculation = ISNULL(@calculation, 0) UPDATE BFB SET BFB.[VALUE] = ISNULL(M1.[CALC], 0) - ISNULL(M2.[CALC], 0), BFB.[VATAMT] = ISNULL(M1.[VATCALC], 0) - ISNULL(M2.[VATCALC], 0), BFB.[VATCalculation] = ISNULL(M1.[VATCALC5], 0) - ISNULL(M2.[VATCALC5], 0) FROM @BFEB BFB CROSS APPLY (SELECT CONVERT(DECIMAL(11, 2), ROUND((CONVERT(DECIMAL(15, 7), SUM(B2.[CALCULATION])) * CONVERT(DECIMAL(15, 7), @TOTVALUE)) / CONVERT(DECIMAL(15, 7), @calculation), 2)) AS [CALC], CONVERT(DECIMAL(11, 2), ROUND((CONVERT(DECIMAL(15, 7), SUM(B2.[CALCULATION])) * CONVERT(DECIMAL(15, 7), @TOTVAT)) / CONVERT(DECIMAL(15, 7), @calculation), 2)) AS [VATCALC], CONVERT(DECIMAL(15, 5), ROUND((CONVERT(DECIMAL(18, 10), SUM(B2.[CALCULATION])) * CONVERT(DECIMAL(18, 10), @TOTVAT)) / CONVERT(DECIMAL(18, 10), @calculation), 5)) AS [VATCALC5] FROM @BFEB B2 WHERE B2.[RECORDID] <= BFB.[RECORDID]) M1 CROSS APPLY (SELECT CONVERT(DECIMAL(11, 2), ROUND((CONVERT(DECIMAL(15, 7), SUM(B2.[CALCULATION])) * CONVERT(DECIMAL(15, 7), @TOTVALUE)) / CONVERT(DECIMAL(15, 7), @calculation), 2)) AS [CALC], CONVERT(DECIMAL(11, 2), ROUND((CONVERT(DECIMAL(15, 7), SUM(B2.[CALCULATION])) * CONVERT(DECIMAL(15, 7), @TOTVAT)) / CONVERT(DECIMAL(15, 7), @calculation), 2)) AS [VATCALC], CONVERT(DECIMAL(15, 5), ROUND((CONVERT(DECIMAL(18, 10), SUM(B2.[CALCULATION])) * CONVERT(DECIMAL(18, 10), @TOTVAT)) / CONVERT(DECIMAL(18, 10), @calculation), 5)) AS [VATCALC5] FROM @BFEB B2 WHERE B2.[RECORDID] < BFB.[RECORDID]) M2 DELETE BFBD FROM [dbo].[BillFeeBreakDown] BFBD WHERE BFBD.[DRAFTNO] = @draftno INSERT INTO [dbo].[BillFeeBreakdown] ([MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT], [VATCALCULATION]) SELECT NBFB.[MATTER], NBFB.[DRAFTNO], 0, NBFB.[FECODE], NBFB.[TYPE], NBFB.[PERCENT], NBFB.[CALCULATION], NBFB.[VALUE], NBFB.[VATCODE], NBFB.[VATAMT], NBFB.[VATCalculation] FROM @BFEB NBFB LEFT OUTER JOIN [dbo].[BillFeeBreakdown] BFB ON BFB.[DRAFTNO] = NBFB.[DRAFTNO] AND BFB.[FECODE] = NBFB.[FECODE] WHERE BFB.[RECORDID] IS NULL END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_BGNewBillFeeBreakdownBD] Script Date: 10/01/2014 16:18:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGNewBillFeeBreakdownBD]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' create function [dbo].[ky_BGNewBillFeeBreakdownBD] (@DraftNo int) RETURNS TABLE AS RETURN SELECT GG.[MATTER], GG.[DRAFTNO], GG.[InvoiceNo] AS [BILLNO], GG.[FECODE], ''F'' AS [TYPE], convert(decimal(5, 2), Round(CASE WHEN IsNull(GT.[TotalBilled], 0) = 0 THEN 0 ELSE 100 * (IsNull(GG.[TotalBilled], 0) / GT.[TotalBilled]) END, 5)) AS [PERCENT], convert(decimal(9, 5), Round(CASE WHEN IsNull(GT.[TotalBilled], 0) = 0 THEN 0 ELSE 100 * (IsNull(GG.[TotalBilled], 0) / GT.[TotalBilled]) END, 5)) AS [CALCULATION], CONVERT(decimal(11, 2), IsNull(GG.[TotalBilled], 0)) AS [VALUE], GG.[VATCode] AS [VATCODE], --CON.[DEFAULTVAT] As [VATCODE], CONVERT(decimal(11, 5), (IsNull(GG.[TotalBilled], 0) * IsNull(VCD.[RATE], 0)) / 100) AS [VATAMT], CONVERT(decimal(15, 5), ROUND((IsNull(GG.[TotalBilled], 0) * IsNull(VCD.[RATE], 0)) / 100, 5)) AS [VATCalculation] FROM ( select BDL.[DraftNo] AS [DRAFTNO], BDL.[Matter] AS [MATTER], BDL.[FEEEARNER] AS [FECODE], BDL.[BILLNO] As [InvoiceNo], SUM(BDL.[NET]) As [TotalBilled], BDL.[VATCODE] AS [VATCODE] from [dbo].[BillDetails] BDL WHERE BDL.[DraftNo] = @DraftNo and BDL.[TYPE] = ''F'' GROUP BY BDL.[DraftNo], BDL.[BillNo], BDL.[Matter], BDL.[FEEEARNER], BDL.[VATCODE]) GG CROSS JOIN ( select SUM(BD.[NET]) AS [TotalBilled] from [dbo].[BillDetails] BD WHERE BD.[DraftNo] = @DraftNo AND BD.[Type] = ''F'') GT CROSS JOIN [dbo].[CONTROL] CON INNER JOIN [dbo].[VATCodes] VCD ON VCD.[CODE] = [VATCODE] --CON.[DEFAULTVAT] ' END GO /****** Object: UserDefinedFunction [dbo].[ky_FromDesktopBillFeeBreakdown] Script Date: 10/01/2014 16:19:01 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_FromDesktopBillFeeBreakdown]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' create function [dbo].[ky_FromDesktopBillFeeBreakdown] (@DraftNo int) RETURNS TABLE AS RETURN SELECT BGC.[MATTER], BGC.[DRAFTNO], GG.[InvoiceNo] AS [BILLNO], GG.[FECODE], ''F'' AS [TYPE], convert(decimal(5, 2), Round(CASE WHEN IsNull(GT.[TotalBilled], 0) = 0 THEN 0 ELSE 100 * (IsNull(GG.[TotalBilled], 0) / GT.[TotalBilled]) END, 5)) AS [PERCENT], convert(decimal(9, 5), Round(CASE WHEN IsNull(GT.[TotalBilled], 0) = 0 THEN 0 ELSE 100 * (IsNull(GG.[TotalBilled], 0) / GT.[TotalBilled]) END, 5)) AS [CALCULATION], CONVERT(decimal(11, 2), IsNull(BDT.[TotalBillDetail], 0)/100 * convert(decimal(9, 5), Round(CASE WHEN IsNull(GT.[TotalBilled], 0) = 0 THEN 0 ELSE 100 * (IsNull(GG.[TotalBilled], 0) / GT.[TotalBilled]) END, 5))) AS [VALUE], CON.[DEFAULTVAT] As [VATCODE], CONVERT(decimal(11, 2), (CONVERT(decimal(11, 2), IsNull(BDT.[TotalBillDetail], 0)/100 * convert(decimal(9, 5), Round(CASE WHEN IsNull(GT.[TotalBilled], 0) = 0 THEN 0 ELSE 100 * (IsNull(GG.[TotalBilled], 0) / GT.[TotalBilled]) END, 5))) * IsNull(VCD.[RATE], 0)) / 100) AS [VATAMT], CONVERT(decimal(15, 5), (CONVERT(decimal(11, 2), IsNull(BDT.[TotalBillDetail], 0)/100 * convert(decimal(9, 5), Round(CASE WHEN IsNull(GT.[TotalBilled], 0) = 0 THEN 0 ELSE 100 * (IsNull(GG.[TotalBilled], 0) / GT.[TotalBilled]) END, 5))) * IsNull(VCD.[RATE], 0)) / 100) AS [VATCalculation] FROM ( select BGCG.[ID], BGDG.[FEEEARN] AS [FECODE], Max(BGDG.[InvoiceNo]) As [InvoiceNo], SUM(BGDG.[BillNow]) As [TotalBilled] from [dbo].[BGControl] BGCG INNER JOIN [dbo].[BGGroups] BGGG INNER JOIN [dbo].[BGDetail] BGDG ON BGDG.[BGGroupID] = BGGG.[ID] AND BGDG.[TYPE] = ''F'' ON BGGG.[BGControlID] = BGCG.[ID] WHERE BGCG.[DraftNo] = @DraftNo GROUP BY BGCG.[ID], BGDG.[FEEEARN]) GG CROSS JOIN ( select BGCT.[ID], SUM(BGDT.[BillNow]) AS [TotalBilled] from [dbo].[BGControl] BGCT INNER JOIN [dbo].[BGGroups] BGGT INNER JOIN [dbo].[BGDetail] BGDT ON BGDT.[BGGroupID] = BGGT.[ID] AND BGDT.[TYPE] = ''F'' ON BGGT.[BGControlID] = BGCT.[ID] WHERE BGCT.[DraftNo] = @DraftNo GROUP BY BGCT.[ID]) GT INNER JOIN [dbo].[BGControl] BGC ON BGC.[ID] = GG.[ID] CROSS JOIN [dbo].[CONTROL] CON INNER JOIN [dbo].[VATCodes] VCD ON VCD.[CODE] = CON.[DEFAULTVAT] CROSS JOIN (select SUM(BD.[NET]) AS [TotalBillDetail] from [dbo].[BillDetails] BD WHERE BD.[DraftNo] = @DraftNo AND BD.[Type] = ''F'') BDT ' END GO /****** Object: StoredProcedure [dbo].[ky_DesktopCalculateFEBreakDown] Script Date: 10/01/2014 16:17:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_DesktopCalculateFEBreakDown]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_DesktopCalculateFEBreakDown] (@DRAFTNO int) AS BEGIN DECLARE @TOTVALUE decimal(11, 2) DECLARE @TOTVAT decimal(15, 2) DECLARE @BFEB TABLE ([MATTER] [char](11) NOT NULL, [DRAFTNO] [int] NOT NULL, [BILLNO] [int] NOT NULL, [FECODE] [char](3) NULL, [TYPE] [char](1) NULL, [PERCENT] [decimal](5, 2) NULL, [CALCULATION] [decimal](9, 5) NULL, [VALUE] [decimal](11, 2) NULL, [VATCODE] [char](1) NULL, [VATAMT] [decimal](11, 2) NULL, [RECORDID] [decimal](17, 0) IDENTITY(1,1) NOT NULL, [VATCalculation] [decimal](15, 5) NULL) INSERT INTO @BFEB ([MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT], [VATCALCULATION]) SELECT BGC.[MATTER], BGC.[DRAFTNO], 0 AS [BILLNO], GG.[FECODE], ''F'' AS [TYPE], convert(decimal(5, 2), CASE WHEN CONVERT(DECIMAL(15, 7), GT.[TotalBilled]) = 0 THEN 0 ELSE Round(CASE WHEN IsNull(CONVERT(DECIMAL(15, 7), GT.[TotalBilled]), CONVERT(DECIMAL(15, 7), 0)) = CONVERT(DECIMAL(15, 7), 0) THEN CONVERT(DECIMAL(15, 7), 0) ELSE CONVERT(DECIMAL(15, 7), 100) * (IsNull(CONVERT(DECIMAL(15, 7), GG.[TotalBilled]), CONVERT(DECIMAL(15, 7), 0)) / CONVERT(DECIMAL(15, 7), GT.[TotalBilled])) END, 2) END) AS [PERCENT], convert(decimal(9, 5), CASE WHEN CONVERT(DECIMAL(15, 7), GT.[TotalBilled]) = 0 THEN 0 ELSE Round(CASE WHEN IsNull(CONVERT(DECIMAL(15, 7), GT.[TotalBilled]), CONVERT(DECIMAL(15, 7), 0)) = CONVERT(DECIMAL(15, 7), 0) THEN CONVERT(DECIMAL(15, 7), 0) ELSE CONVERT(DECIMAL(15, 7), 100) * (IsNull(CONVERT(DECIMAL(15, 7), GG.[TotalBilled]), CONVERT(DECIMAL(15, 7), 0)) / CONVERT(DECIMAL(15, 7), GT.[TotalBilled])) END, 5) END) AS [CALCULATION], CONVERT(decimal(11, 2), 0) AS [VALUE], CON.[DEFAULTVAT] As [VATCODE], CONVERT(decimal(11, 2), 0) AS [VATAMT], CONVERT(decimal(15, 5), 0) AS [VATCalculation] FROM ( select BGCG.[ID], BGDG.[FEEEARN] AS [FECODE], Max(BGDG.[InvoiceNo]) As [InvoiceNo], SUM(BGDG.[BillNow]) As [TotalBilled] from [dbo].[BGControl] BGCG INNER JOIN [dbo].[BGGroups] BGGG INNER JOIN [dbo].[BGDetail] BGDG ON BGDG.[BGGroupID] = BGGG.[ID] AND BGDG.[TYPE] = ''F'' ON BGGG.[BGControlID] = BGCG.[ID] WHERE BGCG.[DraftNo] = @DraftNo GROUP BY BGCG.[ID], BGDG.[FEEEARN]) GG CROSS JOIN ( select BGCT.[ID], ISNULL(SUM(ISNULL(BGDT.[BillNow], 0)), 0) AS [TotalBilled] from [dbo].[BGControl] BGCT INNER JOIN [dbo].[BGGroups] BGGT INNER JOIN [dbo].[BGDetail] BGDT ON BGDT.[BGGroupID] = BGGT.[ID] AND BGDT.[TYPE] = ''F'' ON BGGT.[BGControlID] = BGCT.[ID] WHERE BGCT.[DraftNo] = @DraftNo GROUP BY BGCT.[ID]) GT INNER JOIN [dbo].[BGControl] BGC ON BGC.[ID] = GG.[ID] CROSS JOIN [dbo].[CONTROL] CON INNER JOIN [dbo].[VATCodes] VCD ON VCD.[CODE] = CON.[DEFAULTVAT] CROSS JOIN (SELECT SUM(BD.[NET]) AS [TotalBillDetail] FROM [dbo].[BillDetails] BD WHERE BD.[DraftNo] = @DraftNo AND BD.[Type] = ''F'') BDT SELECT @TOTVALUE = IsNull(SUM(BD.[NET]), 0), @TOTVAT = ISNULL(SUM(BD.[VATVALUE]), 0) FROM [dbo].[BillDetails] BD WHERE BD.[DRAFTNO] = @DraftNo AND BD.[TYPE] = ''F'' -- This should always come out as VERY close to 100, but it allows for a rounding error DECLARE @calculation DECIMAL(9, 5) SELECT @calculation = SUM(BFB.[CALCULATION]) FROM @BFEB BFB SET @calculation = ISNULL(@calculation, 0) UPDATE BFB SET BFB.[VALUE] = ISNULL(M1.[CALC], 0) - ISNULL(M2.[CALC], 0), BFB.[VATAMT] = ISNULL(M1.[VATCALC], 0) - ISNULL(M2.[VATCALC], 0), BFB.[VATCalculation] = ISNULL(M1.[VATCALC5], 0) - ISNULL(M2.[VATCALC5], 0) FROM @BFEB BFB CROSS APPLY (SELECT CONVERT(DECIMAL(11, 2), ROUND((CONVERT(DECIMAL(15, 7), SUM(B2.[CALCULATION])) * CONVERT(DECIMAL(15, 7), @TOTVALUE)) / CONVERT(DECIMAL(15, 7), 100), 2)) AS [CALC], CONVERT(DECIMAL(11, 2), ROUND((CONVERT(DECIMAL(15, 7), SUM(B2.[CALCULATION])) * CONVERT(DECIMAL(15, 7), @TOTVAT)) / CONVERT(DECIMAL(15, 7), 100), 2)) AS [VATCALC], CONVERT(DECIMAL(15, 5), ROUND((CONVERT(DECIMAL(18, 10), SUM(B2.[CALCULATION])) * CONVERT(DECIMAL(18, 10), @TOTVAT)) / CONVERT(DECIMAL(18, 10), 100), 5)) AS [VATCALC5] FROM @BFEB B2 WHERE B2.[RECORDID] <= BFB.[RECORDID]) M1 CROSS APPLY (SELECT CONVERT(DECIMAL(11, 2), ROUND((CONVERT(DECIMAL(15, 7), SUM(B2.[CALCULATION])) * CONVERT(DECIMAL(15, 7), @TOTVALUE)) / CONVERT(DECIMAL(15, 7), 100), 2)) AS [CALC], CONVERT(DECIMAL(11, 2), ROUND((CONVERT(DECIMAL(15, 7), SUM(B2.[CALCULATION])) * CONVERT(DECIMAL(15, 7), @TOTVAT)) / CONVERT(DECIMAL(15, 7), 100), 2)) AS [VATCALC], CONVERT(DECIMAL(15, 5), ROUND((CONVERT(DECIMAL(18, 10), SUM(B2.[CALCULATION])) * CONVERT(DECIMAL(18, 10), @TOTVAT)) / CONVERT(DECIMAL(18, 10), 100), 5)) AS [VATCALC5] FROM @BFEB B2 WHERE B2.[RECORDID] < BFB.[RECORDID]) M2 DELETE BFBD FROM [dbo].[BillFeeBreakDown] BFBD WHERE BFBD.[DRAFTNO] = @draftno INSERT INTO [dbo].[BillFeeBreakdown] ([MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT], [VATCALCULATION]) SELECT NBFB.[MATTER], NBFB.[DRAFTNO], 0, NBFB.[FECODE], NBFB.[TYPE], NBFB.[PERCENT], NBFB.[CALCULATION], NBFB.[VALUE], NBFB.[VATCODE], NBFB.[VATAMT], NBFB.[VATCalculation] FROM @BFEB NBFB LEFT OUTER JOIN [dbo].[BillFeeBreakdown] BFB ON BFB.[DRAFTNO] = NBFB.[DRAFTNO] AND BFB.[FECODE] = NBFB.[FECODE] WHERE BFB.[RECORDID] IS NULL END ' END GO /****** Object: StoredProcedure [dbo].[ky_CreditNote] Script Date: 10/01/2014 16:17:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CreditNote]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_CreditNote] (@CNDraftNo int) AS BEGIN DECLARE @OldDraftNo int DECLARE @LastLineNo int --FOR Bill Header totals and VAT Rates --DECLARE @THISVATRATE decimal(7, 4) DECLARE @VATCODE char(1) DECLARE @VATENTRY int --DECLARE @THISNET decimal(17, 2) --DECLARE @THISVATVALUE decimal(17, 2) DECLARE @RATE1 decimal(17, 2) DECLARE @NETRATE1 decimal(17, 2) DECLARE @VATRATE1 decimal(17, 2) DECLARE @RATE2 decimal(17, 2) DECLARE @NETRATE2 decimal(17, 2) DECLARE @VATRATE2 decimal(17, 2) SELECT @LastLineNo =IsNull(MAX(BID.[LINENO]), 0) from [dbo].[billheader] BIH INNER JOIN [dbo].[BillDetails] BID ON BID.[DRAFTNO] = BIH.[DRAFTNO] WHERE BIH.[DRAFTNO] = @CNDraftNO INSERT INTO [dbo].[BillDetails] ([MATTER], [DRAFTNO], [BILLNO], [TYPE], [FEEEARNER], [NOMINAL], [NARRATIVE], [NET], [VATCODE], [VATRATE], [VATVALUE], [LINENO]) select BID.[MATTER], BIH.[DRAFTNO], BIH.[BILLNO], BID.[TYPE], BID.[FEEEARNER], BID.[NOMINAL], BID.[NARRATIVE], BID.[NET], BID.[VATCODE], BID.[VATRATE], BID.[VATVALUE], @LastLineNo + BID.[LINENO] AS [LINENO] from [dbo].[billheader] BIH INNER JOIN [dbo].[billheader] BIO INNER JOIN [dbo].[BillDetails] BID ON BID.[DRAFTNO] = BIO.[DRAFTNO] ON BIO.[BatchNo] = BIH.[CreditInvoiceNo] WHERE BIH.[DRAFTNO] = @CNDraftNO INSERT INTO [dbo].[BillFeeBreakdown] ([MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT]) select BIF.[MATTER], BIH.[DRAFTNO], BIH.[BILLNO], BIF.[FECODE], BIF.[TYPE], BIF.[PERCENT], BIF.[CALCULATION], BIF.[VALUE], BIF.[VATCODE], BIF.[VATAMT] from [dbo].[billheader] BIH INNER JOIN [dbo].[billheader] BIO INNER JOIN [dbo].[BillFeeBreakdown] BIF ON BIF.[DRAFTNO] = BIO.[DRAFTNO] ON BIO.[BatchNo] = BIH.[CreditInvoiceNo] WHERE BIH.[DRAFTNO] = @CNDraftNO --Calculate the Bill Header totals and VAT Rates 1 and 2 SET @VATENTRY = 0 SET @RATE1 = 0 SET @NETRATE1 = 0 SET @VATRATE1 = 0 SET @RATE2 = 0 SET @NETRATE2 = 0 SET @VATRATE2 = 0 SELECT @VATCODE = [DEFAULTVAT] FROM [dbo].[Control] DECLARE @VATs TABLE ([VATENTRY] int identity(1, 1), [RATE] decimal(17, 2)) -- This should really only return a maximum of two rows, but just in case -- it doesn''t, we''ll order them from highest VAT Rate down. INSERT INTO @VATs ([RATE]) select DISTINCT BID.[VATRATE] from [dbo].[BillHeader] BIH inner join [dbo].[BillDetails] BID ON BID.[DRAFTNO] = BIH.[DRAFTNO] AND BID.[TYPE] = ''F'' where BIH.[DRAFTNO] = @CNDraftNO ORDER BY BID.VATRATE DESC IF EXISTS (SELECT * FROM @VATs WHERE [VATENTRY] = 1) BEGIN select @RATE1 = [RATE] from @VATs WHERE [VATENTRY] = 1 select @NETRATE1 = SUM(BID.[NET]) from [dbo].[BillHeader] BIH inner join [dbo].[BillDetails] BID ON BID.[DRAFTNO] = BIH.[DRAFTNO] AND BID.[TYPE] = ''F'' where BIH.[DRAFTNO] = @CNDraftNO and BID.[VATRATE] = @RATE1 SET @VATRATE1 = Round(((@NETRATE1 * @RATE1) / 100), 2) END IF EXISTS (SELECT * FROM @VATs WHERE [VATENTRY] = 2) BEGIN select @RATE2 = [RATE] from @VATs WHERE [VATENTRY] = 2 select @NETRATE2 = SUM(BID.[NET]) from [dbo].[BillHeader] BIH inner join [dbo].[BillDetails] BID ON BID.[DRAFTNO] = BIH.[DRAFTNO] AND BID.[TYPE] = ''F'' where BIH.[DRAFTNO] = @CNDraftNO and BID.[VATRATE] = @RATE2 SET @VATRATE2 = Round(((@NETRATE2 * @RATE2) / 100), 2) END UPDATE BIH SET BIH.[TOTAL] = BIHU.[TOTAL], BIH.[FEES] = BIHU.[FEES], BIH.[OUTLAY] = BIHU.[OUTLAY], BIH.[TOTALVAT] = BIHU.[TOTALVAT], BIH.[RATE1] = BIHU.[RATE1], BIH.[NETRATE1] = BIHU.[NETRATE1], BIH.[VATRATE1] = BIHU.[VATRATE1], BIH.[RATE2] = BIHU.[RATE2], BIH.[NETRATE2] = BIHU.[NETRATE2], BIH.[VATRATE2] = BIHU.[VATRATE2], BIH.[FEEVATCODE] = @VATCODE FROM ( select BIHO.[DRAFTNO], @VATCODE AS [VATCODE], @RATE1 AS [RATE1], @NETRATE1 AS [NETRATE1], @VATRATE1 AS [VATRATE1], @RATE2 AS [RATE2], @NETRATE2 AS [NETRATE2], @VATRATE2 AS [VATRATE2], SUM(IsNull(BID.[NET], 0) + ((IsNull(BID.[NET], 0) * IsNull(BID.[VATRATE], 0)) / 100)) AS [TOTAL], SUM(((IsNull(BID.[NET], 0) * IsNull(BID.[VATRATE], 0)) / 100)) AS [TOTALVAT], SUM(CASE WHEN BID.[TYPE] = ''F'' THEN IsNull(BID.[NET], 0) ELSE 0 END) AS [FEES], SUM(CASE WHEN BID.[TYPE] = ''O'' THEN IsNull(BID.[NET], 0) ELSE 0 END) AS [OUTLAY] from [dbo].[BillHeader] BIHO inner join [dbo].[BillDetails] BID ON BID.[DraftNo] = BIHO.[DraftNo] WHERE BIHO.[DRAFTNO] = @CNDraftNO GROUP BY BIHO.[DRAFTNO]) BIHU INNER JOIN [dbo].[BillHeader] BIH ON BIH.[DRAFTNO] = BIHU.[DRAFTNO] END ' END GO /****** Object: StoredProcedure [dbo].[ky_GetDocumentsIM] Script Date: 10/01/2014 16:17:19 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetDocumentsIM]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /*********************************************************************************** * * ky_GetDocumentsIM * gets Documents for Document Manager, with support for IManage integration * CASECODE: keyhouse Case Code * HANDLER: keyhouse handler * PAGE: (paging support) page to return * PAGESIZE: (paging support) number of documents per page * ORDER: --0 = Diary Date DESC * --1 = Document Date DESC * --2 = IMDocID DESC - on sites with IManage the only * sensible order is 2 * CLASSFILTER: Document class codes separated by ***. Pass in NULL or '''' when no * filter is applied. Example: '''' - no filter * ''***ATTNOTES***GEN***'' - return * IManage "attendance notes" or Keyhouse * General documents. * TYPEFILTER: Document types separated by *** Example: '''' - no filter * ''***DOC***DOCX***RTF***'' Word docs. * ***********************************************************************************/ CREATE PROCEDURE [dbo].[ky_GetDocumentsIM] (@handler VARCHAR(10), @casecode VARCHAR(20), @page INT, @pagesize INT, @order INT, @classfilter VARCHAR(MAX), @typefilter VARCHAR(MAX), @search VARCHAR(MAX)) AS BEGIN SET @classfilter = ISNULL(@classfilter, '''') SET @typefilter = ISNULL(@typefilter, '''') SET @search = ISNULL(@search, '''') DECLARE @startno INT DECLARE @totaldocs INT DECLARE @totalpages INT DECLARE @enddoc INT DECLARE @OTHFilters VARCHAR(max) DECLARE @PDFFilters VARCHAR(max) DECLARE @DOCFilters VARCHAR(max) DECLARE @PPTFilters VARCHAR(max) DECLARE @MSGFilters VARCHAR(max) DECLARE @XLSFilters VARCHAR(max) DECLARE @IMGFilters VARCHAR(max) IF (ISNULL(@pagesize, 0) < 1) SET @pagesize = 100 IF (ISNULL(@page, 0) < 1) SET @page = 1 SET @startno = (@page - 1) * @pagesize + 1 IF (@startno < 1) SET @startno = 1 DECLARE @classes TABLE ([KeyhouseClass] INT, [IMClass] INT, [ClassCode] VARCHAR(20), [ClassDescription] VARCHAR(100)) DECLARE @concatclasses TABLE ([ClassCode] VARCHAR(max), [ClassDescription] VARCHAR(100)) DECLARE @res TABLE ([id] INT identity(1, 1), [id2] INT, [ActionId] INT, [TrackReference] INT, [IMDocID] VARCHAR(500), [IMClass] VARCHAR(20), [DocClass] VARCHAR(10), [Document] VARCHAR(2000), [OriginalDesc] VARCHAR(1000), [DiaryDate] DATETIME, [DocumentDate] DATETIME, [TYPE] VARCHAR(20), [EMAIL] VARCHAR(1), [EMAILFROM] VARCHAR(200), [EMAILSENT] DATETIME, [EMAILTO] VARCHAR(1000)) INSERT INTO @res ([ActionID], [TrackReference], [IMDocID], [IMClass], [DocClass], [Document], [OriginalDesc], [DiaryDate], [DocumentDate], [TYPE], [EMAIL], [EMAILSENT], [EMAILFROM], [EMAILTO]) SELECT RES.[ActionID], RES.[TrackReference], RES.[IMDocID], RES.[IMClass], RES.[DocClass], RES.[Document], RES.[OriginalDesc], RES.[DiaryDate], RES.[DocumentDate], RES.[TYPE], RES.[EMAIL], RES.[EMAILSENT], RES.[EMAILFROM], RES.[EMAILTO] FROM (SELECT convert(INT, NULL) AS [ActionID], convert(INT, NULL) AS [TrackReference], convert(VARCHAR(500), DAL.[IMDocID]) AS [IMDocID], convert(VARCHAR(20), DAL.[IMClass]) AS [IMClass], convert(VARCHAR(10), NULL) AS [DocClass], convert(VARCHAR(2000), DAL.[Description]) AS [Document], convert(VARCHAR(1000), DAL.[OriginalDesc]) AS [OriginalDesc], 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(VARCHAR(1), CASE WHEN DAL.[IMClass] = ''E-Mail'' THEN ''Y'' ELSE ''N'' END) As [EMAIL], CASE WHEN DAL.[IMClass] = ''E-Mail'' THEN DAL.[EMAILFROM] ELSE CONVERT(VARCHAR(200), NULL) END AS [EMAILFROM], CASE WHEN DAL.[IMClass] = ''E-Mail'' THEN DAL.[EMAILTO] ELSE CONVERT(VARCHAR(1000), NULL) END AS [EMAILTO] FROM [dbo].[DAIMList] DAL LEFT OUTER JOIN [dbo].[DAIMXref] DX ON DX.[IMDocID] = DAL.[IMDocID] WHERE DAL.[HANDLER] = @handler AND DX.[TrackReference] IS NULL UNION SELECT convert(INT, 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], RTRIM(convert(VARCHAR(1000), ISNULL(DA.[Document], ''''))) AS [OriginalDesc], 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], 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] FROM [dbo].[diary] DIA INNER JOIN [dbo].[DiaryAttachments] DA ON DA.[DiaryID] = DIA.[ActionID] LEFT OUTER JOIN [dbo].[DAIMXRef] DX LEFT OUTER JOIN [dbo].[DAIMList] DL ON DL.[handler] = @handler AND DL.[IMDocID] = DX.[IMDocID] ON DX.[TrackReference] = DA.[TrackReference] WHERE DIA.[CASECODE] = @casecode) RES ORDER BY CASE WHEN @order = 2 THEN RES.[IMDocID] ELSE '''' END DESC, CASE WHEN @order = 0 THEN RES.[DiaryDate] ELSE convert(DATETIME, NULL) END DESC, CASE WHEN @order = 0 THEN RES.[ActionID] ELSE RES.[TrackReference] END DESC, CASE WHEN @order = 0 THEN RES.[TrackReference] ELSE 0 END ASC, RES.[EMAIL] DESC 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] INSERT INTO @concatclasses ([ClassCode], [ClassDescription]) SELECT DISTINCT ''***'' AS [ClassCode], [CLS].[ClassDescription] FROM @classes [CLS] DECLARE @CONCATCODE VARCHAR(MAX) DECLARE @CLASSDESCRIPTION VARCHAR(100) SET @CLASSDESCRIPTION = '''' SELECT TOP 1 @CLASSDESCRIPTION = [CCT].[ClassDescription] FROM @concatclasses [CCT] WHERE [CCT].[ClassCode] = ''***'' WHILE @CLASSDESCRIPTION <> '''' BEGIN SET @CONCATCODE = ''***'' SELECT @CONCATCODE = @CONCATCODE + [CLS].[ClassCode] + ''***'' FROM @classes [CLS] WHERE [CLS].[ClassDescription] = @CLASSDESCRIPTION UPDATE [CCT] SET [CCT].[ClassCode] = @CONCATCODE FROM @concatclasses [CCT] WHERE [CCT].[ClassDescription] = @CLASSDESCRIPTION SET @CLASSDESCRIPTION = '''' SELECT TOP 1 @CLASSDESCRIPTION = [CCT].[ClassDescription] FROM @concatclasses [CCT] WHERE [CCT].[ClassCode] = ''***'' END --SELECT TOP 1 1 -- FROM @classes CLS SELECT [ClassCode], [ClassDescription] FROM @concatclasses CLS SELECT @OTHFilters = ''***'' SELECT @PDFFilters = ''***'' SELECT @DOCFilters = ''***'' SELECT @PPTFilters = ''***'' SELECT @MSGFilters = ''***'' SELECT @XLSFilters = ''***'' SELECT @IMGFilters = ''***'' SELECT @OTHFilters = CASE WHEN RSZ.[Type] <> ''Other'' THEN @OTHFilters ELSE @OTHFilters + RSZ.[DocType] + ''***'' END, @PDFFilters = CASE WHEN RSZ.[Type] <> ''Adobe PDF'' THEN @PDFFilters ELSE @PDFFilters + RSZ.[DocType] + ''***'' END, @DOCFilters = CASE WHEN RSZ.[Type] <> ''Document'' THEN @DOCFilters ELSE @DOCFilters + RSZ.[DocType] + ''***'' END, @PPTFilters = CASE WHEN RSZ.[Type] <> ''Presentation'' THEN @PPTFilters ELSE @PPTFilters + RSZ.[DocType] + ''***'' END, @MSGFilters = CASE WHEN RSZ.[Type] <> ''E-Mail'' THEN @MSGFilters ELSE @MSGFilters + RSZ.[DocType] + ''***'' END, @XLSFilters = CASE WHEN RSZ.[Type] <> ''Spreadsheet'' THEN @XLSFilters ELSE @XLSFilters + RSZ.[DocType] + ''***'' END, @IMGFilters = CASE WHEN RSZ.[Type] <> ''Image'' THEN @IMGFilters ELSE @IMGFilters + RSZ.[DocType] + ''***'' END FROM (SELECT DISTINCT RES.[TYPE] AS [DocType], CASE WHEN RES.[TYPE] = ''PDF'' THEN ''Adobe PDF'' WHEN RES.[TYPE] = ''BMP'' THEN ''Image'' WHEN RES.[TYPE] = ''GIF'' THEN ''Image'' WHEN RES.[TYPE] = ''G3N'' THEN ''Image'' WHEN RES.[TYPE] = ''JPG'' THEN ''Image'' WHEN RES.[TYPE] = ''JPEG'' THEN ''Image'' WHEN RES.[TYPE] = ''JPE'' THEN ''Image'' WHEN RES.[TYPE] = ''PNG'' THEN ''Image'' WHEN RES.[TYPE] = ''TIF'' THEN ''Image'' WHEN RES.[TYPE] = ''TIFF'' THEN ''Image'' WHEN RES.[TYPE] = ''XLS'' THEN ''Spreadsheet'' WHEN RES.[TYPE] = ''XLSX'' THEN ''Spreadsheet'' WHEN RES.[TYPE] = ''CSV'' THEN ''Spreadsheet'' WHEN RES.[TYPE] = ''ODS'' THEN ''Spreadsheet'' WHEN RES.[TYPE] = ''MSG'' THEN ''E-Mail'' WHEN RES.[TYPE] = ''EML'' THEN ''E-Mail'' WHEN RES.[TYPE] = ''DOC'' THEN ''Document'' WHEN RES.[TYPE] = ''DOCX'' THEN ''Document'' WHEN RES.[TYPE] = ''RTF'' THEN ''Document'' WHEN RES.[TYPE] = ''TXT'' THEN ''Document'' WHEN RES.[TYPE] = ''INI'' THEN ''Document'' WHEN RES.[TYPE] = ''ODT'' THEN ''Document'' WHEN RES.[TYPE] = ''PPT'' THEN ''Presentation'' WHEN RES.[TYPE] = ''PPTX'' THEN ''Presentation'' WHEN RES.[TYPE] = ''ODP'' THEN ''Presentation'' ELSE ''Other'' END AS [Type] FROM @res RES) RSZ SELECT [Type], [Filter] FROM (SELECT DISTINCT CASE WHEN RES.[TYPE] = ''PDF'' THEN ''Adobe PDF'' WHEN RES.[TYPE] = ''BMP'' THEN ''Image'' WHEN RES.[TYPE] = ''GIF'' THEN ''Image'' WHEN RES.[TYPE] = ''G3N'' THEN ''Image'' WHEN RES.[TYPE] = ''JPG'' THEN ''Image'' WHEN RES.[TYPE] = ''JPEG'' THEN ''Image'' WHEN RES.[TYPE] = ''JPE'' THEN ''Image'' WHEN RES.[TYPE] = ''PNG'' THEN ''Image'' WHEN RES.[TYPE] = ''TIF'' THEN ''Image'' WHEN RES.[TYPE] = ''TIFF'' THEN ''Image'' WHEN RES.[TYPE] = ''XLS'' THEN ''Spreadsheet'' WHEN RES.[TYPE] = ''XLSX'' THEN ''Spreadsheet'' WHEN RES.[TYPE] = ''CSV'' THEN ''Spreadsheet'' WHEN RES.[TYPE] = ''ODS'' THEN ''Spreadsheet'' WHEN RES.[TYPE] = ''MSG'' THEN ''E-Mail'' WHEN RES.[TYPE] = ''EML'' THEN ''E-Mail'' WHEN RES.[TYPE] = ''DOC'' THEN ''Document'' WHEN RES.[TYPE] = ''DOCX'' THEN ''Document'' WHEN RES.[TYPE] = ''RTF'' THEN ''Document'' WHEN RES.[TYPE] = ''TXT'' THEN ''Document'' WHEN RES.[TYPE] = ''INI'' THEN ''Document'' WHEN RES.[TYPE] = ''ODT'' THEN ''Document'' WHEN RES.[TYPE] = ''PPT'' THEN ''Presentation'' WHEN RES.[TYPE] = ''PPTX'' THEN ''Presentation'' WHEN RES.[TYPE] = ''ODP'' THEN ''Presentation'' ELSE ''Other'' END AS [Type], CASE WHEN RES.[TYPE] = ''PDF'' THEN @PDFFilters WHEN RES.[TYPE] = ''BMP'' THEN @IMGFilters WHEN RES.[TYPE] = ''GIF'' THEN @IMGFilters WHEN RES.[TYPE] = ''G3N'' THEN @IMGFilters WHEN RES.[TYPE] = ''JPG'' THEN @IMGFilters WHEN RES.[TYPE] = ''JPEG'' THEN @IMGFilters WHEN RES.[TYPE] = ''JPE'' THEN @IMGFilters WHEN RES.[TYPE] = ''PNG'' THEN @IMGFilters WHEN RES.[TYPE] = ''TIF'' THEN @IMGFilters WHEN RES.[TYPE] = ''TIFF'' THEN @IMGFilters WHEN RES.[TYPE] = ''XLS'' THEN @XLSFilters WHEN RES.[TYPE] = ''XLSX'' THEN @XLSFilters WHEN RES.[TYPE] = ''CSV'' THEN @XLSFilters WHEN RES.[TYPE] = ''ODS'' THEN @XLSFilters WHEN RES.[TYPE] = ''MSG'' THEN @MSGFilters WHEN RES.[TYPE] = ''EML'' THEN @MSGFilters WHEN RES.[TYPE] = ''DOC'' THEN @DOCFilters WHEN RES.[TYPE] = ''DOCX'' THEN @DOCFilters WHEN RES.[TYPE] = ''RTF'' THEN @DOCFilters WHEN RES.[TYPE] = ''TXT'' THEN @DOCFilters WHEN RES.[TYPE] = ''INI'' THEN @DOCFilters WHEN RES.[TYPE] = ''ODT'' THEN @DOCFilters WHEN RES.[TYPE] = ''PPT'' THEN @PPTFilters WHEN RES.[TYPE] = ''PPTX'' THEN @PPTFilters WHEN RES.[TYPE] = ''ODP'' THEN @PPTFilters ELSE @OTHFilters END AS [Filter] FROM @res RES) RSZ ORDER BY CASE WHEN RSZ.[Type] = ''Other'' THEN ''ZZZZZZ'' ELSE RSZ.[Type] END IF (@classfilter <> '''') BEGIN DELETE RES FROM @res RES WHERE @classfilter NOT LIKE ''%***'' + ISNULL(RES.[IMClass], '''') + ''***%'' AND @classfilter NOT LIKE ''%***'' + ISNULL(RES.[DocClass], '''') + ''***%'' END IF (@typefilter <> '''') BEGIN DELETE RES FROM @res RES WHERE @typefilter NOT LIKE ''%***'' + ISNULL(RES.[TYPE], '''') + ''***%'' END IF (@search <> '''') BEGIN SET @search = ''%'' + @search + ''%'' SET @search = REPLACE(@search, ''%%'', ''%'') SET @search = REPLACE(@search, ''%%'', ''%'') DELETE RES FROM @res RES WHERE RES.[Document] NOT LIKE @search AND ISNULL(RES.[EMAILFROM], '''') NOT LIKE @search AND ISNULL(RES.[EMAILTO], '''') NOT LIKE @search END UPDATE RES sET RES.[id2] = MEH.[TOTAL] FROM @res RES CROSS APPLY (SELECT COUNT(1) AS TOTAL FROM @res RES2 WHERE RES2.[id] <= RES.[id]) MEH SELECT @totaldocs = COUNT(1) FROM @res IF (@totaldocs > 0) BEGIN WHILE @startno > @totaldocs BEGIN SET @startno = @startno - @pagesize SET @page = @page - 1 IF (@startno < 1) SET @startno = 1 END END ELSE BEGIN SET @page = 0 SET @startno = 0 END DELETE @RES WHERE [id2] < @startno OR [id2] > @startno + @pagesize - 1 SELECT @enddoc = ISNULL(MAX([id2]), 0) FROM @res SELECT @totalpages = FLOOR((convert(real, @totaldocs) - convert(real, 1)) / convert(real, @pagesize)) + 1 SELECT @page AS [page], @startno AS [firstdoc], @enddoc AS [lastdoc], @totaldocs As [totaldocs], @totalpages As [totalpages] 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 FROM @res RES OUTER APPLY ( SELECT TOP 1 MST.[TrackReference] AS [TrackReference], MST.[Type] AS [Type] FROM [dbo].[diaryattachments] MST WHERE MST.[diaryid] = RES.[ActionID] ORDER BY CASE WHEN MST.Type = ''MSG'' THEN 0 ELSE 1 END, MST.[TrackReference]) OMS WHERE RES.[ACTIONID] IS NOT NULL SELECT RES.[id], RES.[id2], RES.[DiaryDate], ISNULL(RES.[ActionID], 0) AS [ACTIONID], RES.[DocumentDate], RES.[IMDocID], RES.[IMClass], CLS.[ClassDescription] AS [DocumentClassDescription], RES.[DocClass], CASE WHEN DAT.[TrackReference] IS NULL THEN RES.[Document] WHEN RES.[EMAIL] <> ''Y'' THEN RES.[Document] WHEN RTRIM(ISNULL(DIA.[EMAILADDRESS], '''')) <> '''' AND RTRIM(ISNULL(CONVERT(VARCHAR(1000), DIA.[ADDRESSTO]), '''')) <> '''' THEN CONVERT(VARCHAR(2000), ''E-mail FROM '' + RTRIM(ISNULL(DIA.[EMAILADDRESS], '''')) + '' to '' + RTRIM(ISNULL(CONVERT(VARCHAR(2000), DIA.[ADDRESSTO]), ''''))) --+ '': '' + RTRIM(ISNULL(DIA.[SUBJECT], ''''))) WHEN RTRIM(ISNULL(DIA.[EMAILADDRESS], '''')) <> '''' THEN CONVERT(VARCHAR(2000), ''E-mail FROM '' + RTRIM(ISNULL(DIA.[EMAILADDRESS], ''''))) --+ '': '' + RTRIM(ISNULL(DIA.[SUBJECT], ''''))) WHEN RTRIM(ISNULL(CONVERT(VARCHAR(2000), DIA.[ADDRESSTO]), '''')) <> '''' THEN ''E-mail to '' + RTRIM(ISNULL(CONVERT(VARCHAR(2000), DIA.[ADDRESSTO]), '''')) --+ '': '' + RTRIM(ISNULL(DIA.[SUBJECT], ''''))) ELSE RES.[Document] END AS [Document], RES.[OriginalDesc] AS [OriginalDocumentName], ISNULL(RES.[TrackReference], 0) AS [TRACKREFERENCE], RES.[TYPE], 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], ISNULL(CONVERT(VARCHAR(1000), SUBSTRING(ISNULL(DIA.[SUBJECT], CASE WHEN RES.[EMAIL] = ''Y'' THEN RES.[OriginalDesc] ELSE '''' END), 1, 1000)), '''') AS [SUBJECT], 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] 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.[IMClass], '''') = '''' THEN 1 ELSE 0 END AND CLS.[IMClass] = CASE WHEN ISNULL(RES.[IMClass], '''') = '''' THEN 0 ELSE 1 END AND CLS.[ClassCode] = CASE WHEN ISNULL(RES.[IMClass], '''') = '''' THEN RES.[DocClass] ELSE RES.[IMClass] END END ' END GO /****** Object: StoredProcedure [dbo].[ky_IMGenerateBrief] Script Date: 10/01/2014 16:17:21 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_IMGenerateBrief]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_IMGenerateBrief] (@handler VARCHAR(10), @MatterCode VARCHAR(20), @BriefTitle VARCHAR(200), @Description VARCHAR(4000), @BriefAuthor VARCHAR(100), @Location VARCHAR(256), @CreateDate VARCHAR(11), @PublishDate VARCHAR(11), @CopyBrief INT, @CopyBriefID INT, @BriefTemplateID INT, @ImportCaseDocs INT, @ImportNonClassified INT) AS /******************************************************************************* .NET version of the Generate Brief procedure - with IManage support ImportCaseDocs: 1 - Include all case documents in this brief (IF brief is created AS a copy of the last brief, include missing ones) 0 - Leave out missing case documents CopyBrief: 1 - Create a New Brief AS a copy of the last Brief for this Case 0 - Create a New Brief that is blank Nonclassified: 1 - Add all documents into the brief, creating new sections for document classes not already represented in the brief sections 0 - Add only documents that have a document class corresponding to a Brief Section that already EXISTS in the document. *******************************************************************************/ BEGIN DECLARE @NewBriefID INT DECLARE @LastBriefID INT DECLARE @NewSectionNo INT DECLARE @NewSection VARCHAR(100) DECLARE @DocSortOrder INT DECLARE @DocLastSectionID INT DECLARE @DocBriefID INT DECLARE @DocName VARCHAR(255) DECLARE @DocTrackRef INT DECLARE @DocFileLoc VARCHAR(255) DECLARE @DocFileDate DATETIME DECLARE @DocType CHAR(4) DECLARE @DocSectionID INT DECLARE @DocClass VARCHAR(100) DECLARE @MaxSectionSequence INT BEGIN TRANSACTION DECLARE @NewSections Table ([ID] INT identity(1, 1), [Section] VARCHAR(100)) DECLARE @BriefDocs TABLE ([ID] INT identity(1, 1), [DocumentName] VARCHAR(255), [TrackReference] INT, [IMDocID] VARCHAR(500), [FileLocation] VARCHAR(255), [FileDate] DATETIME, [DocumentType] VARCHAR(4), [DocumentClass] VARCHAR(100), [SortOrder] INT, [SectionID] INT) BEGIN TRY IF (@CopyBrief = 1) BEGIN SELECT @LastBriefID = BRI.[ID] FROM [dbo].[Brief] BRI WHERE BRI.[MatterCode] = @MatterCode AND BRI.[ID] = IsNull(@CopyBriefID, BRI.[ID]) ORDER BY BRI.[CreationDate] DESC, BRI.[ID] DESC IF (@LastBriefID IS NULL) BEGIN RAISERROR(N''Copy Brief Requested but no current brief present'', 20, 1); END END INSERT INTO [dbo].[Brief] ([Title], [MatterCode], [Author], [Location], [CreationDate], [PublishDate], [Description]) VALUES(@BriefTitle, @MatterCode, @BriefAuthor, @Location, convert(DATETIME, @createdate), convert(DATETIME, @publishdate), @Description) Set @NewBriefID = SCOPE_IDENTITY() UPDATE BRI SET BRI.[Location] = Replace(BRI.[Location], ''.pdf'', ''_'' + convert(VARCHAR(8), BRI.[ID]) + ''.pdf'') FROM [dbo].[Brief] BRI WHERE BRI.[ID] = @NewBriefID /* Use Brief Template to create Brief Sections IF requested */ IF IsNull(@BriefTemplateID, 0) <> 0 BEGIN INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) SELECT @NewBriefID, BTS.[CoverPage], BTS.[Sequence], RTRIM(ISNULL(BTS.[Section], '''')) AS [Section] FROM [dbo].[BriefTemplateSections] BTS WHERE BTS.[BriefTemplateID] = @BriefTemplateID END /* Create a Cover Letters Section so that the Brief will have at least ONE section*/ IF IsNull(@BriefTemplateID, 0) = 0 BEGIN INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) VALUES(@NewBriefID, 1, 1, ''Cover Letters'') END IF @ImportNonClassified = 1 BEGIN SELECT @MaxSectionSequence = MAX(BS.[Sequence]) FROM [dbo].[BriefSections] BS WHERE BS.[BriefID] = @NewBriefID SELECT @MaxSectionSequence = ISNULL(@MaxSectionSequence, 0) INSERT INTO @NewSections ([Section]) SELECT DISTINCT RTRIM(ISNULL(DC.[ClassDescription], '''')) AS [Section] FROM [dbo].[diary] DIA INNER JOIN [dbo].[DiaryAttachments] DA INNER JOIN [dbo].[DocumentClasses] DC LEFT OUTER JOIN [dbo].[BriefSections] BS2 ON BS2.[BriefID] = @NewBriefID AND BS2.[Section] = DC.[ClassDescription] ON DC.[ClassCode] = DA.[DocClass] ON DA.[DIARYID] = DIA.[ACTIONID] WHERE DIA.[CaseCode] = @MatterCode AND BS2.[id] IS NULL INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) SELECT @NewBriefID, 0, NS.[ID] + @MaxSectionSequence, RTRIM(ISNULL(NS.[Section], '''')) AS [Section] FROM @NewSections NS END /* If this is a copy of an earlier brief, make sure that all the sections FROM the old Brief are also present in the new Brief. Avoid duplicates. */ IF @CopyBrief = 1 BEGIN INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) SELECT @NewBriefID, BS.[CoverPage], BS.[Sequence], RTRIM(ISNULL(BS.[Section], '''')) AS [Section] FROM [dbo].[BriefSections] BS LEFT OUTER JOIN [dbo].[BriefSections] BS2 ON BS2.[BriefID] = @NewBriefID AND BS2.[Section] = BS.[Section] WHERE BS.[BriefID] = @LastBriefID AND BS2.[ID] IS NULL END /* For backward compatibility with the Clarion version, we will be updating these ''sorter'' fields that allow the Clarion program to show the sections in the correct order. the WinDev/.NET programs can handle this themselves and they don''t need this */ UPDATE BS SET BS.khsorter = convert(VARCHAR, 1-coverpage) + right(convert(VARCHAR, 10000 + sequence), 4) + right(convert(VARCHAR, 10000000 + ID), 7) FROM briefsections BS WHERE BS.BriefID = @NewBriefID /* If this is a copy FROM an older Brief, copy the Brief documents FROM the old Brief into the new Brief */ IF @CopyBrief = 1 BEGIN INSERT INTO [dbo].[BriefDocuments] ([BriefID], [DocumentName], [TrackReference], [FileLocation], [FileDate], [DocumentType], [DocumentClass], [SortOrder], [SectionID]) SELECT @NewBriefID, BD.[DocumentName], BD.[TrackReference], BD.[FileLocation], BD.[Filedate], BD.[DocumentType], BD.[DocumentClass], BD.[SortOrder], BS2.[ID] FROM [dbo].[BriefDocuments] BD INNER JOIN [dbo].[BriefSections] BS1 INNER JOIN [dbo].[BriefSections] BS2 ON BS2.[BriefID] = @NewBriefID AND BS2.[CoverPage] = BS1.[CoverPage] AND BS2.[Sequence] = BS1.[Sequence] AND BS2.[Section] = BS1.[Section] ON BS1.[ID] = BD.SectionID WHERE BD.BriefID = @LastBriefID END /* Import the Case Documents into the new Brief IF requested. Importing of non-classified documents implies importing ALL documents. */ IF (@ImportCaseDocs = 1) OR (@ImportNonClassified = 1) BEGIN INSERT INTO @BriefDocs ([DocumentName], [TrackReference], [IMDocID], [FileLocation], [FileDate], [DocumentType], [DocumentClass], [SectionID]) SELECT CASE WHEN RES.[TrackReference] IS NULL THEN CASE WHEN RES.[Document] = '''' THEN ''(no name)'' ELSE RES.[Document] END WHEN RES.[EMAIL] <> ''Y'' THEN CASE WHEN RES.[Document] = '''' THEN ''(no name)'' ELSE RES.[Document] END WHEN RES.[TYPE] <> ''MSG'' THEN CASE WHEN RES.[Document] = '''' THEN ''(no name)'' ELSE RES.[Document] END WHEN (RTRIM(ISNULL(RES.[EMAILFROM], '''')) <> '''') AND (RTRIM(ISNULL(CONVERT(VARCHAR(255), RES.[EMAILTO]), '''')) <> '''') THEN CONVERT(VARCHAR(255), ''E-mail FROM '' + RTRIM(ISNULL(RES.[EMAILFROM], '''')) + RTRIM(ISNULL(CONVERT(VARCHAR(255), RES.[EMAILTO]), '''')) + '': '' + RTRIM(ISNULL(RES.[Document], ''''))) WHEN RTRIM(ISNULL(RES.[EMAILFROM], '''')) <> '''' THEN CONVERT(VARCHAR(255), ''E-mail FROM '' + RTRIM(ISNULL(RES.[EMAILFROM], '''')) + '': '' + RTRIM(ISNULL(RES.[Document], ''''))) WHEN RTRIM(ISNULL(CONVERT(VARCHAR(255), RES.[EMAILTO]), '''')) <> '''' THEN CONVERT(VARCHAR(255), ''E-mail to '' + RTRIM(ISNULL(CONVERT(VARCHAR(255), RES.[EMAILTo]), '''')) + '': '' + RTRIM(ISNULL(RES.[Document], ''''))) ELSE CASE WHEN RES.[Document] = '''' THEN ''(no name)'' ELSE RES.[Document] END END AS [DocumentName], RES.[TrackReference], RES.[IMDocID], RES.[FileLocation], RES.[DocumentDate] AS [FileDate], RES.[TYPE] As [DocumentType], RES.[DocumentClass] As [DocumentClass], BS.[ID] AS [SectionID] FROM (SELECT convert(INT, NULL) AS [TrackReference], convert(VARCHAR(500), DAL.[IMDocID]) AS [IMDocID], convert(VARCHAR(20), DAL.[IMClass]) AS [IMClass], convert(VARCHAR(10), NULL) AS [DocClass], convert(VARCHAR(255), DAL.[Description]) AS [Document], convert(DATETIME, ISNULL(DAL.[DocumentDate], DAL.[EmailSent])) AS [DocumentDate], CASE convert(VARCHAR(20), DAL.[IMTYPE]) WHEN ''WORD'' THEN ''DOC'' WHEN ''WORDX'' THEN ''DOC'' WHEN ''WPF'' THEN ''DOC'' WHEN ''ANSI'' THEN ''DOC'' WHEN ''ACROBAT'' THEN ''PDF'' WHEN ''EXCEL'' THEN ''XLS'' WHEN ''EXCELX'' THEN ''XLS'' WHEN ''MIME'' THEN CASE WHEN DAL.[IMClass] = ''E-Mail'' THEN ''MSG'' ELSE ''MIME'' END ELSE DAL.[IMTYPE] END AS [TYPE], convert(VARCHAR(1), CASE WHEN DAL.[IMClass] = ''E-Mail'' THEN ''Y'' ELSE ''N'' END) As [EMAIL], CASE WHEN DAL.[IMClass] = ''E-Mail'' THEN DAL.[EMAILFROM] ELSE CONVERT(VARCHAR(200), NULL) END AS [EMAILFROM], CASE WHEN DAL.[IMClass] = ''E-Mail'' THEN DAL.[EMAILTO] ELSE CONVERT(VARCHAR(255), NULL) END AS [EMAILTO], '''' AS [FileLocation], CASE WHEN DAL.[IMClass] = ''ATTNOTES'' THEN ''Attendance Notes'' WHEN DAL.[IMClass] = ''BILL'' THEN ''Bill'' WHEN DAL.[IMClass] = ''FAX'' THEN ''Fax'' WHEN DAL.[IMClass] = ''LEGAL'' THEN ''Legal'' WHEN DAL.[IMClass] = ''SCAN'' THEN ''Scan'' WHEN DAL.[IMClass] = ''COMPARE'' THEN ''Compare Document'' WHEN DAL.[IMClass] = ''DISCUSSION'' THEN ''Discussion'' WHEN DAL.[IMClass] = ''DOC'' THEN ''Document'' WHEN DAL.[IMClass] = ''E-MAIL'' THEN ''E-Mail'' WHEN DAL.[IMClass] = ''EVENT'' THEN ''Event'' WHEN DAL.[IMClass] = ''LETTER'' THEN ''Letter'' WHEN DAL.[IMClass] = ''MEMO'' THEN ''Memo'' WHEN DAL.[IMClass] = ''PAGE_ICON'' THEN ''Page Icon'' WHEN DAL.[IMClass] = ''TASK'' THEN ''Task'' WHEN DAL.[IMClass] = ''TEXT'' THEN ''Text File'' WHEN DAL.[IMClass] = ''WEBDOC'' THEN ''InfoLink Web Page'' ELSE '''' END AS [DocumentClass] FROM [dbo].[DAIMList] DAL LEFT OUTER JOIN [dbo].[DAIMXref] DX ON DX.[IMDocID] = DAL.[IMDocID] WHERE DAL.[HANDLER] = @handler AND DX.[TrackReference] IS NULL UNION SELECT convert(INT, 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(255), ISNULL(DA.[Document], ''''))) AS [Document], convert(DATETIME, DA.[DATEENTERED]) AS [DocumentDate], convert(VARCHAR(20), UPPER(RTRIM(ISNULL(DA.[TYPE], '''')))) AS [TYPE], convert(VARCHAR(1), CASE WHEN RTRIM(ISNULL(DIA.[EMAIL], ''N'')) = ''Y'' THEN ''Y'' ELSE ''N'' END) AS [EMAIL], convert(VARCHAR(200), RTRIM(ISNULL(DIA.[EMAILADDRESS], ''''))) AS [EMAILFROM], RTRIM(ISNULL(CONVERT(VARCHAR(255), DIA.[ADDRESSTO]), '''')) AS [EMAILTO], RTRIM(ISNULL(CASE WHEN UNC.[UNC] IS NULL THEN DA.[FilePath] ELSE UNC.[UNC] + SUBSTRING(DA.[FilePath], 3, LEN(DA.[FilePath]) - 2) END, '''')) AS [FileLocation], RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '''')) AS [DocumentClass] FROM [dbo].[diary] DIA INNER JOIN [dbo].[DiaryAttachments] DA ON DA.[DiaryID] = DIA.[ActionID] AND RTRIM(ISNULL(DA.[FilePath], '''')) <> '''' LEFT OUTER JOIN [dbo].[DAIMXRef] DX LEFT OUTER JOIN [dbo].[DAIMList] DL ON DL.[handler] = @handler AND DL.[IMDocID] = DX.[IMDocID] ON DX.[TrackReference] = DA.[TrackReference] LEFT OUTER JOIN [dbo].[UNCAlias] UNC ON UNC.[Drive] = CASE WHEN SUBSTRING(DA.[FilePath], 2, 1) = '':'' THEN LEFT(DA.[FilePath], 1) ELSE '''' END LEFT OUTER JOIN [dbo].[DocumentClasses] DCL ON DCL.[CLASSCODE] = DA.[DOCCLASS] WHERE DIA.[CASECODE] = @MatterCode) RES INNER JOIN [dbo].[BriefSections] BS ON BS.[BriefID] = @NewBriefID AND BS.[Section] = RES.[DocumentClass] ORDER BY BS.[CoverPage] DESC, BS.[ID] INSERT INTO [dbo].[BriefDocuments] ([BriefID], [DocumentName], [TrackReference], [FileLocation], [Filedate], [DocumentType], [DocumentClass], [SortOrder], [SectionID], [IMDOCID]) SELECT @NewBriefID, BD.[DocumentName], BD.[TrackReference], BD.[FileLocation], BD.[Filedate], BD.[DocumentType], BD.[DocumentClass], BD.[ID] - BT.[TOTAL], BD.[SectionID], BD.[IMDOCID] FROM @BriefDocs BD CROSS APPLY (SELECT COUNT(1) AS TOTAL FROM @BriefDocs BD2 WHERE BD2.[SectionID] < BD.[SectionID]) BT END COMMIT END TRY BEGIN CATCH ROLLBACK END CATCH END ' END GO /****** Object: UserDefinedFunction [dbo].[IMGetDocInfo] Script Date: 10/01/2014 16:18:56 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[IMGetDocInfo]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[IMGetDocInfo] (@TrackReference INT) RETURNS TABLE AS RETURN SELECT DAT.[TrackReference], 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(DX.[IMDocId], '''')) AS [IMDocID], CASE WHEN RTRIM(ISNULL(MAT.[OldRef], '''')) <> '''' THEN RTRIM(ISNULL(MAT.[OldRef], '''')) WHEN RTRIM(ISNULL(MAT.[User1], '''')) <> '''' THEN RTRIM(ISNULL(MAT.[User1], '''')) ELSE MAT.[Code] END AS [IMatter], RTRIM(ISNULL(DAT.[Document], '''')) AS [Document], UPPER(RTRIM(IsNull(DAT.[DOCCLASS], ''''))) AS [DOCCLASS], ISNULL(CX.[CLASSCODE], ''GEN'') AS [CLASSCODE], ISNULL(CX.[IMCLASS], ''DOC'') AS [IMCLASS], ISNULL(CX.[IMLOCATION], ''\Documents\Legal'') AS [IMLOCATION] FROM [dbo].[DiaryAttachments] DAT LEFT OUTER JOIN [dbo].[UNCAlias] UNC ON SUBSTRING(DAT.[FilePath], 2, 1) = '':'' AND UNC.[Drive] = SUBSTRING(DAT.[FilePath], 1, 1) LEFT OUTER JOIN [dbo].[matters] MAT ON MAT.[Code] = DAT.[CASECODE] LEFT OUTER JOIN [dbo].[DAIMXRef] DX ON DX.[TrackReference] = DAT.[TrackReference] AND DX.[FILEPATH] = RTRIM(ISNULL(DAT.[FILEPATH], '''')) LEFT OUTER JOIN [dbo].[CLSIMXRef] CX ON CX.[CLASSCODE] = UPPER(RTRIM(IsNull(DAT.[DOCCLASS], ''''))) WHERE DAT.[TRACKREFERENCE] = @TrackReference' END GO /****** Object: View [dbo].[TimeTasks] Script Date: 10/01/2014 16:20:07 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[TimeTasks]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[TimeTasks] AS SELECT TOP 100 PERCENT RTRIM(TimeTasks_1.Code) AS Code, RTRIM(TimeTasks_1.Description) AS Description, RTRIM(TimeTasks_1.Code) + ISNULL('' : '' + RTRIM(TimeTasks_1.Description), '''') AS TaskName, TimeTasks_1.TaskType, TimeTasks_1.MATTER, TimeTasks_1.FEEEARN, dbo.Handlers.NAME AS Name, TimeTasks_1.DATE, TimeTasks_1.ClientCode, TimeTasks_1.TIME, TimeTasks_1.CHARGE, TimeTasks_1.COMMENT, TimeTasks_1.RECORDID, dbo.client.CLNAME FROM (SELECT TimeEntry.NCCODE AS Code, TimeAdminCodes.DESCRIPTION AS Description, ''Admin'' AS TaskType, SUBSTRING(TimeEntry.MATTER, 0, 7) AS ClientCode, TimeEntry.MATTER, TimeEntry.FEEEARN, TimeEntry.DATE, TimeEntry.TIME, TimeEntry.CHARGE, TimeEntry.COMMENT, TimeEntry.RECORDID FROM TimeEntry INNER JOIN TimeAdminCodes ON TimeEntry.NCCODE = TimeAdminCodes.NCCODE WHERE (TimeEntry.TIME <> 0) AND (TimeEntry.TASK <> ''BILLED'') AND (TimeEntry.MATTER = ''~'') AND (TimeEntry.NCCODE IS NOT NULL OR TimeEntry.NCCODE <> '''') UNION ALL SELECT TimeEntry_1.TASK AS Code, TasksCodes_1.[DESC] AS Description, ''Time'' AS TaskType, SUBSTRING(TimeEntry_1.MATTER, 0, 7) AS ClientCode, TimeEntry_1.MATTER, TimeEntry_1.FEEEARN, TimeEntry_1.DATE, TimeEntry_1.TIME, TimeEntry_1.CHARGE, TimeEntry_1.COMMENT, TimeEntry_1.RECORDID FROM dbo.TimeEntry AS TimeEntry_1 LEFT OUTER JOIN dbo.TasksCodes AS TasksCodes_1 ON TimeEntry_1.TASK = TasksCodes_1.CODE WHERE (TimeEntry_1.TIME <> 0) AND (TimeEntry_1.TASK <> ''BILLED'') and (MATTER <> ''~'')) AS TimeTasks_1 LEFT OUTER JOIN dbo.Handlers ON TimeTasks_1.FEEEARN = dbo.Handlers.CODE LEFT OUTER JOIN dbo.client ON TimeTasks_1.ClientCode = dbo.client.CLCODE WHERE (TimeTasks_1.Code IS NOT NULL) AND (TimeTasks_1.Code <> '''') ORDER BY TimeTasks_1.TIME, Code, TimeTasks_1.MATTER ' GO /****** Object: View [dbo].[TimeAdminTasks] Script Date: 10/01/2014 16:20:06 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[TimeAdminTasks]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[TimeAdminTasks] AS SELECT TOP (100) PERCENT RTRIM(TimeTasks_1.Code) AS Code, RTRIM(TimeTasks_1.Description) AS Description, RTRIM(TimeTasks_1.Code) + ISNULL('' : '' + RTRIM(TimeTasks_1.Description), '''') AS TaskName, TimeTasks_1.TaskType, TimeTasks_1.MATTER, TimeTasks_1.FEEEARN, dbo.Handlers.NAME, TimeTasks_1.DATE, TimeTasks_1.ClientCode, TimeTasks_1.TIME, TimeTasks_1.CHARGE, TimeTasks_1.COMMENT, TimeTasks_1.RECORDID, TimeTasks_1.PERIOD, TimeTasks_1.YEAR, dbo.client.CLNAME FROM (SELECT dbo.TimeEntry.NCCODE AS Code, dbo.TimeAdminCodes.DESCRIPTION AS Description, ''Admin'' AS TaskType, SUBSTRING(dbo.TimeEntry.MATTER, 0, 7) AS ClientCode, dbo.TimeEntry.MATTER, dbo.TimeEntry.FEEEARN, dbo.TimeEntry.DATE, dbo.TimeEntry.TIME, dbo.TimeEntry.CHARGE, dbo.TimeEntry.COMMENT, dbo.TimeEntry.RECORDID, dbo.TimeEntry.PERIOD, dbo.TimeEntry.YEAR FROM dbo.TimeEntry INNER JOIN dbo.TimeAdminCodes ON dbo.TimeEntry.NCCODE = dbo.TimeAdminCodes.NCCODE WHERE (dbo.TimeEntry.TIME <> 0) AND (dbo.TimeEntry.TIMEORCHARGE <> ''B'') AND (dbo.TimeEntry.MATTER = ''~'') UNION ALL SELECT TimeEntry_1.TASK AS Code, TasksCodes_1.[DESC] AS Description, ''Time'' AS TaskType, SUBSTRING(TimeEntry_1.MATTER, 0, 7) AS ClientCode, TimeEntry_1.MATTER, TimeEntry_1.FEEEARN, TimeEntry_1.DATE, TimeEntry_1.TIME, TimeEntry_1.CHARGE, TimeEntry_1.COMMENT, TimeEntry_1.RECORDID, TimeEntry_1.PERIOD, TimeEntry_1.YEAR FROM dbo.TimeEntry AS TimeEntry_1 LEFT OUTER JOIN dbo.TasksCodes AS TasksCodes_1 ON TimeEntry_1.TASK = TasksCodes_1.CODE WHERE (TimeEntry_1.TIME <> 0) AND (TimeEntry_1.TIMEORCHARGE <> ''B'') AND (TimeEntry_1.MATTER <> ''~'')) AS TimeTasks_1 LEFT OUTER JOIN dbo.Handlers ON TimeTasks_1.FEEEARN = dbo.Handlers.CODE LEFT OUTER JOIN dbo.client ON TimeTasks_1.ClientCode = dbo.client.CLCODE ORDER BY TimeTasks_1.TIME, Code, TimeTasks_1.MATTER ' GO /****** Object: UserDefinedFunction [dbo].[ky_WDListBills] Script Date: 10/01/2014 16:19:25 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDListBills]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[ky_WDListBills](@MATTER varchar(20)) RETURNS @BILLS TABLE ([MatterCode] varchar(20), [InvoiceNo] int, [BillDescription] varchar(500), [Addressee] varchar(500), [InvoiceTo] varchar(200), [Address] varchar(500), [Ref] varchar(50), [FECODE] varchar(10), [TYPE] varchar(1), [BILLINGID] int, [BillDate] datetime) AS BEGIN INSERT INTO @BILLS ([MatterCode], [InvoiceNo], [BillDescription], [Addressee], [InvoiceTo], [Address], [Ref], [FECODE], [TYPE], [BILLINGID], [BillDate]) SELECT RTRIM(ISNULL(BH.[MATTER], '''')) AS [MatterCode], BH.[BillNo] AS [InvoiceNo], RTRIM(ISNULL(BH.[MATTERDESCRIPTION], '''')) AS [BillDescription], RTRIM(ISNULL(BH.[ADDRESSEE], '''')) AS [Addressee], RTRIM(ISNULL('''', '''')) AS [InvoiceTo], RTRIM(ISNULL('''', '''')) AS [Address], RTRIM(ISNULL(BH.[YOURREF], '''')) AS [REF], RTRIM(ISNULL(BH.[OURREF], '''')) AS [FECODE], RTRIM(ISNULL(BH.[INVCR], '''')) AS [TYPE], BH.[BATCHNO] AS [BILLINGID], BH.[Date] AS [BillDate] FROM [dbo].[BillHeader] BH WHERE BH.[MATTER] = @MATTER RETURN END' END GO /****** Object: StoredProcedure [dbo].[ky_BGClearOrphanedGuide] Script Date: 10/01/2014 16:17:00 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGClearOrphanedGuide]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[ky_BGClearOrphanedGuide] (@draftno int) AS BEGIN DELETE BGD FROM [dbo].[BGControl] BGC INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGControlID] = BGC.[ID] LEFT OUTER JOIN [dbo].[billheader] BIH ON BIH.[draftno] = BGC.[draftno] AND BIH.[matter] = BGC.[matter] WHERE BGC.[draftno] = @draftno AND BIH.[draftno] is null DELETE BGG FROM [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG ON BGG.[BGControlID] = BGC.[ID] LEFT OUTER JOIN [dbo].[billheader] BIH ON BIH.[draftno] = BGC.[draftno] AND BIH.[matter] = BGC.[matter] WHERE BGC.[draftno] = @draftno AND BIH.[draftno] is null DELETE BGC FROM [dbo].[BGControl] BGC LEFT OUTER JOIN [dbo].[billheader] BIH ON BIH.[draftno] = BGC.[draftno] AND BIH.[matter] = BGC.[matter] WHERE BGC.[draftno] = @draftno AND BIH.[draftno] is null END ' END GO /****** Object: StoredProcedure [dbo].[ky_BGPaid] Script Date: 10/01/2014 16:17:01 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGPaid]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[ky_BGPaid] (@Matter varchar(17), @BatchNo int, @Unpaid int, @ForceFees int, @ForceOutlay int) AS BEGIN UPDATE BGD SET BGD.[PaidNow] = Case WHEN @Unpaid = 1 THEN 0 ELSE BGD.[BillNow] END from [dbo].[debtorsledger] DRL INNER JOIN [dbo].[billheader] BIH inner join BGControl BGC inner join BGDetail BGD on BGD.[BGControlID] = BGC.[ID] and BGD.[Type] = ''O'' and ( isnull(@Matter, '''') = '''' OR BGD.[Matter] = isnull(@Matter, '''')) on BGC.BATCHNO = BIH.BATCHNO ON BIH.[BATCHNO] <> 0 AND BIH.[BATCHNO] = DRL.[BATCHNO] WHERE ( @BatchNo is null OR DRL.[BATCHNO] = @BatchNo) AND ( OSOUTLAY = 0 OR @ForceOutlay = 1) UPDATE BGD SET BGD.[PaidNow] = Case WHEN @Unpaid = 1 THEN 0 ELSE BGD.[BillNow] END from [dbo].[debtorsledger] DRL INNER JOIN [dbo].[billheader] BIH inner join BGControl BGC inner join BGDetail BGD on BGD.[BGControlID] = BGC.[ID] and BGD.[Type] = ''F'' and ( isnull(@Matter, '''') = '''' OR BGD.[Matter] = isnull(@Matter, '''')) on BGC.BATCHNO = BIH.BATCHNO ON BIH.[BATCHNO] <> 0 AND BIH.[BATCHNO] = DRL.[BATCHNO] WHERE ( @BatchNo is null OR DRL.[BATCHNO] = @BatchNo) AND ( OSFEES = 0 OR @ForceFees = 1) END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_CompBillMatterByBatch] Script Date: 10/01/2014 16:18:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CompBillMatterByBatch]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'create function [dbo].[ky_CompBillMatterByBatch] (@BatchNo int) RETURNS TABLE AS RETURN select DISTINCT BIHBGM.[DRAFTNO], BGGBGM.[ID], BGGBGM.[SeqNo], BGGBGM.[Narrative], BGDBGM.[MATTER] from [dbo].[BillHeader] BIHBGM INNER JOIN [dbo].[BGControl] BGCBGM INNER JOIN [dbo].[BGGroups] BGGBGM INNER JOIN [dbo].[BGDetail] BGDBGM ON BGDBGM.[BGGroupID] = BGGBGM.[ID] AND BGDBGM.[Type] = ''O'' AND BGDBGM.[BILLNOW] <> 0 AND IsNull(BGDBGM.[IncludeInBill], 1) <> 2 ON BGGBGM.[BGControlID] = BGCBGM.[ID] ON BGCBGM.[DRAFTNO] = BIHBGM.[DRAFTNO] where BIHBGM.[BATCHNO] = @BatchNo ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDHFCountDraftInvoices] Script Date: 10/01/2014 16:19:25 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDHFCountDraftInvoices]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDHFCountDraftInvoices * * Get Handler Draft Invoices in a standardised format so this works both in SAM4 and in SAM3.5 * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDHFCountDraftInvoices] (@handler varchar(10)) RETURNS @ML TABLE ([TOTAL] int) AS BEGIN INSERT INTO @ML ([TOTAL]) SELECT COUNT(1) AS [TOTAL] FROM [dbo].[matters] MAT INNER JOIN [dbo].[BillHeader] BIH ON BIH.[MATTER] = MAT.[CODE] AND ISNULL(BIH.[BILLNO], 0) = 0 WHERE MAT.[FECode] = @HANDLER RETURN END' END GO /****** Object: StoredProcedure [dbo].[ky_GetCourtSittings] Script Date: 10/01/2014 16:17:18 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetCourtSittings]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create PROCEDURE [dbo].[ky_GetCourtSittings] (@CourtArea VARCHAR(3)) AS BEGIN DECLARE @dates TABLE ([Date] datetime, [Year] int, [Month] int, [DayNo] int, [WeekNo] int) DECLARE @startdate datetime DECLARE @enddate datetime SET @startdate = GetDate() SET @enddate = DATEADD(yy, 2, @startdate) SET @startdate = CONVERT(datetime, SUBSTRING(CONVERT(VARCHAR(5), 10000 + YEAR(@startdate)), 2, 4) + SUBSTRING(CONVERT(VARCHAR(3), 100 + MONTH(@startdate)), 2, 2) + ''01'') SET DATEFIRST 1 ; WITH dates([Date]) AS (SELECT @startdate as [Date] UNION ALL SELECT DATEADD(dd,1,[Date]) FROM dates WHERE [DATE] < @enddate) INSERT INTO @dates ([Date], [Year], [Month], [DayNo]) SELECT [Date], YEAR([Date]), MONTH([Date]), DATEPART(dw, [Date]) FROM dates OPTION (MAXRECURSION 0) DELETE @dates WHERE DATEPART(dw, [Date]) IN (6, 7) UPDATE D SET D.[WeekNo] = MOO.[WEEKNUMBER] FROM @dates D OUTER APPLY (SELECT COUNT(1) + 1 AS [WEEKNUMBER] FROM @dates D2 WHERE YEAR(D2.[Date]) = YEAR(D.[Date]) AND MONTH(D2.[Date]) = MONTH(D.[Date]) AND DATEPART(dw, D2.[Date]) = DATEPART(dw, D.[Date]) AND D2.[Date] < D.[Date]) MOO WHERE D.[Date] > getDate() DELETE @dates WHERE [Date] <= getDate() SELECT D.[Date], DATENAME(dw, D.[Date]) AS [Weekday], CD.[COURTDIARYTIME] As [Time], CD.[COURTDIARYAMPM] AS [AmPm], CASE WHEN CD.[COURTDIARYAMPM] = ''am'' AND CONVERT(int, CD.[CourtDiaryTime]) = 12 THEN 0 WHEN CD.[COURTDIARYAMPM] = ''am'' THEN CONVERT(int, CD.[CourtDiaryTime]) WHEN CD.[COURTDIARYAMPM] <> ''am'' AND CONVERT(int, CD.[CourtDiaryTime]) = 12 THEN 12 ELSE 12 + CONVERT(int, CD.[CourtDiaryTime]) END AS [CourtHour], CONVERT(int, ROUND(100 * (CD.[CourtDiaryTime] - CONVERT(int, CD.[CourtDiaryTime])), 0)) AS [CourtMinute], DATEADD(mi, CONVERT(int, ROUND(100 * (CD.[CourtDiaryTime] - CONVERT(int, CD.[CourtDiaryTime])), 0)), DATEADD(hh, CASE WHEN CD.[COURTDIARYAMPM] = ''am'' AND CONVERT(int, CD.[CourtDiaryTime]) = 12 THEN 0 WHEN CD.[COURTDIARYAMPM] = ''am'' THEN CONVERT(int, CD.[CourtDiaryTime]) WHEN CD.[COURTDIARYAMPM] <> ''am'' AND CONVERT(int, CD.[CourtDiaryTime]) = 12 THEN 12 ELSE 12 + CONVERT(int, CD.[CourtDiaryTime]) END, D.[Date])) AS [CourtAt] FROM @dates D INNER JOIN [dbo].[CourtDiary] CD ON CD.[COURTDIARYAREACODE] = @CourtArea AND CD.[COURTDIARYMONTHNO] = D.[Month] AND CD.[COURTDIARYWEEKNO] = D.[WeekNo] AND CD.[COURTDIARYDAYNO] = D.[DayNo] ORDER BY D.[Date] END /****** Object: UserDefinedFunction [dbo].[ky_FNGetCourtSittings] Script Date: 03/19/2014 15:42:44 ******/ SET ANSI_NULLS ON ' END GO /****** Object: UserDefinedFunction [dbo].[ky_FNGetCourtSittings] Script Date: 10/01/2014 16:19:00 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_FNGetCourtSittings]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' Create Function [dbo].[ky_FNGetCourtSittings] (@CourtArea VARCHAR(6), @today VARCHAR(8)) RETURNS @CourtDiary TABLE ([Date] datetime, [Weekday] VARCHAR(20), [Time] decimal(4, 2), [AmPm] varchar(2), [CourtHour] int, [CourtMinute] int, [CourtAt] datetime) AS BEGIN DECLARE @dates TABLE ([Date] datetime, [Year] int, [Month] int, [DayNo] int, [WeekNo] int) DECLARE @startdate datetime DECLARE @enddate datetime DECLARE @monday int SET @startdate = convert(datetime, @today) SET @enddate = DATEADD(yy, 2, @startdate) SET @startdate = CONVERT(datetime, SUBSTRING(CONVERT(VARCHAR(5), 10000 + YEAR(@startdate)), 2, 4) + SUBSTRING(CONVERT(VARCHAR(3), 100 + MONTH(@startdate)), 2, 2) + ''01'') ; WITH dates([Date]) AS (SELECT @startdate as [Date] UNION ALL SELECT DATEADD(dd,1,[Date]) FROM dates WHERE [DATE] < @enddate) INSERT INTO @dates ([Date], [Year], [Month], [DayNo]) SELECT [Date], YEAR([Date]), MONTH([Date]), [dbo].[ky_GetWeekDayMon1]([Date]) FROM dates OPTION (MAXRECURSION 0) DELETE @dates WHERE [DayNo] IN (6, 7) UPDATE D SET D.[WeekNo] = MOO.[WEEKNUMBER] FROM @dates D OUTER APPLY (SELECT COUNT(1) + 1 AS [WEEKNUMBER] FROM @dates D2 WHERE YEAR(D2.[Date]) = YEAR(D.[Date]) AND MONTH(D2.[Date]) = MONTH(D.[Date]) AND DATEPART(dw, D2.[Date]) = DATEPART(dw, D.[Date]) AND D2.[Date] < D.[Date]) MOO WHERE D.[Date] > getDate() DELETE @dates WHERE [Date] <= getDate() INSERT INTO @CourtDiary ([Date], [Weekday], [Time], [AmPm], [CourtHour], [CourtMinute], [CourtAt]) SELECT D.[Date], DATENAME(dw, D.[Date]) AS [Weekday], CONVERT(decimal(4,2), CD.[COURTDIARYTIME]) As [Time], CD.[COURTDIARYAMPM] AS [AmPm], CASE WHEN CD.[COURTDIARYAMPM] = ''am'' AND CONVERT(int, CD.[CourtDiaryTime]) = 12 THEN 0 WHEN CD.[COURTDIARYAMPM] = ''am'' THEN CONVERT(int, CD.[CourtDiaryTime]) WHEN CD.[COURTDIARYAMPM] <> ''am'' AND CONVERT(int, CD.[CourtDiaryTime]) = 12 THEN 12 ELSE 12 + CONVERT(int, CD.[CourtDiaryTime]) END AS [CourtHour], CONVERT(int, ROUND(100 * (CD.[CourtDiaryTime] - CONVERT(int, CD.[CourtDiaryTime])), 0)) AS [CourtMinute], DATEADD(mi, CONVERT(int, ROUND(100 * (CD.[CourtDiaryTime] - CONVERT(int, CD.[CourtDiaryTime])), 0)), DATEADD(hh, CASE WHEN CD.[COURTDIARYAMPM] = ''am'' AND CONVERT(int, CD.[CourtDiaryTime]) = 12 THEN 0 WHEN CD.[COURTDIARYAMPM] = ''am'' THEN CONVERT(int, CD.[CourtDiaryTime]) WHEN CD.[COURTDIARYAMPM] <> ''am'' AND CONVERT(int, CD.[CourtDiaryTime]) = 12 THEN 12 ELSE 12 + CONVERT(int, CD.[CourtDiaryTime]) END, D.[Date])) AS [CourtAt] FROM @dates D INNER JOIN [dbo].[CourtDiary] CD ON CD.[COURTDIARYAREACODE] = @CourtArea AND CD.[COURTDIARYMONTHNO] = D.[Month] AND CD.[COURTDIARYWEEKNO] = D.[WeekNo] AND CD.[COURTDIARYDAYNO] = D.[DayNo] ORDER BY D.[Date] RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_CloseMatter] Script Date: 10/01/2014 16:17:06 ******/ SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CloseMatter]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' ------------------------------------------------ This Proceedure is run by ky_closematterlist CREATE procedure [dbo].[ky_CloseMatter] @matter varchar(20), @FILENUM int AS /************************************************************************* * * [dbo].[ky_CloseMatter] * No need to look at DisplayText column for CloseDiary table * 2014-08-20 PINO matter codes will be extended; allow for 20 characters * *************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @TODAY DATETIME DECLARE @SUCCESSFAIL varchar (10) DECLARE @CHECKTEXT varchar(10) DECLARE @CHECKCLOSED varchar(10) DECLARE @CHECKDIARYITEMS int DECLARE @CHECKTIMEDAYBOOK int DECLARE @CHECKUNDERTAKINGS int DECLARE @CHECKDEBTBAL int DECLARE @CHECKOUTLAYBAL int DECLARE @CHECKCLIENTBAL int DECLARE @CHECKTIMEBAL int declare @sql varchar(max) ------------------------------------------------------------Start Transaction BEGIN TRANSACTION SET @TODAY = GETDATE() SET @CHECKDIARYITEMS = 0 SET @CHECKTIMEDAYBOOK = 0 SET @CHECKUNDERTAKINGS = 0 SET @CHECKDEBTBAL = 0 SET @CHECKOUTLAYBAL = 0 SET @CHECKCLIENTBAL = 0 SET @CHECKTIMEBAL = 0 --------------------------------------------------------Check matters can closed ---------------- Run some checks across matters that would cause issues. Select @CHECKCLOSED = (Select COUNT(Code) from Closed where CODE=@matter and STATUS=0); Select @CHECKDIARYITEMS = (Select COUNT(CaseCode) from Diary where CASECODE=@matter and STATUS=0); Select @CHECKTIMEDAYBOOK = 0; --- (Select COUNT(matter) from timedaybook where matter = @matter and TIMEORCHARGE <> ''b'' ); Select @CHECKUNDERTAKINGS = (Select COUNT(matter) from Undertakings where matter = @matter and DISCHARGEDATE = 0); Select @CHECKDEBTBAL = (Select COUNT(Code) from MATTERS where code = @matter and DebtBal <> 0); Select @CHECKOUTLAYBAL = (Select COUNT(Code) from MATTERS where code = @matter and OutlayBal <> 0); Select @CHECKCLIENTBAL = (Select COUNT(Code) from MATTERS where code = @matter and ClientBal <> 0); Select @CHECKTIMEBAL = (Select COUNT(Code) from MATTERS where code = @matter and TimeBal <> 0); ----------- If the close matter has items then dont close IF @CHECKCLOSED <> 0 GOTO FAILPRINT; IF @CHECKDIARYITEMS <> 0 GOTO FAILPRINT; IF @CHECKTIMEDAYBOOK <> 0 GOTO FAILPRINT; IF @CHECKUNDERTAKINGS <> 0 GOTO FAILPRINT; IF @CHECKDEBTBAL <> 0 GOTO FAILPRINT; IF @CHECKOUTLAYBAL <> 0 GOTO FAILPRINT; IF @CHECKCLIENTBAL <> 0 GOTO FAILPRINT; IF @CHECKTIMEBAL <> 0 GOTO FAILPRINT; IF @@error <> 0 GOTO ErrorCheck -------------------------------------------------------- Close matter INSERT INTO closed ([Code] ,[ClientCode] ,[Matter] ,[Description] ,[FECode] --,[Partner] --,[Secretary] ,[Dept] ,[Started] ,[WType] ,[Branch] ,[EstFee] ,[OutlayBud] ,[ExpBillD] ,[ExpPayD] ,[S13] ,[Comment] ,[DebtBal] ,[OutlayBal] ,[ClientBal] ,[ClientCurBal] ,[ClientDepBal] ,[DebtBalFwd] ,[OutlayBalFwd] ,[ClientBalFwd] ,[ClientCurBalFwd] ,[ClientDepBalFwd] ,[PendingBal] ,[ClientMin] ,[FileNum] ,[ThirdPart] ,[ThPartSol] ,[Value] ,[Undertaking] ,[LastAct] ,[LastActType] ,[LastActWho] ,[StatuteLimits] ,[Status] ,[Section68] ,[FNL_Date] ,[FNL_Name] ,[FNL_Address] ,[FNL_Fees] ,[FNL_Outlay] ,[FNL_VAT] ,[FNL_Total] ,[OldRef] ,[PCODE] ,[PFECODE] ,[User1] ,[User2] ,[User3] ,[DepositName] ,[DepositType] ,[TimeBal] ,[ChargeBal] ,[YourRef] ,[CurDebtBal] ,[CurOutlayBal] ,[CurClientBal] ,[CurClientCBal] ,[CurClientDBal] ,[CurDebtBalFwd] ,[CurOutlayBalFwd] ,[CurClientBalFwd] ,[CurClientCBalFwd] ,[CurClientDBalFwd] ,[CurPendingBal] ,[Unallocated] ,[Statements] ,[ChargeLevel] ,[FileColour] ,[OpenInvoiceNo] ,[Password] ,[CompBillOnOff] ,[CompFrequency] ,[CompOutlayLimit] ,[CompFeesLimit] ,[CompTotalLimit] ,[CompBillingMatter] ,[CompBilling] ,[ClientName] ,[ClientAddress] ,[ClientSalutation] ,[ChargeArrangement] ,[Importance] ,[OriginalDebt] ,[DebtCollected] ,[RecoverableCosts] ,[DebtInterest] ,[BillingMethod] ,[CollectingBalance] ,[Publish] ,[Permissions] -- ,[OUTFileNo] -- ,[ChargeOutRateInd] ,DATECLOSED, DESTROYDATE, LOCATION, OTHERREF ) select [Code] ,[ClientCode] ,[Matter] ,[Description] ,[FECode] --,[Partner] --,[Secretary] ,[Dept] ,[Started] ,[WType] ,[Branch] ,[EstFee] ,[OutlayBud] ,[ExpBillD] ,[ExpPayD] ,[S13] ,[Comment] ,[DebtBal] ,[OutlayBal] ,[ClientBal] ,[ClientCurBal] ,[ClientDepBal] ,[DebtBalFwd] ,[OutlayBalFwd] ,[ClientBalFwd] ,[ClientCurBalFwd] ,[ClientDepBalFwd] ,[PendingBal] ,[ClientMin] ,[FileNum] ,[ThirdPart] ,[ThPartSol] ,[Value] ,[Undertaking] ,[LastAct] ,[LastActType] ,[LastActWho] ,[StatuteLimits] ,[Status] ,[Section68] ,[FNL_Date] ,[FNL_Name] ,[FNL_Address] ,[FNL_Fees] ,[FNL_Outlay] ,[FNL_VAT] ,[FNL_Total] ,[OldRef] ,[PCODE] ,[PFECODE] ,[User1] ,[User2] ,[User3] ,[DepositName] ,[DepositType] ,[TimeBal] ,[ChargeBal] ,[YourRef] ,[CurDebtBal] ,[CurOutlayBal] ,[CurClientBal] ,[CurClientCBal] ,[CurClientDBal] ,[CurDebtBalFwd] ,[CurOutlayBalFwd] ,[CurClientBalFwd] ,[CurClientCBalFwd] ,[CurClientDBalFwd] ,[CurPendingBal] ,[Unallocated] ,[Statements] ,[ChargeLevel] ,[FileColour] ,[OpenInvoiceNo] ,[Password] ,[CompBillOnOff] ,[CompFrequency] ,[CompOutlayLimit] ,[CompFeesLimit] ,[CompTotalLimit] ,[CompBillingMatter] ,[CompBilling] ,[ClientName] ,[ClientAddress] ,[ClientSalutation] ,[ChargeArrangement] ,[Importance] ,[OriginalDebt] ,[DebtCollected] ,[RecoverableCosts] ,[DebtInterest] ,[BillingMethod] ,[CollectingBalance] ,[Publish] ,[Permissions] -- ,[OUTFileNo] -- ,[ChargeOutRateInd] , @TODAY AS DATECLOSED, NULL AS DESTROYDATE, NULL AS LOCATION, NULL AS OTHERREF FROM matters where code = (@Matter); --select ''Open'', * from matters where code = @Matter; --select ''Closed'',closed.DATECLOSED, * from closed where code = @Matter; IF @@error <> 0 GOTO ErrorCheck -------------------------------------------------------- Close Diary INSERT INTO CloseDiary ( [FILENUM] ,[CASECODE] ,[DATE] ,[STATUS] ,[ACTIONCODE] ,[ACTIONSTATUS] ,[ACTIONTYPE] ,[PROCESSTYPE] ,[FNCODE] ,[TEAMCODE] ,[TEXT1] ,[TEXT2] ,[DELEGATEDFNR] ,[DELEGATEDDATE] ,[DELEGATEDBACKDATE] ,[DEFERRED] ,[DUEDATE] ,[IMAGENO] ,[PUBLISH] ,[DYSTARTTIME] ,[DYENDTIME] ,[DURATION] ,[ACTIONID] ,[ORIGINALACTIONID] ,[PRIORITY] ,[HIGHLIGHTED] ,[MILESTEONETYPE] ,[ATTACHMENTS] ,[PROCESSSTATUS] ,[WORKPROCESS] ,[BILLABLE] ,[BILLDESCRIPTION] ,[EMAILADDRESS] ,[ADDRESSTO] -- ,[CCTo] -- ,[BCCTo] ,[EMAIL] ,[SUBJECT] ,[DELEGATIONSTATUS] ,[DRAFTBILLNO] ,[CHEQUEREQNO] --,[TxmSent] ,[Location] ,[HearingType] --,[ForCopy] -- ,[TxmDate] --,[TxmSeqNo] ) SELECT @FILENUM AS FILENUM ,[CASECODE] ,[DATE] ,[STATUS] ,[ACTIONCODE] ,[ACTIONSTATUS] ,[ACTIONTYPE] ,[PROCESSTYPE] ,[FNCODE] ,[TEAMCODE] ,[TEXT1] ,[TEXT2] ,[DELEGATEDFNR] ,[DELEGATEDDATE] ,[DELEGATEDBACKDATE] ,[DEFERRED] ,[DUEDATE] ,[IMAGENO] ,[PUBLISH] ,[DYSTARTTIME] ,[DYENDTIME] ,[DURATION] ,[ACTIONID] ,[ORGINALACTIONID] as [ORIGINALACTIONID] ,[PRIORITY] ,[HIGHLIGHTED] ,[MILESTEONETYPE] ,[ATTACHMENTS] ,[PROCESSSTATUS] ,[WORKPROCESS] ,[BILLABLE] ,[BILLDESCRIPTION] ,[EMAILADDRESS] ,[ADDRESSTO] -- ,[CCTo] -- ,[BCCTo] ,[EMAIL] ,[SUBJECT] ,[DELEGATIONSTATUS] ,[DRAFTBILLNO] ,[CHEQUEREQNO] --,[TxmSent] ,[Location] ,[HearingType] --,[ForCopy] --,[TxmDate] --,[TxmSeqNo] --,NULL AS ORIGINALACTIONID from diary where casecode = (@Matter); --select ''Open'', count(*) from diary where casecode = @Matter; --select ''Closed'', * from closediary where casecode = @Matter; --select ''Open diary'', COUNT(*) from diary where casecode = @Matter --union --select ''Closed diary'', COUNT(*) from closediary where casecode = @Matter; IF @@error <> 0 GOTO ErrorCheck -------------------------------------------------------- Close diary Attachments --(Source field missing from closed table) INSERT INTO closediaryattachments ([DIARYID] ,[TRACKREFERENCE] ,[CASECODE] ,[NAME] ,[DOCUMENT] ,[FILEPATH] ,[ARCHPATH] ,[TYPE] ,[DOCCLASS] ,[DATEENTERED] ,[ENTEREDBY] ,[LASTACCESSDATE] ,[LASTACCESSBY] ,[SYSTEM] ,[DICTATIONFILE] --,[source] ) select [DIARYID] ,[TRACKREFERENCE] ,[CASECODE] ,[NAME] ,[DOCUMENT] ,[FILEPATH] ,NULL AS [ARCHPATH] ,[TYPE] ,[DOCCLASS] ,[DATEENTERED] ,[ENTEREDBY] ,[LASTACCESSDATE] ,[LASTACCESSBY] ,[SYSTEM] ,[DICTATIONFILE] --,[source] from diaryattachments where casecode = (@Matter); --select ''Open diary Attach'', * from diaryattachments where casecode = @Matter order by diaryid, TRACKREFERENCE; --select ''closed diary Attach'',* from closediaryattachments where casecode = @Matter order by diaryid, TRACKREFERENCE; --select ''Open Diary Attach'', count(*) from diaryattachments where casecode = @Matter --union --select ''Closed Diary Attach'', COUNT(*) from closediaryattachments where casecode = @Matter; IF @@error <> 0 GOTO ErrorCheck ---------------------------------------------------------- Close Matter Ledger INSERT INTO Closedmatterledger ([MATTER] ,[BATCHNO] ,[PREF] ,[DATE] ,[REF] ,[NARR] ,[VALUED] ,[VALUEO] ,[VALUEC] ,[FEE] ,[PER] ,[YEAR] ,[ENTRYDATE] ,[CLIENT] ,[VALUECC] ,[VALUECD] ,[DEPOSITTYPE] ,[CURVALUED] ,[CURVALUEO] ,[CURVALUEC] ,[CURVALUECC] ,[CURVALUECD] ,[LREF] ,[BILLED] , [FILENUM] ) SELECT [MATTER] ,[BATCHNO] ,[PREF] ,[DATE] ,[REF] ,[NARR] ,[VALUED] ,[VALUEO] ,[VALUEC] ,[FEE] ,[PER] ,[YEAR] ,[ENTRYDATE] ,[CLIENT] ,[VALUECC] ,[VALUECD] ,[DEPOSITTYPE] ,[CURVALUED] ,[CURVALUEO] ,[CURVALUEC] ,[CURVALUECC] ,[CURVALUECD] ,[LREF] ,[BILLED] ,@FILENUM AS FILENUM from matterledger where MATTER like (@Matter); --select ''Open'', * from matterledger where matter = @Matter order by BATCHNO; --select ''Closed'', * from Closedmatterledger where matter = @Matter order by batchno; --select ''Open matterledger'', COUNT(*) from matterledger where matter = @Matter --union --select ''Closed matterledger'', COUNT(*) from Closedmatterledger where matter = @Matter; IF @@error <> 0 GOTO ErrorCheck -------------------------------------------------------- Close Case Contacts --- (Fields missing in closed table) INSERT INTO closecasecontacts ([CASECODE] ,FILENUM ,[CONTYPE] ,[CONNUM] ,[NAMECODE] ,[SOLCODE] ,[SOLREF] ,[INSCODE] ,[INSREF] ,[COURTRECORDNO] ,[HEARINGDATE] ,[TIME]) SELECT [CASECODE], @FILENUM as Filenum ,[CONTYPE] ,[CONNUM] ,[NAMECODE] ,[SOLCODE] ,[SOLREF] ,[INSCODE] ,[INSREF] ,[COURTRECORDNO] ,[HEARINGDATE] ,[TIME] --,[Relationship] --,[Nominated] --,[AssignedContact] --,[ForCopy] --,[Publish] --,[CivilSumSDate] --,[CivilBillSDate] --,[SSumSDate] --,[InstOrdSDate] --,[ComOrdSDate] --,[WarrantIssDate] --,[SumAttSerDate] from casecontacts where casecode = (@Matter); --select ''Open'', * from casecontacts where casecode = @Matter order by namecode; --select ''Closed'', * from closecasecontacts where casecode = @Matter order by namecode; --select ''Open casecontacts'', COUNT(*) from casecontacts where casecode = @Matter --union --select ''Closed casecontacts'', COUNT(*) from closecasecontacts where casecode = @Matter; IF @@error <> 0 GOTO ErrorCheck -------------------------------------------------------- Close UDF Answers INSERT INTO ClosedCaseUDFAnswers ([TEXT1] ,[CASECODE] ,Filenum ,[UDFFILE] ,[UDFNAME] ,[SEQNO] ,[NumberValue] ,[DateValue] ) SELECT [TEXT1],[CASECODE], 0 as Filenum ,[UDFFILE] ,[UDFNAME] ,[SEQNO] ,[NumberValue] ,[DateValue] FROM [keyhouse].[dbo].[CaseUDFAnswers] where casecode = (@Matter); --select ''Open'', * from CaseUDFAnswers where casecode = @Matter order by seqno; --select ''Closed'', * from ClosedCaseUDFAnswers where casecode = @Matter order by seqno; --select ''Open CaseUDFAnswers'', COUNT(*) from CaseUDFAnswers where casecode = @Matter --union --select ''Closed CaseUDFAnswers'', COUNT(*) from ClosedCaseUDFAnswers where casecode = @Matter; IF @@error <> 0 GOTO ErrorCheck -------------------------------------------------------- Close Casemaster --- CSCOSTENG ERROR (Field not used) INSERT into CaseMasterClosed ([CSCODE] ,[FILENUM] ,[CSCLIENTCDE] ,[CSFNR] ,[CSDESC] ,[CSINSTYN] ,[CSDATEENTERED] ,[CSPLAINTNO] ,[CSWARRANT] ,[CSCLEXEYN] ,[CSCLBENYN] ,[CSLEDGREF] ,[CSPFILEREF] ,[CSWKTCODE] ,[CSCRTCODE] ,[CSAGYCODE] ,[CSGENAGYCODE] ,[CSBSCCODE] ,[CSBNKCODE] ,[CSLRGCODE] ,[CSDRGCODE] ,[CSHCTCODE] ,[CSSHFCODE] ,[CSLAUTHCODE] ,[CSIRTCODE] ,[CSSTACODE] ,[CSISSFEECODE] ,[CSJUDFEECODE] ,[CSINTADD] ,[CSCOMPTIME] ,[CSCOMPUNIT] ,[CSCONTRATE] ,[CSDAILYRATE] ,[CSNODTR] ,[CSNOGTR] ,[CSNOPTF] ,[CSNOPLC] ,[CSNODOC] ,[CSNOSPL] ,[CSNOBEN] ,[CSPREMISES] ,[CSSOLTRDNAME] ,[CSSOLTRDADDR] ,[CSSOLTEL] ,[CSSOLFAX] ,[CSSOLSALUTE] ,[CSSOLDXNO] ,[CSSOLEMAIL] ,[CSDATESERVICE] ,[CSDATEINSTSTART] ,[CSINSTTOTAL] ,[CSINSTAMT] ,[CSINSTFREQ] ,[CSINSTUNIT] ,[CSLASTACN] ,[CSDATELASTACN] ,[CSNEXTACN] ,[CSDATENEXTACN] ,[CSDATEISSUE] ,[CSDATERETURN] ,[CSDATEMOTION] ,[CSDATEHEARING] ,[CSDATEJDGT] ,[CSDATEEXCHG] ,[CSDATECLOSE] ,[CSDATECOMPLETION] ,[CSDATEREGIST] ,[CSDATEACCEPT] ,[CSDATESOL] ,[CSDATEFIRSTINV] ,[CSDATELASTINV] ,[CSDATELASTPAY] ,[CSFIRSTINVAMT] ,[CSORGDEBT] ,[CSBALDEBT] ,[CSBALCLIENT] ,[CSCOSTISSUE] ,[CSCOSTJDGT] ,[CSCOSTENF] ,[CSFEEISSUE] ,[CSFEEJDGT] ,[CSFEEENF] ,[CSINTISSUE] ,[CSINTJDGT] --,[CSINTENF] ,[CSCLAUSE1] ,[CSCLAUSE2] ,[CSCLAUSE3] ,[CSCLAUSE4] ,[CSCLAUSE5] ,[CSCLAUSE6] ,[CSCLAUSE7] ,[CSCLAUSE8] ,[CSCLAUSE9] ,[CSCLAUSE10] ,[CSSOLREF] ,[CSFILENUM] ) select [CSCODE] ,@FILENUM AS [FILENUM] ,[CSCLIENTCDE] ,[CSFNR] ,[CSDESC] ,[CSINSTYN] ,[CSDATEENTERED_DATE] AS [CSDATEENTERED] ,[CSPLAINTNO] ,[CSWARRANT] ,[CSCLEXEYN] ,[CSCLBENYN] ,[CSLEDGREF] ,[CSPFILEREF] ,[CSWKTCODE] ,[CSCRTCODE] ,[CSAGYCODE] ,[CSGENAGYCODE] ,[CSBSCCODE] ,[CSBNKCODE] ,[CSLRGCODE] ,[CSDRGCODE] ,[CSHCTCODE] ,[CSSHFCODE] ,[CSLAUTHCODE] ,[CSIRTCODE] ,[CSSTACODE] ,[CSISSFEECODE] ,[CSJUDFEECODE] ,[CSINTADD] ,[CSCOMPTIME] ,[CSCOMPUNIT] ,[CSCONTRATE] ,[CSDAILYRATE] ,[CSNODTR] ,[CSNOGTR] ,[CSNOPTF] ,[CSNOPLC] ,[CSNODOC] ,[CSNOSPL] ,[CSNOBEN] ,[CSPREMISES] ,[CSSOLTRDNAME] ,[CSSOLTRDADDR] ,[CSSOLTEL] ,[CSSOLFAX] ,[CSSOLSALUTE] ,[CSSOLDXNO] ,[CSSOLEMAIL] ,[CSDATESERVICE_DATE] AS [CSDATESERVICE] ,[CSDATEINSTSTART_DATE] AS [CSDATEINSTSTART] ,[CSINSTTOTAL] ,[CSINSTAMT] ,[CSINSTFREQ] ,[CSINSTUNIT] ,[CSLASTACN] ,[CSDATELASTACN_DATE] AS [CSDATELASTACN] ,[CSNEXTACN] ,[CSDATENEXTACN_DATE] AS [CSDATENEXTACN] ,[CSDATEISSUE_DATE] AS [CSDATEISSUE] ,[CSDATERETURN_DATE] AS [CSDATERETURN] ,[CSDATEMOTION_DATE] AS [CSDATEMOTION] ,[CSDATEHEARING_DATE] AS [CSDATEHEARING] ,[CSDATEJDGT_DATE] AS [CSDATEJDGT] ,[CSDATEEXCHG_DATE] AS [CSDATEEXCHG] ,[CSDATECLOSE_DATE] AS [CSDATECLOSE] ,[CSDATECOMPLETION_DATE] AS [CSDATECOMPLETION] ,[CSDATEREGIST_DATE] AS [CSDATEREGIST] ,[CSDATEACCEPT_DATE] AS [CSDATEACCEPT] ,[CSDATESOL_DATE] AS [CSDATESOL] ,[CSDATEFIRSTINV_DATE]AS [CSDATEFIRSTINV] ,[CSDATELASTINV_DATE] AS [CSDATELASTINV] ,[CSDATELASTPAY_DATE]AS [CSDATELASTPAY] ,[CSFIRSTINVAMT] ,[CSORGDEBT] ,[CSBALDEBT] ,[CSBALCLIENT] ,[CSCOSTISSUE] ,[CSCOSTJDGT] ,[CSCOSTENF] ,[CSFEEISSUE] ,[CSFEEJDGT] ,[CSFEEENF] ,[CSINTISSUE] ,[CSINTJDGT] --,[CSINTENF] ,[CSCLAUSE1] ,[CSCLAUSE2] ,[CSCLAUSE3] ,[CSCLAUSE4] ,[CSCLAUSE5] ,[CSCLAUSE6] ,[CSCLAUSE7] ,[CSCLAUSE8] ,[CSCLAUSE9] ,[CSCLAUSE10] ,[CSSOLREF] ,[CSFILENUM] from casemaster where cscode = (@Matter); --select ''Open case Master'', * from CaseMaster where cscode = @Matter; --select ''Closed case master'', * from CaseMasterClosed where cscode = @Matter; --select ''Open case Master'', COUNT(*) from CaseMaster where cscode = @Matter --union --select ''Closed case Master'', COUNT(*) from CaseMasterClosed where cscode = @Matter; IF @@error <> 0 GOTO ErrorCheck ---------------------------------------------------------- Remove Open Matter, Diary, case details delete from Matters where Code = @Matter; delete from diary where casecode = @Matter; delete from Matterledger where matter = @Matter; delete from CaseMaster where cscode = @Matter; delete from diaryattachments where casecode = @Matter; delete from casecontacts where casecode = @Matter; delete from CaseUDFAnswers where casecode = @Matter; delete from RecentMatterList where matter = @Matter; update Contacts set OpenMatters = OpenMatters - 1 where OpenMatters > 0; update Contacts set lastMatter = lastMatter - 1 where LastMatter >0; IF @@error <> 0 GOTO ErrorCheck IF @@error = 0 GOTO SUCCESSPRINT -------------------------------------------------- Didn''t closed Matter SUCCESSPRINT: COMMIT --rollback; INSERT INTO aaMattersClosedLog ([Matter] ,[Filenum] ,[SuccessFail] ,[Diary] ,[TimeDayBook] ,[Undertaking] ,[DebtBal] ,[OutlayBal] ,[ClientBal] ,[TimeBal] ,[DateClosed]) VALUES (@matter ,@FILENUM ,''S'' ,@CHECKDIARYITEMS ,@CHECKTIMEDAYBOOK ,@CHECKUNDERTAKINGS ,@CHECKDEBTBAL ,@CHECKOUTLAYBAL ,@CHECKCLIENTBAL ,@CHECKTIMEBAL ,@TODAY) goto EXITOUT; -------------------------------------------------- Didn''t closed Matter FAILPRINT: rollback; INSERT INTO aaMattersClosedLog ([Matter] ,[Filenum] ,[SuccessFail] ,[Diary] ,[TimeDayBook] ,[Undertaking] ,[DebtBal] ,[OutlayBal] ,[ClientBal] ,[TimeBal] ,[DateClosed]) VALUES (@matter ,@FILENUM ,''F'' ,@CHECKDIARYITEMS ,@CHECKTIMEDAYBOOK ,@CHECKUNDERTAKINGS ,@CHECKDEBTBAL ,@CHECKOUTLAYBAL ,@CHECKCLIENTBAL ,@CHECKTIMEBAL ,@TODAY) goto EXITOUT; -- Error Handling ErrorCheck: goto FAILPRINT; --------------------------------------------------- Exit EXITOUT: Return END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDHFUndertakings] Script Date: 10/01/2014 16:19:25 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDHFUndertakings]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDHFUndertakings * * Get Handler Undertakings in a standardised format so this works both in SAM4 and in SAM3.5 * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDHFUndertakings] (@handler varchar(10)) RETURNS @ML TABLE ([MATTER] varchar(20), [SEQ] int, [DATE] datetime, [DISCHARGEDATENO] int, [DISCHARGEDATEDATE] datetime, [TYPE] varchar(1), [DESCRIPTION] varchar(400), [WHO] varchar(200), [VALUE] decimal(13,2), [RECORDID] int, [ActionID] int, [GivenOrReceived] varchar(1), [Handler] varchar(10), [UndertakingTo] varchar(10), [Status] int, [DealingNumber] varchar(40), [DischargedBy] varchar(10), [Notified] varchar(1), [EntryDate] datetime) AS BEGIN INSERT INTO @ML ([MATTER], [SEQ], [DATE], [DISCHARGEDATENO], [DISCHARGEDATEDATE], [TYPE], [DESCRIPTION], [WHO], [VALUE], [RECORDID], [ActionID], [GivenOrReceived], [Handler], [UndertakingTo], [Status], [DealingNumber], [DischargedBy], [Notified], [EntryDate]) SELECT UND.[MATTER], UND.[SEQ], UND.[DATE], NULL, UND.[DISCHARGEDATE], UND.[TYPE], UND.[DESCRIPTION], UND.[WHO], UND.[VALUE], UND.[RECORDID], UND.[ActionID], UND.[GivenOrReceived], UND.[AuthorisedByFE], UND.[UndertakingTo], UND.[Status], UND.[DealingNumber], UND.[DischargedBy], UND.[Notified], NULL FROM [dbo].[Undertakings] UND WHERE UND.[AuthorisedByFE] = @Handler RETURN END' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDMTUndertakings] Script Date: 10/01/2014 16:19:28 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDMTUndertakings]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDMTUndertakings * * Get Matter Undertakings in a standardised format so this works both in SAM4 and in SAM3.5 * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDMTUndertakings] (@matter varchar(20)) RETURNS @ML TABLE ([MATTER] varchar(20), [SEQ] int, [DATE] datetime, [DISCHARGEDATENO] int, [DISCHARGEDATEDATE] datetime, [TYPE] varchar(1), [DESCRIPTION] varchar(400), [WHO] varchar(200), [VALUE] decimal(13,2), [RECORDID] int, [ActionID] int, [GivenOrReceived] varchar(1), [Handler] varchar(10), [UndertakingTo] varchar(10), [Status] int, [DealingNumber] varchar(40), [DischargedBy] varchar(10), [Notified] varchar(1), [EntryDate] datetime) AS BEGIN INSERT INTO @ML ([MATTER], [SEQ], [DATE], [DISCHARGEDATENO], [DISCHARGEDATEDATE], [TYPE], [DESCRIPTION], [WHO], [VALUE], [RECORDID], [ActionID], [GivenOrReceived], [Handler], [UndertakingTo], [Status], [DealingNumber], [DischargedBy], [Notified], [EntryDate]) SELECT UND.[MATTER], UND.[SEQ], UND.[DATE], NULL, UND.[DISCHARGEDATE], UND.[TYPE], UND.[DESCRIPTION], UND.[WHO], UND.[VALUE], UND.[RECORDID], UND.[ActionID], UND.[GivenOrReceived], UND.[AuthorisedByFE], UND.[UndertakingTo], UND.[Status], UND.[DealingNumber], UND.[DischargedBy], UND.[Notified], NULL FROM [dbo].[Undertakings] UND WHERE UND.[MATTER] = @matter RETURN END' END GO /****** Object: StoredProcedure [dbo].[ky_QueryCasePhoneLog] Script Date: 10/01/2014 16:17:27 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_QueryCasePhoneLog]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_QueryCasePhoneLog] (@Search VARCHAR(50), @CountryCode VARCHAR(5), @AreaCode VARCHAR(10), @NameCode VARCHAR(10), @ClientCode VARCHAR(10), @ClientContactNumber int, @Handler VARCHAR(10), @CaseCode VARCHAR(20), @Unassigned int, @fromdate varchar(8), @todate varchar(8), @maxresult int) AS BEGIN DECLARE @PhoneNo VARCHAR(20) DECLARE @HomeNo VARCHAR(20) DECLARE @MobileNo VARCHAR(20) DECLARE @dFromDate datetime DECLARE @dToDate datetime /* Test Data SET @Search = '''' SET @NameCode = ''000109'' SET @ClientCode = '''' SET @ClientContactNumber = 11 SET @CountryCode = ''353'' SET @AreaCode = ''1'' SET @Handler = ''SK'' SET @CaseCode = '''' SET @Unassigned = 0 SET @maxresult = 100 */ DECLARE @CasePhoneLog TABLE ([id] int, [systemid] varchar(50) not null, [handler] varchar(10), [startofcall] varchar(14), [endofcall] varchar(14), [durationseconds] int, [casecode] varchar(20), [clientcode] varchar(20), [clientname] varchar(100), [description] varchar(200), [actionid] int, [incoming] int, --1 = yes, incoming, 0 = no, outgoing [countrycode] varchar(6), [areacode] varchar(6), [phonenumber] varchar(20)) SET @Search = RTRIM(ISNULL(@Search, '''')) SET @NameCode = RTRIM(ISNULL(@NameCode, '''')) SET @ClientCode = RTRIM(ISNULL(@ClientCode, '''')) SET @Handler = RTRIM(ISNULL(@Handler, '''')) SET @Unassigned = CASE WHEN ISNULL(@Unassigned, 0) = 1 THEN 1 ELSE 0 END SET @ClientContactNumber = CASE WHEN ISNULL(@ClientContactNumber, 0) = 0 THEN 0 ELSE @ClientContactNumber END SET @CountryCode = RTRIM(ISNULL(@CountryCode, '''')) SET @CountryCode = REPLACE(@CountryCode, ''+'', '''') SET @CountryCode = REPLACE(@CountryCode, ''00'', '''') SET @AreaCode = RTRIM(ISNULL(@AreaCode, '''')) SET @AreaCode = REPLACE(''='' + @AreaCode, ''=0'', '''') SET @AreaCode = REPLACE(@AreaCode, ''='', '''') SET @fromdate = RTRIM(ISNULL(@fromdate, '''')) SET @todate = RTRIM(ISNULL(@todate, '''')) BEGIN TRY IF (@toDate <> '''') BEGIN SET @todate = CONVERT(varchar, CONVERT(datetime, RTRIM(ISNULL(@todate, convert(varchar, dateadd(DD, 1, getDate()), 112)))), 112) END ELSE BEGIN SET @todate = convert(varchar, dateadd(DD, 1, getDate()), 112) END END TRY BEGIN CATCH SET @todate = convert(varchar, dateadd(DD, 1, getDate()), 112) END CATCH BEGIN TRY IF (@fromdate <> '''') BEGIN SET @fromdate = CONVERT(varchar, CONVERT(datetime, RTRIM(ISNULL(@fromdate, convert(varchar, dateadd(MM, -1, getDate()), 112)))), 112) END ELSE BEGIN SET @fromdate = convert(varchar, dateadd(MM, -1, getDate()), 112) END END TRY BEGIN CATCH SET @fromdate = convert(varchar, dateadd(MM, -1, getDate()), 112) END CATCH SET @dFromDate = CONVERT(datetime, @fromdate) SET @dToDate = CONVERT(datetime, @todate) SET @PhoneNo = '''' SET @HomeNo = '''' SET @MobileNo = '''' IF (@NameCode <> '''') BEGIN IF (@ClientContactNumber <> 0) BEGIN SELECT @PhoneNo = RTRIM(ISNULL(CAC.[PHONE], '''')), @HomeNo = '''', @MobileNo = RTRIM(ISNULL(CAC.[MOBILE], '''')) FROM [dbo].[CaseAssociatesContacts] CAC WHERE CAC.[NAMECODE] = @NameCode AND CAC.[KEYID] = @ClientContactNumber END ELSE BEGIN SELECT @PhoneNo = RTRIM(ISNULL(CAN.[PHONENO], '''')), @HomeNo = RTRIM(ISNULL(CAN.[HOME], '''')), @MobileNo = RTRIM(ISNULL(CAN.[MOBILENO], '''')) FROM [dbo].[CaseAssociatesNames] CAN WHERE CAN.[CODE] = @NameCode END END IF (@ClientCode <> '''') BEGIN IF (@ClientContactNumber <> 0) BEGIN SELECT @PhoneNo = RTRIM(ISNULL(CCT.[WorkPhone], '''')), @HomeNo = RTRIM(ISNULL(CCT.[HomePhone], '''')), @MobileNo = RTRIM(ISNULL(CCT.[Mobile], '''')) FROM [dbo].[ClientContacts] CCT WHERE CCT.[CLCODE] = @ClientCode AND CCT.[CLNUMCONTACT] = @ClientContactNumber END ELSE BEGIN SELECT @PhoneNo = RTRIM(ISNULL(CTC.[Tel], RTRIM(ISNULL(CLT.[CLTEL], '''')))), @HomeNo = '''', @MobileNo = RTRIM(ISNULL(CLT.[CLMOBNO], '''')) FROM [dbo].[contacts] CTC INNER JOIN [dbo].[client] CLT ON CLT.[CLCODE] = CTC.[Code] WHERE CTC.[CODE] = @ClientCode END END SET @PhoneNo = REPLACE(@PhoneNo, '' '', '''') SET @PhoneNo = REPLACE(@PhoneNo, ''+'', '''') SET @PhoneNo = REPLACE(@PhoneNo, ''-'', '''') SET @PhoneNo = REPLACE(@PhoneNo, ''.'', '''') SET @PhoneNo = REPLACE(''='' + @PhoneNo, ''=0'', '''') SET @PhoneNo = REPLACE(@PhoneNo, ''='', '''') SET @PhoneNo = REPLACE(''='' + @PhoneNo, ''=0'', '''') SET @PhoneNo = REPLACE(@PhoneNo, ''='', '''') SET @HomeNo = REPLACE(@HomeNo, '' '', '''') SET @HomeNo = REPLACE(@HomeNo, ''+'', '''') SET @HomeNo = REPLACE(@HomeNo, ''-'', '''') SET @HomeNo = REPLACE(@HomeNo, ''.'', '''') SET @HomeNo = REPLACE(''='' + @HomeNo, ''=0'', '''') SET @HomeNo = REPLACE(@HomeNo, ''='', '''') SET @HomeNo = REPLACE(''='' + @HomeNo, ''=0'', '''') SET @HomeNo = REPLACE(@HomeNo, ''='', '''') SET @MobileNo = REPLACE(@MobileNo, '' '', '''') SET @MobileNo = REPLACE(@MobileNo, ''+'', '''') SET @MobileNo = REPLACE(@MobileNo, ''-'', '''') SET @MobileNo = REPLACE(@MobileNo, ''.'', '''') SET @MobileNo = REPLACE(''='' + @MobileNo, ''=0'', ''0'') SET @MobileNo = REPLACE(''='' + @MobileNo, ''=0'', ''0'') SET @MobileNo = REPLACE(''='' + @MobileNo, ''=0'', '''') SET @MobileNo = REPLACE(@MobileNo, ''='', '''') SET @MobileNo = REPLACE(''='' + @MobileNo, ''=0'', '''') SET @MobileNo = REPLACE(@MobileNo, ''='', '''') --SELECT @PhoneNo, @HomeNo, @MobileNo IF (@Search <> '''') BEGIN SET @Search = ''%'' + @Search + ''%'' SET @Search = Replace(@Search, ''%%'', ''%'') SET @Search = Replace(@Search, ''%%'', ''%'') END IF (@Handler <> '''') AND (@CaseCode <> '''') BEGIN INSERT INTO @CasePhoneLog ([id], [systemid], [handler], [startofcall], [endofcall], [durationseconds], [casecode], [clientcode], [clientname], [description], [actionid], [incoming], [countrycode], [areacode], [phonenumber]) SELECT CPL.[id], CPL.[systemid], CPL.[handler], convert(varchar, CPL.[startofcall], 112) + substring(convert(varchar(8), CPL.[startofcall], 108), 1, 2) + substring(convert(varchar(8), CPL.[startofcall], 108), 4, 2) + substring(convert(varchar(8), CPL.[startofcall], 108), 7, 2), convert(varchar, CPL.[endofcall], 112) + substring(convert(varchar(8), CPL.[endofcall], 108), 1, 2) + substring(convert(varchar(8), CPL.[endofcall], 108), 4, 2) + substring(convert(varchar(8), CPL.[endofcall], 108), 7, 2), CPL.[durationseconds], CPL.[casecode], RTRIM(ISNULL(MAT.[clientcode], '''')), RTRIM(ISNULL(CNT.[Name], '''')), RTRIM(ISNULL(MAT.[Description], '''')), CPL.[actionid], CPL.[incoming], CPL.[countrycode], CPL.[areacode], CPL.[phonenumber] FROM [dbo].[CasePhoneLog] CPL LEFT OUTER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CNT ON CNT.[Code] = MAT.[ClientCode] ON MAT.[code] = CPL.[casecode] WHERE CPL.[handler] = @Handler AND CPL.[casecode] = @CaseCode AND CPL.[startofcall] >= @dFromDate AND CPL.[startofcall] < @dToDate ORDER BY CPL.[startofcall] DESC END ELSE IF (@Handler <> '''') BEGIN INSERT INTO @CasePhoneLog ([id], [systemid], [handler], [startofcall], [endofcall], [durationseconds], [casecode], [clientcode], [clientname], [description], [actionid], [incoming], [countrycode], [areacode], [phonenumber]) SELECT CPL.[id], CPL.[systemid], CPL.[handler], convert(varchar, CPL.[startofcall], 112) + substring(convert(varchar(8), CPL.[startofcall], 108), 1, 2) + substring(convert(varchar(8), CPL.[startofcall], 108), 4, 2) + substring(convert(varchar(8), CPL.[startofcall], 108), 7, 2), convert(varchar, CPL.[endofcall], 112) + substring(convert(varchar(8), CPL.[endofcall], 108), 1, 2) + substring(convert(varchar(8), CPL.[endofcall], 108), 4, 2) + substring(convert(varchar(8), CPL.[endofcall], 108), 7, 2), CPL.[durationseconds], CPL.[casecode], RTRIM(ISNULL(MAT.[clientcode], '''')), RTRIM(ISNULL(CNT.[Name], '''')), RTRIM(ISNULL(MAT.[Description], '''')), CPL.[actionid], CPL.[incoming], CPL.[countrycode], CPL.[areacode], CPL.[phonenumber] FROM [dbo].[CasePhoneLog] CPL LEFT OUTER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CNT ON CNT.[Code] = MAT.[ClientCode] ON MAT.[code] = CPL.[casecode] WHERE CPL.[handler] = @Handler AND ( @Unassigned = 0 OR casecode IS NULL) AND CPL.[startofcall] >= @dFromDate AND CPL.[startofcall] < @dToDate ORDER BY CPL.[startofcall] DESC END ELSE IF (@CaseCode <> '''') BEGIN INSERT INTO @CasePhoneLog ([id], [systemid], [handler], [startofcall], [endofcall], [durationseconds], [casecode], [clientcode], [clientname], [description], [actionid], [incoming], [countrycode], [areacode], [phonenumber]) SELECT CPL.[id], CPL.[systemid], CPL.[handler], convert(varchar, CPL.[startofcall], 112) + substring(convert(varchar(8), CPL.[startofcall], 108), 1, 2) + substring(convert(varchar(8), CPL.[startofcall], 108), 4, 2) + substring(convert(varchar(8), CPL.[startofcall], 108), 7, 2), convert(varchar, CPL.[endofcall], 112) + substring(convert(varchar(8), CPL.[endofcall], 108), 1, 2) + substring(convert(varchar(8), CPL.[endofcall], 108), 4, 2) + substring(convert(varchar(8), CPL.[endofcall], 108), 7, 2), CPL.[durationseconds], CPL.[casecode], RTRIM(ISNULL(MAT.[clientcode], '''')), RTRIM(ISNULL(CNT.[Name], '''')), RTRIM(ISNULL(MAT.[Description], '''')), CPL.[actionid], CPL.[incoming], CPL.[countrycode], CPL.[areacode], CPL.[phonenumber] FROM [dbo].[CasePhoneLog] CPL LEFT OUTER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CNT ON CNT.[Code] = MAT.[ClientCode] ON MAT.[code] = CPL.[casecode] WHERE CPL.[casecode] = @CaseCode AND CPL.[startofcall] >= @dFromDate AND CPL.[startofcall] < @dToDate ORDER BY CPL.[startofcall] DESC END IF ((@PhoneNo <> '''') OR (@HomeNo <> '''') OR (@MobileNo <> '''')) BEGIN DELETE CPL from @casephonelog CPL WHERE ( @PhoneNo = '''' OR ( @PhoneNo <> CPL.[countrycode] + CPL.[areacode] + CPL.[phonenumber] AND @CountryCode + @PhoneNo <> CPL.[countrycode] + CPL.[areacode] + CPL.[phonenumber] AND @CountryCode + @AreaCode + @PhoneNo <> CPL.[countrycode] + CPL.[areacode] + CPL.[phonenumber])) AND ( @HomeNo = '''' OR ( @HomeNo <> CPL.[countrycode] + CPL.[areacode] + CPL.[phonenumber] AND @CountryCode + @HomeNo <> CPL.[countrycode] + CPL.[areacode] + CPL.[phonenumber] AND @CountryCode + @AreaCode + @HomeNo <> CPL.[countrycode] + CPL.[areacode] + CPL.[phonenumber])) AND ( @MobileNo = '''' OR ( @MobileNo <> CPL.[countrycode] + CPL.[areacode] + CPL.[phonenumber] AND @CountryCode + @MobileNo <> CPL.[countrycode] + CPL.[areacode] + CPL.[phonenumber] AND @CountryCode + @AreaCode + @MobileNo <> CPL.[countrycode] + CPL.[areacode] + CPL.[phonenumber])) END IF (@Search <> '''') BEGIN DELETE CPL FROM @CasePhoneLog CPL WHERE CPL.[clientname] NOT LIKE @Search AND CPL.[description] NOT LIKE @Search END SELECT TOP (@maxresult) * FROM @CasePhoneLog CPL ORDER BY CPL.[startofcall] DESC END ' END GO /****** Object: StoredProcedure [dbo].[ky_CaseAssociateExportContact] Script Date: 10/01/2014 16:17:05 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CaseAssociateExportContact]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_CaseAssociateExportContact] ( @AssociateCode NVARCHAR(20) ) AS /***************************************************************************** Stored Procedure Name: ky_CaseAssociateExportContact Description: To Fetch contact for export *****************************************************************************/ BEGIN SET NOCOUNT ON IF(SELECT TOP 1 1 FROM CaseAssociatesContacts WHERE NAMECODE = @AssociateCode)IS NOT NULL BEGIN SELECT [NAMECODE] ,[KEYID] ,[NAME] ,[SALUTATION] ,[JOBTITLE] ,[ADDRESS] ,[PHONE] ,[FAX] ,[MOBILE] ,[EMAIL] ,[RELATIONSHIP] ,[NOTES] FROM CaseAssociatesContacts WHERE NAMECODE = @AssociateCode END SET NOCOUNT OFF END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDAllCaseAssociates] Script Date: 10/01/2014 16:19:10 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDAllCaseAssociates]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' create function [dbo].[ky_WDAllCaseAssociates]() RETURNS @SR TABLE ([Name] varchar(200), [Address] varchar(200), [Phone] varchar(30), [Mobile] varchar(30), [Fax] varchar(30), [Email] varchar(100)) AS BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email]) SELECT CASE WHEN RTrim(IsNull(CAN.[NAME], '''')) = '''' THEN CONVERT(varchar(200), RTRIM(ISNULL(CAN.[LEGALNAME], ''''))) ELSE CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) END AS [NAME], CASE WHEN RTrim(IsNull(CAN.[ADDRESS], '''')) = '''' THEN SUBSTRING(CAN.[LegalAddress], 1, 200) ELSE SUBSTRING(CAN.[Address], 1, 200) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL] FROM [dbo].[CaseAssociatesNames] CAN UNION SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], SUBSTRING(CAN.[Address], 1, 200) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL] FROM (SELECT CAC.[NAMECODE], CAC.[KEYID], CASE WHEN RTrim(IsNull(CAC.[NAME], '''')) = '''' THEN RTRIM(IsNull(CNN.[NAME], '''')) ELSE RTrim(IsNull(CAC.[NAME], '''')) END AS [NAME], CASE WHEN RTrim(IsNull(CAC.[ADDRESS], '''')) = '''' THEN RTRIM(IsNull(CNN.[ADDRESS], '''')) ELSE RTrim(IsNull(CAC.[ADDRESS], '''')) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CAC.[PHONE], '''')) = '''' THEN RTRIM(IsNull(CNN.[PHONENO], '''')) ELSE RTrim(IsNull(CAC.[PHONE], '''')) END AS [PHONENO], RTrim(IsNull(CAC.[MOBILE], '''')) AS [MOBILENO], CASE WHEN RTrim(IsNull(CAC.[FAX], '''')) = '''' THEN RTRIM(IsNull(CNN.[FAXNO], '''')) ELSE RTrim(IsNull(CAC.[FAX], '''')) END AS [FAXNO], CASE WHEN RTrim(IsNull(CAC.[EMAIL], '''')) = '''' THEN RTRIM(IsNull(CNN.[EMAIL], '''')) ELSE RTrim(IsNull(CAC.[EMAIL], '''')) END AS [EMAIL] FROM [dbo].[CaseAssociatesContacts] CAC LEFT OUTER JOIN [dbo].[CaseAssociatesNames] CNN ON CNN.[CODE] = CAC.[NAMECODE]) CAN UPDATE @SR SET [Phone] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Phone]), [Mobile] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Mobile]), [Fax] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Fax]) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDAllCaseAssociates2] Script Date: 10/01/2014 16:19:11 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDAllCaseAssociates2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'/************************************************************************************** * * ky_WDAllCaseAssociates2 * * Lists all case associates in the system * **************************************************************************************/ create function [dbo].[ky_WDAllCaseAssociates2]() RETURNS @SR TABLE ([Type] varchar(20), [Name] varchar(200), [Address] varchar(200), [Phone] varchar(30), [Mobile] varchar(30), [Fax] varchar(30), [Email] varchar(100)) AS BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Type]) SELECT CASE WHEN RTrim(IsNull(CAN.[NAME], '''')) = '''' THEN CONVERT(varchar(200), RTRIM(ISNULL(CAN.[LEGALNAME], ''''))) ELSE CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) END AS [NAME], CASE WHEN RTrim(IsNull(CAN.[ADDRESS], '''')) = '''' THEN SUBSTRING(CAN.[LegalAddress], 1, 200) ELSE SUBSTRING(CAN.[Address], 1, 200) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], convert(varchar(20), RTrim(IsNull(CAN.[TYPE], ''''))) AS [TYPE] FROM [dbo].[CaseAssociatesNames] CAN UNION SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], SUBSTRING(CAN.[Address], 1, 200) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], convert(varchar(20), RTrim(IsNull(CAN.[TYPE], ''''))) AS [TYPE] FROM (SELECT CAC.[NAMECODE], CAC.[KEYID], CASE WHEN RTrim(IsNull(CAC.[NAME], '''')) = '''' THEN RTRIM(IsNull(CNN.[NAME], '''')) ELSE RTrim(IsNull(CAC.[NAME], '''')) END AS [NAME], CASE WHEN RTrim(IsNull(CAC.[ADDRESS], '''')) = '''' THEN RTRIM(IsNull(CNN.[ADDRESS], '''')) ELSE RTrim(IsNull(CAC.[ADDRESS], '''')) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CAC.[PHONE], '''')) = '''' THEN RTRIM(IsNull(CNN.[PHONENO], '''')) ELSE RTrim(IsNull(CAC.[PHONE], '''')) END AS [PHONENO], RTrim(IsNull(CAC.[MOBILE], '''')) AS [MOBILENO], CASE WHEN RTrim(IsNull(CAC.[FAX], '''')) = '''' THEN RTRIM(IsNull(CNN.[FAXNO], '''')) ELSE RTrim(IsNull(CAC.[FAX], '''')) END AS [FAXNO], CASE WHEN RTrim(IsNull(CAC.[EMAIL], '''')) = '''' THEN RTRIM(IsNull(CNN.[EMAIL], '''')) ELSE RTrim(IsNull(CAC.[EMAIL], '''')) END AS [EMAIL], convert(varchar(20), RTrim(IsNull(CNN.[TYPE], ''''))) AS [TYPE] FROM [dbo].[CaseAssociatesContacts] CAC LEFT OUTER JOIN [dbo].[CaseAssociatesNames] CNN ON CNN.[CODE] = CAC.[NAMECODE]) CAN UPDATE @SR SET [Phone] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Phone]), [Mobile] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Mobile]), [Fax] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Fax]) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_SelectContact] Script Date: 10/01/2014 16:19:08 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_SelectContact]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' CREATE FUNCTION [dbo].[ky_SelectContact] (@Search VARCHAR(50), @maxresult int) RETURNS @Found TABLE ([ClientCode] VARCHAR(10), [NameCode] VARCHAR(10), [ClientContactNumber] int, [Name] VARCHAR(200), [Phone 1] VARCHAR(50), [Phone 2] VARCHAR(50), [Mobile] VARCHAR(50)) AS BEGIN SET @maxresult = ISNULL(@maxresult, 100) DECLARE @sofar int SET @Search = RTRIM(ISNULL(@Search, '''')) IF (@Search <> '''') BEGIN SET @Search = ''%'' + @Search + ''%'' SET @Search = Replace(@Search, ''%%'', ''%'') SET @Search = Replace(@Search, ''%%'', ''%'') END ELSE BEGIN SET @Search = ''%'' END INSERT INTO @Found ([ClientCode], [NameCode], [ClientContactNumber], [Name], [Phone 1], [Phone 2], [Mobile]) SELECT TOP (@maxresult) CONVERT(VARCHAR(10), RTRIM(ISNULL(CLT.[code], ''''))) AS [ClientCode], CONVERT(VARCHAR(10), '''') AS [NameCode], 0 As [ClientContactNumber], CONVERT(VARCHAR(200), RTRIM(ISNULL(CLT.[name], ''''))) AS [Name], RTRIM(ISNULL(CLT.[Tel], '''')), RTRIM(ISNULL(CLI.[CLTEL], '''')), RTRIM(ISNULL(CLI.[CLMOBNO], '''')) FROM [dbo].[contacts] CLT INNER JOIN [dbo].[client] CLI ON CLI.[CLCODE] = CLT.[Code] WHERE RTRIM(ISNULL(CLT.[Name], '''')) <> '''' AND ( CLT.[Name] LIKE @Search OR REPLACE(REPLACE(CLT.[Tel], '' '', ''''), ''-'', '''') LIKE @Search OR REPLACE(REPLACE(CLI.[CLTEL], '' '', ''''), ''-'', '''') LIKE @Search OR REPLACE(REPLACE(CLI.[CLMOBNO], '' '', ''''), ''-'', '''') LIKE @Search) AND ( RTRIM(ISNULL(CLT.[Tel], '''')) <> '''' OR RTRIM(ISNULL(CLI.[CLTEL], '''')) <> '''' OR RTRIM(ISNULL(CLI.[CLMOBNO], '''')) <> '''') SELECT @sofar = COUNT(1) FROM @Found IF (@sofar < @maxresult) BEGIN INSERT INTO @Found ([ClientCode], [NameCode], [ClientContactNumber], [Name], [Phone 1], [Phone 2], [Mobile]) SELECT TOP (@maxresult - @sofar) CONVERT(VARCHAR(10), RTRIM(ISNULL(CLT.[CLCODE], ''''))) AS [ClientCode], CONVERT(VARCHAR(10), '''') AS [NameCode], CLT.[CLNUMCONTACT] As [ClientContactNumber], CONVERT(VARCHAR(200), RTRIM(ISNULL(CLT.[CLNAMECON], ''''))) AS [Name], RTRIM(ISNULL(CLT.[HomePhone], '''')), RTRIM(ISNULL(CLT.[Workphone], '''')), RTRIM(ISNULL(CLT.[Mobile], '''')) FROM [dbo].[ClientContacts] CLT WHERE RTRIM(ISNULL(CLT.[CLNAMECON], '''')) <> '''' AND ( CLT.[CLNAMECON] LIKE @Search OR REPLACE(REPLACE(CLT.[HomePhone], '' '', ''''), ''-'', '''') LIKE @Search OR REPLACE(REPLACE(CLT.[Workphone], '' '', ''''), ''-'', '''') LIKE @Search OR REPLACE(REPLACE(CLT.[Mobile], '' '', ''''), ''-'', '''') LIKE @Search) AND ( RTRIM(ISNULL(CLT.[HomePhone], '''')) <> '''' OR RTRIM(ISNULL(CLT.[WorkPhone], '''')) <> '''' OR RTRIM(ISNULL(CLT.[Mobile], '''')) <> '''') END SELECT @sofar = COUNT(1) FROM @Found IF (@sofar < @maxresult) BEGIN INSERT INTO @Found ([ClientCode], [NameCode], [ClientContactNumber], [Name], [Phone 1], [Phone 2], [Mobile]) SELECT TOP (@maxresult - @sofar) CONVERT(VARCHAR(10), '''') AS [ClientCode], CONVERT(VARCHAR(10), RTRIM(ISNULL(CLN.[CODE], ''''))) AS [NameCode], 0 As [ClientContactNumber], CONVERT(VARCHAR(200), RTRIM(ISNULL(CLN.[NAME], ''''))) AS [Name], RTRIM(ISNULL(CLN.[HOME], '''')), RTRIM(ISNULL(CLN.[PHONENO], '''')), RTRIM(ISNULL(CLN.[MOBILENO], '''')) FROM [dbo].[CaseAssociatesNames] CLN WHERE RTRIM(ISNULL(CLN.[NAME], '''')) <> '''' AND ( CLN.[NAME] LIKE @Search OR REPLACE(REPLACE(CLN.[HOME], '' '', ''''), ''-'', '''') LIKE @Search OR REPLACE(REPLACE(CLN.[PHONENO], '' '', ''''), ''-'', '''') LIKE @Search OR REPLACE(REPLACE(CLN.[MOBILENO], '' '', ''''), ''-'', '''') LIKE @Search) AND ( RTRIM(ISNULL(CLN.[HOME], '''')) <> '''' OR RTRIM(ISNULL(CLN.[PHONENO], '''')) <> '''' OR RTRIM(ISNULL(CLN.[MOBILENO], '''')) <> '''') END SELECT @sofar = COUNT(1) FROM @Found IF (@sofar < @maxresult) BEGIN INSERT INTO @Found ([ClientCode], [NameCode], [ClientContactNumber], [Name], [Phone 1], [Phone 2], [Mobile]) SELECT TOP (@maxresult - @sofar) CONVERT(VARCHAR(10), '''') AS [ClientCode], CONVERT(VARCHAR(10), RTRIM(ISNULL(CAC.[NAMECODE], ''''))) AS [NameCode], CAC.[KEYID] As [ClientContactNumber], CONVERT(VARCHAR(200), RTRIM(ISNULL(CAC.[NAME], ''''))) AS [Name], RTRIM(ISNULL(CAC.[PHONE], '''')), '''', RTRIM(ISNULL(CAC.[MOBILE], '''')) FROM [dbo].[CaseAssociatesContacts] CAC WHERE RTRIM(ISNULL(CAC.[NAME], '''')) <> '''' AND ( CAC.[NAME] LIKE @Search OR REPLACE(REPLACE(CAC.[PHONE], '' '', ''''), ''-'', '''') LIKE @Search OR REPLACE(REPLACE(CAC.[MOBILE], '' '', ''''), ''-'', '''') LIKE @Search) AND ( RTRIM(ISNULL(CAC.[PHONE], '''')) <> '''' OR RTRIM(ISNULL(CAC.[MOBILE], '''')) <> '''') END RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchCaseAssociates] Script Date: 10/01/2014 16:19:31 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchCaseAssociates]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDSearchCaseAssociates * * Returns a list of Case Associates matching a search criterion * by name, addres, or phone number * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDSearchCaseAssociates] (@search varchar(50), @mattersearch varchar(50), @include int, @expand int, @clientcode varchar(10), @namecode varchar(10), @IncludePhone int) RETURNS @SR TABLE ([Name] varchar(200), [Address] varchar(200), [Phone] varchar(30), [Mobile] varchar(30), [Fax] varchar(30), [Email] varchar(100), [Case] varchar(20), [Clientcode] varchar(10), [Namecode] varchar(10)) AS BEGIN IF (@include = 0) RETURN SET @search = ''%'' + RTrim(IsNull(@search, '''')) + ''%'' SET @search = replace(@search, ''%%'', ''%'') SET @mattersearch = ''%'' + RTrim(IsNull(@mattersearch, '''')) + ''%'' SET @mattersearch = replace(@mattersearch, ''%%'', ''%'') SET @clientcode = RTrim(IsNull(@clientcode, '''')) IF (@clientcode = '''') SET @clientcode = ''%'' SET @namecode = RTrim(IsNull(@namecode, '''')) IF (@namecode = '''') SET @namecode = ''%'' IF (@expand = 0) BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT CASE WHEN RTrim(IsNull(CAN.[NAME], '''')) = '''' THEN CONVERT(varchar(200), RTRIM(ISNULL(CAN.[LEGALNAME], ''''))) ELSE CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) END AS [NAME], CASE WHEN RTrim(IsNull(CAN.[ADDRESS], '''')) = '''' THEN [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[LegalAddress], 1, 200)) ELSE [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], CASE WHEN CAS.[TOTAL] = 0 THEN '''' WHEN CAS.[TOTAL] = 1 THEN SIC.[CASECODE] ELSE convert(varchar(5), CAS.[TOTAL]) + '' Cases'' END AS [Cases], CASE WHEN CAS.[TOTALCLIENTS] = 0 THEN '''' WHEN CAS.[TOTALCLIENTS] = 1 THEN SIC.[ClientCode] ELSE convert(varchar(5), CAS.[TOTALCLIENTS]) + '' Clients'' END AS [ClientCode], CAN.[Code] As [NameCode] FROM [dbo].[CaseAssociatesNames] CAN CROSS APPLY (SELECT COUNT(DISTINCT MA1.[Code]) AS TOTAL, COUNT(DISTINCT MA1.[ClientCode]) AS TOTALCLIENTS FROM [dbo].[casecontacts] CCO INNER JOIN [dbo].[matters] MA1 ON MA1.[Code] = CCO.[CASECODE] AND ( MA1.[description] like @mattersearch OR MA1.[user1] like @mattersearch OR MA1.[user2] like @mattersearch OR MA1.[user3] like @mattersearch) AND MA1.ClientCode LIKE @clientcode WHERE CCO.[NAMECODE] = CAN.[CODE]) CAS CROSS APPLY (SELECT TOP 1 CCO.[CASECODE], MA1.[ClientCode] FROM [dbo].[casecontacts] CCO INNER JOIN [dbo].[matters] MA1 ON MA1.[Code] = CCO.[CASECODE] AND ( MA1.[description] like @mattersearch OR MA1.[user1] like @mattersearch OR MA1.[user2] like @mattersearch OR MA1.[user3] like @mattersearch) AND MA1.ClientCode LIKE @clientcode WHERE CCO.[NAMECODE] = CAN.[CODE]) SIC WHERE ( CAN.[name] like @search OR CAN.[address] like @search OR ( @IncludePhone = 1 AND CAN.[phoneno] like @search) OR ( @IncludePhone = 1 AND CAN.[faxno] like @search) OR ( @IncludePhone = 1 AND CAN.[mobileno] like @search) OR CAN.[legalname] like @search OR CAN.[legaladdress] like @search) UNION SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], CASE WHEN CAS.[TOTAL] = 0 THEN '''' WHEN CAS.[TOTAL] = 1 THEN SIC.[CASECODE] ELSE convert(varchar(5), CAS.[TOTAL]) + '' Cases'' END AS [Cases], CASE WHEN CAS.[TOTALCLIENTS] = 0 THEN '''' WHEN CAS.[TOTALCLIENTS] = 1 THEN SIC.[ClientCode] ELSE convert(varchar(5), CAS.[TOTALCLIENTS]) + '' Clients'' END AS [ClientCode], CAN.[NameCode] As [NameCode] FROM (SELECT CAC.[NAMECODE], CAC.[KEYID], CASE WHEN RTrim(IsNull(CAC.[NAME], '''')) = '''' THEN RTRIM(IsNull(CNN.[NAME], '''')) ELSE RTrim(IsNull(CAC.[NAME], '''')) END AS [NAME], CASE WHEN RTrim(IsNull(CAC.[ADDRESS], '''')) = '''' THEN RTRIM(IsNull(CNN.[ADDRESS], '''')) ELSE RTrim(IsNull(CAC.[ADDRESS], '''')) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CAC.[PHONE], '''')) = '''' THEN RTRIM(IsNull(CNN.[PHONENO], '''')) ELSE RTrim(IsNull(CAC.[PHONE], '''')) END AS [PHONENO], RTrim(IsNull(CAC.[MOBILE], '''')) AS [MOBILENO], CASE WHEN RTrim(IsNull(CAC.[FAX], '''')) = '''' THEN RTRIM(IsNull(CNN.[FAXNO], '''')) ELSE RTrim(IsNull(CAC.[FAX], '''')) END AS [FAXNO], CASE WHEN RTrim(IsNull(CAC.[EMAIL], '''')) = '''' THEN RTRIM(IsNull(CNN.[EMAIL], '''')) ELSE RTrim(IsNull(CAC.[EMAIL], '''')) END AS [EMAIL] FROM [dbo].[CaseAssociatesContacts] CAC LEFT OUTER JOIN [dbo].[CaseAssociatesNames] CNN ON CNN.[CODE] = CAC.[NAMECODE] WHERE ( CAC.[name] like @search OR CAC.[address] like @search OR ( @IncludePhone = 1 AND CAC.[phone] like @search) OR ( @IncludePhone = 1 AND CAC.[fax] like @search) OR ( @IncludePhone = 1 AND CAC.[mobile] like @search))) CAN CROSS APPLY (SELECT COUNT(DISTINCT MA1.[Code]) AS TOTAL, COUNT(DISTINCT MA1.[ClientCode]) AS TOTALCLIENTS FROM [dbo].[casecontacts] CCO INNER JOIN [dbo].[matters] MA1 ON MA1.[Code] = CCO.[CASECODE] AND ( MA1.[description] like @mattersearch OR MA1.[user1] like @mattersearch OR MA1.[user2] like @mattersearch OR MA1.[user3] like @mattersearch) AND MA1.ClientCode LIKE @clientcode WHERE CCO.[NAMECODE] = CAN.[NAMECODE] OR CCO.[AssignedContact] = CAN.[KEYID]) CAS CROSS APPLY (SELECT TOP 1 CCO.[CASECODE], MA1.[ClientCode] FROM [dbo].[casecontacts] CCO INNER JOIN [dbo].[matters] MA1 ON MA1.[Code] = CCO.[CASECODE] AND ( MA1.[description] like @mattersearch OR MA1.[user1] like @mattersearch OR MA1.[user2] like @mattersearch OR MA1.[user3] like @mattersearch) AND MA1.ClientCode LIKE @clientcode WHERE CCO.[NAMECODE] = CAN.[NAMECODE] OR CCO.[AssignedContact] = CAN.[KEYID]) SIC END ELSE BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT CASE WHEN RTrim(IsNull(CAN.[NAME], '''')) = '''' THEN CONVERT(varchar(200), RTRIM(ISNULL(CAN.[LEGALNAME], ''''))) ELSE CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) END AS [NAME], CASE WHEN RTrim(IsNull(CAN.[ADDRESS], '''')) = '''' THEN [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[LegalAddress], 1, 200)) ELSE [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], SIC.[CASECODE] AS [Cases], SIC.[ClientCode] AS [ClientCode], CAN.[Code] As [NameCode] FROM [dbo].[CaseAssociatesNames] CAN CROSS APPLY (SELECT CCO.[CASECODE], MA1.[ClientCode] FROM [dbo].[casecontacts] CCO INNER JOIN [dbo].[matters] MA1 ON MA1.[Code] = CCO.[CASECODE] AND ( MA1.[description] like @mattersearch OR MA1.[user1] like @mattersearch OR MA1.[user2] like @mattersearch OR MA1.[user3] like @mattersearch) AND MA1.ClientCode LIKE @clientcode WHERE CCO.[NAMECODE] = CAN.[CODE]) SIC WHERE ( CAN.[name] like @search OR CAN.[address] like @search OR ( @IncludePhone = 1 AND CAN.[phoneno] like @search) OR ( @IncludePhone = 1 AND CAN.[faxno] like @search) OR ( @IncludePhone = 1 AND CAN.[mobileno] like @search) OR CAN.[legalname] like @search OR CAN.[legaladdress] like @search) UNION SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], SIC.[CASECODE] AS [Cases], SIC.[ClientCode] AS [ClientCode], CAN.[NameCode] As [NameCode] FROM (SELECT CAC.[NAMECODE], CAC.[KEYID], CASE WHEN RTrim(IsNull(CAC.[NAME], '''')) = '''' THEN RTRIM(IsNull(CNN.[NAME], '''')) ELSE RTrim(IsNull(CAC.[NAME], '''')) END AS [NAME], CASE WHEN RTrim(IsNull(CAC.[ADDRESS], '''')) = '''' THEN RTRIM(IsNull(CNN.[ADDRESS], '''')) ELSE RTrim(IsNull(CAC.[ADDRESS], '''')) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CAC.[PHONE], '''')) = '''' THEN RTRIM(IsNull(CNN.[PHONENO], '''')) ELSE RTrim(IsNull(CAC.[PHONE], '''')) END AS [PHONENO], RTrim(IsNull(CAC.[MOBILE], '''')) AS [MOBILENO], CASE WHEN RTrim(IsNull(CAC.[FAX], '''')) = '''' THEN RTRIM(IsNull(CNN.[FAXNO], '''')) ELSE RTrim(IsNull(CAC.[FAX], '''')) END AS [FAXNO], CASE WHEN RTrim(IsNull(CAC.[EMAIL], '''')) = '''' THEN RTRIM(IsNull(CNN.[EMAIL], '''')) ELSE RTrim(IsNull(CAC.[EMAIL], '''')) END AS [EMAIL] FROM [dbo].[CaseAssociatesContacts] CAC LEFT OUTER JOIN [dbo].[CaseAssociatesNames] CNN ON CNN.[CODE] = CAC.[NAMECODE] WHERE ( CAC.[name] like @search OR CAC.[address] like @search OR ( @IncludePhone = 1 AND CAC.[phone] like @search) OR ( @IncludePhone = 1 AND CAC.[fax] like @search) OR ( @IncludePhone = 1 AND CAC.[mobile] like @search))) CAN CROSS APPLY (SELECT CCO.[CASECODE], MA1.[ClientCode] FROM [dbo].[casecontacts] CCO INNER JOIN [dbo].[matters] MA1 ON MA1.[Code] = CCO.[CASECODE] AND ( MA1.[description] like @mattersearch OR MA1.[user1] like @mattersearch OR MA1.[user2] like @mattersearch OR MA1.[user3] like @mattersearch) AND MA1.ClientCode LIKE @clientcode WHERE CCO.[NAMECODE] = CAN.[NAMECODE] OR CCO.[AssignedContact] = CAN.[KEYID]) SIC END DELETE @SR WHERE [NameCode] NOT LIKE @namecode UPDATE @SR SET [Phone] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Phone]), [Mobile] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Mobile]), [Fax] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Fax]) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_BGNewBillFeeBreakdown] Script Date: 10/01/2014 16:18:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGNewBillFeeBreakdown]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' CREATE FUNCTION [dbo].[ky_BGNewBillFeeBreakdown] (@DraftNo INT) RETURNS @BFEB TABLE ([MATTER] VARCHAR(20), [DRAFTNO] INT, [BILLNO] INT, [FECODE] VARCHAR(10), [TYPE] VARCHAR(1), [PERCENT] DECIMAL(5, 2), [CALCULATION] DECIMAL(9, 5), [VALUE] DECIMAL(11, 2), [VATCODE] VARCHAR(1), [VATAMT] DECIMAL(11, 2), [VATCalculation] DECIMAL(15, 5)) AS BEGIN DECLARE @TOTALBILLED DECIMAL(23, 7) DECLARE @BILLEDBYFE TABLE ([FECODE] VARCHAR(10), [TOTALBILLED] DECIMAL(23, 7), [CALCULATION] DECIMAL(23, 7), [PERCENT] DECIMAL(23, 7)) SELECT @TOTALBILLED = ISNULL(SUM(BGDT.[BillNow]), 0) FROM [dbo].[BGControl] BGCT INNER JOIN [dbo].[BGGroups] BGGT INNER JOIN [dbo].[BGDetail] BGDT ON BGDT.[BGGroupID] = BGGT.[ID] AND BGDT.[TYPE] = ''F'' ON BGGT.[BGControlID] = BGCT.[ID] WHERE BGCT.[DraftNo] = @DraftNo INSERT INTO @BILLEDBYFE ([FECODE], [TOTALBILLED]) SELECT BGDG.[FEEEARN] AS [FECODE], SUM(BGDG.[BillNow]) As [TotalBilled] FROM [dbo].[BGControl] BGCG INNER JOIN [dbo].[BGGroups] BGGG INNER JOIN [dbo].[BGDetail] BGDG ON BGDG.[BGGroupID] = BGGG.[ID] AND BGDG.[TYPE] = ''F'' ON BGGG.[BGControlID] = BGCG.[ID] WHERE BGCG.[DraftNo] = @DraftNo GROUP BY BGCG.[ID], BGDG.[FEEEARN] UPDATE BBFE SET BBFE.[CALCULATION] = BF2.[CALCULATION] - BF1.[CALCULATION], BBFE.[PERCENT] = BF2.[PERCENT] - BF1.[PERCENT] FROM @BILLEDBYFE BBFE CROSS APPLY (SELECT ROUND((CONVERT(DECIMAL(23, 7), 100) * ISNULL(SUM(BBFE1.[TOTALBILLED]), 0)) / @TOTALBILLED, 5) AS [CALCULATION], ROUND((CONVERT(DECIMAL(23, 7), 100) * ISNULL(SUM(BBFE1.[TOTALBILLED]), 0)) / @TOTALBILLED, 2) AS [PERCENT] FROM @BILLEDBYFE BBFE1 WHERE BBFE1.[FECODE] < BBFE.[FECODE]) BF1 CROSS APPLY (SELECT ROUND((CONVERT(DECIMAL(23, 7), 100) * ISNULL(SUM(BBFE2.[TOTALBILLED]), 0)) / @TOTALBILLED, 5) AS [CALCULATION], ROUND((CONVERT(DECIMAL(23, 7), 100) * ISNULL(SUM(BBFE2.[TOTALBILLED]), 0)) / @TOTALBILLED, 2) AS [PERCENT] FROM @BILLEDBYFE BBFE2 WHERE BBFE2.[FECODE] <= BBFE.[FECODE]) BF2 INSERT INTO @BFEB ([MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT], [VATCalculation]) SELECT BGC.[MATTER], BGC.[DRAFTNO], GG.[InvoiceNo] AS [BILLNO], GG.[FECODE], ''F'' AS [TYPE], BBFE.[PERCENT], BBFE.[CALCULATION], CONVERT(DECIMAL(11, 2), IsNull(GG.[TotalBilled], 0)) AS [VALUE], CON.[DEFAULTVAT] As [VATCODE], CONVERT(DECIMAL(11, 2), (IsNull(GG.[TotalBilled], 0) * IsNull(VCD.[RATE], 0)) / 100) AS [VATAMT], CONVERT(DECIMAL(15, 5), Round((IsNull(GG.[TotalBilled], 0) * IsNull(VCD.[RATE], 0)) / 100, 5)) AS [VATCalculation] FROM ( SELECT BGCG.[ID], BGDG.[FEEEARN] AS [FECODE], Max(BGDG.[InvoiceNo]) As [InvoiceNo], SUM(BGDG.[BillNow]) As [TotalBilled] FROM [dbo].[BGControl] BGCG INNER JOIN [dbo].[BGGroups] BGGG INNER JOIN [dbo].[BGDetail] BGDG ON BGDG.[BGGroupID] = BGGG.[ID] AND BGDG.[TYPE] = ''F'' ON BGGG.[BGControlID] = BGCG.[ID] WHERE BGCG.[DraftNo] = @DraftNo GROUP BY BGCG.[ID], BGDG.[FEEEARN]) GG CROSS JOIN ( SELECT BGCT.[ID], SUM(BGDT.[BillNow]) AS [TotalBilled] FROM [dbo].[BGControl] BGCT INNER JOIN [dbo].[BGGroups] BGGT INNER JOIN [dbo].[BGDetail] BGDT ON BGDT.[BGGroupID] = BGGT.[ID] AND BGDT.[TYPE] = ''F'' ON BGGT.[BGControlID] = BGCT.[ID] WHERE BGCT.[DraftNo] = @DraftNo GROUP BY BGCT.[ID]) GT INNER JOIN [dbo].[BGControl] BGC ON BGC.[ID] = GG.[ID] CROSS JOIN [dbo].[CONTROL] CON INNER JOIN [dbo].[VATCodes] VCD ON VCD.[CODE] = CON.[DEFAULTVAT] INNER JOIN @BILLEDBYFE BBFE ON BBFE.[FECODE] = GG.[FECODE] RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_CaseAssociateExportType] Script Date: 10/01/2014 16:17:05 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CaseAssociateExportType]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_CaseAssociateExportType] ( @AssociateCode NVARCHAR(20) ) AS /***************************************************************************** Stored Procedure Name: ky_CaseAssociateExportType Description: To Fetch Type for export *****************************************************************************/ BEGIN SET NOCOUNT ON IF(SELECT TOP 1 1 FROM CaseAssoicatesTypes WHERE NAMECODE = @AssociateCode)IS NOT NULL BEGIN SELECT [NAMECODE] ,[TYPECODE] ,[SEARCHCODE] FROM CaseAssoicatesTypes WHERE NAMECODE = @AssociateCode END SET NOCOUNT OFF END ' END GO /****** Object: View [dbo].[AssociateCategoryView] Script Date: 10/01/2014 16:19:51 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AssociateCategoryView]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[AssociateCategoryView] AS SELECT dbo.CaseAssoicatesTypes.NAMECODE, dbo.CaseAssoicatesTypes.TYPECODE, dbo.CaseAssoicatesTypes.SEARCHCODE, dbo.AssociateTypes.DESCRIPTION AS Category FROM dbo.CaseAssoicatesTypes INNER JOIN dbo.AssociateTypes ON dbo.CaseAssoicatesTypes.TYPECODE = dbo.AssociateTypes.CODE ' GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDiary] Script Date: 10/01/2014 16:19:13 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDiary]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDCaseDiary * * Case Diary view * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDCaseDiary] (@casecode varchar(20), @actionid int) RETURNS @DV TABLE ([CaseCode] varchar(20), [WKCode] varchar(10), [Action] varchar(255), [Status] int, [ActionType] varchar(1), [Priority] varchar(1), [DelegateStatus] int, [ImageNo] int, [Handler] varchar(10), [Team] varchar(10), [FromHandler] varchar(10), [ActionID] int, [DiaryStatus] int, [Highlighted] varchar(1), [Attachments] varchar(1), [DiaryDate] varchar(11), [DiaryTime] varchar(5), [FNCode] varchar(10), [TeamCode] varchar(10), [WorkProcess] int, [DelegationStatus] int, [ActionCode] varchar(30), [Duration] varchar(30), [DelegatedDateTime] datetime, [SELECTEDLINE] int, [AssignNo] int) AS BEGIN INSERT INTO @DV ([CaseCode], [WKCode], [Action], [Status], [ActionType], [Priority], [DelegateStatus], [ImageNo], [Handler], [Team], [FromHandler], [ActionID], [DiaryStatus], [Highlighted], [Attachments], [DiaryDate], [DiaryTime], [FNCode], [TeamCode], [WorkProcess], [DelegationStatus], [ActionCode], [Duration], [DelegatedDateTime], [SELECTEDLINE], [AssignNo]) SELECT RTrim(IsNull(DIA.[CaseCode], '''')) As [CaseCode], CM.[CSWKTCODE], CASE WHEN DIA.[ActionType] = ''E'' THEN SUBSTRING(''Email from: '' + Rtrim(IsNull([dbo].[ky_GetNameFromEmailAddress](DIA.[EmailAddress]), '''')) + '' - '' + RTrim(IsNull(convert(varchar(2000), DIA.[Subject]), '''')), 1, 120) ELSE SUBSTRING(DIA.[TEXT1], 1, 120) END As [Action], DEL.[Status], IsNull(DIA.[ActionType], '''') As [ActionType], IsNull(DIA.[Priority], '''') As [Priority], IsNull(DEL.[DELEGATESTATUS], 0) As [DelegateStatus], DIA.[ImageNo], IsNull(DEL.[Handler], '''') As [Handler], IsNull(DEL.[Team], '''') As [Team], IsNull(DEL.[FromHandler], '''') As [FromHandler], DIA.[ActionID] As [ActionID], IsNull(DIA.[Status], 0) As [DiaryStatus], IsNull(DIA.[Highlighted], '''') As [Highlighted], IsNull(DIA.[Attachments], '''') As [Attachments], Convert(varchar, DIA.[DATE], 106) As [DiaryDate], SUBSTRING(Convert(varchar, [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DIA.[DATE], DIA.[DYSTARTTIME]), 108), 1, 5) AS [DiaryTime], RTrim(IsNull(DIA.[FNCode], '''')) AS [FNCode], IsNull(DIA.[TeamCode], '''') AS [TeamCode], IsNull(DIA.[WorkProcess], 0) AS [WorkProcess], Convert(int, IsNull(DIA.[DelegationStatus], 0)) AS [DelegationStatus], RTrim(IsNull(DIA.[ACTIONCODE], '''')) AS [ActionCode], CASE WHEN DIA.[ACTIONTYPE] = ''D'' AND DIA.[IMAGENO] > 0 THEN ''Length: '' + Convert(varchar, [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DIA.[DATE], DIA.[IMAGENO]), 108) ELSE '''' END AS [DURATION], [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DEL.[DATE], DEL.[TIME]) AS [DelegatedDateTime], CASE WHEN DIA.[ActionID] = @ActionID THEN 1 ELSE 0 END As [SELECTEDLINE], DEL.[AssignNo] As [AssignNo] FROM [dbo].[Diary] DIA CROSS APPLY ( SELECT TOP 1 DELX.[STATUS], DELX.[DELEGATESTATUS], DELX.[HANDLER], DELX.[TEAM], DELX.[FROMHANDLER], DELX.[DATE], DELX.[TIME], DELX.[ASSIGNNO] FROM [dbo].[DiaryDelegations] DELX WHERE DELX.[ActionID] = DIA.[ActionID] AND DELX.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') ORDER BY DELX.[AssignNo] DESC) DEL INNER JOIN [dbo].[CaseMaster] CM ON CM.[CSCODE] = DIA.[CASECODE] WHERE DIA.[CaseCode] = @casecode UPDATE DV SET DV.[Action] = [dbo].[ky_removespuriouswhitespace](DV.[Action], 80) FROM @DV DV INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DV.[ActionID] RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_GenerateBriefTemplate] Script Date: 10/01/2014 16:17:17 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GenerateBriefTemplate]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_GenerateBriefTemplate] (@BriefID int, @Title varchar(200), @Author varchar(100), @Description varchar(2000)) AS Declare @NewTemplateID Int DELETE BTS from [dbo].[BriefTemplates] BT INNER JOIN [dbo].[BriefTemplateSections] BTS ON BTS.[BriefTemplateID] = BT.[ID] where [BT].[Title] = @Title DELETE BT from [dbo].[BriefTemplates] BT where [BT].[Title] = @Title INSERT INTO [dbo].[BriefTemplates] (Title, WTCode, Author, CreationDate, PublishDate, Description) SELECT @Title As Title, CM.[CSWktCode] As WTCode, @Author As Author, getDate() As CreationDate, getDate() As PublishDate, @Description As Description from [dbo].[Brief] BR INNER JOIN [dbo].[Matters] MAT LEFT OUTER JOIN [dbo].[CaseMaster] CM ON CM.[CSCode] = MAT.[Code] ON MAT.[Code] = BR.[MatterCode] where BR.[id] = @BriefID SET @NewTemplateID = SCOPE_IDENTITY() INSERT INTO [dbo].[BriefTemplateSections] (BriefTemplateID, Sequence, CoverPage, Section) SELECT @NewTemplateID, BS.[Sequence], BS.[CoverPage], BS.[Section] From [dbo].[BriefSections] BS WHERE BS.[BriefID] = @BriefID ' END GO /****** Object: StoredProcedure [dbo].[ky_WDGenerateBriefTemplate] Script Date: 10/01/2014 16:18:05 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDGenerateBriefTemplate]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' Create Procedure [dbo].[ky_WDGenerateBriefTemplate] (@BriefID int, @Title varchar(200), @Author varchar(100), @Description varchar(2000), @WTCode varchar(4), @Type varchar(3)) AS /******************************************************************************* WinDEV version of the Generate Brief Template procedure. Generates a Brief Template using an existing Brief for input @BriefID: ID of the Brief on which this template is based @Title: Title for the Template. If missing, it will default to the description of the original Brief. @Author: Author of the Template. If missing, it will default to the Author of the original Brief. @Description: Template Description. If missing, it will default to the description of the original Brief. @WTCode: Work Type Code. If missing, it will use the Work Type Code of the Case/Matter associated with the original Brief @Type: Brief Type - a random 3-letter combination. Not currently used. *******************************************************************************/ BEGIN Declare @NewTemplateID Int SELECT @Title = CASE WHEN RTrim(IsNull(@Title, '''')) = '''' THEN BR.[Title] ELSE @Title END, @Author = CASE WHEN RTrim(IsNull(@Author, '''')) = '''' THEN BR.[Author] ELSE @Author END, @Description = CASE WHEN RTrim(IsNull(@Description, '''')) = '''' THEN Convert(varchar(2000), SUBSTRING(BR.[Description], 1, 2000)) ELSE @Description END, @Type = IsNull(RTrim(@Type), '''') FROM [dbo].[Brief] BR WHERE BR.[ID] = @BriefID DELETE BTS from [dbo].[BriefTemplates] BT INNER JOIN [dbo].[BriefTemplateSections] BTS ON BTS.[BriefTemplateID] = BT.[ID] where [BT].[Title] = @Title DELETE BT from [dbo].[BriefTemplates] BT where [BT].[Title] = @Title INSERT INTO [dbo].[BriefTemplates] ([Title], [WTCode], [Author], [CreationDate], [PublishDate], [Description], [Type]) SELECT @Title As [Title], CASE WHEN IsNULL(RTRIM(@WTCode), '''') = '''' THEN CM.[CSWktCode] ELSE RTRIM(@WTCode) END As [WTCode], @Author As [Author], getDate() As [CreationDate], getDate() As [PublishDate], @Description As [Description], @Type as [Type] from [dbo].[Brief] BR INNER JOIN [dbo].[Matters] MAT LEFT OUTER JOIN [dbo].[CaseMaster] CM ON CM.[CSCode] = MAT.[Code] ON MAT.[Code] = BR.[MatterCode] where BR.[id] = @BriefID SET @NewTemplateID = SCOPE_IDENTITY() INSERT INTO [dbo].[BriefTemplateSections] ([BriefTemplateID], [Sequence], [CoverPage], [Section]) SELECT @NewTemplateID, BS.[Sequence], BS.[CoverPage], BS.[Section] From [dbo].[BriefSections] BS WHERE BS.[BriefID] = @BriefID END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDTimeDayBookWithAxleErrors] Script Date: 10/01/2014 16:19:48 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTimeDayBookWithAxleErrors]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTimeDayBookWithAxleErrors * * Lists the current Day Book Entries plus information about Axle errors * **************************************************************************************/ Create Function [dbo].[ky_WDTimeDayBookWithAxleErrors] (@HSEClientGroup varchar(20), @Handler varchar(10)) RETURNS @TDBWA TABLE ([IsAxleError] varchar(1), [AxleError] varchar(255), [Matter] varchar(20), [FEEEARN] varchar(10), [DATE] datetime, [TIME] int, [RATE] decimal(10,2), [CHARGE] decimal(10,2), [TASK] varchar(10), [TIMEORCHARGE] varchar(1), [STARTTIME] int, [COMMENT] varchar(255), [NCCCODE] varchar(10), [TEAM] varchar(10), [TRACKREF] int, [DOCKET] varchar(8), [REC_IRR] varchar(1), [PERIOD] int, [YEAR] int, [RECORDID] int, [ActionId] int, [Leave] varchar(1), [StageCode] varchar(10), [Post] varchar(1)) AS BEGIN INSERT INTO @TDBWA ([IsAxleError], [AxleError], [Matter], [FEEEARN], [DATE], [TIME], [RATE], [CHARGE], [TASK], [TIMEORCHARGE], [STARTTIME], [COMMENT], [NCCCODE], [TEAM], [TRACKREF], [DOCKET], [REC_IRR], [PERIOD], [YEAR], [RECORDID], [ActionId], [Leave], [StageCode], [Post]) SELECT CASE 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], '''')) <> @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 AS [IsAxleError], CASE WHEN RTRIM(ISNULL(TDB.[matter], '''')) = '''' -- Admin entries can''t cause an Axle error THEN '''' WHEN MAT.[Code] IS NULL -- Missing matter. This is an error THEN ''Matter: '' + RTRIM(ISNULL(TDB.[MATTER], '''')) + '' not found.'' WHEN RTRIM(IsNull(CON.[ClientGroup], '''')) <> @HSEClientGroup -- If it''s not an HSE Client it can''t cause an Axle Error THEN '''' WHEN RTRIM(ISNULL(WTY.[CODE], '''')) = '''' -- Missing Worktype. This is an error THEN ''Matter Work Type '' + RTRIM(IsNull(MAT.[WType], '''')) + '' was not found for matter: '' + RTRIM(ISNULL(TDB.[MATTER], '''')) WHEN RTRIM(ISNULL(WTY.[ChildCare], '''')) <> ''Y'' -- If it''s not a ChildCare matter it can''t cause an Axle Error THEN '''' WHEN RTRIM(ISNULL(TAC.[CODE], '''')) = '''' -- Missing Task. This is an error THEN ''Task '' + RTRIM(IsNull(TAC.[CODE], '''')) + '' was not found for matter: '' + RTRIM(ISNULL(TDB.[MATTER], '''')) WHEN RTRIM(ISNULL(TAC.[AxleTask], '''')) <> ''Y'' -- This is not a Child Care task. This is an error THEN ''Task '' + RTRIM(IsNull(TAC.[CODE], '''')) + '' is not a Child Care task for matter: '' + RTRIM(ISNULL(TDB.[MATTER], '''')) WHEN LEN(RTRIM(ISNULL(TDB.[COMMENT], ''''))) < 10 -- Comment must be at least 10 characters. This is an error. THEN ''Comment should be at least 10 characters for matter: '' + RTRIM(ISNULL(TDB.[MATTER], '''')) WHEN TDB.[TIME] > 1440 -- Task is too long! Must be less than 1440 minutes (i.e. 24 hours) THEN ''Time should be less than 24 hours for matter: '' + RTRIM(ISNULL(TDB.[MATTER], '''')) ELSE ''N'' END AS [AxleError], RTRIM(IsNULL(TDB.[MATTER], '''')) AS [Matter], RTRIM(IsNULL(TDB.[FEEEARN], '''')) AS [Feeearn], TDB.[DATE], ISNULL(TDB.[TIME], 0) AS [TIME], Case When IsNull(MAT.[ChargeOutRateInd], ''N'') = ''Y'' THEN IsNull(MCR.[Rate], 0) When IsNull(CON.[ChargeOutRateInd], ''N'') = ''Y'' THEN IsNull(CCR.[Rate], 0) ELSE IsNull(FEP.[ChargeFct], 1.00) * FER.[Rate] END, Convert(numeric(7, 2), ( ( IsNull(TDB.[Time], 0) * Case When IsNull(MAT.[ChargeOutRateInd], ''N'') = ''Y'' THEN IsNull(MCR.[Rate], 0) When IsNull(CON.[ChargeOutRateInd], ''N'') = ''Y'' THEN IsNull(CCR.[Rate], 0) ELSE IsNull(FEP.[ChargeFct], 1.00) * FER.[Rate] END) / 60)), RTRIM(IsNULL(TDB.[TASK], '''')) AS [TASK], RTRIM(IsNULL(TDB.[TIMEORCHARGE], '''')) AS [TIMEORCHARGE], ISNULL(TDB.[STARTTIME], 0) AS [STARTTIME], RTRIM(IsNULL(TDB.[COMMENT], '''')) AS [COMMENT], RTRIM(IsNULL(TDB.[NCCCODE], '''')) AS [NCCCODE], RTRIM(IsNULL(TDB.[TEAM], '''')) AS [TEAM], ISNULL(TDB.[TRACKREF], 0) AS [TRACKREF], RTRIM(IsNULL(TDB.[DOCKET], '''')) AS [DOCKET], RTRIM(IsNULL(TDB.[REC_IRR], '''')) AS [REC_IRR], ISNULL(TDB.[PERIOD], 0) AS [PERIOD], ISNULL(TDB.[YEAR], 0) AS [YEAR], ISNULL(TDB.[RECORDID], 0) AS [RECORDID], ISNULL(TDB.[ActionId], 0) AS [ActionId], RTRIM(IsNULL(TDB.[Leave], '''')) AS [Leave], RTRIM(IsNULL(TDB.[StageCode], '''')) AS [StageCode], RTRIM(IsNULL(TDB.[Post], '''')) AS [Post] 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] OUTER APPLY (SELECT MCOR.[Rate] FROM [dbo].[MatterChargeOutRates] MCOR WHERE MCOR.[FeCode] = TDB.[FEEEARN] AND MCOR.[MatterCode] = TDB.[MATTER]) MCR OUTER APPLY (SELECT CCOR.[Rate] FROM [dbo].[ClientChargeOutRates] CCOR WHERE CCOR.[FeCode] = TDB.[FEEEARN] 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] = TDB.[FEEEARN]) 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] = CASE RTrim(IsNull(TDB.MATTER, '''')) WHEN '''' THEN TDB.[NCCCODE] ELSE TDB.[TASK] END) FEP WHERE TDB.[FEEEARN] = @Handler RETURN END' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchMatterContacts] Script Date: 10/01/2014 16:19:38 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchMatterContacts]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDSearchMatterContacts * * Returns a list of Matter Contacts matching a search criterion * on matter description or user defined fields * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDSearchMatterContacts] (@search varchar(50), @mattersearch varchar(50), @include int, @expand int, @clientcode varchar(10), @namecode varchar(10), @IncludePhone int) RETURNS @SR TABLE ([Name] varchar(200), [Address] varchar(200), [Phone] varchar(30), [Mobile] varchar(30), [Fax] varchar(30), [Email] varchar(100), [Case] varchar(20), [Clientcode] varchar(10), [Namecode] varchar(10)) AS BEGIN IF (@include = 0) RETURN SET @search = ''%'' + RTrim(IsNull(@search, '''')) + ''%'' SET @search = replace(@search, ''%%'', ''%'') SET @mattersearch = ''%'' + RTrim(IsNull(@mattersearch, '''')) + ''%'' SET @mattersearch = replace(@mattersearch, ''%%'', ''%'') SET @clientcode = RTrim(IsNull(@clientcode, '''')) IF (@clientcode = '''') SET @clientcode = ''%'' SET @namecode = RTrim(IsNull(@namecode, '''')) IF (@namecode = '''') SET @namecode = ''%'' IF (@expand = 0) BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT RES.[NAME], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], CASE WHEN COUNT(1) > 1 THEN convert(varchar(5), COUNT(1)) + '' Cases'' ELSE MAX(RES.[Cases]) END AS [Cases], RES.[ClientCode], '''' FROM (SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], CAN.[Code] AS [Cases], CAN.[ClientCode] AS [ClientCode] FROM (SELECT MAT.[CODE], CNN.[CODE] AS [CLIENTCODE], RTRIM(IsNull(CNN.[NAME], '''')) AS [NAME], RTRIM(IsNull(CNN.[ADDRESS], '''')) AS [ADDRESS], RTRIM(IsNull(CNN.[Tel], '''')) AS [PHONENO], RTRIM(IsNull(CLN.[CLMOBNO], '''')) AS [MOBILENO], RTRIM(IsNull(CNN.[Fax], '''')) AS [FAXNO], RTRIM(IsNull(CNN.[email], '''')) AS [EMAIL] FROM [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[Contacts] CNN ON CNN.[CODE] = MAT.[ClientCode] LEFT OUTER JOIN [dbo].[client] CLN ON CLN.[CLCODE] = MAT.[ClientCode] WHERE ( MAT.[description] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch) AND ( CLN.[CLNAME] like @search OR CLN.[CLADDR] like @search OR CLN.[CLTEL] like @search OR CLN.[CLMOBNO] like @search OR CLN.[CLFAX] like @search OR CLN.[CLEMAIL] like @search) AND ( CNN.[Name] like @search OR CNN.[Address] like @search OR CNN.[Tel] like @search OR CNN.[Fax] like @search OR CNN.[email] like @search)) CAN) RES GROUP BY RES.[Name], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], RES.[ClientCode] END ELSE BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], CAN.[Code] AS [Cases], CAN.[ClientCode] AS [ClientCode], '''' FROM (SELECT MAT.[CODE], CNN.[CODE] AS [CLIENTCODE], RTRIM(IsNull(CNN.[NAME], '''')) AS [NAME], RTRIM(IsNull(CNN.[ADDRESS], '''')) AS [ADDRESS], RTRIM(IsNull(CNN.[Tel], '''')) AS [PHONENO], RTRIM(IsNull(CLN.[CLMOBNO], '''')) AS [MOBILENO], RTRIM(IsNull(CNN.[Fax], '''')) AS [FAXNO], RTRIM(IsNull(CNN.[email], '''')) AS [EMAIL] FROM [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[Contacts] CNN ON CNN.[CODE] = MAT.[ClientCode] LEFT OUTER JOIN [dbo].[client] CLN ON CLN.[CLCODE] = MAT.[ClientCode] WHERE ( MAT.[description] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch) AND ( CLN.[CLNAME] like @search OR CLN.[CLADDR] like @search OR CLN.[CLTEL] like @search OR CLN.[CLMOBNO] like @search OR CLN.[CLFAX] like @search OR CLN.[CLEMAIL] like @search) AND ( CNN.[Name] like @search OR CNN.[Address] like @search OR CNN.[Tel] like @search OR CNN.[Fax] like @search OR CNN.[email] like @search)) CAN END DELETE @SR WHERE [ClientCode] NOT LIKE @clientcode OR [NameCode] NOT LIKE @namecode UPDATE @SR SET [Phone] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Phone]), [Mobile] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Mobile]), [Fax] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Fax]) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchContacts] Script Date: 10/01/2014 16:19:35 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchContacts]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDSearchContacts * * Returns a list of Contacts matching a search criterion * by name, addres, or phone number * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDSearchContacts] (@search varchar(50), @mattersearch varchar(50), @include int, @expand int, @clientcode varchar(10), @namecode varchar(10), @IncludePhone int) RETURNS @SR TABLE ([Name] varchar(200), [Address] varchar(200), [Phone] varchar(30), [Mobile] varchar(30), [Fax] varchar(30), [Email] varchar(100), [Case] varchar(20), [Clientcode] varchar(10), [Namecode] varchar(10)) AS BEGIN IF (@include = 0) RETURN SET @search = ''%'' + RTrim(IsNull(@search, '''')) + ''%'' SET @search = replace(@search, ''%%'', ''%'') SET @mattersearch = ''%'' + RTrim(IsNull(@mattersearch, '''')) + ''%'' SET @mattersearch = replace(@mattersearch, ''%%'', ''%'') SET @clientcode = RTrim(IsNull(@clientcode, '''')) IF (@clientcode = '''') SET @clientcode = ''%'' SET @namecode = RTrim(IsNull(@namecode, '''')) IF (@namecode = '''') SET @namecode = ''%'' IF (@expand = 0) BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT CONVERT(varchar(200), RTRIM(ISNULL(CON.[NAME], ''''))) AS [NAME], CASE WHEN RTrim(IsNull(CON.[ADDRESS], '''')) = '''' THEN [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CON.[OtherAddress], 1, 200)) ELSE [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CON.[Address], 1, 200)) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CON.[Tel], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CON.[Tel], ''''))) WHEN RTrim(IsNull(CLI.[CLMOBNO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CON.[Tel], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CON.[Fax], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CLI.[CLMOBNO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CON.[Fax], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CON.[email], ''''))) AS [EMAIL], CASE WHEN CAS.[TOTAL] = 0 THEN '''' WHEN CAS.[TOTAL] = 1 THEN SIC.[CASECODE] ELSE convert(varchar(5), CAS.[TOTAL]) + '' Cases'' END AS [Cases], CON.[Code] AS [ClientCode], '''' AS [NameCode] FROM [dbo].[Contacts] CON INNER JOIN [dbo].[client] CLI ON CLI.[clcode] = CON.[code] CROSS APPLY (SELECT COUNT(1) AS TOTAL FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = CON.[CODE] AND ( MAT.[description] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch)) CAS CROSS APPLY (SELECT TOP 1 MAT.[CODE] AS [CASECODE] FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = CON.[CODE] AND ( MAT.[description] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch)) SIC WHERE ( CON.[name] like @search OR CON.[address] like @search OR ( @IncludePhone = 1 AND CON.[tel] like @search) OR ( @IncludePhone = 1 AND CON.[fax] like @search) OR ( @IncludePhone = 1 AND CLI.[CLMOBNO] like @search) OR CON.[otheraddress] like @search) END ELSE BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT CONVERT(varchar(200), RTRIM(ISNULL(CON.[NAME], ''''))) AS [NAME], CASE WHEN RTrim(IsNull(CON.[ADDRESS], '''')) = '''' THEN [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CON.[OtherAddress], 1, 200)) ELSE [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CON.[Address], 1, 200)) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CON.[Tel], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CON.[Tel], ''''))) WHEN RTrim(IsNull(CLI.[CLMOBNO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CLI.[CLMOBNO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CON.[Fax], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CLI.[CLMOBNO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CON.[FAX], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CON.[email], ''''))) AS [EMAIL], SIC.[CaseCode] AS [Cases], CON.[Code] AS [ClientCode], '''' AS [NameCode] FROM [dbo].[Contacts] CON INNER JOIN [dbo].[client] CLI ON CLI.[clcode] = CON.[code] CROSS APPLY (SELECT MAT.[CODE] AS [CASECODE] FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = CON.[CODE] AND ( MAT.[description] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch)) SIC WHERE ( CON.[name] like @search OR CON.[address] like @search OR ( @IncludePhone = 1 AND CON.[tel] like @search) OR ( @IncludePhone = 1 AND CON.[fax] like @search) OR CON.[otheraddress] like @search) END DELETE @SR WHERE [ClientCode] NOT LIKE @clientcode OR [NameCode] NOT LIKE @namecode UPDATE @SR SET [Phone] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Phone]), [Mobile] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Mobile]), [Fax] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Fax]) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[UserMatterAndGroups] Script Date: 10/01/2014 16:19:50 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UserMatterAndGroups]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * User''s Access Groups and Matters * **************************************************************************************/ CREATE FUNCTION [dbo].[UserMatterAndGroups] (@ID int) RETURNS @QS TABLE ([UserLinkID] int, [AccessGroupID] int, [ClientCode] varchar(20), [MatterCode] varchar(20), [ClientName] varchar(200), [Description] varchar(300), [User1] varchar(30), [User2] varchar(30), [User3] varchar(30), [OldRef] varchar(30), [YourRef] varchar(30)) AS BEGIN INSERT INTO @QS ([UserLinkID], [AccessGroupID], [ClientCode], [ClientName], [MatterCode], [Description], [OldRef], [User1], [User2], [User3], [YourRef]) SELECT UL.[id], AG.[id], '''', '''', '''', AG.[GroupName], '''', '''', '''', '''', '''' FROM [dbo].[KHCUserLinks] UL INNER JOIN [dbo].[KHCAccessGroups] AG ON AG.[id] = UL.[KHCAccessGroupId] WHERE UL.[KHCUserId] = @ID INSERT INTO @QS ([UserLinkID], [AccessGroupID], [ClientCode], [ClientName], [MatterCode], [Description], [OldRef], [User1], [User2], [User3], [YourRef]) SELECT UL.[id], 0, RTRIM(ISNULL(CLT.[CLCODE], '''')) AS [ClientCode], RTRIM(ISNULL(CLT.[CLNAME], '''')) AS [ClientName], '''' AS [MatterCode], RTRIM(ISNULL(CLT.[CLNAME], '''')) AS [Description], '''' As [OldRef], '''' As [User1], '''' As [User2], '''' As [User3], '''' As [YourRef] FROM [dbo].[KHCUserLinks] UL INNER JOIN [dbo].[client] CLT ON CLT.[CLCODE] = UL.[KHCClientCode] WHERE UL.[KHCUserId] = @ID AND RTRIM(ISNULL(UL.[KHCMatterCode], '''')) = '''' INSERT INTO @QS ([UserLinkID], [AccessGroupID], [ClientCode], [ClientName], [MatterCode], [Description], [OldRef], [User1], [User2], [User3], [YourRef]) SELECT UL.[id], 0, RTRIM(ISNULL(MAT.[ClientCode], '''')) AS [ClientCode], RTRIM(ISNULL(CLT.[CLNAME], '''')) AS [ClientName], RTRIM(ISNULL(MAT.[Code], '''')) AS [MatterCode], RTRIM(ISNULL(MAT.[Description], '''')) As [MatterDescription], 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] FROM [dbo].[KHCUserLinks] UL INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[client] CLT ON CLT.[CLCODE] = mat.[ClientCode] ON MAT.[Code] = UL.[KHCMatterCode] WHERE UL.[KHCUserId] = @ID RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_CreateDiaryAttachment] Script Date: 10/01/2014 16:17:08 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CreateDiaryAttachment]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[ky_CreateDiaryAttachment] (@pDiaryID Int=0, @pCaseCode char(17), @pName char(10), @pDocument char(100), @pFilePath char(255), @pType char(4), @pDocClass char(3), @pDateEntered varchar(23), @pEnterBy char(8), @pLastAccessed varchar(23), @pLastAccessedby char(8), @pSystem char(1), @pDictationFile char(255), @pTrackRef int=0 output) AS SET NOCOUNT ON DECLARE @strcasecode nVarChar(17) DECLARE @inTrackRef Int DECLARE @strFileName varchar(255) DECLARE @strMatterNo char(8) DECLARE @strClientCode char(8) DECLARE @strDefaultFolder varchar(255) DECLARE @strSource varchar(20) DECLARE @CaseCodeLen int select @CaseCodeLen = sc.[length] from sysobjects so inner join syscolumns sc on sc.[id] = so.[id] and sc.[name] = ''casecode'' where so.[name] = ''diary'' -- Start Transaction ----------------------------------------------------------------------------------------------------------------------------------------- BEGIN TRAN Key_Tran_01 IF @@error <> 0 GOTO Tran_Fail IF LEN(@pCaseCode) < 2 GOTO Tran_Fail IF LEN(@pCaseCode) > @CaseCodeLen GOTO Tran_Fail -- Get CaseCode From Matters Table ----------------------------------------------------------------------------------------------------------------------------------------- SELECT @strCaseCode = convert(nvarchar(17), (SELECT Top 1 [Code] FROM [dbo].[Matters] WHERE [code] = @pCaseCode )) IF @@error <> 0 GOTO Tran_Fail IF LEN( @strCaseCode ) < 2 GOTO Tran_Fail SELECT @strClientCode = (SELECT Top 1 [ClientCode] FROM [dbo].[Matters] WHERE [code] = @pCaseCode ) IF @@error <> 0 GOTO Tran_Fail IF LEN( @strCaseCode ) < 2 GOTO Tran_Fail SELECT @strMatterNo = (SELECT Top 1 [Matter] FROM [dbo].[Matters] WHERE [code] = @pCaseCode ) IF @@error <> 0 GOTO Tran_Fail IF LEN( @strMatterNo ) < 2 GOTO Tran_Fail -- Get Next TrackReference ----------------------------------------------------------------------------------------------------------------------------------------- SELECT @inTrackRef = ( SELECT Top 1 TrackReference FROM DiaryAttachments ORDER BY TrackReference DESC) IF @@error <> 0 GOTO Tran_Fail IF @inTrackRef IS NULL BEGIN SET @inTrackRef = 0 END SET @inTrackRef = @inTrackRef + 1 -- Write DiaryAttachment Record ----------------------------------------------------------------------------------------------------------------------------------------- Select @strDefaultFolder = (SELECT SCWPFOLDER FROM SystemConfig) Select @strFileName = (SELECT DCOUMENTFOLDER FROM client WHERE CLCODE = @strClientCode) If rtrim(@strFileName) = '''' BEGIN Update client set DCOUMENTFOLDER = rtrim(@strDefaultFolder) + ''\'' + @strClientCode where CLCODE = @strClientCode END SET @pDocument = REPLACE(@pDocument, char(13) + char(10), ''_'') Set @strFileName = rtrim((SELECT DCOUMENTFOLDER FROM client WHERE CLCODE = @strClientCode)) + ''\'' + rtrim(@strMatterNo) + ''\'' + rtrim(@pDocument) + ''_'' + rtrim(CAST(@inTrackRef as char)) + ''.'' + rtrim(@pType) Select @strSource = (Select ProcessType from Diary where actionid = @pDiaryId) If rtrim(@strSource) = ''I'' BEGIN SET @strSource = ''Received E-mail'' END else BEGIN SET @strSource = ''Sent E-mail'' END INSERT INTO DiaryAttachments ([DiaryId], [TrackReference], [CaseCode], [Name], [Document], [Filepath], [Type], [DocClass], [DateEntered], [EnteredBy], [LastAccessDate], [LastAccessBy], [System], [Dictationfile], [Source]) Values(@pDiaryID, @inTrackRef, @pCaseCode, @pName, @pDocument, @strFileName, left(@pType,3), @pDocClass, convert(datetime, @pDateEntered), @pEnterBy, convert(datetime, @pLastAccessed), @pLastAccessedby, @pSystem, @pDictationFile, @strSource) IF @@error <> 0 GOTO Tran_Fail -- Commit Transaction ------------------------------------------------------------------------------------------------------------------ COMMIT TRAN Key_Tran_01 IF @@error <> 0 GOTO Tran_Fail Set @pTrackRef = @inTrackRef -- End Of Processing -------------------------------------------------------------------------------------------------------------------- ExitPoint: Return -- Error Processing ------------------------------------------------------------------------------------------------------------------------------------- Tran_Fail: rollback tran Key_Tran_01 Set @pTrackRef = -1 goto ExitPoint ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDAllContacts] Script Date: 10/01/2014 16:19:11 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDAllContacts]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' create function [dbo].[ky_WDAllContacts]() RETURNS @SR TABLE ([Name] varchar(200), [Address] varchar(200), [Phone] varchar(30), [Mobile] varchar(30), [Fax] varchar(30), [Email] varchar(100)) AS BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email]) SELECT CONVERT(varchar(200), RTRIM(ISNULL(CON.[NAME], ''''))) AS [NAME], CASE WHEN RTrim(IsNull(CON.[ADDRESS], '''')) = '''' THEN SUBSTRING(CON.[OtherAddress], 1, 200) ELSE SUBSTRING(CON.[Address], 1, 200) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CON.[Tel], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CON.[Tel], ''''))) WHEN RTrim(IsNull(CLI.[CLMOBNO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CLI.[CLMOBNO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CON.[Fax], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CLI.[CLMOBNO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CON.[FAX], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CON.[email], ''''))) AS [EMAIL] FROM [dbo].[Contacts] CON INNER JOIN [dbo].[client] CLI ON CLI.[clcode] = CON.[code] UPDATE @SR SET [Phone] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Phone]), [Mobile] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Mobile]), [Fax] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Fax]) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDAllMatterContacts] Script Date: 10/01/2014 16:19:11 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDAllMatterContacts]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' create function [dbo].[ky_WDAllMatterContacts]() RETURNS @SR TABLE ([Name] varchar(200), [Address] varchar(200), [Phone] varchar(30), [Mobile] varchar(30), [Fax] varchar(30), [Email] varchar(100)) AS BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email]) SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], SUBSTRING(CAN.[Address], 1, 200) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL] FROM (SELECT MAT.[CODE], CNN.[CODE] AS [CLIENTCODE], RTRIM(IsNull(CNN.[NAME], '''')) AS [NAME], RTRIM(IsNull(CNN.[ADDRESS], '''')) AS [ADDRESS], RTRIM(IsNull(CNN.[Tel], '''')) AS [PHONENO], RTRIM(IsNull(CLN.[CLMOBNO], '''')) AS [MOBILENO], RTRIM(IsNull(CNN.[Fax], '''')) AS [FAXNO], RTRIM(IsNull(CNN.[email], '''')) AS [EMAIL] FROM [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[Contacts] CNN ON CNN.[CODE] = MAT.[ClientCode] LEFT OUTER JOIN [dbo].[client] CLN ON CLN.[CLCODE] = MAT.[ClientCode]) CAN UPDATE @SR SET [Phone] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Phone]), [Mobile] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Mobile]), [Fax] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Fax]) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[MatterAndGroupQuickSearch] Script Date: 10/01/2014 16:19:49 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MatterAndGroupQuickSearch]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * Quick search on Access Groups and Matters based on a single search criterion. * Searches Groupname for Access Groups and Matter Code, * client name, matter description, reference and user fields for matters * **************************************************************************************/ CREATE FUNCTION [dbo].[MatterAndGroupQuickSearch] (@Search varchar(50)) RETURNS @QS TABLE ([AccessGroupID] int, [ClientCode] varchar(20), [MatterCode] varchar(20), [ClientName] varchar(200), [Description] varchar(300), [User1] varchar(30), [User2] varchar(30), [User3] varchar(30), [OldRef] varchar(30), [YourRef] varchar(30)) AS BEGIN SET @Search = RTRIM(ISNULL(@Search, '''')) IF (@Search = '''') BEGIN INSERT INTO @QS ([AccessGroupID], [ClientCode], [ClientName], [MatterCode], [Description], [OldRef], [User1], [User2], [User3], [YourRef]) SELECT AG.[id], '''', '''', '''', AG.[GroupName], '''', '''', '''', '''', '''' FROM [dbo].[KHCAccessGroups] AG INSERT INTO @QS ([AccessGroupID], [ClientCode], [ClientName], [MatterCode], [Description], [OldRef], [User1], [User2], [User3], [YourRef]) SELECT 0, RTRIM(ISNULL(CLT.[CLCode], '''')) AS [ClientCode], RTRIM(ISNULL(CLT.[CLNAME], '''')) AS [ClientName], '''' AS [MatterCode], RTRIM(ISNULL(CLT.[CLNAME], '''')) AS [Description], '''' As [OldRef], '''' As [User1], '''' As [User2], '''' As [User3], '''' As [YourRef] FROM [dbo].[client] CLT INSERT INTO @QS ([AccessGroupID], [ClientCode], [ClientName], [MatterCode], [Description], [OldRef], [User1], [User2], [User3], [YourRef]) SELECT 0, RTRIM(ISNULL(MAT.[ClientCode], '''')) AS [ClientCode], RTRIM(ISNULL(CLT.[CLNAME], '''')) AS [ClientName], RTRIM(ISNULL(MAT.[Code], '''')) AS [MatterCode], RTRIM(ISNULL(MAT.[Description], '''')) As [MatterDescription], 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] FROM [dbo].[matters] MAT INNER JOIN [dbo].[client] CLT ON CLT.[CLCODE] = mat.[ClientCode] END ELSE BEGIN SET @Search = ''%'' + @Search + ''%'' SET @Search = REPLACE(@Search, ''%%'', ''%'') SET @Search = REPLACE(@Search, ''%%'', ''%'') DECLARE @FOUND TABLE ([MatterCode] varchar(20)) INSERT INTO @FOUND ([MatterCode]) SELECT MAT.[Code] FROM [dbo].[matters] MAT WHERE MAT.[Code] LIKE @Search INSERT INTO @FOUND ([MatterCode]) SELECT MAT.[Code] FROM [dbo].[matters] MAT LEFT OUTER JOIN @FOUND F ON F.[MatterCode] = MAT.[Code] WHERE MAT.[Description] LIKE @Search AND F.[MatterCode] is null INSERT INTO @FOUND ([MatterCode]) SELECT MAT.[Code] FROM [dbo].[client] CLT INNER JOIN [dbo].[matters] MAT LEFT OUTER JOIN @FOUND F ON F.[MatterCode] = MAT.[Code] ON MAT.[ClientCode] = CLT.[CLCODE] WHERE CLT.[CLNAME] LIKE @Search AND F.[MatterCode] is null INSERT INTO @FOUND ([MatterCode]) SELECT MAT.[Code] FROM [dbo].[matters] MAT LEFT OUTER JOIN @FOUND F ON F.[MatterCode] = MAT.[Code] WHERE MAT.[User1] LIKE @Search AND F.[MatterCode] is null INSERT INTO @FOUND ([MatterCode]) SELECT MAT.[Code] FROM [dbo].[matters] MAT LEFT OUTER JOIN @FOUND F ON F.[MatterCode] = MAT.[Code] WHERE MAT.[User2] LIKE @Search AND F.[MatterCode] is null INSERT INTO @FOUND ([MatterCode]) SELECT MAT.[Code] FROM [dbo].[matters] MAT LEFT OUTER JOIN @FOUND F ON F.[MatterCode] = MAT.[Code] WHERE MAT.[User3] LIKE @Search AND F.[MatterCode] is null INSERT INTO @FOUND ([MatterCode]) SELECT MAT.[Code] FROM [dbo].[matters] MAT LEFT OUTER JOIN @FOUND F ON F.[MatterCode] = MAT.[Code] WHERE MAT.[OldRef] LIKE @Search AND F.[MatterCode] is null INSERT INTO @FOUND ([MatterCode]) SELECT MAT.[Code] FROM [dbo].[matters] MAT LEFT OUTER JOIN @FOUND F ON F.[MatterCode] = MAT.[Code] WHERE MAT.[YourRef] LIKE @Search AND F.[MatterCode] is null INSERT INTO @QS ([AccessGroupID], [ClientCode], [ClientName], [MatterCode], [Description], [OldRef], [User1], [User2], [User3], [YourRef]) SELECT AG.[id], '''', '''', '''', AG.[GroupName], '''', '''', '''', '''', '''' FROM [dbo].[KHCAccessGroups] AG WHERE AG.[groupname] LIKE @Search INSERT INTO @QS ([AccessGroupID], [ClientCode], [ClientName], [MatterCode], [Description], [OldRef], [User1], [User2], [User3], [YourRef]) SELECT 0, RTRIM(ISNULL(CLT.[CLCode], '''')) AS [ClientCode], RTRIM(ISNULL(CLT.[CLNAME], '''')) AS [ClientName], '''' AS [MatterCode], RTRIM(ISNULL(CLT.[CLNAME], '''')) AS [Description], '''' As [OldRef], '''' As [User1], '''' As [User2], '''' As [User3], '''' As [YourRef] FROM [dbo].[client] CLT WHERE CLT.[CLCODE] LIKE @Search OR CLT.[CLNAME] LIKE @Search INSERT INTO @QS ([AccessGroupID], [ClientCode], [ClientName], [MatterCode], [Description], [OldRef], [User1], [User2], [User3], [YourRef]) SELECT 0, RTRIM(ISNULL(MAT.[ClientCode], '''')) AS [ClientCode], RTRIM(ISNULL(CLT.[CLNAME], '''')) AS [ClientName], RTRIM(ISNULL(MAT.[Code], '''')) AS [MatterCode], RTRIM(ISNULL(MAT.[Description], '''')) As [MatterDescription], 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] FROM @FOUND F INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[client] CLT ON CLT.[CLCODE] = mat.[ClientCode] ON MAT.[Code] = F.[MatterCode] END RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[KHCQuickSearch] Script Date: 10/01/2014 16:18:57 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[KHCQuickSearch]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * Quick Search * -- For the current user, and taking into account whether they''re a supervisor or not, * apply the selection criteria, and return a maximum result set. * * @ID - User ID * @Supervisor - 1 = Supervisor (access to all matters), 0 = Normal user * @SEARCH - Search string * @UDFList - The user defined fields that must be included in the Search. * The format is as follows: * Start with three asterisks ***, * For each UDF field to search, add ** * Separate each UDF field with three asterisks *** * End with three asterisks. * Example: * ***UDF:**Additional Comments***UDF:**BuildUpdateReason*** * in this example the "Additional Comments" and "BuildUpdateReason" * will be included in the search. * @MaxResult Maximum number of matters to return * **************************************************************************************/ CREATE FUNCTION [dbo].[KHCQuickSearch] (@ID int, @Supervisor int, @SEARCH VARCHAR(100), @UDFList varchar(MAX), @MaxResult int) RETURNS @R TABLE ([MatterCode] varchar(20)) AS BEGIN DECLARE @QS1 TABLE ([MatterCode] varchar(20)) DECLARE @QS TABLE ([MatterCode] varchar(20)) IF (@Supervisor IS NULL) BEGIN SET @Supervisor = 0 END IF (@Supervisor <> 1) BEGIN SET @Supervisor = 0 END IF (@Supervisor = 0) BEGIN INSERT INTO @QS1 ([MatterCode]) SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [MatterCode] FROM [dbo].[KHCUserLinks] UL INNER JOIN [dbo].[KHCAccessGroups] AG INNER JOIN [dbo].[KHCAccessGroupCases] AGC INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = AGC.[KHCMatterCode] ON AGC.[KHCAccessGroupId] = AG.[id] ON AG.[id] = UL.[KHCAccessGroupId] WHERE UL.[KHCUserId] = @ID INSERT INTO @QS1 ([MatterCode]) SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [MatterCode] FROM [dbo].[KHCUserLinks] UL INNER JOIN [dbo].[KHCAccessGroups] AG INNER JOIN [dbo].[KHCAccessGroupCases] AGC INNER JOIN [dbo].[matters] MAT ON MAT.[ClientCode] = AGC.[KHCClientCode] ON AGC.[KHCAccessGroupId] = AG.[id] AND RTRIM(ISNULL(AGC.[KHCMatterCode], '''')) = '''' ON AG.[id] = UL.[KHCAccessGroupId] WHERE UL.[KHCUserId] = @ID INSERT INTO @QS1 ([MatterCode]) SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [MatterCode] FROM [dbo].[KHCUserLinks] UL INNER JOIN [dbo].[matters] MAT ON MAT.[ClientCode] = UL.[KHCClientCode] WHERE UL.[KHCUserId] = @ID AND UL.[KHCAccessGroupId] IS NULL AND UL.[KHCMatterCode] IS NULL INSERT INTO @QS1 ([MatterCode]) SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [MatterCode] FROM [dbo].[KHCUserLinks] UL INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = UL.[KHCMatterCode] WHERE UL.[KHCUserId] = @ID AND UL.[KHCAccessGroupId] IS NULL INSERT INTO @QS ([MatterCode]) SELECT DISTINCT QS.[MatterCode] FROM @QS1 QS END ELSE BEGIN INSERT INTO @QS ([MatterCode]) SELECT MAT.[Code] FROM [dbo].[matters] MAT END DECLARE @FOUND TABLE ([MatterCode] varchar(20)) SET @SEARCH = ISNULL(@SEARCH, '''') SET @SEARCH = ''%'' + @SEARCH + ''%'' SET @SEARCH = REPLACE(@SEARCH, ''%%'', ''%'') SET @SEARCH = REPLACE(@SEARCH, ''%%'', ''%'') SET @UDFList = RTRIM(ISNULL(@UDFList, '''')) IF (@UDFList <> '''') BEGIN INSERT INTO @FOUND ([MatterCode]) SELECT DISTINCT UDF.[CASECODE] FROM [dbo].[CaseUDFAnswers] UDF INNER JOIN @QS MC ON MC.[MatterCode] = UDF.[CASECODE] WHERE CONVERT(varchar(300), UDF.[text1]) LIKE @SEARCH AND @UDFList LIKE ''%***'' + RTRIM(ISNULL(UDF.[UDFFILE], '''')) + ''**'' + RTRIM(ISNULL(UDF.UDFNAME, '''')) + ''***%'' AND RTRIM(ISNULL(UDF.[CASECODE], '''')) <> '''' END INSERT INTO @FOUND ([MatterCode]) SELECT MAT.[Code] FROM [dbo].[client] CLT INNER JOIN [dbo].[matters] MAT ON MAT.[ClientCode] = CLT.[CLCODE] INNER JOIN @QS MC ON MC.[MatterCode] = MAT.[Code] WHERE CLT.[CLNAME] LIKE @SEARCH INSERT INTO @FOUND ([MatterCode]) SELECT DISTINCT MAT.[Code] FROM [dbo].[matters] MAT INNER JOIN @QS MC ON MC.[MatterCode] = MAT.[Code] WHERE MAT.[Description] LIKE @SEARCH OR MAT.[User1] LIKE @SEARCH OR MAT.[User2] LIKE @SEARCH OR MAT.[User3] LIKE @SEARCH OR MAT.[YourRef] LIKE @SEARCH OR MAT.[OldRef] LIKE @SEARCH OR MAT.[Code] LIKE @SEARCH INSERT INTO @FOUND ([MatterCode]) SELECT DISTINCT MAT.[Code] FROM [dbo].[Handlers] HAN INNER JOIN [dbo].[matters] MAT INNER JOIN @QS MC ON MC.[MatterCode] = MAT.[Code] ON MAT.[FECode] = HAN.[CODE] WHERE HAN.[NAME] LIKE @SEARCH DELETE QS FROM @FOUND QS LEFT OUTER JOIN [dbo].[matters] MAT ON MAT.[Code] = QS.[MatterCode] WHERE MAT.[Code] IS NULL OR ISNULL(MAT.[Publish], '''') <> ''P'' IF (@MaxResult > 0) BEGIN INSERT INTO @R ([MatterCode]) SELECT DISTINCT TOP (@MaxResult) FND.[MatterCode] FROM @FOUND FND END ELSE BEGIN INSERT INTO @R ([MatterCode]) SELECT DISTINCT FND.[MatterCode] FROM @FOUND FND END RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[MatterQuickSearch] Script Date: 10/01/2014 16:19:49 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[MatterQuickSearch]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' CREATE FUNCTION [dbo].[MatterQuickSearch] (@Search varchar(50)) RETURNS @QS TABLE ([MatterCode] varchar(20), [ClientCode] varchar(20), [ClientName] varchar(200), [MatterDescription] varchar(200), [User1] varchar(30), [User2] varchar(30), [User3] varchar(30), [OldRef] varchar(30), [YourRef] varchar(30)) AS BEGIN SET @Search = RTRIM(ISNULL(@Search, '''')) IF (@Search = '''') BEGIN INSERT INTO @QS ([ClientName], [ClientCode], [MatterCode], [MatterDescription], [OldRef], [User1], [User2], [User3], [YourRef]) SELECT RTRIM(ISNULL(CLT.[CLNAME], '''')) AS [ClientName], RTRIM(ISNULL(MAT.[ClientCode], '''')) AS [ClientCode], RTRIM(ISNULL(MAT.[Code], '''')) AS [MatterCode], RTRIM(ISNULL(MAT.[Description], '''')) As [MatterDescription], 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] FROM [dbo].[matters] MAT INNER JOIN [dbo].[client] CLT ON CLT.[CLCODE] = mat.[ClientCode] END ELSE BEGIN SET @Search = ''%'' + @Search + ''%'' SET @Search = REPLACE(@Search, ''%%'', ''%'') SET @Search = REPLACE(@Search, ''%%'', ''%'') DECLARE @FOUND TABLE ([MatterCode] varchar(20)) INSERT INTO @FOUND ([MatterCode]) SELECT MAT.[Code] FROM [dbo].[matters] MAT WHERE MAT.[Code] LIKE @Search INSERT INTO @FOUND ([MatterCode]) SELECT MAT.[Code] FROM [dbo].[matters] MAT LEFT OUTER JOIN @FOUND F ON F.[MatterCode] = MAT.[Code] WHERE MAT.[Description] LIKE @Search AND F.[MatterCode] is null INSERT INTO @FOUND ([MatterCode]) SELECT MAT.[Code] FROM [dbo].[client] CLT INNER JOIN [dbo].[matters] MAT LEFT OUTER JOIN @FOUND F ON F.[MatterCode] = MAT.[Code] ON MAT.[ClientCode] = CLT.[CLCODE] WHERE CLT.[CLNAME] LIKE @Search AND F.[MatterCode] is null INSERT INTO @FOUND ([MatterCode]) SELECT MAT.[Code] FROM [dbo].[matters] MAT LEFT OUTER JOIN @FOUND F ON F.[MatterCode] = MAT.[Code] WHERE MAT.[User1] LIKE @Search AND F.[MatterCode] is null INSERT INTO @FOUND ([MatterCode]) SELECT MAT.[Code] FROM [dbo].[matters] MAT LEFT OUTER JOIN @FOUND F ON F.[MatterCode] = MAT.[Code] WHERE MAT.[User2] LIKE @Search AND F.[MatterCode] is null INSERT INTO @FOUND ([MatterCode]) SELECT MAT.[Code] FROM [dbo].[matters] MAT LEFT OUTER JOIN @FOUND F ON F.[MatterCode] = MAT.[Code] WHERE MAT.[User3] LIKE @Search AND F.[MatterCode] is null INSERT INTO @FOUND ([MatterCode]) SELECT MAT.[Code] FROM [dbo].[matters] MAT LEFT OUTER JOIN @FOUND F ON F.[MatterCode] = MAT.[Code] WHERE MAT.[OldRef] LIKE @Search AND F.[MatterCode] is null INSERT INTO @FOUND ([MatterCode]) SELECT MAT.[Code] FROM [dbo].[matters] MAT LEFT OUTER JOIN @FOUND F ON F.[MatterCode] = MAT.[Code] WHERE MAT.[YourRef] LIKE @Search AND F.[MatterCode] is null INSERT INTO @QS ([ClientName], [ClientCode], [MatterCode], [MatterDescription], [OldRef], [User1], [User2], [User3], [YourRef]) SELECT RTRIM(ISNULL(CLT.[CLNAME], '''')) AS [ClientName], RTRIM(ISNULL(CLT.[CLCode], '''')) AS [ClientCode], '''' AS [MatterCode], '''' As [MatterDescription], '''' As [OldRef], '''' As [User1], '''' As [User2], '''' As [User3], '''' As [YourRef] FROM [dbo].[client] CLT WHERE CLT.[CLCODE] LIKE @Search INSERT INTO @QS ([ClientName], [ClientCode], [MatterCode], [MatterDescription], [OldRef], [User1], [User2], [User3], [YourRef]) SELECT RTRIM(ISNULL(CLT.[CLNAME], '''')) AS [ClientName], RTRIM(ISNULL(MAT.[ClientCode], '''')) AS [ClientCode], RTRIM(ISNULL(MAT.[Code], '''')) AS [MatterCode], RTRIM(ISNULL(MAT.[Description], '''')) As [MatterDescription], 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] FROM @FOUND F INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[client] CLT ON CLT.[CLCODE] = mat.[ClientCode] ON MAT.[Code] = F.[MatterCode] END RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[UserClientAndGroupsExpanded] Script Date: 10/01/2014 16:19:50 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UserClientAndGroupsExpanded]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * User''s Access Groups and Clients (Expanded) * **************************************************************************************/ CREATE FUNCTION [dbo].[UserClientAndGroupsExpanded] (@ID int, @Supervisor int) RETURNS @QS TABLE ([ClientCode] varchar(20)) AS BEGIN DECLARE @QS1 TABLE ([ClientCode] varchar(20)) IF (@Supervisor IS NULL) BEGIN SET @Supervisor = 0 END IF (@Supervisor <> 1) BEGIN SET @Supervisor = 0 END IF (@Supervisor = 0) BEGIN INSERT INTO @QS1 ([ClientCode]) SELECT RTRIM(ISNULL(CLT.[CLCode], '''')) AS [ClientCode] FROM [dbo].[KHCUserLinks] UL INNER JOIN [dbo].[KHCAccessGroups] AG INNER JOIN [dbo].[KHCAccessGroupCases] AGC INNER JOIN [dbo].[client] CLT ON CLT.[CLCode] = AGC.[KHCClientCode] ON AGC.[KHCAccessGroupId] = AG.[id] AND RTRIM(ISNULL(AGC.[KHCMatterCode], '''')) = '''' ON AG.[id] = UL.[KHCAccessGroupId] WHERE UL.[KHCUserId] = @ID INSERT INTO @QS1 ([ClientCode]) SELECT RTRIM(ISNULL(CLT.[CLCode], '''')) AS [ClientCode] FROM [dbo].[KHCUserLinks] UL INNER JOIN [dbo].[client] CLT ON CLT.[CLCode] = UL.[KHCClientCode] WHERE UL.[KHCUserId] = @ID AND UL.[KHCMatterCode] IS NULL AND UL.[KHCAccessGroupId] IS NULL INSERT INTO @QS ([ClientCode]) SELECT DISTINCT QS.[ClientCode] FROM @QS1 QS END ELSE BEGIN INSERT INTO @QS ([ClientCode]) SELECT RTRIM(ISNULL(CLT.[CLCode], '''')) FROM [dbo].[client] CLT END RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[KHCReportAccess] Script Date: 10/01/2014 16:18:57 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[KHCReportAccess]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * KHCReportAccess * * Determines what reports a user has access to. * **************************************************************************************/ CREATE FUNCTION [dbo].[KHCReportAccess] (@USERID int, @Supervisor int) RETURNS @RESULT TABLE ([KHCAccessGroupId] int null, [KHCClientCode] varchar(20) null, [KHCMatterCode] varchar(20) null) AS BEGIN IF (@Supervisor = 0) BEGIN INSERT INTO @RESULT ([KHCAccessGroupId]) SELECT DISTINCT KUL.[KHCAccessGroupId] FROM [dbo].[KHCUserLinks] KUL WHERE KUL.[KHCAccessGroupId] IS NOT NULL AND KUL.[KHCUserId] = @userid INSERT INTO @RESULT ([KHCClientCode]) SELECT KUL.[KHCClientCode] AS [KHCClientCode] FROM [dbo].[KHCUserLinks] KUL WHERE KUL.[KHCUserId] = @userid AND KUL.[KHCAccessGroupId] IS NULL AND KUL.[KHCMatterCode] IS NULL UNION SELECT KGC.[KHCClientCode] AS [KHCClientCode] FROM [dbo].[KHCUserLinks] KUL INNER JOIN [dbo].[KHCAccessGroupCases] KGC ON KGC.[KHCAccessGroupId] = KUL.[KHCAccessGroupId] WHERE KUL.[KHCUserId] = @userid AND KUL.[KHCAccessGroupId] IS NOT NULL AND ISNULL(KGC.[KHCMatterCode], '''') = '''' INSERT INTO @RESULT ([KHCMatterCode]) SELECT KUL.[KHCMatterCode] AS [KHCMatterCode] FROM [dbo].[KHCUserLinks] KUL WHERE KUL.[KHCUserId] = @userid AND KUL.[KHCAccessGroupId] IS NULL AND KUL.[KHCMatterCode] IS NOT NULL UNION SELECT KGC.[KHCMatterCode] AS [KHCMatterCode] FROM [dbo].[KHCUserLinks] KUL INNER JOIN [dbo].[KHCAccessGroupCases] KGC ON KGC.[KHCAccessGroupId] = KUL.[KHCAccessGroupId] WHERE KUL.[KHCUserId] = @userid AND KUL.[KHCAccessGroupId] IS NOT NULL AND ISNULL(KGC.[KHCMatterCode], '''') <> '''' END ELSE BEGIN INSERT INTO @RESULT ([KHCAccessGroupId]) SELECT KAG.[id] AS [KHCAccessGroupId] FROM [dbo].[KHCAccessGroups] KAG INSERT INTO @RESULT ([KHCClientCode]) SELECT RTRIM(ISNULL(CLT.[CLCODE], '''')) AS [KHCClientCode] FROM [dbo].[client] CLT INSERT INTO @RESULT ([KHCMatterCode]) SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [KHCMatterCode] FROM [dbo].[matters] MAT END RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDCreateDiaryAttachment4] Script Date: 10/01/2014 16:17:51 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCreateDiaryAttachment4]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /*************************************************************************************************** * * ky_WDCreateDiaryAttachment4 * * To be used in conjunction with ky_WDCreateDiaryStep4. There are no equivalents for earlier * ky_WDCreateDiaryStep versions. * ***************************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDCreateDiaryAttachment4] (@pDiaryID Int=0, @pName varchar(10), @pDocName varchar(100), @pDocument varchar(100), @pType varchar(10), @pDocClass varchar(3), @pDateEntered varchar(17), @pEnterBy varchar(8), @pLastAccessed varchar(17), @pLastAccessedby varchar(8), @pSystem varchar(1), @pDictationFile varchar(255)) AS 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(3) DECLARE @continue int DECLARE @error varchar(1000) SET @continue = 0 SET @error = '''' -- Start Transaction ----------------------------------------------------------------------------------------------------------------------------------------- BEGIN TRANSACTION 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(@strSource, ''I'') = ''I'' THEN ''Received E-mail'' ELSE ''Sent E-mail'' 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 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 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 = 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(3), @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 SET @strFileName = @strFileName + ''\'' + @strMatterNo + ''\'' + @pDocument + ''_'' + convert(varchar(10), @inTrackRef) IF (@pType <> '''') BEGIN SET @strFileName = @strFileName + ''.'' + @pType END END TRY BEGIN CATCH SET @continue = 9 SET @error = ''Error establishing filename: '' + Error_Message() END CATCH END SET @strFileName = ISNULL(@strFileName, '''') SET @strUNCFileName = @strFileName IF (SUBSTRING(@strUNCFileName, 2, 1) = '':'') BEGIN SELECT @strUNCFileName = ISNULL(MAX(UNC.[UNC]) + SUBSTRING(@strUNCFileName, 3, LEN(@strUNCFileName) - 2), @strUNCFileName) FROM [dbo].[UNCAlias] UNC WHERE SUBSTRING(@strUNCFileName, 1, 1) = UNC.[Drive] SET @strUNCFileName = LEFT(@strUNCFileName, 2) + REPLACE(RIGHT(@strUNCFileName, LEN(@strUNCFileName) - 2), ''\\'', ''\'') END IF (@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 COMMIT END TRY BEGIN CATCH SET @continue = 11 SET @error = ''Error committing transaction: '' + Error_Message() END CATCH END IF (@continue <> 0) BEGIN BEGIN TRY ROLLBACK END TRY BEGIN CATCH SET @continue = 1300 + ISNULL(@continue, 0) SET @error = @error + '', Unexpected error rolling back transaction: '' + Error_Message() END CATCH END SELECT @inTrackRef AS [NewTrackReference], @strFileName As [Path], @strUNCFileName As [UNCPath], @continue AS [ErrorCode], @error AS [ErrorMessage] END ' END GO /****** Object: StoredProcedure [dbo].[ky_SetAlarm] Script Date: 10/01/2014 16:17:34 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_SetAlarm]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE procedure [dbo].[ky_SetAlarm] ( @HandlerCode VARCHAR(5), @MatterRef VARCHAR(17), @LinkID VARCHAR(50), @AlarmDateString VARCHAR(23), @Title VARCHAR(255), @Message VARCHAR(8000), @TypeDesc VARCHAR(500)) AS BEGIN DECLARE @AlarmType INT DECLARE @NewID VARCHAR(38) DECLARE @AlarmDate DATETIME SET @AlarmDate = convert(DATETIME, @AlarmDateString,112) 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] = ''Generic Alarm'' INSERT INTO [dbo].[Alarms] ([ID], [HandlerCode], [MatterRef], [LinkID], [OriginalDate], [DeferredDate], [Title], [Message], [Type], [Status]) SELECT @NewID, @HandlerCode, @MatterRef, ISNULL(@LinkID, ''''), @AlarmDate, @AlarmDate, convert(NVARCHAR(255), @Title), convert(NTEXT, @Message), @AlarmType, ALS.[StatusID] FROM [dbo].[AlarmStatus] ALS WHERE ALS.[Description] = ''Attention'' END ' END GO /****** Object: StoredProcedure [dbo].[ky_UpdateActionAlarm] Script Date: 10/01/2014 16:17:40 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_UpdateActionAlarm]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' create procedure [dbo].[ky_UpdateActionAlarm] (@LinkID varchar(50)) AS /*********************************************************************************** * * ky_UpdateActionAlarm * This procedure didn''t need to be changed to cater for the new DisplayText column * ***********************************************************************************/ BEGIN DECLARE @MatterRef varchar(17) 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 varchar(255) DECLARE @Message varchar(8000) DECLARE @ActionID decimal(15, 0) 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 = 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 = RTrim(substring(DIA.[Text1], 1, 8000)) from [dbo].[diary] DIA where DIA.[ActionID] = convert(decimal(15,0), @LinkID) 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 = left(convert(varchar, @Date, 120), 11) + 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 /****** Object: StoredProcedure [dbo].[ky_SetLinkedAlarms] Script Date: 10/01/2014 16:17:38 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_SetLinkedAlarms]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_SetLinkedAlarms] (@AlarmStatus varchar(500), @TypeDescription varchar(500), @LinkID varchar(50)) AS BEGIN Declare @StatusID int Declare @TypeID int Select @StatusID = IsNull(ALS2.[StatusID], ALS1.[StatusID]) from [dbo].[AlarmStatus] ALS1 LEFT OUTER JOIN [dbo].[AlarmStatus] ALS2 ON ALS2.[Description] = convert(nvarchar(500), @AlarmStatus) WHERE ALS1.[Description] = N''Disabled'' Select @TypeID = IsNull(ALT2.[TypeID], ALT1.[TypeID]) from [dbo].[AlarmTypes] ALT1 LEFT OUTER JOIN [dbo].[AlarmTypes] ALT2 ON ALT2.[Description] = convert(nvarchar(500), @TypeDescription) WHERE ALT1.[Description] = N''Action'' UPDATE ALM SET ALM.[Status] = @StatusID FROM [dbo].[Alarms] ALM WHERE ALM.[Type] = @TypeID AND ALM.[LinkID] = @LinkID END ' END GO /****** Object: StoredProcedure [dbo].[ky_SetAlarm2] Script Date: 10/01/2014 16:17:35 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_SetAlarm2]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE procedure [dbo].[ky_SetAlarm2] (@HandlerCode VARCHAR(5), @MatterRef VARCHAR(17), @LinkID VARCHAR(50), @AlarmDateString VARCHAR(23), @Title VARCHAR(255), @Message VARCHAR(8000), @TypeDesc VARCHAR(500)) AS BEGIN DECLARE @AlarmType int DECLARE @AlarmDate DATETIME SET @AlarmDate = convert(DATETIME, @AlarmDateString) SELECT @AlarmType = ISNULL(ALT1.[TypeID], ALT2.[TypeID]) FROM AlarmTypes ALT2 LEFT OUTER JOIN AlarmTypes ALT1 ON ALT1.[Description] = @TypeDesc WHERE ALT2.[Description] = ''Generic Alarm'' IF (@TypeDesc = ''Action'') BEGIN INSERT INTO [dbo].[Alarms] ([ID], [HandlerCode], [MatterRef], [LinkID], [OriginalDate], [DeferredDate], [Title], [Message], [Type], [Status]) SELECT convert(VARCHAR(38), newid()), DEL.[Handler], @MatterRef, ISNULL(@LinkID, ''''), convert(DATETIME, @AlarmDate), convert(DATETIME, @AlarmDate), convert(NVARCHAR(255), @Title), convert(NTEXT, @Message), @AlarmType, ALS.[StatusID] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[AlarmStatus] ALS ON ALS.[Description] = ''Attention'' WHERE DEL.[ActionID] = convert(decimal(15,0), IsNull(@LinkID, ''0'')) AND DEL.[Status] = 0 END ELSE BEGIN INSERT INTO [dbo].[Alarms] ([ID], [HandlerCode], [MatterRef], [LinkID], [OriginalDate], [DeferredDate], [Title], [Message], [Type], [Status]) SELECT convert(VARCHAR(38), newid()), @HandlerCode, @MatterRef, ISNULL(@LinkID, ''''), convert(DATETIME, @AlarmDate), convert(DATETIME, @AlarmDate), convert(NVARCHAR(255), @Title), convert(NTEXT, @Message), @AlarmType, ALS.[StatusID] FROM [dbo].[AlarmStatus] ALS WHERE ALS.[Description] = ''Attention'' END END ' END GO /****** Object: StoredProcedure [dbo].[ky_AddAlarmDelegate] Script Date: 10/01/2014 16:16:56 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_AddAlarmDelegate]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE procedure [dbo].[ky_AddAlarmDelegate] (@LinkID VARCHAR(50), @Handler VARCHAR(5)) AS BEGIN INSERT INTO [dbo].[Alarms] ([ID], [HandlerCode], [MatterRef], [LinkID], [OriginalDate], [DeferredDate], [Title], [Message], [Type], [Status]) SELECT convert(VARCHAR(38), newid()), @Handler, ALM1.[MatterRef], @LinkID, ALM1.[OriginalDate], ALM1.[OriginalDate], ALM1.[Title], ALM1.[Message], ALM1.[Type], ALMS.[StatusID] FROM [dbo].[Alarms] ALM1 INNER JOIN [dbo].[AlarmTypes] ALMT ON ALMT.[TypeID] = ALM1.[Type] AND ALMT.[Description] = ''Action'' INNER JOIN [dbo].[AlarmStatus] ALMS ON ALMS.[Description] = ''Attention'' LEFT OUTER JOIN [dbo].[Alarms] ALM2 ON ALM2.[Type] = ALMT.[TypeID] AND ALM2.[LinkID] = ALM1.[LinkID] AND ALM2.[HandlerCode] = @Handler INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = convert(DECIMAL(15,0), @LinkID) AND DIA.[FnCode] = ALM1.[HandlerCode] WHERE ALM1.[LinkID] = @LinkID AND ALM2.HandlerCode IS NULL END ' END GO /****** Object: StoredProcedure [dbo].[ky_OrphanedAlarmCleanup] Script Date: 10/01/2014 16:17:26 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_OrphanedAlarmCleanup]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'create procedure [dbo].[ky_OrphanedAlarmCleanup] (@Handler varchar(5)) AS BEGIN UPDATE ALM SET ALM.[LinkID] = '''', ALM.[MatterRef] = '''', ALM.[Type] = ALT2.[TypeID] from [dbo].[Alarms] ALM inner join [dbo].[AlarmTypes] ALT ON ALT.[TypeID] = ALM.[Type] AND ALT.[Description] = ''Action'' inner join [dbo].[AlarmTypes] ALT2 on ALT2.[Description] = ''Generic Alarm'' left outer join [dbo].[Diary] DIA on DIA.[ActionID] = convert(decimal(15,0), ALM.[LinkID]) where ALM.[HandlerCode] = @Handler and DIA.[ActionID] Is Null UPDATE ALM SET ALM.[MatterRef] = '''', ALM.[Type] = ALT2.[TypeID] from [dbo].[Alarms] ALM inner join [dbo].[AlarmTypes] ALT ON ALT.[TypeID] = ALM.[Type] AND ALT.[Description] = ''Case related'' INNER JOIN [dbo].[AlarmTypes] ALT2 ON ALT2.[Description] = ''Generic Alarm'' left outer join [dbo].[Matters] MAT on MAT.[Code] = ALM.[MatterRef] where ALM.[HandlerCode] = @Handler and MAT.[Code] Is Null UPDATE ALM SET ALM.[Status] = ALS.[StatusID] from [dbo].[Alarms] ALM inner join [dbo].[AlarmTypes] ALT ON ALT.[TypeID] = ALM.[Type] AND ALT.[Description] = ''Action'' inner join [dbo].[AlarmStatus] ALS ON ALS.[Description] = ''Actioned'' left outer join [dbo].[Diary] DIA on DIA.[ActionID] = convert(decimal(15,0), ALM.[LinkID]) where ALM.[HandlerCode] = @Handler and DIA.[Status] = 1 END ' END GO /****** Object: StoredProcedure [dbo].[ky_SetMatterAlarms] Script Date: 10/01/2014 16:17:39 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_SetMatterAlarms]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_SetMatterAlarms] (@AlarmStatus varchar(500), @MatterRef varchar(17)) AS BEGIN Declare @StatusID int Select @StatusID = IsNull(ALS2.[StatusID], ALS1.[StatusID]) from [dbo].[AlarmStatus] ALS1 LEFT OUTER JOIN [dbo].[AlarmStatus] ALS2 ON ALS2.[Description] = convert(nvarchar(500), @AlarmStatus) WHERE ALS1.[Description] = N''Disabled'' UPDATE ALM SET ALM.[Status] = @StatusID FROM [dbo].[Alarms] ALM WHERE ALM.[MatterRef] = @MatterRef END ' END GO /****** Object: View [dbo].[WDOpenMatters] Script Date: 10/01/2014 16:20:08 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[WDOpenMatters]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[WDOpenMatters] AS select MAT.[Code] from [dbo].[matters] MAT' GO /****** Object: StoredProcedure [dbo].[ky_WDUpdateAllMatterTimeBalances] Script Date: 10/01/2014 16:18:31 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDUpdateAllMatterTimeBalances]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'/************************************************************************ * * Update All Matter Time Balances * *************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDUpdateAllMatterTimeBalances] AS 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 TIE.[REC_IRR] <> ''N'' AND TIE.[TimeorCharge] <> ''B'') TTL END' END GO /****** Object: StoredProcedure [dbo].[ky_WDMatterListCount] Script Date: 10/01/2014 16:18:07 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDMatterListCount]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDMatterListCount * * Counts the total number of matters satisfying the selection criteria * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDMatterListCount] (@search varchar(50)) AS BEGIN SET @search = ''%'' + RTrim(IsNull(@Search, '''')) + ''%'' SET @search = Replace(@search, ''%%'', ''%'') SELECT COUNT(1) AS [TOTAL] FROM [dbo].[MATTERS] MAT INNER JOIN [dbo].[contacts] CON ON CON.[Code] = MAT.[ClientCode] WHERE ( MAT.[Description] LIKE @search OR CON.[NAME] LIKE @search) END ' END GO /****** Object: View [dbo].[LastBillDate] Script Date: 10/01/2014 16:19:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[LastBillDate]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[LastBillDate] AS SELECT TOP 100 PERCENT dbo.TimeEntry.MATTER, MAX(dbo.TimeEntry.[DATE]) AS LastBillDate FROM dbo.TimeEntry INNER JOIN dbo.matters ON dbo.TimeEntry.MATTER = dbo.matters.Code WHERE (dbo.TimeEntry.TIMEORCHARGE = ''B'') GROUP BY dbo.TimeEntry.MATTER ORDER BY dbo.TimeEntry.MATTER ' GO /****** Object: StoredProcedure [dbo].[ky_WDUpdateTimeEntryFromDayBook] Script Date: 10/01/2014 16:18:34 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDUpdateTimeEntryFromDayBook]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'/************************************************************************************** * * ky_WDUpdateTimeEntryFromDayBook * * Update TimeEntry values * NOTE: This procedure is VERSION SPECIFIC. This is the SAM3.5 version of this procedure * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDUpdateTimeEntryFromDayBook] (@HANDLER VARCHAR(10)) AS BEGIN 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.[Leave] = TDB.[Leave], TIE.[TEAM] = HAN.[TEAM], TIE.[INVOICENO] = ISNULL(MAT.[OpenInvoiceNo], 0), TIE.[OPENINV] = CASE ISNULL(MAT.[OpenInvoiceNo], 0) WHEN 0 THEN ''N'' ELSE ''Y'' END, TIE.[BilledAmount] = CASE ISNULL(MAT.[OpenInvoiceNo], 0) WHEN 0 THEN 0 ELSE TDB.[Charge] END, TIE.[IncludeInBill] = CASE ISNULL(MAT.[OpenInvoiceNo], 0) WHEN 0 THEN 0 ELSE 1 END, TIE.[Period] = CON.[CurPer], TIE.[Year] = CON.[Year], TIE.[AxleNumber] = 0 FROM WDNTEID NTEID INNER JOIN [dbo].[TimeDayBook] TDB ON TDB.[RECORDID] = NTEID.[RECORDID] INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[RecordId] = NTEID.[NEWID] LEFT OUTER JOIN [dbo].[matters] MAT ON MAT.[Code] = TIE.[MATTER] INNER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = TIE.[FEEEARN] CROSS APPLY [dbo].[control] CON 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.[ChargeBal] + CASE ISNULL(MAT.[OpenInvoiceNo], 0) WHEN 0 THEN TDB.[Time] ELSE 0 END FROM WDNTEID NTEID INNER JOIN [dbo].[TimeDayBook] TDB ON TDB.[RECORDID] = NTEID.[RECORDID] AND TDB.[REC_IRR] = ''C'' LEFT OUTER JOIN [dbo].[matters] MAT ON MAT.[Code] = TDB.[MATTER] WHERE NTEID.[HANDLER] = @HANDLER END' END GO /****** Object: UserDefinedFunction [dbo].[WDMatterSearch] Script Date: 10/01/2014 16:19:51 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[WDMatterSearch]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'/******************************************************************************************* * * WDMatterSearch * simple matter search for matter search dropdown, searches ONLY the matter code * *******************************************************************************************/ CREATE FUNCTION [dbo].[WDMatterSearch] (@matter varchar(20)) RETURNS @WK TABLE ([OpenOrClosed] varchar(10), [MatterCode] varchar(20), [ClientCode] varchar(10), [MatterNo] varchar(10), [ClientName] varchar(500), [MatterDescription] varchar(500)) AS BEGIN DECLARE @OpenCount int IF (charindex(''/'', @matter) > 0) SET @matter = REPLACE(RTRIM(LTRIM(ISNULL(@matter, ''''))), ''/'', ''%/%'') ELSE SET @matter = RTRIM(LTRIM(ISNULL(@matter, ''''))) + ''%'' SET @matter = REPLACE(@matter, ''%%'', ''%'') INSERT INTO @WK ([OpenOrClosed], [MatterCode], [ClientCode], [MatterNo], [ClientName], [MatterDescription]) SELECT TOP 100 ''Open'' AS [OpenOrClosed], MAT.[code] AS [MatterCode], MAT.[clientcode] AS [ClientCode], MAT.[matter] AS [MatterNo], RTRIM(ISNULL(CON.[name], '''')) AS [ClientName], RTRIM(ISNULL(MAT.[description], '''')) AS [MatterDescription] FROM [dbo].[Matters] MAT INNER JOIN [dbo].[contacts] CON ON CON.[code] = MAT.[ClientCode] WHERE MAT.[code] LIKE @matter SELECT @OpenCount = COUNT(1) FROM @WK IF (@OpenCount) < 100 BEGIN INSERT INTO @WK ([OpenOrClosed], [MatterCode], [ClientCode], [MatterNo], [ClientName], [MatterDescription]) SELECT TOP (100 - @OpenCount) ''Closed'' AS [OpenOrClosed], MAT.[code] AS [MatterCode], MAT.[clientcode] AS [ClientCode], MAT.[matter] AS [MatterNo], RTRIM(ISNULL(CON.[name], '''')) AS [ClientName], RTRIM(ISNULL(MAT.[description], '''')) AS [MatterDescription] FROM [dbo].[Closed] MAT INNER JOIN [dbo].[contacts] CON ON CON.[code] = MAT.[ClientCode] WHERE MAT.[code] LIKE @matter END RETURN END' END GO /****** Object: View [dbo].[z_AccExport] Script Date: 10/01/2014 16:20:08 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[z_AccExport]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[z_AccExport] AS SELECT REPLACE(dbo.matters.User2, CHAR(13) + CHAR(10), ''...'') AS customer_No, REPLACE(dbo.Contacts.Name, CHAR(13) + CHAR(10), ''...'') AS Name, dbo.matters.Code AS casecode, dbo.matters.Dept, REPLACE(dbo.matters.Description, CHAR(13) + CHAR(10), ''...'') AS Description, dbo.diary.ACTIONID AS Actionid, dbo.diary.DUEDATE AS Date, dbo.diary.DYSTARTTIME AS Time, dbo.diary.FNCODE + ''-'' + ISNULL(REPLACE(dbo.Handlers.NAME, CHAR(13) + CHAR(10), ''...''), '''') AS handler, ISNULL(REPLACE(REPLACE(dbo.DiaryAttachments.[DOCUMENT], CHAR(13), ''...''), CHAR(10), '' ''), '''') AS [Document], ISNULL(REPLACE(REPLACE(dbo.DiaryAttachments.FILEPATH, CHAR(13), ''...''), CHAR(10), '' ''), '''') AS FilePath, REPLACE(CAST(dbo.diary.TEXT1 AS varchar(MAX)), CHAR(13) + CHAR(10), ''...'') AS DiaryDescription FROM dbo.DiaryAttachments RIGHT OUTER JOIN dbo.Contacts INNER JOIN dbo.matters ON dbo.Contacts.Code = dbo.matters.ClientCode INNER JOIN dbo.diary ON dbo.matters.Code = dbo.diary.CASECODE ON dbo.DiaryAttachments.DIARYID = dbo.diary.ACTIONID LEFT OUTER JOIN dbo.Handlers ON dbo.diary.FNCODE = dbo.Handlers.CODE ' GO IF NOT EXISTS (SELECT * FROM ::fn_listextendedproperty(N'MS_DiagramPane1' , N'SCHEMA',N'dbo', N'VIEW',N'z_AccExport', NULL,NULL)) EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00] Begin DesignProperties = Begin PaneConfigurations = Begin PaneConfiguration = 0 NumPanes = 4 Configuration = "(H (1[5] 4[39] 2[22] 3) )" End Begin PaneConfiguration = 1 NumPanes = 3 Configuration = "(H (1 [50] 4 [25] 3))" End Begin PaneConfiguration = 2 NumPanes = 3 Configuration = "(H (1 [50] 2 [25] 3))" End Begin PaneConfiguration = 3 NumPanes = 3 Configuration = "(H (4 [30] 2 [40] 3))" End Begin PaneConfiguration = 4 NumPanes = 2 Configuration = "(H (1 [56] 3))" End Begin PaneConfiguration = 5 NumPanes = 2 Configuration = "(H (2 [66] 3))" End Begin PaneConfiguration = 6 NumPanes = 2 Configuration = "(H (4 [50] 3))" End Begin PaneConfiguration = 7 NumPanes = 1 Configuration = "(V (3))" End Begin PaneConfiguration = 8 NumPanes = 3 Configuration = "(H (1[56] 4[18] 2) )" End Begin PaneConfiguration = 9 NumPanes = 2 Configuration = "(H (1 [75] 4))" End Begin PaneConfiguration = 10 NumPanes = 2 Configuration = "(H (1[66] 2) )" End Begin PaneConfiguration = 11 NumPanes = 2 Configuration = "(H (4 [60] 2))" End Begin PaneConfiguration = 12 NumPanes = 1 Configuration = "(H (1) )" End Begin PaneConfiguration = 13 NumPanes = 1 Configuration = "(V (4))" End Begin PaneConfiguration = 14 NumPanes = 1 Configuration = "(V (2))" End ActivePaneConfig = 0 End Begin DiagramPane = Begin Origin = Top = 0 Left = 0 End Begin Tables = Begin Table = "DiaryAttachments" Begin Extent = Top = 6 Left = 38 Bottom = 276 Right = 209 End DisplayFlags = 280 TopColumn = 0 End Begin Table = "diary" Begin Extent = Top = 6 Left = 247 Bottom = 291 Right = 436 End DisplayFlags = 280 TopColumn = 0 End Begin Table = "matters" Begin Extent = Top = 40 Left = 1110 Bottom = 373 Right = 1288 End DisplayFlags = 280 TopColumn = 0 End Begin Table = "Contacts" Begin Extent = Top = 127 Left = 839 Bottom = 235 Right = 1017 End DisplayFlags = 280 TopColumn = 0 End Begin Table = "Handlers" Begin Extent = Top = 150 Left = 610 Bottom = 258 Right = 790 End DisplayFlags = 280 TopColumn = 0 End End End Begin SQLPane = End Begin DataPane = Begin ParameterDefaults = "" End Begin ColumnWidths = 13 Width = 284 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 4440 Width = 1500 Width = 3735 End End Begi' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'z_AccExport' GO IF NOT EXISTS (SELECT * FROM ::fn_listextendedproperty(N'MS_DiagramPane2' , N'SCHEMA',N'dbo', N'VIEW',N'z_AccExport', NULL,NULL)) EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane2', @value=N'n CriteriaPane = Begin ColumnWidths = 11 Column = 6750 Alias = 3270 Table = 1170 Output = 720 Append = 1400 NewValue = 1170 SortType = 1350 SortOrder = 1410 GroupBy = 1350 Filter = 2025 Or = 1350 Or = 1350 Or = 1350 End End End ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'z_AccExport' GO IF NOT EXISTS (SELECT * FROM ::fn_listextendedproperty(N'MS_DiagramPaneCount' , N'SCHEMA',N'dbo', N'VIEW',N'z_AccExport', NULL,NULL)) EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=2 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'z_AccExport' GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchClientContacts] Script Date: 10/01/2014 16:19:33 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchClientContacts]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDSearchClientContacts * * Returns a list of Client Contacts matching a search criterion * by name, addres, or phone number * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDSearchClientContacts] (@search varchar(50), @mattersearch varchar(50), @include int, @expand int, @clientcode varchar(10), @namecode varchar(10), @IncludePhone int) RETURNS @SR TABLE ([Name] varchar(200), [Address] varchar(200), [Phone] varchar(30), [Mobile] varchar(30), [Fax] varchar(30), [Email] varchar(100), [Case] varchar(20), [Clientcode] varchar(10), [Namecode] varchar(10)) AS BEGIN IF (@include = 0) RETURN SET @search = ''%'' + RTrim(IsNull(@search, '''')) + ''%'' SET @search = replace(@search, ''%%'', ''%'') SET @mattersearch = ''%'' + RTrim(IsNull(@mattersearch, '''')) + ''%'' SET @mattersearch = replace(@mattersearch, ''%%'', ''%'') SET @clientcode = RTrim(IsNull(@clientcode, '''')) IF (@clientcode = '''') SET @clientcode = ''%'' SET @namecode = RTrim(IsNull(@namecode, '''')) IF (@namecode = '''') SET @namecode = ''%'' IF (@expand = 0) BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], CASE WHEN CAS.[TOTAL] = 0 THEN '''' WHEN CAS.[TOTAL] = 1 THEN SIC.[CODE] ELSE convert(varchar(5), CAS.[TOTAL]) + '' Cases'' END AS [Cases], CAN.[CLCODE], '''' FROM (SELECT CLC.[CLCODE], CASE WHEN RTrim(IsNull(CLC.[CLNAMECON], '''')) = '''' THEN RTRIM(IsNull(CNN.[NAME], '''')) ELSE RTrim(IsNull(CLC.[CLNAMECON], '''')) END AS [NAME], CASE WHEN RTrim(IsNull(CLC.[ADDRESS], '''')) = '''' THEN RTRIM(IsNull(CNN.[ADDRESS], '''')) ELSE RTrim(IsNull(CLC.[ADDRESS], '''')) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CLC.[HomePhone], '''')) = '''' THEN RTRIM(IsNull(CNN.[Tel], '''')) ELSE RTrim(IsNull(CLC.[HomePhone], '''')) END AS [PHONENO], RTrim(IsNull(CLC.[Mobile], '''')) AS [MOBILENO], CASE WHEN RTrim(IsNull(CLC.[WorkPhone], '''')) = '''' THEN RTRIM(IsNull(CNN.[Fax], '''')) ELSE RTrim(IsNull(CLC.[WorkPhone], '''')) END AS [FAXNO], CASE WHEN RTrim(IsNull(CLC.[EmailAddress], '''')) = '''' THEN RTRIM(IsNull(CNN.[email], '''')) ELSE RTrim(IsNull(CLC.[EmailAddress], '''')) END AS [EMAIL] FROM [dbo].[ClientContacts] CLC LEFT OUTER JOIN [dbo].[Contacts] CNN ON CNN.[CODE] = CLC.[CLCODE] WHERE ( CLC.[clnamecon] like @search OR CLC.[address] like @search OR ( @IncludePhone = 1 AND CLC.[homephone] like @search) OR ( @IncludePhone = 1 AND CLC.[workphone] like @search) OR ( @IncludePhone = 1 AND CLC.[mobile] like @search))) CAN CROSS APPLY (SELECT COUNT(1) AS TOTAL FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = CAN.[CLCODE] AND ( MAT.[description] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch)) CAS CROSS APPLY (SELECT TOP 1 MAT.[CODE] FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = CAN.[CLCODE] AND ( MAT.[description] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch)) SIC END ELSE BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [NameCode]) SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], [dbo].[ky_GetFirstLineOfAddress](SUBSTRING(CAN.[Address], 1, 200)) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL], SIC.[Code] AS [Cases], CAN.[CLCODE], '''' FROM (SELECT CLC.[CLCODE], CASE WHEN RTrim(IsNull(CLC.[CLNAMECON], '''')) = '''' THEN RTRIM(IsNull(CNN.[NAME], '''')) ELSE RTrim(IsNull(CLC.[CLNAMECON], '''')) END AS [NAME], CASE WHEN RTrim(IsNull(CLC.[ADDRESS], '''')) = '''' THEN RTRIM(IsNull(CNN.[ADDRESS], '''')) ELSE RTrim(IsNull(CLC.[ADDRESS], '''')) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CLC.[HomePhone], '''')) = '''' THEN RTRIM(IsNull(CNN.[Tel], '''')) ELSE RTrim(IsNull(CLC.[HomePhone], '''')) END AS [PHONENO], RTrim(IsNull(CLC.[Mobile], '''')) AS [MOBILENO], CASE WHEN RTrim(IsNull(CLC.[WorkPhone], '''')) = '''' THEN RTRIM(IsNull(CNN.[Fax], '''')) ELSE RTrim(IsNull(CLC.[WorkPhone], '''')) END AS [FAXNO], CASE WHEN RTrim(IsNull(CLC.[EmailAddress], '''')) = '''' THEN RTRIM(IsNull(CNN.[email], '''')) ELSE RTrim(IsNull(CLC.[EmailAddress], '''')) END AS [EMAIL] FROM [dbo].[ClientContacts] CLC LEFT OUTER JOIN [dbo].[Contacts] CNN ON CNN.[CODE] = CLC.[CLCODE] WHERE ( CLC.[clnamecon] like @search OR CLC.[address] like @search OR ( @IncludePhone = 1 AND CLC.[homephone] like @search) OR ( @IncludePhone = 1 AND CLC.[workphone] like @search) OR ( @IncludePhone = 1 AND CLC.[mobile] like @search))) CAN CROSS APPLY (SELECT MAT.[CODE] FROM [dbo].[matters] MAT WHERE MAT.[ClientCode] = CAN.[CLCODE] AND ( MAT.[description] like @mattersearch OR MAT.[user1] like @mattersearch OR MAT.[user2] like @mattersearch OR MAT.[user3] like @mattersearch)) SIC END DELETE @SR WHERE [ClientCode] NOT LIKE @clientcode OR [NameCode] NOT LIKE @namecode UPDATE @SR SET [Phone] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Phone]), [Mobile] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Mobile]), [Fax] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Fax]) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDMatLedger] Script Date: 10/01/2014 16:19:26 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDMatLedger]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDMatLedger * * Lists Matter Ledger. With support for Paging. * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDMatLedger] (@casecode varchar(20), @startno int, @count int) RETURNS @ML TABLE ([mlid] int IDENTITY(1, 1), [DATE] varchar(11), [REF] varchar(20), [NARR] varchar(300), [VALUED] decimal(17,2), [VALUEO] decimal(17,2), [VALUECC] decimal(17,2), [VALUECD] decimal(17,2), [BATCHNO] int, [PREF] int, [UNDERTAKING] varchar(1), [FEE] varchar(10)) AS BEGIN INSERT INTO @ML ([DATE], [REF], [NARR], [VALUED], [VALUEO], [VALUECC], [VALUECD], [BATCHNO], [PREF], [UNDERTAKING], [FEE]) select CONVERT(varchar, ML.[DATE], 106), RTrim(IsNull(ML.[REF], '''')) AS [REF], RTrim(IsNull(ML.[NARR], '''')) AS [NARR], IsNull(ML.[VALUED], 0) AS [VALUED], IsNull(ML.[VALUEO], 0) AS [VALUEO], IsNull(ML.[VALUECC], 0) AS [VALUECC], IsNull(ML.[VALUECD], 0) AS [VALUECD], IsNull(ML.[BATCHNO], 0) AS [BATCHNO], IsNull(ML.[PREF], 0) AS [PREF], IsNull(MAT.[UNDERTAKING], ''N'') AS [UNDERTAKING], RTrim(IsNull(ML.[FEE], '''')) AS [FEE] from [dbo].[MatterLedger] ML LEFT OUTER JOIN [dbo].[matters] MAT ON MAT.[code] = ML.[MATTER] where ML.[MATTER] = @CASECODE ORDER BY ML.[DATE] ASC, ML.[BATCHNO] ASC, ML.[LREF] ASC DELETE @ML WHERE [mlid] < @startno DELETE @ML WHERE [mlid] > (@startno + @count - 1) RETURN END' END GO /****** Object: StoredProcedure [dbo].[ky_WDListMailAssociations] Script Date: 10/01/2014 16:18:07 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDListMailAssociations]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************ * * List mail associations - links e-mail to Case Diary via mail date and * subject * *************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDListMailAssociations] (@EmailsXML varchar(max)) AS BEGIN DECLARE @idoc int EXEC sp_xml_preparedocument @idoc OUTPUT, @EmailsXML SELECT EML.[id], DIS.[ACTIONID], EML.[date], ISNULL(DIS.[Code], '''') AS [casecode], ISNULL(DIS.[Description], '''') As [description] FROM OPENXML(@idoc, ''emails/email'', 2) WITH([id] int ''id'', [date] datetime ''date'', [from] varchar(150) ''from'', [fromname] varchar(150) ''fromname'', [subject] varchar(2000) ''subject'') EML OUTER APPLY (SELECT TOP 1 DIA.[ActionID], MAT.[code], MAT.[description] FROM [dbo].[Diary] DIA CROSS APPLY (SELECT DI2.[actionid], RTRIM(Convert(Varchar(2000), DI2.[SUBJECT])) + ''*#*'' + RTRIM(Convert(varchar(150), DI2.[EMAILADDRESS])) AS [MEH] FROM [dbo].[diary] DI2 WHERE DI2.[ACTIONID] = DIA.[actionid]) DIB INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = DIA.[CASECODE] WHERE DIA.[EMAIL] = ''Y'' AND ( ( DIA.[TxmDATE] >= DATEADD(mi, -1, EML.[date]) AND DIA.[TxmDATE] <= DATEADD(mi, 1, EML.[date])) OR ( DIA.[TxmDate] is null AND DIA.[DATE] >= DATEADD(mi, -1, EML.[date]) AND DIA.[DATE] <= DATEADD(mi, 1, EML.[date]))) AND ( Replace(DIB.[MEH], ''"'', '''') = EML.[subject] + ''*#*'' + Replace(EML.[from], ''"'', '''') OR DIB.[MEH] = EML.[subject] + ''*#*'' + EML.[fromname])) DIS ORDER BY EML.[id] ASC EXEC sp_xml_removedocument @idoc END ' END GO /****** Object: StoredProcedure [dbo].[ky_UpdateDiaryAttachment] Script Date: 10/01/2014 16:17:40 ******/ SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_UpdateDiaryAttachment]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[ky_UpdateDiaryAttachment]( @pDiaryID Int=0, @pCaseCode char(17), @pName char(10), @pDocument char(100), @pFilePath char(255), @pType char(3), @pDocClass char(3), @pDateEntered DateTime, @pEnterBy char(8), @pLastAccessed DateTime, @pLastAccessedby char(8), @pSystem char(1), @pDictationFile char(255), @pUTrackRef Int, @pTrackRef int=0 output) AS SET NOCOUNT ON DECLARE @strcasecode nVarChar(17) DECLARE @inTrackRef Int -- Start Transaction ----------------------------------------------------------------------------------------------------------------------------------------- BEGIN TRAN Key_Tran_01 IF @@error <> 0 GOTO Tran_Fail -- Get CaseCode From Matters Table ----------------------------------------------------------------------------------------------------------------------------------------- SELECT @strCaseCode = ( SELECT Top 1 [Code] FROM Matters WHERE code = @pCaseCode ) IF @@error <> 0 GOTO Tran_Fail IF LEN( @strCaseCode ) < 2 GOTO Tran_Fail -- Write DiaryAttachment Record ----------------------------------------------------------------------------------------------------------------------------------------- Update DiaryAttachments set DiaryId = @pDiaryID, CaseCode = @pCaseCode, [Name] = @pName, Document = @pDocument, Filepath = @pFilePath, Type = @pType, DocClass = @pDocClass, DateEntered = @pDateEntered, EnteredBy = @pEnterBy, LastAccessDate = @pLastAccessed, LastAccessBy = @pLastAccessedby, [System] = @pSystem, Dictationfile = @pDictationFile where TrackReference = @pUTrackRef IF @@error <> 0 GOTO Tran_Fail Select @inTrackRef = @pUTrackRef -- Commit Transaction ------------------------------------------------------------------------------------------------------------------ COMMIT TRAN Key_Tran_01 IF @@error <> 0 GOTO Tran_Fail Select @pTrackRef = @inTrackRef -- End Of Processing -------------------------------------------------------------------------------------------------------------------- ExitPoint: Return -- Error Processing ------------------------------------------------------------------------------------------------------------------------------------- Tran_Fail: rollback tran Key_Tran_01 Select @pTrackRef = -1 goto ExitPoint ' END GO /****** Object: UserDefinedFunction [dbo].[ky_NETOpenClosedMatters] Script Date: 10/01/2014 16:19:06 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NETOpenClosedMatters]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' CREATE FUNCTION [dbo].[ky_NETOpenClosedMatters]() RETURNS @OCM TABLE ([id] int identity(1, 1), [Code] VARCHAR(20), [ClientCode] VARCHAR(10), [ClientName] VARCHAR(100), [Matter] VARCHAR(10), [Description] VARCHAR(200), [Dept] VARCHAR(3), [Fecode] VARCHAR(10), [Started] VARCHAR(20), [StartDate] datetime, [Wtype] VARCHAR(4), [User1] VARCHAR(20), [User2] VARCHAR(20), [User3] VARCHAR(20), [OldRef] VARCHAR(12), [FileNum] int, [OpenCode] VARCHAR(20), [ClosedCode] VARCHAR(20), [OpenClosed] VARCHAR(6)) WITH SCHEMABINDING AS /****************************************************************************** * * ky_NETOpenClosedMatters * Lists basic information about all the Open and Closed matters in the system. * used in View OpenClosedMatters * ******************************************************************************/ BEGIN DECLARE @Moved INT SET @Moved = 1 IF EXISTS(SELECT TOP 1 1 FROM [dbo].[Closed]) BEGIN SET @Moved = 0 END DECLARE @COD TABLE ([CODE] VARCHAR(20) NOT NULL) IF (@Moved = 0) BEGIN INSERT INTO @COD ([CODE]) SELECT RTRIM(ISNULL(MAT.[CODE], '''')) FROM [dbo].[matters] MAT INSERT INTO @COD ([CODE]) SELECT RTRIM(ISNULL(CLS.[CODE], '''')) FROM [dbo].[closed] CLS LEFT OUTER JOIN [dbo].[matters] MAT ON MAT.[Code] = CLS.[CODE] WHERE MAT.[Code] IS NULL INSERT INTO @OCM ([CODE]) SELECT COD.[CODE] FROM @COD COD ORDER BY COD.[CODE] END ELSE BEGIN INSERT INTO @OCM ([Code]) SELECT RTRIM(ISNULL(MAT.[Code], '''')) FROM [dbo].[matters] MAT ORDER BY MAT.[Code] END IF (@Moved = 0) BEGIN UPDATE OCM SET OCM.[ClientCode] = RTRIM(ISNULL(MAT.[ClientCode], '''')), OCM.[ClientName] = CTC.[ClientName], OCM.[Matter] = RTRIM(ISNULL(MAT.[matter], '''')), OCM.[Description] = RTRIM(ISNULL(MAT.[Description], '''')), OCM.[Dept] = RTRIM(ISNULL(MAT.[Dept], '''')), OCM.[FECode] = RTRIM(ISNULL(MAT.[FECode], '''')), OCM.[Started] = RTRIM(ISNULL(CONVERT(VARCHAR(20), MAT.[Started]), '''')), OCM.[StartDate] = MAT.[Started], OCM.[WType] = RTRIM(ISNULL(MAT.[WType], '''')), OCM.[User1] = RTRIM(ISNULL(MAT.[User1], '''')), OCM.[User2] = RTRIM(ISNULL(MAT.[User2], '''')), OCM.[User3] = RTRIM(ISNULL(MAT.[User3], '''')), OCM.[OldRef] = RTRIM(ISNULL(MAT.[OldRef], '''')), OCM.[FileNum] = ISNULL(MAT.[FileNum], 0), OCM.[OpenCode] = '''', OCM.[ClosedCode] = RTRIM(ISNULL(MAT.[Code], '''')), OCM.[OpenClosed] = ''Closed'' FROM @OCM OCM INNER JOIN [dbo].[Closed] MAT ON MAT.[CODE] = OCM.[Code] CROSS APPLY (SELECT TOP 1 RTRIM(ISNULL(CON.[name], '''')) AS [ClientName] FROM [dbo].[Contacts] CON WHERE CON.[Code] = MAT.[CLIENTCODE]) CTC END UPDATE OCM SET OCM.[ClientCode] = RTRIM(ISNULL(MAT.[ClientCode], '''')), OCM.[ClientName] = RTRIM(ISNULL(CTC.[ClientName], '''')), OCM.[Matter] = RTRIM(ISNULL(MAT.[matter], '''')), OCM.[Description] = RTRIM(ISNULL(MAT.[Description], '''')), OCM.[Dept] = RTRIM(ISNULL(MAT.[Dept], '''')), OCM.[FECode] = RTRIM(ISNULL(MAT.[FECode], '''')), OCM.[Started] = RTRIM(ISNULL(CONVERT(VARCHAR(20), MAT.[Started]), '''')), OCM.[StartDate] = MAT.[Started], OCM.[WType] = RTRIM(ISNULL(MAT.[WType], '''')), OCM.[User1] = RTRIM(ISNULL(MAT.[User1], '''')), OCM.[User2] = RTRIM(ISNULL(MAT.[User2], '''')), OCM.[User3] = RTRIM(ISNULL(MAT.[User3], '''')), OCM.[OldRef] = RTRIM(ISNULL(MAT.[OldRef], '''')), OCM.[FileNum] = ISNULL(MAT.[FileNum], 0), OCM.[OpenCode] = CASE WHEN MAT.[Closed] <> ''Y'' THEN RTRIM(ISNULL(MAT.[Code], '''')) ELSE '''' END, OCM.[ClosedCode] = CASE WHEN MAT.[Closed] = ''Y'' THEN RTRIM(ISNULL(MAT.[Code], '''')) ELSE '''' END, OCM.[OpenClosed] = CASE WHEN MAT.[Closed] <> ''Y'' THEN ''Open'' ELSE ''Closed'' END FROM @OCM OCM INNER JOIN [dbo].[matters] MAT ON MAT.[CODE] = OCM.[Code] OUTER APPLY (SELECT TOP 1 CON.[name] AS [ClientName] FROM [dbo].[Contacts] CON WHERE CON.[Code] = MAT.[CLIENTCODE]) CTC RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[DAByTrackRef] Script Date: 10/01/2014 16:18:56 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DAByTrackRef]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * Fixed to allow for missing document classes. * **************************************************************************************/ create function [dbo].[DAByTrackRef](@FromTrack int, @MaxNum int) RETURNS @DABT TABLE ([DIARYID] decimal(15,0), [TrackReference] int, [Document] varchar(100), [FilePath] varchar(255), [Type] varchar(3), [Source] varchar(20), [CaseCode] varchar(20), [MatterDescription] varchar(200), [ClientCode] varchar(20), [ClientDescription] varchar(200), [DocumentClass] varchar(5), [DocumentClassDescription] varchar(50), [EmailFrom] varchar(150), [EmailTo] varchar(2000), [Subject] varchar(150), [User1] varchar(20), [User2] varchar(20), [User3] varchar(20), [YourRef] varchar(20), [OldRef] varchar(20), [ModifyDate] varchar(19)) AS BEGIN INSERT INTO @DABT ([DIARYID], [TrackReference], [Document], [FilePath], [Type], [Source], [CaseCode], [MatterDescription], [ClientCode], [ClientDescription], [DocumentClass], [DocumentClassDescription], [EmailFrom], [EmailTo], [Subject], [User1], [User2], [User3], [YourRef], [OldRef], [ModifyDate]) SELECT TOP (@MaxNum) ODT.[DIARYID] As [DIARYID], ODT.[TRACKREFERENCE] As [TrackReference], ODT.[DOCUMENT] As [Document], ODT.[FILEPATH] As [FilePath], ODT.[TYPE] As [Type], ODT.[SOURCE] As [Source], ODT.[CASECODE] As [CaseCode], ODT.[MatterDescription], ODT.[ClientCode], ODT.[ClientDescription], ODT.[DOCCLASS], ODT.[DocumentClassDescription], ODT.[EmailFrom], ODT.[EmailTo], ODT.[Subject], ODT.[User1], ODT.[User2], ODT.[User3], ODT.[YourRef], ODT.[OldRef], ODT.[ModifyDate] FROM (SELECT ODT1.TRACKREFERENCE, ODT1.DIARYID, ODT1.[DOCUMENT], ODT1.[FILEPATH], ODT1.[TYPE], ODT1.[SOURCE], ODT1.[CASECODE], ODT1.[MatterDescription], ODT1.[ClientCode], ODT1.[ClientDescription], ODT1.[DOCCLASS], ODT1.[DocumentClassDescription], ODT1.[EmailFrom], ODT1.[EmailTo], ODT1.[Subject], ODT1.[User1], ODT1.[User2], ODT1.[User3], ODT1.[YourRef], ODT1.[OldRef], ODT1.[ModifyDate] FROM ( SELECT TOP (@MaxNum) DT1.[DiaryID], DT1.[TrackReference], RTrim(IsNull(DT1.[DOCUMENT], '''')) As [DOCUMENT], RTrim(IsNull(DT1.[FILEPATH], '''')) AS [FILEPATH], RTrim(IsNull(DT1.[TYPE], '''')) AS [TYPE], RTrim(IsNull(DT1.[SOURCE], '''')) AS [SOURCE], DT1.[CASECODE], MT1.[Description] As [MatterDescription], MT1.[ClientCode], RTrim(IsNull(CN1.[Name], '''')) AS [ClientDescription], RTrim(IsNull(DT1.[DOCCLASS], '''')) AS [DOCCLASS], RTrim(IsNull(DC1.[CLASSDESCRIPTION], '''')) AS [DocumentClassDescription], RTrim(IsNull(convert(varchar, DI1.[EMAILADDRESS]), '''')) AS [EmailFrom], RTrim(IsNull(Convert(varchar, Substring(DI1.[ADDRESSTO], 1, 2000)), '''')) AS [EmailTo], RTrim(IsNull(convert(varchar, DI1.[SUBJECT]), '''')) AS [Subject], RTrim(IsNull(MT1.[User1], '''')) AS [User1], RTrim(IsNull(MT1.[User2], '''')) AS [User2], RTrim(IsNull(MT1.[User3], '''')) AS [User3], SUBSTRING(RTrim(IsNull(MT1.[YourRef], '''')), 1, 20) AS [YourRef], RTrim(IsNull(MT1.[OldRef], '''')) AS [OldRef], ISNULL(LEFT(convert(VARCHAR, DAI1.[ModifyDate], 121), 19), '''') AS [ModifyDate] FROM [dbo].[DiaryAttachments] DT1 INNER JOIN [dbo].[diary] DI1 ON DI1.[ACTIONID] = DT1.[DIARYID] INNER JOIN [dbo].[MATTERS] MT1 LEFT OUTER JOIN [dbo].[DAExclusions] DE1 ON DE1.[CASECODE] = MT1.[CODE] INNER JOIN [dbo].[contacts] CN1 ON CN1.[CODE] = MT1.[ClientCode] ON MT1.[CODE] = DT1.[CASECODE] LEFT OUTER JOIN [dbo].[documentclasses] DC1 ON DC1.[CLASSCODE] = DT1.[DOCCLASS] LEFT OUTER JOIN [dbo].[DAIndexInfo] DAI1 ON DAI1.[TrackReference] = convert(int, DT1.[TrackReference]) WHERE DT1.[TRACKREFERENCE] > @FromTrack AND DE1.[CASECODE] IS NULL AND DT1.[TYPE] IN (''AVI'', ''BMP'', ''DOC'', ''DOT'', ''EML'', ''FAX'', ''FLV'', ''GIF'', ''HTM'', ''ICO'', ''JPG'', ''JPE'', ''MHT'', ''MOV'', ''MP3'', ''MP4'', ''MPE'', ''MPG'', ''MSG'', ''OFT'', ''PCX'', ''PDF'', ''PNG'', ''PPS'', ''PPT'', ''RTF'', ''SWF'', ''TIF'', ''TML'', ''TXT'', ''WAV'', ''WMV'', ''WPD'', ''XLS'') ORDER BY DT1.[TRACKREFERENCE]) ODT1 UNION ALL SELECT ODT2.TRACKREFERENCE, ODT2.DIARYID, ODT2.[DOCUMENT], ODT2.[FILEPATH], ODT2.[TYPE], ODT2.[SOURCE], ODT2.[CASECODE], ODT2.[MatterDescription], ODT2.[ClientCode], ODT2.[ClientDescription], ODT2.[DOCCLASS], ODT2.[DocumentClassDescription], ODT2.[EmailFrom], ODT2.[EmailTo], ODT2.[Subject], ODT2.[User1], ODT2.[User2], ODT2.[User3], ODT2.[YourRef], ODT2.[OldRef], ODT2.[ModifyDate] FROM ( SELECT TOP (@MaxNum) DT2.[DiaryID], DT2.[TrackReference], RTrim(IsNull(DT2.[DOCUMENT], '''')) As [DOCUMENT], RTrim(IsNull(DT2.[FILEPATH], '''')) AS [FILEPATH], RTrim(IsNull(DT2.[TYPE], '''')) AS [TYPE], '''' AS [SOURCE], DT2.[CASECODE], MT2.[Description] As [MatterDescription], MT2.[ClientCode], RTrim(IsNull(CN2.[Name], '''')) AS [ClientDescription], RTrim(IsNull(DT2.[DOCCLASS], '''')) AS [DOCCLASS], RTrim(IsNull(DC2.[CLASSDESCRIPTION], '''')) AS [DocumentClassDescription], RTrim(IsNull(convert(varchar, DI2.[EMAILADDRESS]), '''')) AS [EmailFrom], RTrim(IsNull(Convert(varchar, Substring(DI2.[ADDRESSTO], 1, 2000)), '''')) AS [EmailTo], RTrim(IsNull(convert(varchar, DI2.[SUBJECT]), '''')) AS [Subject], RTrim(IsNull(MT2.[User1], '''')) AS [User1], RTrim(IsNull(MT2.[User2], '''')) AS [User2], RTrim(IsNull(MT2.[User3], '''')) AS [User3], SUBSTRING(RTrim(IsNull(MT2.[YourRef], '''')), 1, 20) AS [YourRef], RTrim(IsNull(MT2.[OldRef], '''')) AS [OldRef], ISNULL(LEFT(convert(VARCHAR, DAI2.[ModifyDate], 121), 19), '''') AS [ModifyDate] FROM [dbo].[CloseDiaryAttachments] DT2 INNER JOIN [dbo].[CloseDiary] DI2 ON DI2.[ACTIONID] = DT2.[DIARYID] INNER JOIN [dbo].[CLOSED] MT2 LEFT OUTER JOIN [dbo].[DAExclusions] DE2 ON DE2.[CASECODE] = MT2.[CODE] INNER JOIN [dbo].[contacts] CN2 ON CN2.[CODE] = MT2.[ClientCode] ON MT2.[CODE] = DT2.[CASECODE] LEFT OUTER JOIN [dbo].[documentclasses] DC2 ON DC2.[CLASSCODE] = DT2.[DOCCLASS] LEFT OUTER JOIN [dbo].[DAIndexInfo] DAI2 ON DAI2.[TrackReference] = convert(int, DT2.[TrackReference]) WHERE DT2.[TRACKREFERENCE] > @FromTrack AND DE2.[CASECODE] IS NULL AND DT2.[TYPE] IN (''AVI'', ''BMP'', ''DOC'', ''DOT'', ''EML'', ''FAX'', ''FLV'', ''GIF'', ''HTM'', ''ICO'', ''JPG'', ''JPE'', ''MHT'', ''MOV'', ''MP3'', ''MP4'', ''MPE'', ''MPG'', ''MSG'', ''OFT'', ''PCX'', ''PDF'', ''PNG'', ''PPS'', ''PPT'', ''RTF'', ''SWF'', ''TIF'', ''TML'', ''TXT'', ''WAV'', ''WMV'', ''WPD'', ''XLS'') ORDER BY DT2.[TRACKREFERENCE]) ODT2) ODT ORDER BY ODT.[TRACKREFERENCE], ODT.[DIARYID] RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_CreateCalendarStep] Script Date: 10/01/2014 16:17:07 ******/ SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CreateCalendarStep]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[ky_CreateCalendarStep]( @pStatus Int=0, @pDate DateTime, @pCaseCode char(17), @pActionCode char(15), @pActionStatus char(3), @pFnCode char(4), @pTeamCode char(4), @pText1 varchar(8000), @pSubject varchar(500), @pProcessType char(1), @pTime char(10), @pActionId int=0 output) AS SET NOCOUNT ON DECLARE @strcasecode nVarChar(17) DECLARE @intActionID Int DECLARE @intAssignno int -- Start Transaction ----------------------------------------------------------------------------------------------------------------------------------------- BEGIN TRAN Key_Tran_01 IF @@error <> 0 GOTO Tran_Fail -- Get CaseCode From Matters Table ----------------------------------------------------------------------------------------------------------------------------------------- SELECT @strCaseCode = ( SELECT Top 1 [Code] FROM Matters WHERE code = @pCaseCode ) IF @@error <> 0 GOTO Tran_Fail IF LEN( @strCaseCode ) < 2 GOTO Tran_Fail -- Get Next ActionID ----------------------------------------------------------------------------------------------------------------------------------------- SELECT @intActionID = ( SELECT Top 1 ActionID FROM Diary ORDER BY ActionID DESC ) IF @@error <> 0 GOTO Tran_Fail IF @intActionID IS NULL SELECT @intActionID = 0 SELECT @intActionID = @intActionID + 1 -- Write Diary Record ----------------------------------------------------------------------------------------------------------------------------------------- INSERT INTO Diary (Status, CaseCode, ActionCode, ActionStatus, FnCode, TeamCode, Text1, DisplayText, Subject, Publish, ActionType, ProcessType, DYStartTime, ActionId, [Date]) Values (@pStatus, @pCaseCode, @pActionCode, @pActionStatus, @pFnCode, @pTeamCode, @pText1, [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), @pText1), ''''), 200), @pSubject, ''N'', ''P'', @pProcessType, @pTime, @intActionID, @pDate) IF @@error <> 0 GOTO Tran_Fail -- Write the diary delegation record ------------------------------------------------------------ INSERT INTO [DiaryDelegations] ([ACTIONID] ,[HANDLER] ,[TEAM] ,[DATE] ,[DATER] ,[TIMER] ,[DUEDATE] ,[DUETIME] ,[REVIEW] ,[STATUS] ,[OWNER] ,[DELEGATE] ,[DELEGATESTATUS] ,[ActionType] ,[FromHandler] ,[ReturnedBy] ,[DelType]) VALUES (@intActionID, @pFnCode, @pTeamCode, @pDate, 0, '''', @pDate, @pTime, '' '', @pStatus, ''Y'', @pFnCode, 0, ''E'', '' '', '' '', ''Created'') -- Commit Transaction ------------------------------------------------------------------------------------------------------------------ COMMIT TRAN Key_Tran_01 IF @@error <> 0 GOTO Tran_Fail Select @pActionId = @intActionID -- End Of Processing -------------------------------------------------------------------------------------------------------------------- ExitPoint: Return -- Error Processing ------------------------------------------------------------------------------------------------------------------------------------- Tran_Fail: rollback tran Key_Tran_01 Select @pActionId = -1 goto ExitPoint ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDTaskListSet] Script Date: 10/01/2014 16:19:46 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListSet]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListSet * * Returns the Task List to be displayed in WinDev/WebDev versions of the software * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDTaskListSet] (@Handler varchar(10), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @startno int, @count int, @Search varchar(100)) RETURNS @TL TABLE ([taskid] int IDENTITY(1, 1), [ActionID] int, [AssignNo] int) AS BEGIN DECLARE @startdate datetime DECLARE @enddate datetime SET @handler = RTrim(IsNull(@handler, '''')) SET @Team = RTRIM(IsNull(@team, '''')) SET @startdateT = IsNull(@startdateT, '''') SET @enddateT = IsNull(@enddateT, '''') SET @outstanding = isnull(@outstanding, 1) IF (IsNull(@startdateT, '''') = '''') BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END ELSE BEGIN IF (isdate(@startdateT) = 1) BEGIN set @startdate = convert(datetime, replace(convert(varchar(10), convert(datetime, @startdateT), 121), ''-'', '''')) END ELSE BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END END IF (IsNull(@enddateT, '''') = '''') BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END ELSE BEGIN IF (isdate(@enddateT) = 1) BEGIN set @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), convert(datetime, @enddateT), 121), ''-'', ''''))) END ELSE BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END END IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END END DELETE @TL WHERE [taskid] < @startno DELETE @TL WHERE [taskid] > (@startno + @count - 1) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDTaskListByHighlightSet] Script Date: 10/01/2014 16:19:43 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByHighlightSet]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListByHighlightSet * * Returns the Task List to be displayed in WinDev/WebDev versions of the software * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDTaskListByHighlightSet] (@Handler varchar(10), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @startno int, @count int, @ActionType varchar(1), @Highlighted varchar(1), @Priority varchar(1), @Search varchar(100)) RETURNS @TL TABLE ([taskid] int IDENTITY(1, 1), [ActionID] int, [AssignNo] int) AS BEGIN DECLARE @startdate datetime DECLARE @enddate datetime SET @Highlighted = RTrim(IsNull(@Highlighted, '''')) SET @Priority = RTrim(IsNull(@Priority, '''')) SET @handler = RTrim(IsNull(@handler, '''')) SET @Team = RTRIM(IsNull(@team, '''')) SET @startdateT = IsNull(@startdateT, '''') SET @enddateT = IsNull(@enddateT, '''') SET @outstanding = isnull(@outstanding, 1) IF (IsNull(@startdateT, '''') = '''') BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END ELSE BEGIN IF (isdate(@startdateT) = 1) BEGIN set @startdate = convert(datetime, replace(convert(varchar(10), convert(datetime, @startdateT), 121), ''-'', '''')) END ELSE BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END END IF (IsNull(@enddateT, '''') = '''') BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END ELSE BEGIN IF (isdate(@enddateT) = 1) BEGIN set @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), convert(datetime, @enddateT), 121), ''-'', ''''))) END ELSE BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END END IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = CASE WHEN RTRIM(ISNULL(@ActionType, '''')) = '''' THEN DEL.[ActionType] ELSE @ActionType END) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = CASE WHEN RTRIM(ISNULL(@ActionType, '''')) = '''' THEN DEL.[ActionType] ELSE @ActionType END) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = CASE WHEN RTRIM(ISNULL(@ActionType, '''')) = '''' THEN DEL.[ActionType] ELSE @ActionType END) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @Team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = CASE WHEN RTRIM(ISNULL(@ActionType, '''')) = '''' THEN DEL.[ActionType] ELSE @ActionType END) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = CASE WHEN RTRIM(ISNULL(@ActionType, '''')) = '''' THEN DEL.[ActionType] ELSE @ActionType END) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = CASE WHEN RTRIM(ISNULL(@ActionType, '''')) = '''' THEN DEL.[ActionType] ELSE @ActionType END) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @Handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = CASE WHEN RTRIM(ISNULL(@ActionType, '''')) = '''' THEN DEL.[ActionType] ELSE @ActionType END) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @Team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = CASE WHEN RTRIM(ISNULL(@ActionType, '''')) = '''' THEN DEL.[ActionType] ELSE @ActionType END) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END END DELETE @TL WHERE [taskid] < @startno DELETE @TL WHERE [taskid] > (@startno + @count - 1) RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_UpdateCalendarStep] Script Date: 10/01/2014 16:17:40 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_UpdateCalendarStep]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_UpdateCalendarStep]( @pStatus Int=0, @pDate DateTime, @pCaseCode char(17), @pActionCode char(15), @pActionStatus char(3), @pFnCode char(4), @pTeamCode char(4), @pText1 varchar(8000), @pSubject varchar(500), @pProcessType char(1), @pTime char(10), @pOutlookID varchar(256), @pActionId int=0 output) AS /****************************************************************************** * * ky_UpdateCalendarStep * ******************************************************************************/ BEGIN SET NOCOUNT ON DECLARE @strcasecode nVarChar(17) DECLARE @intActionID Int DECLARE @intAssignno int -- Start Transaction ----------------------------------------------------------------------------------------------------------------------------------------- BEGIN TRAN Key_Tran_01 IF @@error <> 0 GOTO Tran_Fail -- Get CaseCode From Matters Table ----------------------------------------------------------------------------------------------------------------------------------------- SELECT @strCaseCode = ( SELECT Top 1 [Code] FROM Matters WHERE code = @pCaseCode ) IF @@error <> 0 GOTO Tran_Fail IF LEN( @strCaseCode ) < 2 GOTO Tran_Fail -- Get Next ActionID ----------------------------------------------------------------------------------------------------------------------------------------- SELECT @intActionID = ( SELECT ActionID FROM OutlookIds where outlookid = @pOutlookID) IF @@error <> 0 GOTO Tran_Fail -- Write Diary Record ----------------------------------------------------------------------------------------------------------------------------------------- Update Diary set Status = @pStatus, CaseCode = @pCaseCode, ActionCode = @pActionCode, ActionStatus = @pActionStatus, FnCode = @pFnCode, TeamCode = @pTeamCode, Text1 = @pSubject, DisplayText = [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), @pSubject), ''''), 200), Subject = @pSubject, Publish = ''N'', ActionType = ''P'', ProcessType = ''I'', DYStartTime = @pTime, [Date] = @pDate where actionid = @intActionID IF @@error <> 0 GOTO Tran_Fail -- Write the diary delegation record ------------------------------------------------------------ Update [DiaryDelegations] set [HANDLER] = @pFnCode, [TEAM] = @pTeamCode, [DATE] = @pDate, [DATER] = 0 , [TIMER] = '''', [DUEDATE] = @pDate, [DUETIME] = @pTime, [REVIEW] = '''', [STATUS] = @pStatus where actionid = @intActionID and owner = ''Y'' and Deltype = ''Created'' -- Commit Transaction ------------------------------------------------------------------------------------------------------------------ COMMIT TRAN Key_Tran_01 IF @@error <> 0 GOTO Tran_Fail Select @pActionId = @intActionID -- End Of Processing -------------------------------------------------------------------------------------------------------------------- ExitPoint: Return -- Error Processing ------------------------------------------------------------------------------------------------------------------------------------- Tran_Fail: rollback tran Key_Tran_01 Select @pActionId = -1 goto ExitPoint END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDTaskListByActionTypeSet2Rev] Script Date: 10/01/2014 16:19:42 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByActionTypeSet2Rev]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListByActionTypeSet2Rev * * Returns the Task List to be displayed in WinDev/WebDev versions of the software * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDTaskListByActionTypeSet2Rev] (@Handler varchar(10), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @startno int, @count int, @ActionType varchar(500), @Search varchar(100)) RETURNS @TL TABLE ([taskid] int IDENTITY(1, 1), [ActionID] int, [AssignNo] int) AS BEGIN DECLARE @startdate datetime DECLARE @enddate datetime DECLARE @maxresult int SET @handler = RTrim(IsNull(@handler, '''')) SET @Team = RTRIM(IsNull(@team, '''')) SET @startdateT = IsNull(@startdateT, '''') SET @enddateT = IsNull(@enddateT, '''') SET @outstanding = isnull(@outstanding, 1) SET @maxresult = (@startno + @count - 1) IF (IsNull(@startdateT, '''') = '''') BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END ELSE BEGIN IF (isdate(@startdateT) = 1) BEGIN set @startdate = convert(datetime, replace(convert(varchar(10), convert(datetime, @startdateT), 121), ''-'', '''')) END ELSE BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END END IF (IsNull(@enddateT, '''') = '''') BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END ELSE BEGIN IF (isdate(@enddateT) = 1) BEGIN set @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), convert(datetime, @enddateT), 121), ''-'', ''''))) END ELSE BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END END IF (@Search <> ''%'') BEGIN IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @Team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @Handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @Team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END END END ELSE BEGIN IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @Team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[HANDLER] = @Handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @Team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END END END DELETE @TL WHERE [taskid] < @startno DELETE @TL WHERE [taskid] > (@maxresult) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDTaskListByActionTypeSet2] Script Date: 10/01/2014 16:19:41 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByActionTypeSet2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListByActionTypeSet2 * * Returns the Task List to be displayed in WinDev/WebDev versions of the software * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDTaskListByActionTypeSet2] (@Handler varchar(10), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @startno int, @count int, @ActionType varchar(500), @Search varchar(100)) RETURNS @TL TABLE ([taskid] int IDENTITY(1, 1), [ActionID] int, [AssignNo] int) AS BEGIN DECLARE @startdate datetime DECLARE @enddate datetime DECLARE @maxresult int SET @handler = RTrim(IsNull(@handler, '''')) SET @Team = RTRIM(IsNull(@team, '''')) SET @startdateT = IsNull(@startdateT, '''') SET @enddateT = IsNull(@enddateT, '''') SET @outstanding = isnull(@outstanding, 1) SET @maxresult = (@startno + @count - 1) IF (IsNull(@startdateT, '''') = '''') BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END ELSE BEGIN IF (isdate(@startdateT) = 1) BEGIN set @startdate = convert(datetime, replace(convert(varchar(10), convert(datetime, @startdateT), 121), ''-'', '''')) END ELSE BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END END IF (IsNull(@enddateT, '''') = '''') BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END ELSE BEGIN IF (isdate(@enddateT) = 1) BEGIN set @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), convert(datetime, @enddateT), 121), ''-'', ''''))) END ELSE BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END END IF (@Search <> ''%'') BEGIN IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @Team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @Handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @Team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END END END ELSE BEGIN IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @Team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[HANDLER] = @Handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @Team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END END END DELETE @TL WHERE [taskid] < @startno DELETE @TL WHERE [taskid] > (@maxresult) RETURN END ' END GO /****** Object: View [dbo].[HandlersDiary] Script Date: 10/01/2014 16:19:57 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[HandlersDiary]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[HandlersDiary] AS SELECT DISTINCT TOP 100 PERCENT [DATE], CASECODE, Status, ACTIONTYPE, PRIORITY, ACTIONID, HANDLER, HandlerName, Description, ClientCode, ClientName, TEAM, TEAMCODE FROM (SELECT (SELECT TOP 1 DATE FROM dbo.diary WHERE (CASECODE = diary_1.CASECODE) AND (ACTIONID = diary_1.ACTIONID)) AS DATE, diary_1.CASECODE, diary_1.STATUS AS Status, diary_1.ACTIONTYPE, diary_1.PRIORITY, diary_1.ACTIONID, DiaryDelegations_1.HANDLER, dbo.Handlers.NAME AS HandlerName, dbo.Handlers.TEAM, dbo.Handlers.TEAMCODE, dbo.Contacts.Code AS ClientCode, dbo.Contacts.Name AS ClientName, dbo.matters.Description FROM dbo.DiaryDelegations AS DiaryDelegations_1 INNER JOIN dbo.diary AS diary_1 ON DiaryDelegations_1.ACTIONID = diary_1.ACTIONID INNER JOIN dbo.matters ON diary_1.CASECODE = dbo.matters.Code INNER JOIN dbo.Contacts ON dbo.matters.ClientCode = dbo.Contacts.Code INNER JOIN dbo.Handlers ON DiaryDelegations_1.HANDLER = dbo.Handlers.CODE WHERE (dbo.Handlers.RETIRED <> ''Y'')) HandlerDiary ORDER BY CASECODE, ACTIONID ' GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListCount2] Script Date: 10/01/2014 16:18:24 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListCount2]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListCount2 * * Returns the Task List to be displayed in WinDev/WebDev versions of the software * - 2014-06-19 No change required to handle DisplayText * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDTaskListCount2] (@Handler varchar(10), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @Search varchar(100)) AS BEGIN DECLARE @startdate datetime DECLARE @enddate datetime SET @handler = RTrim(IsNull(@handler, '''')) SET @Team = RTRIM(IsNull(@team, '''')) SET @startdateT = IsNull(@startdateT, '''') SET @enddateT = IsNull(@enddateT, '''') SET @outstanding = isnull(@outstanding, 1) IF (IsNull(@startdateT, '''') = '''') BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END ELSE BEGIN IF (isdate(@startdateT) = 1) BEGIN set @startdate = convert(datetime, replace(convert(varchar(10), convert(datetime, @startdateT), 121), ''-'', '''')) END ELSE BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END END IF (IsNull(@enddateT, '''') = '''') BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END ELSE BEGIN IF (isdate(@enddateT) = 1) BEGIN set @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), convert(datetime, @enddateT), 121), ''-'', ''''))) END ELSE BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END END IF (@Search <> ''%'') BEGIN IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, '''') = 0 END ELSE IF (@handler = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, '''') = 0 END ELSE IF (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, '''') = 0 END ELSE BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Handler] = @handler AND DEL.[team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, '''') = 0 END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, '''') = 0 END ELSE IF (@handler = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, '''') = 0 END ELSE IF (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, '''') = 0 END ELSE BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Handler] = @handler AND DEL.[team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, '''') = 0 END END END ELSE BEGIN IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, '''') = 0 END ELSE IF (@handler = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, '''') = 0 END ELSE IF (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, '''') = 0 END ELSE BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[Handler] = @handler AND DEL.[team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, '''') = 0 END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, '''') = 0 END ELSE IF (@handler = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, '''') = 0 END ELSE IF (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, '''') = 0 END ELSE BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[Handler] = @handler AND DEL.[team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, '''') = 0 END END END END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListCountByActionType] Script Date: 10/01/2014 16:18:25 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListCountByActionType]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListCountByActionType * * Returns the number of items in the Task List to be displayed in * WinDev/WebDev versions of the software filtered by an Action Type * - 2014-06-19 No change required to handle DisplayText * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDTaskListCountByActionType] (@Handler varchar(10), @ActionType varchar(1), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @Search varchar(100)) AS BEGIN DECLARE @startdate datetime DECLARE @enddate datetime SET @handler = RTrim(IsNull(@handler, '''')) SET @Team = RTRIM(IsNull(@team, '''')) SET @ActionType = RTrim(IsNull(@ActionType, '''')) SET @startdateT = IsNull(@startdateT, '''') SET @enddateT = IsNull(@enddateT, '''') SET @outstanding = isnull(@outstanding, 1) IF (IsNull(@startdateT, '''') = '''') BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END ELSE BEGIN IF (isdate(@startdateT) = 1) BEGIN set @startdate = convert(datetime, replace(convert(varchar(10), convert(datetime, @startdateT), 121), ''-'', '''')) END ELSE BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END END IF (IsNull(@enddateT, '''') = '''') BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END ELSE BEGIN IF (isdate(@enddateT) = 1) BEGIN set @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), convert(datetime, @enddateT), 121), ''-'', ''''))) END ELSE BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END END IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = @ActionType END ELSE IF (@handler = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = @ActionType END ELSE IF (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = @ActionType END ELSE BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Handler] = @handler AND DEL.[team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = @ActionType END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND DEL.[ActionType] = @ActionType END ELSE IF (@handler = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND DEL.[ActionType] = @ActionType END ELSE IF (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND DEL.[ActionType] = @ActionType END ELSE BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Handler] = @handler AND DEL.[team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND DEL.[ActionType] = @ActionType END END END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListCount] Script Date: 10/01/2014 16:18:24 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListCount]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListCount * * Returns the Task List to be displayed in WinDev/WebDev versions of the software * - 2014-06-19 No change required to handle DisplayText * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDTaskListCount] (@Handler varchar(10), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @Search varchar(100)) AS BEGIN DECLARE @startdate datetime DECLARE @enddate datetime SET @handler = RTrim(IsNull(@handler, '''')) SET @Team = RTRIM(IsNull(@team, '''')) SET @startdateT = IsNull(@startdateT, '''') SET @enddateT = IsNull(@enddateT, '''') SET @outstanding = isnull(@outstanding, 1) IF (IsNull(@startdateT, '''') = '''') BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END ELSE BEGIN IF (isdate(@startdateT) = 1) BEGIN set @startdate = convert(datetime, replace(convert(varchar(10), convert(datetime, @startdateT), 121), ''-'', '''')) END ELSE BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END END IF (IsNull(@enddateT, '''') = '''') BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END ELSE BEGIN IF (isdate(@enddateT) = 1) BEGIN set @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), convert(datetime, @enddateT), 121), ''-'', ''''))) END ELSE BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END END IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') END ELSE IF (@handler = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') END ELSE IF (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') END ELSE BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Handler] = @handler AND DEL.[team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 END ELSE IF (@handler = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 END ELSE IF (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 END ELSE BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Handler] = @handler AND DEL.[team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 END END END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListCountByHighlight] Script Date: 10/01/2014 16:18:27 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListCountByHighlight]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListCountByHighlight * * Returns the number of highlighted items in the Task List to be displayed in * WinDev/WebDev versions of the software filtered by an Action Type * - 2014-06-19 No change required to handle DisplayText * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDTaskListCountByHighlight] (@Handler varchar(10), @ActionType varchar(1), @Highlighted varchar(1), @Priority varchar(1), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @Search varchar(100)) AS BEGIN DECLARE @startdate datetime DECLARE @enddate datetime SET @handler = RTrim(IsNull(@handler, '''')) SET @Team = RTRIM(IsNull(@team, '''')) SET @ActionType = RTrim(IsNull(@ActionType, '''')) SET @Highlighted = RTrim(IsNull(@Highlighted, '''')) SET @Priority = RTrim(IsNull(@Priority, '''')) SET @startdateT = IsNull(@startdateT, '''') SET @enddateT = IsNull(@enddateT, '''') SET @outstanding = isnull(@outstanding, 1) IF (IsNull(@startdateT, '''') = '''') BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END ELSE BEGIN IF (isdate(@startdateT) = 1) BEGIN set @startdate = convert(datetime, replace(convert(varchar(10), convert(datetime, @startdateT), 121), ''-'', '''')) END ELSE BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END END IF (IsNull(@enddateT, '''') = '''') BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END ELSE BEGIN IF (isdate(@enddateT) = 1) BEGIN set @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), convert(datetime, @enddateT), 121), ''-'', ''''))) END ELSE BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END END IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = CASE WHEN RTRIM(IsNull(@ActionType, '''')) = '''' THEN DEL.[ActionType] ELSE @ActionType END END ELSE IF (@handler = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = CASE WHEN RTRIM(IsNull(@ActionType, '''')) = '''' THEN DEL.[ActionType] ELSE @ActionType END END ELSE IF (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = CASE WHEN RTRIM(IsNull(@ActionType, '''')) = '''' THEN DEL.[ActionType] ELSE @ActionType END END ELSE BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Handler] = @handler AND DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = CASE WHEN RTRIM(IsNull(@ActionType, '''')) = '''' THEN DEL.[ActionType] ELSE @ActionType END END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND DEL.[ActionType] = CASE WHEN RTRIM(IsNull(@ActionType, '''')) = '''' THEN DEL.[ActionType] ELSE @ActionType END END ELSE IF (@handler = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND DEL.[ActionType] = CASE WHEN RTRIM(IsNull(@ActionType, '''')) = '''' THEN DEL.[ActionType] ELSE @ActionType END END ELSE IF (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND DEL.[ActionType] = CASE WHEN RTRIM(IsNull(@ActionType, '''')) = '''' THEN DEL.[ActionType] ELSE @ActionType END END ELSE BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Handler] = @handler AND DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND DEL.[ActionType] = CASE WHEN RTRIM(IsNull(@ActionType, '''')) = '''' THEN DEL.[ActionType] ELSE @ActionType END END END END ' END GO /****** Object: View [dbo].[UDF_TimeEntryDebtLedger] Script Date: 10/01/2014 16:20:08 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[UDF_TimeEntryDebtLedger]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[UDF_TimeEntryDebtLedger] AS SELECT DISTINCT TOP 100 PERCENT ID, matter, Client, DATE, DESCRIPTION, FEEEARNER, TASK, VALUE, OUTLAY, VAT, FEES, TYPE, TIME, RATE, CHARGE, TIMEORCHARGE, REC_IRR, Period, YEAR FROM (SELECT dbo.TimeEntry.RECORDID AS ID, dbo.TimeEntry.MATTER AS matter, dbo.matters.ClientCode AS Client, dbo.TimeEntry.DATE, dbo.TimeEntry.COMMENT AS DESCRIPTION, dbo.TimeEntry.FEEEARN AS FEEEARNER, dbo.TimeEntry.TASK, 0 AS VALUE, 0 AS OUTLAY, 0 AS VAT, 0 AS FEES, '''' AS TYPE, dbo.TimeEntry.TIME, dbo.TimeEntry.RATE, dbo.TimeEntry.CHARGE, dbo.TimeEntry.TIMEORCHARGE, dbo.TimeEntry.REC_IRR, dbo.TimeEntry.PERIOD AS Period, dbo.TimeEntry.YEAR FROM dbo.TimeEntry INNER JOIN dbo.matters ON dbo.TimeEntry.MATTER = dbo.matters.Code WHERE (dbo.TimeEntry.MATTER <> ''~'') UNION SELECT PREF AS ID, MATTER, CLIENT AS Client, DATE AS Date, NARR AS DESCRIPTION, '''' AS FEEEARNER, '''' AS TASK, ORIGINAL AS VALUE, OROUTLAY AS OUTLAY, ORVAT AS VAT, ORFEES AS FEES, TYPE, 0 AS Time, 0 AS RATE, 0 AS CHARGE, '''' AS TIMEORCHARGE, '''' AS REC_IRR, PER AS Period, YEAR FROM dbo.DebtorsLedger WHERE (MATTER <> ''~'')) AS TimeEntryDebtLedger_1 ORDER BY matter, YEAR, Period, DATE ' GO /****** Object: StoredProcedure [dbo].[spValidateEnteredCase] Script Date: 10/01/2014 16:18:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spValidateEnteredCase]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[spValidateEnteredCase] ( @MatterCode AS NVARCHAR(20) ) AS BEGIN IF EXISTS(SELECT 1 FROM Matters A WHERE Code LIKE @MatterCode AND [Closed] = ''N'') SELECT [Description] FROM Matters A WHERE Code LIKE @MatterCode ELSE SELECT 0 END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDTaskListByHighlightSet2Rev] Script Date: 10/01/2014 16:19:45 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByHighlightSet2Rev]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListByHighlightSet2Rev * * Returns the Task List to be displayed in WinDev/WebDev versions of the software * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDTaskListByHighlightSet2Rev] (@Handler varchar(10), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @startno int, @count int, @ActionType varchar(500), @Highlighted varchar(1), @Priority varchar(1), @Search varchar(100)) RETURNS @TL TABLE ([taskid] int IDENTITY(1, 1), [ActionID] int, [AssignNo] int) AS BEGIN DECLARE @startdate datetime DECLARE @enddate datetime DECLARE @maxresult int SET @Highlighted = RTrim(IsNull(@Highlighted, '''')) SET @Priority = RTrim(IsNull(@Priority, '''')) SET @handler = RTrim(IsNull(@handler, '''')) SET @Team = RTRIM(IsNull(@team, '''')) SET @startdateT = IsNull(@startdateT, '''') SET @enddateT = IsNull(@enddateT, '''') SET @outstanding = isnull(@outstanding, 1) SET @maxresult = (@startno + @count - 1) IF (IsNull(@startdateT, '''') = '''') BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END ELSE BEGIN IF (isdate(@startdateT) = 1) BEGIN set @startdate = convert(datetime, replace(convert(varchar(10), convert(datetime, @startdateT), 121), ''-'', '''')) END ELSE BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END END IF (IsNull(@enddateT, '''') = '''') BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END ELSE BEGIN IF (isdate(@enddateT) = 1) BEGIN set @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), convert(datetime, @enddateT), 121), ''-'', ''''))) END ELSE BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END END IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @Team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @Handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @Team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END END DELETE @TL WHERE [taskid] < @startno DELETE @TL WHERE [taskid] > (@maxresult) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDPopDayBook] Script Date: 10/01/2014 16:19:29 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDPopDayBook]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************ * * Populate Day Book - Table Function returning the content of the Day Book * *************************************************************************/ create function [dbo].[ky_WDPopDayBook] (@HANDLER VARCHAR(10), @RECORDID Int) RETURNS @TDB TABLE ([id] int identity(1, 1), [MATTER] varchar(20), [ClientCode] varchar(10), [FEEEARN] varchar(10), [DATE] varchar(11), [TIME] int, [FMTTIME] varchar(6), [RATE] decimal(7, 2), [CHARGE] decimal(7, 2), [COMMENT] varchar(255), [TIMEORCHARGE] varchar(1), [REC_IRR] varchar(1), [RECORDID] int, [NAME] varchar(100), [Description] varchar(300), [STOPWATCHSTARTTIME] datetime, [STOPWATCHSTATUS] int, [SWInactive] int, [SWRunning] int, [SWPaused] int, [TASK] varchar(10), [NCCCODE] varchar(5), [ActionId] int, [DBDescription] varchar(80), [MATChargeLevel] int, [MATChargeOutRateInd] varchar(1), [CTCChargeOutRateInd] varchar(1), [MCORRate] decimal(18, 2), [CCRRate] decimal(18, 2), [FERRate] decimal(18, 2), [FEPChargeFct] decimal(18, 2)) AS BEGIN IF (ISNULL(@RECORDID, 0) = 0) BEGIN INSERT INTO @TDB ([MATTER], [ClientCode], [FEEEARN], [DATE], [TIME], [FMTTIME], [RATE], [CHARGE], [COMMENT], [TIMEORCHARGE], [REC_IRR], [RECORDID], [NAME], [Description], [STOPWATCHSTARTTIME], [STOPWATCHSTATUS], [SWInactive], [SWRunning], [SWPaused], [TASK], [NCCCODE], [ActionId], [DBDescription], [MATChargeLevel], [MATChargeOutRateInd], [CTCChargeOutRateInd]) SELECT CASE WHEN RTRIM(ISNULL(TDB.[MATTER], '''')) = '''' THEN ''n/a'' ELSE RTRIM(ISNULL(TDB.[MATTER], '''')) END AS [MATTER], ISNULL(MAT.[ClientCode], '''') AS [ClientCode], RTRIM(ISNULL(TDB.[FEEEARN], '''')) AS [FEEEARN], Convert(VARCHAR, TDB.[DATE], 106) AS [DATE], TDB.[TIME] AS [TIME], [dbo].[ky_TimeFromMinutes](TDB.[Time]) AS [FMTTIME], 0 AS [RATE], Convert(numeric(7, 2), 0) AS [CHARGE], RTRIM(ISNULL(TDB.[COMMENT], '''')) AS [COMMENT], TDB.[TIMEORCHARGE] AS [TIMEORCHARGE], TDB.[REC_IRR] AS [REC_IRR], TDB.[RECORDID] AS [RECORDID], RTRIM(ISNULL(CTC.[NAME], ''n/a'')) AS [NAME], RTRIM(ISNULL(MAT.[Description], ''Admin'')) AS [Description], TDB.[StopwatchStartTime] AS [StopwatchStartTime], TDB.[StopwatchStatus] AS [StopwatchStatus], CASE WHEN ISNULL(TDB.[StopwatchStatus], 0) = 0 THEN 1 ELSE 0 END AS [SWInactive], CASE WHEN ISNULL(TDB.[StopwatchStatus], 0) = 1 THEN 1 ELSE 0 END AS [SWRunning], CASE WHEN ISNULL(TDB.[StopwatchStatus], 0) = 2 THEN 1 ELSE 0 END AS [SWPaused], RTRIM(ISNULL(TDB.[TASK], '''')) AS [TASK], RTRIM(ISNULL(TDB.[NCCCODE], '''')) AS [NCCCODE], ISNULL(TDB.[ActionId], 0) AS [ActionId], [dbo].[ky_removespuriouswhitespace](ISNULL(TDB.[COMMENT], ''''), 80) AS [DBDescription], ISNULL(MAT.[ChargeLevel], 3) AS [MATChargeLevel], ISNULL(MAT.[ChargeOutRateInd], ''N'') AS [MATChargeOutRateInd], ISNULL(CTC.[ChargeOutRateInd], ''N'') AS [CTCChargeOutRateInd] FROM [dbo].[TimeDayBook] TDB LEFT OUTER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[Contacts] CTC ON CTC.[CODE] = MAT.[ClientCode] ON MAT.[CODE] = TDB.[MATTER] WHERE TDB.[FEEEARN] = @HANDLER END ELSE BEGIN INSERT INTO @TDB ([MATTER], [ClientCode], [FEEEARN], [DATE], [TIME], [FMTTIME], [RATE], [CHARGE], [COMMENT], [TIMEORCHARGE], [REC_IRR], [RECORDID], [NAME], [Description], [STOPWATCHSTARTTIME], [STOPWATCHSTATUS], [SWInactive], [SWRunning], [SWPaused], [TASK], [NCCCODE], [ActionId], [DBDescription], [MATChargeLevel], [MATChargeOutRateInd], [CTCChargeOutRateInd]) SELECT CASE WHEN RTRIM(ISNULL(TDB.[MATTER], '''')) = '''' THEN ''n/a'' ELSE RTRIM(ISNULL(TDB.[MATTER], '''')) END AS [MATTER], ISNULL(MAT.[ClientCode], '''') AS [ClientCode], RTRIM(ISNULL(TDB.[FEEEARN], '''')) AS [FEEEARN], Convert(VARCHAR, TDB.[DATE], 106) AS [DATE], TDB.[TIME] AS [TIME], [dbo].[ky_TimeFromMinutes](TDB.[Time]) AS [FMTTIME], 0 AS [RATE], Convert(numeric(7, 2), 0) AS [CHARGE], RTRIM(ISNULL(TDB.[COMMENT], '''')) AS [COMMENT], TDB.[TIMEORCHARGE] AS [TIMEORCHARGE], TDB.[REC_IRR] AS [REC_IRR], TDB.[RECORDID] AS [RECORDID], RTRIM(ISNULL(CTC.[NAME], ''n/a'')) AS [NAME], RTRIM(ISNULL(MAT.[Description], ''Admin'')) AS [Description], TDB.[StopwatchStartTime] AS [StopwatchStartTime], TDB.[StopwatchStatus] AS [StopwatchStatus], CASE WHEN ISNULL(TDB.[StopwatchStatus], 0) = 0 THEN 1 ELSE 0 END AS [SWInactive], CASE WHEN ISNULL(TDB.[StopwatchStatus], 0) = 1 THEN 1 ELSE 0 END AS [SWRunning], CASE WHEN ISNULL(TDB.[StopwatchStatus], 0) = 2 THEN 1 ELSE 0 END AS [SWPaused], RTRIM(ISNULL(TDB.[TASK], '''')) AS [TASK], RTRIM(ISNULL(TDB.[NCCCODE], '''')) AS [NCCCODE], ISNULL(TDB.[ActionId], 0) AS [ActionId], [dbo].[ky_removespuriouswhitespace](ISNULL(TDB.[COMMENT], ''''), 80) AS [DBDescription], ISNULL(MAT.[ChargeLevel], 3) AS [MATChargeLevel], ISNULL(MAT.[ChargeOutRateInd], ''N'') AS [MATChargeOutRateInd], ISNULL(CTC.[ChargeOutRateInd], ''N'') AS [CTCChargeOutRateInd] FROM [dbo].[TimeDayBook] TDB LEFT OUTER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[Contacts] CTC ON CTC.[CODE] = MAT.[ClientCode] ON MAT.[CODE] = TDB.[MATTER] WHERE TDB.[FEEEARN] = @HANDLER AND TDB.[RECORDID] = @RECORDID END UPDATE TDB SET TDB.[MCORRate] = IsNull(MCOR.[RATE], 0) FROM @TDB TDB LEFT OUTER JOIN [dbo].[MatterChargeOutRates] MCOR ON MCOR.[FECode] = TDB.[FEEEARN] AND MCOR.[MatterCode] = TDB.[MATTER] UPDATE TDB SET TDB.[CCRRate] = IsNull(CCOR.[RATE], 0) FROM @TDB TDB LEFT OUTER JOIN [dbo].[ClientChargeOutRates] CCOR ON CCOR.[FECode] = TDB.[FEEEARN] AND CCOR.[ClientCode] = TDB.[ClientCode] UPDATE TDB SET TDB.[FERRate] = CASE TDB.[MATCHARGELEVEL] 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 FROM @TDB TDB LEFT OUTER JOIN [dbo].[Handlers] HDL ON HDL.[Code] = TDB.[FEEEARN] UPDATE TDB SET [FEPChargeFct] = 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 FROM @TDB TDB LEFT OUTER JOIN [dbo].[TasksCodes] TAC ON TAC.[CODE] = CASE RTRIM(ISNULL(TDB.MATTER, '''')) WHEN '''' THEN ''***'' ELSE TDB.[TASK] END UPDATE TDB SET TDB.[RATE] = CASE WHEN [MATChargeOutRateInd] = ''Y'' THEN [MCORRate] WHEN [CTCChargeOutRateInd] = ''Y'' THEN ISNULL(TDB.[CCRRATE], 0) ELSE ISNULL(TDB.[FEPChargeFct], 1.00) * TDB.[FERRATE] END, TDB.[CHARGE] = Convert(numeric(7, 2), ( ( ISNULL(TDB.[TIME], 0) * CASE WHEN [MATChargeOutRateInd] = ''Y'' THEN ISNULL([MCORRATE], 0) WHEN [CTCChargeOutRateInd] = ''Y'' THEN ISNULL([CCRRATE], 0) ELSE ISNULL([FEPChargeFct], 1.00) * [FERRATE] END) / 60)) FROM @TDB TDB RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDTaskListByHighlightSet2] Script Date: 10/01/2014 16:19:44 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByHighlightSet2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListByHighlightSet2 * * Returns the Task List to be displayed in WinDev/WebDev versions of the software * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDTaskListByHighlightSet2] (@Handler varchar(10), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @startno int, @count int, @ActionType varchar(500), @Highlighted varchar(1), @Priority varchar(1), @Search varchar(100)) RETURNS @TL TABLE ([taskid] int IDENTITY(1, 1), [ActionID] int, [AssignNo] int) AS BEGIN DECLARE @startdate datetime DECLARE @enddate datetime DECLARE @maxresult int SET @Highlighted = RTrim(IsNull(@Highlighted, '''')) SET @Priority = RTrim(IsNull(@Priority, '''')) SET @handler = RTrim(IsNull(@handler, '''')) SET @Team = RTRIM(IsNull(@team, '''')) SET @startdateT = IsNull(@startdateT, '''') SET @enddateT = IsNull(@enddateT, '''') SET @outstanding = isnull(@outstanding, 1) SET @maxresult = (@startno + @count - 1) IF (IsNull(@startdateT, '''') = '''') BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END ELSE BEGIN IF (isdate(@startdateT) = 1) BEGIN set @startdate = convert(datetime, replace(convert(varchar(10), convert(datetime, @startdateT), 121), ''-'', '''')) END ELSE BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END END IF (IsNull(@enddateT, '''') = '''') BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END ELSE BEGIN IF (isdate(@enddateT) = 1) BEGIN set @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), convert(datetime, @enddateT), 121), ''-'', ''''))) END ELSE BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END END IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @Team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @Handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@maxresult) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @Team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END END DELETE @TL WHERE [taskid] < @startno DELETE @TL WHERE [taskid] > (@maxresult) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDTaskListByActionTypeSet] Script Date: 10/01/2014 16:19:41 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByActionTypeSet]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListByActionTypeSet * * Returns the Task List to be displayed in WinDev/WebDev versions of the software * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDTaskListByActionTypeSet] (@Handler varchar(10), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @startno int, @count int, @ActionType varchar(1), @Search varchar(100)) RETURNS @TL TABLE ([taskid] int IDENTITY(1, 1), [ActionID] int, [AssignNo] int) AS BEGIN DECLARE @startdate datetime DECLARE @enddate datetime SET @handler = RTrim(IsNull(@handler, '''')) SET @Team = RTRIM(IsNull(@team, '''')) SET @startdateT = IsNull(@startdateT, '''') SET @enddateT = IsNull(@enddateT, '''') SET @outstanding = isnull(@outstanding, 1) IF (IsNull(@startdateT, '''') = '''') BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END ELSE BEGIN IF (isdate(@startdateT) = 1) BEGIN set @startdate = convert(datetime, replace(convert(varchar(10), convert(datetime, @startdateT), 121), ''-'', '''')) END ELSE BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END END IF (IsNull(@enddateT, '''') = '''') BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END ELSE BEGIN IF (isdate(@enddateT) = 1) BEGIN set @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), convert(datetime, @enddateT), 121), ''-'', ''''))) END ELSE BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END END IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = @ActionType) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = @ActionType) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = @ActionType) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @Team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = @ActionType) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = @ActionType) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = @ActionType) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @Handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = @ActionType) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @Team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[ActionType] = @ActionType) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END END DELETE @TL WHERE [taskid] < @startno DELETE @TL WHERE [taskid] > (@startno + @count - 1) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDTaskListSet2] Script Date: 10/01/2014 16:19:47 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListSet2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListSet2 * * Returns the Task List to be displayed in WinDev/WebDev versions of the software * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDTaskListSet2] (@Handler varchar(10), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @startno int, @count int, @Search varchar(100)) RETURNS @TL TABLE ([taskid] int IDENTITY(1, 1), [ActionID] int, [AssignNo] int) AS BEGIN DECLARE @startdate datetime DECLARE @enddate datetime SET @handler = RTrim(IsNull(@handler, '''')) SET @Team = RTRIM(IsNull(@team, '''')) SET @startdateT = IsNull(@startdateT, '''') SET @enddateT = IsNull(@enddateT, '''') SET @outstanding = isnull(@outstanding, 1) IF (IsNull(@startdateT, '''') = '''') BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END ELSE BEGIN IF (isdate(@startdateT) = 1) BEGIN set @startdate = convert(datetime, replace(convert(varchar(10), convert(datetime, @startdateT), 121), ''-'', '''')) END ELSE BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END END IF (IsNull(@enddateT, '''') = '''') BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END ELSE BEGIN IF (isdate(@enddateT) = 1) BEGIN set @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), convert(datetime, @enddateT), 121), ''-'', ''''))) END ELSE BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END END IF (@Search <> ''%'') BEGIN IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END END END ELSE BEGIN IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[HANDLER] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE], OD.[TIME], OD.[AssignNo], OD.[ActionID] END END END DELETE @TL WHERE [taskid] < @startno DELETE @TL WHERE [taskid] > (@startno + @count - 1) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDTaskListSet2Rev] Script Date: 10/01/2014 16:19:48 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListSet2Rev]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListSet2Rev * * Returns the Task List to be displayed in WinDev/WebDev versions of the software * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDTaskListSet2Rev] (@Handler varchar(10), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @startno int, @count int, @Search varchar(100)) RETURNS @TL TABLE ([taskid] int IDENTITY(1, 1), [ActionID] int, [AssignNo] int) AS BEGIN DECLARE @startdate datetime DECLARE @enddate datetime SET @handler = RTrim(IsNull(@handler, '''')) SET @Team = RTRIM(IsNull(@team, '''')) SET @startdateT = IsNull(@startdateT, '''') SET @enddateT = IsNull(@enddateT, '''') SET @outstanding = isnull(@outstanding, 1) IF (IsNull(@startdateT, '''') = '''') BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END ELSE BEGIN IF (isdate(@startdateT) = 1) BEGIN set @startdate = convert(datetime, replace(convert(varchar(10), convert(datetime, @startdateT), 121), ''-'', '''')) END ELSE BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END END IF (IsNull(@enddateT, '''') = '''') BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END ELSE BEGIN IF (isdate(@enddateT) = 1) BEGIN set @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), convert(datetime, @enddateT), 121), ''-'', ''''))) END ELSE BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END END IF (@Search <> ''%'') BEGIN IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END END END ELSE BEGIN IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE IF (@handler = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE IF (@team = '''') BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[HANDLER] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END ELSE BEGIN INSERT INTO @TL ([ActionID], [AssignNo]) SELECT TOP (@startno + @count - 1) OD.[ActionID], OD.[AssignNo] FROM (SELECT DEL.[ActionID], DEL.[AssignNo], DEL.[DATE], DEL.[TIME] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[HANDLER] = @handler AND DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[STATUS] = 0 AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'')) OD ORDER BY OD.[DATE] DESC, OD.[TIME] DESC, OD.[AssignNo] DESC, OD.[ActionID] DESC END END END DELETE @TL WHERE [taskid] < @startno DELETE @TL WHERE [taskid] > (@startno + @count - 1) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDRecentMatterList] Script Date: 10/01/2014 16:19:30 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDRecentMatterList]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' CREATE FUNCTION [dbo].[ky_WDRecentMatterList] (@Handler VARCHAR(10)) RETURNS @MATZ TABLE ([ID] INT identity(1, 1), [CODE] VARCHAR(20)) AS /************************************************************************ * * Recent Matter List - with Identity Column to deal with Order By changes * in SQL 2012 * Modify History *************************************************************************/ BEGIN INSERT INTO @MATZ ([CODE]) SELECT MAT.[Code] AS [MatterCode] FROM [dbo].[matters] MAT INNER JOIN [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[Code] = HAN.[Team] ON HAN.[Code] = MAT.[FECode] LEFT OUTER JOIN [dbo].[RecentMatterList] RML ON RML.[FEE] = @Handler AND RML.[Matter] = MAT.[Code] WHERE [MAT].[Code] is NOT NULL ORDER BY RML.[datefield] desc, MAT.[Code] RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListCountByHighlight2] Script Date: 10/01/2014 16:18:28 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListCountByHighlight2]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListCountByHighlight2 * * Returns the number of highlighted items in the Task List to be displayed in * WinDev/WebDev versions of the software filtered by an Action Type * - 2014-06-19 No change required to handle DisplayText * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDTaskListCountByHighlight2] (@Handler varchar(10), @ActionType varchar(500), @Highlighted varchar(1), @Priority varchar(1), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @Search varchar(100)) AS BEGIN DECLARE @startdate datetime DECLARE @enddate datetime SET @handler = RTrim(IsNull(@handler, '''')) SET @Team = RTRIM(IsNull(@team, '''')) SET @ActionType = RTrim(IsNull(@ActionType, '''')) SET @Highlighted = RTrim(IsNull(@Highlighted, '''')) SET @Priority = RTrim(IsNull(@Priority, '''')) SET @startdateT = IsNull(@startdateT, '''') SET @enddateT = IsNull(@enddateT, '''') SET @outstanding = isnull(@outstanding, 1) IF (IsNull(@startdateT, '''') = '''') BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END ELSE BEGIN IF (isdate(@startdateT) = 1) BEGIN set @startdate = convert(datetime, replace(convert(varchar(10), convert(datetime, @startdateT), 121), ''-'', '''')) END ELSE BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END END IF (IsNull(@enddateT, '''') = '''') BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END ELSE BEGIN IF (isdate(@enddateT) = 1) BEGIN set @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), convert(datetime, @enddateT), 121), ''-'', ''''))) END ELSE BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END END IF (@Search <> ''%'') BEGIN IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE IF (@handler = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE IF (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[HANDLER] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Handler] = @handler AND DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE IF (@handler = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE IF (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Handler] = @handler AND DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END END END ELSE BEGIN IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE IF (@handler = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end WHERE DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE IF (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end WHERE DEL.[HANDLER] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end WHERE DEL.[Handler] = @handler AND DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE IF (@handler = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end WHERE DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE IF (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND IsNull(DIA.[HIGHLIGHTED], '''') = CASE WHEN @Highlighted = ''Y'' THEN ''Y'' ELSE IsNull(DIA.[HIGHLIGHTED], '''') end AND DIA.[PRIORITY] = CASE WHEN @Priority = '''' THEN DIA.[PRIORITY] ELSE @Priority end WHERE DEL.[Handler] = @handler AND DEL.[TEAM] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END END END END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListCountByActionType2] Script Date: 10/01/2014 16:18:26 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListCountByActionType2]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListCountByActionType2 * * Returns the number of items in the Task List to be displayed in * WinDev/WebDev versions of the software filtered by an Action Type * - 2014-06-19 No change required to handle DisplayText * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDTaskListCountByActionType2] (@Handler varchar(10), @ActionType varchar(500), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @Search varchar(100)) AS BEGIN DECLARE @startdate datetime DECLARE @enddate datetime SET @handler = RTrim(IsNull(@handler, '''')) SET @Team = RTRIM(IsNull(@team, '''')) SET @ActionType = RTrim(IsNull(@ActionType, '''')) SET @startdateT = IsNull(@startdateT, '''') SET @enddateT = IsNull(@enddateT, '''') SET @outstanding = isnull(@outstanding, 1) IF (IsNull(@startdateT, '''') = '''') BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END ELSE BEGIN IF (isdate(@startdateT) = 1) BEGIN set @startdate = convert(datetime, replace(convert(varchar(10), convert(datetime, @startdateT), 121), ''-'', '''')) END ELSE BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END END IF (IsNull(@enddateT, '''') = '''') BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END ELSE BEGIN IF (isdate(@enddateT) = 1) BEGIN set @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), convert(datetime, @enddateT), 121), ''-'', ''''))) END ELSE BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END END IF (@Search <> ''%'') BEGIN IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE IF (@handler = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE IF (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Handler] = @handler AND DEL.[team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE IF (@handler = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE IF (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] AND ( CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) WHERE DEL.[Handler] = @handler AND DEL.[team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END END END ELSE BEGIN IF (@outstanding = 0) BEGIN IF (@handler = '''') AND (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE IF (@handler = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE IF (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[Handler] = @handler AND DEL.[team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END END ELSE BEGIN IF (@handler = '''') AND (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE IF (@handler = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE IF (@team = '''') BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END ELSE BEGIN SELECT COUNT(1) AS TOTAL FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = DEL.[ActionID] WHERE DEL.[Handler] = @handler AND DEL.[team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND DEL.[Status] = 0 AND ( @ActionType LIKE ''%*'' + DEL.[ACTIONTYPE] + ''*%'' OR @ActionType = '''') --AND [dbo].[ky_NewerAssignments](DEL.[AssignNo], @startdate, @enddate, @Handler, @Team, @outstanding, @ActionType) = 0 END END END END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDSetTimeDayBookRateCharge] Script Date: 10/01/2014 16:18:16 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSetTimeDayBookRateCharge]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDSetTimeDayBookRateCharge * * Sets the Rate and Charge values according to the Charge Out Rates indicators and/or * the Task Code used in the TimeDayBook. * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDSetTimeDayBookRateCharge] (@recordid int) AS BEGIN UPDATE TDB SET TDB.[Time] = Ceiling(TDB.[Time] / IsNull(TUT.[NumValue], 1)) * IsNull(TUT.[NumValue], 1), TDB.[RATE] = Case When IsNull(MAT.[ChargeOutRateInd], ''N'') = ''Y'' THEN IsNull(MCR.[Rate], 0) When IsNull(CON.[ChargeOutRateInd], ''N'') = ''Y'' THEN IsNull(CCR.[Rate], 0) ELSE IsNull(FEP.[ChargeFct], 1.00) * FER.[Rate] END, TDB.[Charge] = Convert(numeric(7, 2), ( ( Ceiling(TDB.[Time] / IsNull(TUT.[NumValue], 1)) * IsNull(TUT.[NumValue], 1) * Case When IsNull(MAT.[ChargeOutRateInd], ''N'') = ''Y'' THEN IsNull(MCR.[Rate], 0) When IsNull(CON.[ChargeOutRateInd], ''N'') = ''Y'' THEN IsNull(CCR.[Rate], 0) ELSE IsNull(FEP.[ChargeFct], 1.00) * FER.[Rate] END) / 60)) from [dbo].[TimeDayBook] TDB LEFT OUTER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CON ON CON.[Code] = MAT.[ClientCode] ON MAT.[code] = TDB.[MATTER] OUTER APPLY (SELECT MCOR.[Rate] FROM [dbo].[MatterChargeOutRates] MCOR WHERE MCOR.[FeCode] = TDB.[FEEEARN] AND MCOR.[MatterCode] = TDB.[MATTER]) MCR OUTER APPLY (SELECT CCOR.[Rate] FROM [dbo].[ClientChargeOutRates] CCOR WHERE CCOR.[FeCode] = TDB.[FEEEARN] 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] = TDB.[FEEEARN]) FER OUTER APPLY (SELECT 1 AS [NumValue]) TUT 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] = CASE RTrim(IsNull(TDB.MATTER, '''')) WHEN '''' THEN TDB.[NCCCODE] ELSE TDB.[TASK] END) FEP WHERE TDB.[RECORDID] = @RECORDID END' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDMatterList] Script Date: 10/01/2014 16:19:27 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDMatterList]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDMatterList * * Lists cases. With support for Paging. * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDMatterList] (@fecode varchar(10), @startno int, @count int, @search varchar(50), @order int) RETURNS @ML TABLE ([matid] int IDENTITY(1, 1), [CaseCode] varchar(20), [FECode] varchar(10), [HandlerName] varchar(100), [ContactName] varchar(100), [Description] varchar(200), [Colour] varchar(10), [ColourDescription] varchar(50), [User1] varchar(50), [User2] varchar(50), [User3] varchar(50), [LastAccessed] varchar(21), [TDBTime] varchar(5), [TDBStopwatchRunning] int, [TDBRecordID] int) AS BEGIN SET @search = ''%'' + RTrim(IsNull(@Search, '''')) + ''%'' SET @search = Replace(@search, ''%%'', ''%'') /* @order = display order 1 = by Code 2 = by Most Recent First */ /* This avoids unnecessary nesting as we can subsequently break out of each IF statement. SQL Server doesn''t have a "switch" construct. */ WHILE (1 = 1) BEGIN IF (@order = 3) BEGIN INSERT INTO @ML (CASECODE) SELECT RTRIM(IsNull(MAT.[CODE], '''')) AS [CASECODE] FROM [dbo].[MATTERS] MAT INNER JOIN [dbo].[contacts] CON ON CON.[Code] = MAT.[ClientCode] LEFT OUTER JOIN ( SELECT RL.[DateField], RL.[MATTER] FROM [dbo].[RecentMatterList] RL WHERE RL.[FEE] = @fecode) RML ON RML.[MATTER] = MAT.[CODE] WHERE ( MAT.[Description] LIKE @search OR CON.[NAME] LIKE @search) ORDER BY IsNull(RML.[DateField], convert(datetime, 0)) desc, MAT.[CODE] ASC BREAK END INSERT INTO @ML (CASECODE) SELECT RTRIM(IsNull(MAT.[CODE], '''')) AS [CASECODE] FROM [dbo].[MATTERS] MAT INNER JOIN [dbo].[contacts] CON ON CON.[Code] = MAT.[ClientCode] WHERE ( MAT.[Description] LIKE @search OR CON.[NAME] LIKE @search) BREAK END DELETE @ML WHERE [matid] < @startno DELETE @ML WHERE [matid] > (@startno + @count - 1) UPDATE ML SET ML.[DESCRIPTION] = RTrim(IsNull(MAT.[DESCRIPTION], '''')), ML.[ContactName] = RTrim(IsNull(CON.[Name], '''')), ML.[FECode] = RTrim(IsNull(MAT.[FECode], '''')), ML.[HandlerName] = RTrim(IsNull(HAN.[Name], '''')), ML.[Colour] = RTrim(IsNull(MAT.[FileColour], '''')), ML.[ColourDescription] = RTrim(IsNull(COL.[COLOURDESC], '''')), ML.[User1] = RTRIM(ISNULL(MAT.[User1], '''')), ML.[User2] = RTRIM(ISNULL(MAT.[User2], '''')), ML.[User3] = RTRIM(ISNULL(MAT.[User3], '''')), ML.[LastAccessed] = CASE WHEN IsNull(RML.[DateField], convert(datetime, 0)) = convert(datetime, 0) THEN '''' ELSE convert(varchar, RML.[DateField], 106) + '' '' + convert(varchar(5), RML.[DateField], 108) END FROM @ML ML INNER JOIN [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[FileColours] COL ON COL.[COLOURCODE] = MAT.[FileColour] LEFT OUTER JOIN [dbo].[RecentMatterList] RML ON RML.[FEE] = @FECode 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] ON MAT.[CODE] = ML.[CASECODE] UPDATE ML SET ML.[TDBTime] = CASE WHEN ABS(TDB.[TIME]) >= 6000 THEN ''++++++'' ELSE CASE WHEN ISNULL(TDB.[TIME], 0) < 0 THEN ''-'' ELSE right(''00'' + convert(varchar(2), floor(ABS(IsNull(TDB.[TIME], 0)) / 60)), 2) + '':'' + right(''00'' + convert(varchar(2), ABS(IsNull(TDB.[TIME], 0)) - (60 * floor(ABS(IsNull(TDB.[TIME], 0)) / 60))), 2) END END, ML.[TDBStopwatchRunning] = CASE WHEN TDB.[StopwatchStartTime] IS null THEN 0 ELSE 1 END, ML.[TDBRecordID] = CASE WHEN TDB.[RECORDID] IS null THEN 0 ELSE TDB.[RECORDID] END FROM @ML ML LEFT OUTER JOIN [dbo].[TimeDayBook] TDB ON TDB.[MATTER] = ML.[CaseCode] AND TDB.[FEEEARN] = @fecode RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDUpdateTimeEntry] Script Date: 10/01/2014 16:18:33 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDUpdateTimeEntry]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDUpdateTimeEntry * * Sets the Rate and Charge values according to the Charge Out Rates indicators and/or * the Task Code used in the TimeEntry Table. * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDUpdateTimeEntry] (@recordid int, @fe varchar(10), @task varchar(10), @comment varchar(255), @sysrate int, @rate decimal(7, 2), @date datetime, @time int, @REC_IRR varchar(1)) AS BEGIN UPDATE TIE SET TIE.[FEEEARN] = RTRIM(ISNULL(@fe, '''')), TIE.[TASK] = RTRIM(ISNULL(@task, '''')), TIE.[COMMENT] = RTRIM(ISNULL(@COMMENT, '''')), TIE.[Date] = @Date, TIE.[Time] = IsNull(TUT.[NumValue], 1) * Ceiling(IsNull(@time, 0) / IsNull(TUT.[NumValue], 1)), TIE.[REC_IRR] = @REC_IRR, TIE.[RATE] = Case When @sysrate = 0 THEN @rate When IsNull(MAT.[ChargeOutRateInd], ''N'') = ''Y'' THEN IsNull(MCR.[Rate], 0) When IsNull(CON.[ChargeOutRateInd], ''N'') = ''Y'' THEN IsNull(CCR.[Rate], 0) ELSE IsNull(FEP.[ChargeFct], 1.00) * FER.[Rate] END, TIE.[CHARGE] = Convert(numeric(7, 2), ( ( IsNull(TUT.[NumValue], 1) * Ceiling(IsNull(@time, 0) / IsNull(TUT.[NumValue], 1)) * Case When @sysrate = 0 THEN @rate When IsNull(MAT.[ChargeOutRateInd], ''N'') = ''Y'' THEN IsNull(MCR.[Rate], 0) When IsNull(CON.[ChargeOutRateInd], ''N'') = ''Y'' THEN IsNull(CCR.[Rate], 0) ELSE IsNull(FEP.[ChargeFct], 1.00) * FER.[Rate] END) / 60)) from [dbo].[TimeEntry] TIE LEFT OUTER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CON ON CON.[Code] = MAT.[ClientCode] ON MAT.[code] = TIE.[MATTER] OUTER APPLY (SELECT MCOR.[Rate] FROM [dbo].[MatterChargeOutRates] MCOR WHERE MCOR.[FeCode] = TIE.[FEEEARN] AND MCOR.[MatterCode] = TIE.[MATTER]) MCR OUTER APPLY (SELECT CCOR.[Rate] FROM [dbo].[ClientChargeOutRates] CCOR WHERE CCOR.[FeCode] = TIE.[FEEEARN] 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] = TIE.[FEEEARN]) FER OUTER APPLY (SELECT 1 AS [NumValue]) TUT 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] = CASE RTrim(IsNull(TIE.MATTER, '''')) WHEN '''' THEN TIE.[NCCODE] ELSE TIE.[TASK] END) FEP WHERE TIE.[RECORDID] = @RECORDID INSERT INTO [dbo].[TimeEntryLog] ([TimeId], [FromMatter], [ToMatter], [TrDate], [TrBy]) SELECT TIE.[RECORDID], TIE.[MATTER], TIE.[MATTER], getDate(), ''UP'' FROM [dbo].[TimeEntry] TIE WHERE TIE.[RECORDID] = @RECORDID END' END GO /****** Object: StoredProcedure [dbo].[ky_WDUpdateTimeEntry2] Script Date: 10/01/2014 16:18:34 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDUpdateTimeEntry2]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDUpdateTimeEntry2 * * Sets the Rate and Charge values according to the Charge Out Rates indicators and/or * the Task Code used in the TimeEntry Table. * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDUpdateTimeEntry2] (@recordid int, @fe varchar(10), @task varchar(10), @comment varchar(255), @sysrate int, @rate decimal(7, 2), @date datetime, @time int, @REC_IRR varchar(1), @TimeOrCharge varchar(1), @charge decimal(7, 2)) AS BEGIN SET @TimeOrCharge = ISNULL(@TimeOrCharge, ''T'') SET @rate = ISNULL(@rate, 0) SET @charge = ISNULL(@charge, 0) SET @time = ISNULL(@time, 0) UPDATE TIE SET TIE.[FEEEARN] = RTRIM(ISNULL(@fe, '''')), TIE.[TASK] = RTRIM(ISNULL(@task, '''')), TIE.[COMMENT] = RTRIM(ISNULL(@COMMENT, '''')), TIE.[Date] = @Date, TIE.[Time] = CASE WHEN (@TimeOrCharge <> ''C'') OR (@time <> 0) THEN IsNull(TUT.[NumValue], 1) * Ceiling(IsNull(@time, 0) / IsNull(TUT.[NumValue], 1)) ELSE 1 END, TIE.[REC_IRR] = @REC_IRR, TIE.[RATE] = CASE WHEN @TimeOrCharge <> ''C'' THEN Case When @sysrate = 0 THEN @rate When IsNull(MAT.[ChargeOutRateInd], ''N'') = ''Y'' THEN IsNull(MCR.[Rate], 0) When IsNull(CON.[ChargeOutRateInd], ''N'') = ''Y'' THEN IsNull(CCR.[Rate], 0) ELSE IsNull(FEP.[ChargeFct], 1.00) * FER.[Rate] END ELSE @charge end, TIE.[CHARGE] = CASE WHEN @TimeOrCharge = ''C'' THEN @charge ELSE Convert(numeric(7, 2), ( ( IsNull(TUT.[NumValue], 1) * Ceiling(IsNull(@time, 0) / IsNull(TUT.[NumValue], 1)) * Case When @sysrate = 0 THEN @rate When IsNull(MAT.[ChargeOutRateInd], ''N'') = ''Y'' THEN IsNull(MCR.[Rate], 0) When IsNull(CON.[ChargeOutRateInd], ''N'') = ''Y'' THEN IsNull(CCR.[Rate], 0) ELSE IsNull(FEP.[ChargeFct], 1.00) * FER.[Rate] END) / 60)) END, TIE.[TIMEORCHARGE] = CASE WHEN @TimeOrCharge = ''C'' THEN ''C'' ELSE ''T'' END from [dbo].[TimeEntry] TIE LEFT OUTER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CON ON CON.[Code] = MAT.[ClientCode] ON MAT.[code] = TIE.[MATTER] OUTER APPLY (SELECT MCOR.[Rate] FROM [dbo].[MatterChargeOutRates] MCOR WHERE MCOR.[FeCode] = TIE.[FEEEARN] AND MCOR.[MatterCode] = TIE.[MATTER]) MCR OUTER APPLY (SELECT CCOR.[Rate] FROM [dbo].[ClientChargeOutRates] CCOR WHERE CCOR.[FeCode] = TIE.[FEEEARN] 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] = TIE.[FEEEARN]) FER OUTER APPLY (SELECT 1 AS [NumValue]) TUT 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] = CASE RTrim(IsNull(TIE.MATTER, '''')) WHEN '''' THEN TIE.[NCCODE] ELSE TIE.[TASK] END) FEP WHERE TIE.[RECORDID] = @RECORDID INSERT INTO [dbo].[TimeEntryLog] ([TimeId], [FromMatter], [ToMatter], [TrDate], [TrBy]) SELECT TIE.[RECORDID], TIE.[MATTER], TIE.[MATTER], getDate(), ''UP'' FROM [dbo].[TimeEntry] TIE WHERE TIE.[RECORDID] = @RECORDID END' END GO /****** Object: StoredProcedure [dbo].[spGetCaseLookupList] Script Date: 10/01/2014 16:18:49 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spGetCaseLookupList]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[spGetCaseLookupList] (@BitWiseID BIGINT) AS /***************************************************************************************** [dbo].[spGetCaseLookupList] Lists all the cases in the system - now with support for privileges *****************************************************************************************/ BEGIN SET @BitWiseID = ISNULL(@BitWiseID, CONVERT(BIGINT, 0)) SELECT RTRIM(LTRIM(MAT.[CODE])) AS [CaseCode], RTRIM(LTRIM(MAT.[FECODE])) AS [FeeEarnerCode], RTRIM(LTRIM(CON.[NAME])) AS [NAME], RTRIM(LTRIM(MAT.[DESCRIPTION])) AS [DESCRIPTION], RTRIM(LTRIM(MAT.[DEPT])) AS [Department], RTRIM(LTRIM(MAT.[WTYPE])) AS [WorkType], RTRIM(LTRIM(MAT.[USER1])) AS [Ref1], RTRIM(LTRIM(MAT.[USER2])) AS [Ref2], RTRIM(LTRIM(MAT.[OLDREF])) AS [OLDREF], RTRIM(LTRIM(MAT.[USER3])) AS [Ref3], RTRIM(LTRIM(CON.[ADDRESS])) AS [ADDRESS], RTRIM(LTRIM(MAT.[FILENUM])) AS [FILENUM], RTRIM(LTRIM(MAT.[MATTER])) AS [MATTER], MAT.[Closed] AS [Closed] FROM [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[contacts] CON ON MAT.CLIENTCODE= CON.CODE 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 ORDER BY MAT.[CODE] END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_NETTFMatterHeaderDetails] Script Date: 10/01/2014 16:19:06 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NETTFMatterHeaderDetails]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' CREATE FUNCTION [dbo].[ky_NETTFMatterHeaderDetails](@matter VARCHAR(20)) RETURNS @MD TABLE ([CODE] VARCHAR(20), [ClientCode] VARCHAR(10), [MatterNo] VARCHAR(10), [YourRef] VARCHAR(100), [DESCRIPTION] VARCHAR(300), [FECode] VARCHAR(10), [FEName] VARCHAR(100), [Name] VARCHAR(200), [TelNo] VARCHAR(50), [Address] VARCHAR(2000), [Closed] CHAR(1)) AS /******************************************************************* ky_NETTFMatterHeaderDetails Returns the details for the current matter, to be displayed in the Client/Case section of the software, ledgers, etc. ******************************************************************/ BEGIN INSERT INTO @MD ([CODE], [ClientCode], [MatterNo], [YourRef], [DESCRIPTION], [FECode], [FEName], [Name], [TelNo], [Address], [Closed]) SELECT RTRIM(ISNULL([MAT].[Code], '''')) AS [Code], RTRIM(ISNULL([MAT].[ClientCode], '''')) AS [ClientCode], RTRIM(ISNULL([MAT].[Matter], '''')) AS [MatterNo], RTRIM(ISNULL([MAT].[YourRef], '''')) AS [YourRef], RTRIM(ISNULL([MAT].[Description], '''')) AS [Description], RTRIM(ISNULL([MAT].[FECode], '''')) AS [FECode], RTRIM(ISNULL([HAN].[NAME], '''')) AS [FEName], RTRIM(ISNULL([CT].[Name], '''')) AS [Name], RTRIM(ISNULL([CT].[Tel], '''')) AS [TelNo], RTRIM(ISNULL([CT].[Address], '''')) AS [Address], CASE WHEN RTRIM(ISNULL(MAT.[Closed], ''N'')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [Closed] FROM [dbo].[matters] [MAT] LEFT OUTER JOIN [dbo].[Contacts] [CT] ON [CT].[Code] = [MAT].[ClientCode] LEFT OUTER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = [MAT].[FECode] WHERE [MAT].[Code] = @matter RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[UserMatterAndGroupsExpanded] Script Date: 10/01/2014 16:19:50 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UserMatterAndGroupsExpanded]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * User''s Access Groups and Matters (Expanded) * **************************************************************************************/ CREATE FUNCTION [dbo].[UserMatterAndGroupsExpanded] (@ID int, @Supervisor int) RETURNS @QS TABLE ([MatterCode] varchar(20)) AS BEGIN DECLARE @QS1 TABLE ([MatterCode] varchar(20)) IF (@Supervisor IS NULL) BEGIN SET @Supervisor = 0 END IF (@Supervisor <> 1) BEGIN SET @Supervisor = 0 END IF (@Supervisor = 0) BEGIN INSERT INTO @QS1 ([MatterCode]) SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [MatterCode] FROM [dbo].[KHCUserLinks] UL INNER JOIN [dbo].[KHCAccessGroups] AG INNER JOIN [dbo].[KHCAccessGroupCases] AGC INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = AGC.[KHCMatterCode] ON AGC.[KHCAccessGroupId] = AG.[id] ON AG.[id] = UL.[KHCAccessGroupId] WHERE UL.[KHCUserId] = @ID INSERT INTO @QS1 ([MatterCode]) SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [MatterCode] FROM [dbo].[KHCUserLinks] UL INNER JOIN [dbo].[KHCAccessGroups] AG INNER JOIN [dbo].[KHCAccessGroupCases] AGC INNER JOIN [dbo].[matters] MAT ON MAT.[ClientCode] = AGC.[KHCClientCode] ON AGC.[KHCAccessGroupId] = AG.[id] AND RTRIM(ISNULL(AGC.[KHCMatterCode], '''')) = '''' ON AG.[id] = UL.[KHCAccessGroupId] WHERE UL.[KHCUserId] = @ID INSERT INTO @QS1 ([MatterCode]) SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [MatterCode] FROM [dbo].[KHCUserLinks] UL INNER JOIN [dbo].[matters] MAT ON MAT.[ClientCode] = UL.[KHCClientCode] WHERE UL.[KHCUserId] = @ID AND UL.[KHCMatterCode] IS NULL AND UL.[KHCAccessGroupId] IS NULL INSERT INTO @QS1 ([MatterCode]) SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [MatterCode] FROM [dbo].[KHCUserLinks] UL INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = UL.[KHCMatterCode] WHERE UL.[KHCUserId] = @ID DELETE QS FROM @QS1 QS LEFT OUTER JOIN [dbo].[matters] MAT ON MAT.[Code] = QS.[MatterCode] WHERE MAT.[Code] IS NULL OR ISNULL(MAT.[Publish], '''') <> ''P'' INSERT INTO @QS ([MatterCode]) SELECT DISTINCT QS.[MatterCode] FROM @QS1 QS END ELSE BEGIN INSERT INTO @QS ([MatterCode]) SELECT MAT.[Code] FROM [dbo].[matters] MAT END RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDCheckUnpostableEntries] Script Date: 10/01/2014 16:17:49 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCheckUnpostableEntries]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'/************************************************************************************** * * ky_WDCheckUnpostableEntries * * Update TimeEntry values * NOTE: This procedure is VERSION SPECIFIC. This is the SAM3.5 Build 78 / SAM4 * version of this procedure * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDCheckUnpostableEntries] (@HANDLER varchar(10)) AS 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' END GO /****** Object: View [dbo].[ClientDiary] Script Date: 10/01/2014 16:19:53 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ClientDiary]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[ClientDiary] AS SELECT LEFT(CASECODE, 6) AS ClientCode, 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, EMAIL, SUBJECT, DELEGATIONSTATUS, DRAFTBILLNO, CHEQUEREQNO, TxmSent, Location, HearingType, ForCopy FROM dbo.diarytemp ' GO /****** Object: StoredProcedure [dbo].[ky_WDDeleteAction] Script Date: 10/01/2014 16:18:03 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDDeleteAction]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************ * * Delete Action - deletes the action, as well as associated * Diary Attachments, Diary Delegations, etc. * *************************************************************************/ Create Procedure [dbo].[ky_WDDeleteAction] (@ActionID int) AS BEGIN DECLARE @Continue int BEGIN TRANSACTION SET @Continue = 0 If (@Continue = 0) BEGIN BEGIN TRY BEGIN DELETE [dbo].[DiaryAttachments] WHERE [DIARYID] = @ActionID DELETE [dbo].[DiaryDelegations] WHERE [ACTIONID] = @ActionID DELETE [dbo].[DiaryLinks] WHERE [ACTIONID] = @ActionID DELETE [dbo].[DiaryTemp] WHERE [ACTIONID] = @ActionID DELETE [dbo].[diary] WHERE [ACTIONID] = @ActionID END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END IF (@Continue = 0) COMMIT ELSE ROLLBACK END ' END GO /****** Object: StoredProcedure [dbo].[SpImportXml] Script Date: 10/01/2014 16:18:51 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SpImportXml]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- ============================================= -- Author: Magesh Kumar -- Create date: 3-MAR-2014 -- Description: This SP used to check the group or report name already EXISTS in tables WHILE importing data''s. -- ============================================= CREATE PROCEDURE [dbo].[SpImportXml] -- Add the parameters for the stored procedure here @reportname NVARCHAR(500) ,@reportfilename NVARCHAR(500) ,@groupname NVARCHAR(500) ,@function NVARCHAR(10) ,@reporttype NVARCHAR(10) AS BEGIN IF (@function=''Report'') BEGIN IF EXISTS (SELECT TOP 1 1 FROM Crreport WHERE name=@reportname) SELECT ''False'' ELSE Insert INTO crreport (name,filename,report_type) VALUES (@reportname,@reportfilename,@reporttype) SELECT reportid FROM crreport WHERE name=@reportname END ELSE IF(@function =''Group'') BEGIN IF EXISTS (SELECT TOP 1 1 FROM crgroup WHERE groupname=@groupname) SELECT ''False'' ELSE Insert INTO crgroup (groupname) VALUES (@groupname) SELECT ''True'' END END ' END GO /****** Object: StoredProcedure [dbo].[create_report_group] Script Date: 10/01/2014 16:16:54 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[create_report_group]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE PROCEDURE [dbo].[create_report_group] -- Add the parameters for the stored procedure here @reportid DECIMAL(18,0), @groupname VARCHAR(100), @function VARCHAR(50) AS DECLARE @groupid DECIMAL(18,0) BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; SET @groupid= (SELECT groupid FROM crgroup WHERE lower(groupname)=lower(@groupname)) IF lower(@function)=''insert'' BEGIN INSERT INTO crreportgroup (Reportid, groupid) VALUES (@reportid,@groupid) END ELSE IF LOWER(@function)=''update'' BEGIN UPDATE CRReportGroup SET groupid =@groupid WHERE Reportid =@reportid END ELSE IF LOWER(@function)=''delete_all'' BEGIN DELETE FROM CRReportGroup WHERE Reportid =@reportid END ELSE BEGIN DELETE FROM crreportgroup WHERE reportid = @reportid AND groupid = @groupid END END ' END GO /****** Object: StoredProcedure [dbo].[delete_group] Script Date: 10/01/2014 16:16:54 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[delete_group]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE PROCEDURE [dbo].[delete_group] @groupid DECIMAL(18,0) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; IF EXISTS(SELECT TOP 1 1 FROM crreportgroup WHERE groupid=@groupid) SELECT ''true'' ELSE BEGIN DELETE FROM crgroup WHERE groupid = @groupid SELECT ''false'' END END ' END GO /****** Object: StoredProcedure [dbo].[Load_group_name] Script Date: 10/01/2014 16:18:35 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Load_group_name]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- ============================================= -- Author: Magesh Kumar -- Create date: 3-MAR-2014 -- Description: This SP used to Get Report Group details -- ============================================= CREATE PROCEDURE [dbo].[Load_group_name] -- Add the parameters for the stored procedure here @id DECIMAL(18,0) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; IF (@id= 0) SELECT Groupid,groupname ''Group Name'' FROM crgroup WHERE groupid=groupid ORDER BY groupname ELSE SELECT Groupid,groupname ''Group Name'' FROM crgroup WHERE groupid=@id ORDER BY groupname END ' END GO /****** Object: StoredProcedure [dbo].[group_creation] Script Date: 10/01/2014 16:16:56 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[group_creation]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE PROCEDURE [dbo].[group_creation] -- Add the parameters for the stored procedure here @groupid DECIMAL(18,0) ,@groupname VARCHAR(100) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; IF EXISTS (SELECT TOP 1 1 FROM crgroup WHERE groupid = @groupid) BEGIN UPDATE crgroup SET groupname = @groupname WHERE groupid = @groupid END ELSE BEGIN INSERT INTO crgroup (groupname) VALUES (@groupname) END END ' END GO /****** Object: StoredProcedure [dbo].[search_reports] Script Date: 10/01/2014 16:18:47 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[search_reports]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- ============================================= -- Author: Magesh Kumar -- Create date: 3-MAR-2014 -- Description: This SP used to Fetch report details based on their report name(used for search) -- ============================================= CREATE PROCEDURE [dbo].[search_reports] @key NVARCHAR(100) AS DECLARE _reportid CURSOR FOR (SELECT reportid,Name,[filename] FROM crreport WHERE reportid=reportid) DECLARE @reportid DECIMAL(18,0), @filename VARCHAR(max), @name VARCHAR(max),@groupname VARCHAR(max) DECLARE @report_tab TABLE(reportid DECIMAL(18,0),name VARCHAR(500),filename VARCHAR(500),groups VARCHAR(500)) BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON IF (@key !='''') BEGIN --delete FROM report_table OPEN _reportid FETCH NEXT FROM _reportid INTO @reportid,@name,@filename WHILE @@FETCH_STATUS = 0 BEGIN SET @groupname = (SELECT top 1 (STUFF((SELECT '','' + groupname FROM crgroup g,crreportgroup r WHERE g.groupid=r.groupid AND r.reportid=@reportid FOR XML PATH(''''), TYPE).value(''.'', ''VARCHAR(max)''), 1, 1, '''')) FROM crgroup g,crreportgroup r ) INSERT INTO @report_tab VALUES (@reportid,@name,@filename,@groupname) FETCH NEXT FROM _reportid INTO @reportid,@name,@filename END SELECT reportid,Name,[filename] ''File Name'' ,Groups FROM @report_tab WHERE name LIKE ''%''+@key+''%'' OR [filename] LIKE ''%''+@key+''%'' OR groups LIKE ''%''+@key+''%'' ORDER BY name END SET NOCOUNT OFF END ' END GO /****** Object: StoredProcedure [dbo].[Load_reports_name] Script Date: 10/01/2014 16:18:36 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Load_reports_name]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- ============================================= -- Author: Magesh Kumar -- Create date: 3-MAR-2014 -- Description: This SP used to Fetch Full reports details -- ============================================= CREATE PROCEDURE [dbo].[Load_reports_name] -- Add the parameters for the stored procedure here @id DECIMAL(18,0), @report_type CHAR(10), @UserCode NVARCHAR(5), @Supervisor NVARCHAR(5) AS DECLARE _reportid CURSOR FOR (SELECT reportid,Name,filename,report_type FROM crreport WHERE reportid=reportid AND report_type in (@report_type)) DECLARE @reportid DECIMAL(18,0), @filename VARCHAR(max), @name VARCHAR(max),@groupname VARCHAR(max),@reporttype CHAR(10) DECLARE @report_tab TABLE (reportid DECIMAL(18,0),name VARCHAR(100),filename VARCHAR(100),groups VARCHAR(500),reporttype Char(10)) BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; IF (@id= 0) BEGIN --delete FROM report_table OPEN _reportid FETCH NEXT FROM _reportid INTO @reportid,@name,@filename,@reporttype WHILE @@FETCH_STATUS=0 BEGIN SET @groupname=(SELECT top 1 (STUFF((SELECT '','' + groupname FROM crgroup g,crreportgroup r WHERE g.groupid=r.groupid AND r.reportid=@reportid for xml path(''''), type).value(''.'', ''VARCHAR(max)''), 1, 1, '''')) FROM crgroup g,crreportgroup r ) INSERT INTO @report_tab VALUES (@reportid,@name,@filename,@groupname,@reporttype) FETCH NEXT FROM _reportid INTO @reportid,@name,@filename,@reporttype END close _reportid DEALLOCATE _reportid if @UserCode=''ADM'' or @Supervisor=''Yes'' begin SELECT reportid,Name,[filename] ''File Name'' ,Groups,reporttype FROM @report_tab WHERE reportid = reportid ORDER BY name end else begin SELECT reportid,Name,[filename] ''File Name'' ,Groups,reporttype FROM @report_tab WHERE reportid in (SELECT crreport.ReportID FROM crreport LEFT OUTER JOIN ModuleGroupPermissions ON crreport.Reportid = ModuleGroupPermissions.ReportID WHERE ModuleGroupPermissions.GroupID IS NULL UNION ALL SELECT ModuleGroupPermissions.ReportID FROM ModuleGroupPermissions INNER JOIN ModuleGroup ON ModuleGroupPermissions.GroupID = ModuleGroup.GroupID WHERE ModuleGroup.GroupID IN (SELECT GroupID FROM ModuleGroupUsers WHERE UserCode = ''''''+@UserCode+'''''')) ORDER BY name end END ELSE SELECT reportid,Name,[filename] ''File Name'',report_type FROM crreport WHERE reportid=@id END ' END GO /****** Object: StoredProcedure [dbo].[SpReportGroupimport] Script Date: 10/01/2014 16:18:54 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SpReportGroupimport]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- ============================================= -- Author: Magesh Kumar -- Create date: 3-MAR-2014 -- Description: This SP used to insert/update reportgroup table (used in import) -- ============================================= CREATE PROCEDURE [dbo].[SpReportGroupimport] -- Add the parameters for the stored procedure here @reportname VARCHAR(500) ,@groupname VARCHAR(500) AS DECLARE @reportid AS DECIMAL(18,0) DECLARE @groupid AS DECIMAL (18,0) BEGIN SET @reportid = (SELECT reportid FROM CRReport WHERE name=@reportname) SET @groupid = (SELECT groupid FROM crgroup WHERE groupname =@groupname) IF NOT EXISTS(SELECT TOP 1 1 FROM CRReportGroup WHERE Reportid =@reportid AND groupid =@groupid ) BEGIN INSERT INTO CRReportGroup (Reportid,groupid) VALUES (@reportid ,@groupid ) END END ' END GO /****** Object: StoredProcedure [dbo].[load_report_group] Script Date: 10/01/2014 16:18:35 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[load_report_group]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- ============================================= -- Author: Magesh Kumar -- Create date: 3-MAR-2014 -- Description: This SP used to Get group name of respective reports -- ============================================= CREATE PROCEDURE [dbo].[load_report_group] -- Add the parameters for the stored procedure here @reportid DECIMAL(18,0) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for procedure here SELECT groupname FROM dbo.crgroup INNER JOIN dbo.CRReportGroup ON dbo.crgroup.groupid = dbo.CRReportGroup.groupid AND dbo.CRReportGroup.reportid = @reportid END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDHFBudgets] Script Date: 10/01/2014 16:19:24 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDHFBudgets]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDHFBudgets * * Get Handler Budgets in a standardised format so this works both in SAM4 and in SAM3.5 * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDHFBudgets] (@handler varchar(10), @year int, @month int) RETURNS @ML TABLE ([Handler] varchar(10), [Year] int, [Month] int, [FeesBudget] decimal(18, 2), [ChargableTimeBudget] decimal(18, 2), [NonChargableTimeBudget] decimal(18, 2)) AS BEGIN INSERT INTO @ML ([Handler], [Year], [Month], [FeesBudget], [ChargableTimeBudget], [NonChargableTimeBudget]) select HAB.[Handler], HAB.[Year], HAB.[Month], HAB.[FeesBudget], HAB.[ChargableTimeBudget], HAB.[NonChargableTimeBudget] from [dbo].[HandlerBudgets] HAB where HAB.[Handler] = @handler and HAB.[Year] = @year and HAB.[Month] = @month RETURN END' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDAllClientContacts] Script Date: 10/01/2014 16:19:11 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDAllClientContacts]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' create function [dbo].[ky_WDAllClientContacts]() RETURNS @SR TABLE ([Name] varchar(200), [Address] varchar(200), [Phone] varchar(30), [Mobile] varchar(30), [Fax] varchar(30), [Email] varchar(100)) AS BEGIN INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email]) SELECT CONVERT(varchar(200), RTRIM(ISNULL(CAN.[NAME], ''''))) AS [NAME], SUBSTRING(CAN.[Address], 1, 200) AS [ADDRESS], CASE WHEN RTrim(IsNull(CAN.[PHONENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[PHONENO], ''''))) WHEN RTrim(IsNull(CAN.[MOBILENO], '''')) <> '''' THEN convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) ELSE convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) END AS [PHONE], convert(varchar(30), RTrim(IsNull(CAN.[MOBILENO], ''''))) AS [MOBILE], convert(varchar(30), RTrim(IsNull(CAN.[FAXNO], ''''))) AS [FAX], convert(varchar(100), RTrim(IsNull(CAN.[EMAIL], ''''))) AS [EMAIL] FROM (SELECT CLC.[CLCODE], CASE WHEN RTrim(IsNull(CLC.[CLNAMECON], '''')) = '''' THEN RTRIM(IsNull(CNN.[NAME], '''')) ELSE RTrim(IsNull(CLC.[CLNAMECON], '''')) END AS [NAME], CASE WHEN RTrim(IsNull(CLC.[ADDRESS], '''')) = '''' THEN RTRIM(IsNull(CNN.[ADDRESS], '''')) ELSE RTrim(IsNull(CLC.[ADDRESS], '''')) END AS [ADDRESS], CASE WHEN RTrim(IsNull(CLC.[HomePhone], '''')) = '''' THEN RTRIM(IsNull(CNN.[Tel], '''')) ELSE RTrim(IsNull(CLC.[HomePhone], '''')) END AS [PHONENO], RTrim(IsNull(CLC.[Mobile], '''')) AS [MOBILENO], CASE WHEN RTrim(IsNull(CLC.[WorkPhone], '''')) = '''' THEN RTRIM(IsNull(CNN.[Fax], '''')) ELSE RTrim(IsNull(CLC.[WorkPhone], '''')) END AS [FAXNO], CASE WHEN RTrim(IsNull(CLC.[EmailAddress], '''')) = '''' THEN RTRIM(IsNull(CNN.[email], '''')) ELSE RTrim(IsNull(CLC.[EmailAddress], '''')) END AS [EMAIL] FROM [dbo].[ClientContacts] CLC LEFT OUTER JOIN [dbo].[Contacts] CNN ON CNN.[CODE] = CLC.[CLCODE]) CAN UPDATE @SR SET [Phone] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Phone]), [Mobile] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Mobile]), [Fax] = [dbo].[ky_HeuristicPhoneNumber]([Address], [Fax]) RETURN END ' END GO /****** Object: StoredProcedure [dbo].[spInsertErrorLog] Script Date: 10/01/2014 16:18:53 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spInsertErrorLog]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[spInsertErrorLog] @CurrentLogOn VARCHAR(100), @ExceptionMessage Varchar(500), @Source Varchar(200), @MethodName Varchar(500), @StackTrace Varchar(7000) As BEGIN SET NOCOUNT ON Insert Into ExceptionLog(CurrentLogOn, ExceptionDate, ExceptionMessage, Source, MethodName, StackTrace ) VALUES (@CurrentLogOn, Getdate(), @ExceptionMessage, @Source, @MethodName, @StackTrace ) SET NOCOUNT OFF End ' END GO /****** Object: StoredProcedure [dbo].[spGetSettings] Script Date: 10/01/2014 16:18:50 ******/ SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spGetSettings]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[spGetSettings] AS BEGIN SET NOCOUNT ON SELECT KeyName, KeyValue FROM Settings SET NOCOUNT OFF END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDPublishedCaseDiary] Script Date: 10/01/2014 16:19:29 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDPublishedCaseDiary]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * Lists the published Case Diary * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDPublishedCaseDiary] (@MatterCode VARCHAR(20), @Search VARCHAR(50), @Milestone int, @MaxRes int) RETURNS @DV TABLE ([DIPID] int, [CaseCode] varchar(20), [Action] varchar(255), [ActionType] varchar(1), [Priority] varchar(1), [ImageNo] int, [ActionID] int, [DiaryStatus] int, [Highlighted] varchar(1), [Attachments] varchar(1), [DiaryDate] varchar(11), [DiaryTime] varchar(5), [DiaryDueDate] varchar(11), [FNCode] varchar(10), [TeamCode] varchar(10), [HandlerName] varchar(100), [WorkProcess] int, [DelegationStatus] int, [ActionCode] varchar(30), [Duration] varchar(30)) AS BEGIN SET @MaxRes = IsNull(@MaxRes, 0) SET @Milestone = IsNull(@Milestone, 0) DECLARE @DIARES TABLE ([id] int identity(1, 1), [ActionID] int) DECLARE @DIASEL TABLE ([id] int identity(1, 1), [ActionID] int) SET @SEARCH = RTRIM(ISNULL(@SEARCH, '''')) SET @SEARCH = ''%'' + @SEARCH + ''%'' SET @SEARCH = REPLACE(@Search, ''%%'', ''%'') SET @SEARCH = REPLACE(@Search, ''%%'', ''%'') INSERT INTO @DIASEL ([ActionID]) SELECT DIA.[Actionid] FROM [dbo].[diary] DIA WHERE DIA.[CASECODE] = @mattercode ORDER BY DIA.[STATUS], DIA.[DATE] DESC DELETE DS FROM @DIASEL DS INNER JOIN [dbo].[diary] DIA ON DIA.[ACTIONID] = DS.[ActionID] WHERE ISNULL(DIA.[PUBLISH], '''') <> ''P'' IF (@Milestone = 1) BEGIN DELETE DS FROM @DIASEL DS INNER JOIN [dbo].[diary] DIA ON DIA.[ACTIONID] = DS.[ActionID] WHERE ISNULL(DIA.[HIGHLIGHTED], '''') <> ''Y'' END DELETE DS FROM @DIASEL DS INNER JOIN [dbo].[diary] DIA ON DIA.[ACTIONID] = DS.[ActionID] WHERE CONVERT(VARCHAR(MAX), DIA.[TEXT1]) NOT LIKE @SEARCH AND CONVERT(VARCHAR(MAX), DIA.[SUBJECT]) NOT LIKE @SEARCH INSERT INTO @DIARES ([ActionID]) SELECT DS.[ActionID] FROM @DIASEL DS ORDER BY DS.[id] IF (@MaxRes > 0) BEGIN DELETE DR FROM @DIARES DR WHERE DR.[id] > @MaxRes END INSERT INTO @DV ([DIPID], [CaseCode], [Action], [ActionType], [Priority], [ImageNo], [ActionID], [DiaryStatus], [Highlighted], [Attachments], [DiaryDate], [DiaryTime], [DiaryDueDate], [FNCode], [TeamCode], [HandlerName], [WorkProcess], [DelegationStatus], [ActionCode], [Duration]) SELECT DIP.[ID], RTrim(IsNull(DIA.[CaseCode], '''')) As [CaseCode], CASE WHEN DIA.[ActionType] = ''E'' THEN SUBSTRING(''Email from: '' + Rtrim(IsNull([dbo].[ky_GetNameFromEmailAddress](DIA.[EmailAddress]), '''')) + '' - '' + RTrim(IsNull(convert(varchar(2000), DIA.[Subject]), '''')), 1, 120) ELSE SUBSTRING(DIA.[TEXT1], 1, 120) END As [Action], IsNull(DIA.[ActionType], '''') As [ActionType], IsNull(DIA.[Priority], '''') As [Priority], DIA.[ImageNo], DIA.[ActionID] As [ActionID], IsNull(DIA.[Status], 0) As [DiaryStatus], IsNull(DIA.[Highlighted], '''') As [Highlighted], IsNull(DIA.[Attachments], '''') As [Attachments], Convert(varchar, DIA.[DATE], 106) As [DiaryDate], SUBSTRING(Convert(varchar, [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DIA.[DATE], DIA.[DYSTARTTIME]), 108), 1, 5) AS [DiaryTime], Convert(varchar, DIA.[DUEDATE], 106) As [DiaryDueDate], RTrim(IsNull(DIA.[FNCode], '''')) AS [FNCode], IsNull(DIA.[TeamCode], '''') AS [TeamCode], RTRIM(ISNULL(HAN.[NAME], '''')) AS [HandlerName], IsNull(DIA.[WorkProcess], 0) AS [WorkProcess], Convert(int, IsNull(DIA.[DelegationStatus], 0)) AS [DelegationStatus], RTrim(IsNull(DIA.[ACTIONCODE], '''')) AS [ActionCode], CASE WHEN DIA.[ACTIONTYPE] = ''D'' AND DIA.[IMAGENO] > 0 THEN ''Length: '' + Convert(varchar, [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DIA.[DATE], DIA.[IMAGENO]), 108) ELSE '''' END AS [DURATION] FROM @DIARES DIP INNER JOIN [dbo].[Diary] DIA LEFT OUTER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = DIA.[FNCODE] ON DIA.[ACTIONID] = DIP.[ACTIONID] ORDER BY DIP.[ID] UPDATE DV SET DV.[Action] = [dbo].[ky_removespuriouswhitespace](DV.[Action], 80) FROM @DV DV INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DV.[ActionID] RETURN END ' END GO /****** Object: StoredProcedure [dbo].[SpSyntax] Script Date: 10/01/2014 16:18:54 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SpSyntax]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- ============================================= -- Author: Magesh Kumar -- Create date: 3-MAR-2014 -- Description: This SP used to Fetch details based on the syntax provided in report''s parameter -- ============================================= CREATE PROCEDURE [dbo].[SpSyntax] -- Add the parameters for the stored procedure here @SyntaxType VARCHAR(100) AS BEGIN SET NOCOUNT ON; IF (@SyntaxType =''!CurPeriod='') SELECT [control].CURPER FROM [control] ELSE IF(@SyntaxType =''!CurYear='') SELECT [control].YEAR FROM [control] SET NOCOUNT OFF END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDCopyTimeEntry] Script Date: 10/01/2014 16:17:50 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCopyTimeEntry]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /******************************************************************************************* * * ky_WDCopyTimeEntry * Copies a Time Entry, either to the same case as the original Time Entry or to a new case. * This procedure is completely version independent. * *******************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDCopyTimeEntry] (@RECID int, @MATTER varchar(20)) AS BEGIN DECLARE @FIELDS varchar(2000) DECLARE @COMMAND varchar(2000) SET @FIELDS = '''' select @FIELDS = @FIELDS + CASE WHEN @FIELDS <> '''' THEN '','' + Char(13) + CHAR(10) + '' '' ELSE '''' END + ''['' + SC.[name] + '']'' from sysobjects SO inner join syscolumns SC ON SC.[id] = SO.[id] AND SC.[name] <> ''RECORDID'' where SO.[name] = ''TimeEntry'' SET @COMMAND = ''INSERT INTO [dbo].[TimeEntry] ('' + @FIELDS + '')'' + Char(13) + CHAR(10) + ''SELECT '' + REPLACE(REPLACE(@FIELDS, ''[MATTER]'', CASE WHEN RTRIM(ISNULL(@matter, '''')) = '''' THEN ''[MATTER]'' ELSE '''''''' + @MATTER + '''''''' END), ''['', ''TIE.['') + Char(13) + CHAR(10) + '' FROM [dbo].[TimeEntry] TIE WHERE TIE.[RECORDID] = '' + CONVERT(varchar(10), @RECID) EXEC (@COMMAND) SELECT @MATTER = CASE WHEN RTRIM(ISNULL(@MATTER, '''')) = '''' THEN TIE.[MATTER] ELSE @MATTER END FROM [dbo].[TimeEntry] TIE WHERE TIE.[RECORDID] = @RECID EXEC ky_WDUpdateMatterTimeBalance @MATTER END ' END GO /****** Object: StoredProcedure [dbo].[SpCheckReportName] Script Date: 10/01/2014 16:18:48 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SpCheckReportName]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- ============================================= -- Author: Magesh Kumar -- Create date: 3-MAR-2014 -- Description: This SP used to Check whether the report already EXISTS in table or not -- ============================================= CREATE PROCEDURE [dbo].[SpCheckReportName] -- Add the parameters for the stored procedure here @reportname VARCHAR(500) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for procedure here IF EXISTS(SELECT TOP 1 1 FROM CRReport WHERE lower(name) LIKE ''%''+lower(@reportname)+''%'') SELECT ''True'' Else SELECT ''False'' END ' END GO /****** Object: StoredProcedure [dbo].[report_filename_insert] Script Date: 10/01/2014 16:18:45 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[report_filename_insert]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- ============================================= -- Author: Magesh Kumar -- Create date: 3-MAR-2014 -- Description: This SP used to Insert/Update report details -- ============================================= CREATE PROCEDURE [dbo].[report_filename_insert] -- Add the parameters for the stored procedure here @name VARCHAR(500), @filename VARCHAR(500), @id DECIMAL(18,0), @report_type CHAR(10) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; IF NOT EXISTS(SELECT TOP 1 1 FROM crreport WHERE Reportid=@id) BEGIN INSERT INTO crreport (name,[filename],report_type) VALUES (@name,@filename,@report_type) END ELSE BEGIN UPDATE CRReport SET name = @name ,[filename] = @filename ,report_type = @report_type WHERE Reportid =@id END SELECT reportid FROM crreport WHERE name = @name AND [filename] = @filename END ' END GO /****** Object: StoredProcedure [dbo].[delete_report] Script Date: 10/01/2014 16:16:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[delete_report]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE PROCEDURE [dbo].[delete_report] @report_id DECIMAL(18,0) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; BEGIN DELETE FROM crreport WHERE reportid=@report_id END BEGIN DELETE FROM crparameter WHERE reportid=@report_id END END ' END GO /****** Object: StoredProcedure [dbo].[SpOverwriteImportData] Script Date: 10/01/2014 16:18:54 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SpOverwriteImportData]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- ============================================= -- Author: Magesh Kumar -- Create date: 3-MAR-2014 -- Description: This SP used to Update the report( used in import data) -- ============================================= CREATE PROCEDURE [dbo].[SpOverwriteImportData] -- Add the parameters for the stored procedure here @reportname NVARCHAR(500) ,@reportfilename NVARCHAR(500) ,@reporttype NVARCHAR(10) AS BEGIN IF EXISTS(SELECT TOP 1 1 FROM CRReport WHERE name =@reportname ) BEGIN UPDATE CRReport SET name = @reportname ,[filename] = @reportfilename ,report_type = @reporttype WHERE name = @reportname SELECT Reportid FROM crreport WHERE name = @reportname END ELSE INSERT INTO CRReport (name,filename,report_type) VALUES (@reportname,@reportfilename,@reporttype) SELECT Reportid FROM crreport WHERE name = @reportname END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_NETOpenClosedMatterLedger] Script Date: 10/01/2014 16:19:06 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NETOpenClosedMatterLedger]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' CREATE FUNCTION [dbo].[ky_NETOpenClosedMatterLedger]() RETURNS @LREFR TABLE ([id] int identity(1, 1), [Matter] VARCHAR(20), [BatchNo] int, [Pref] int, [TransDate] datetime, [Ref] VARCHAR(10), [Narr] VARCHAR(80), [ValueD] decimal(17, 2), [ValueO] decimal(17, 2), [ValueC] decimal(17, 2), [Fee] VARCHAR(10), [Per] smallint, [TranYear] smallint, [EntryDate] datetime, [Client] VARCHAR(10), [ValueCC] decimal(17, 2), [ValueCD] decimal(17, 2), [Deposittype] char(4), [lref] int, [RECORDID] int) WITH SCHEMABINDING AS BEGIN DECLARE @Moved INT SET @Moved = 1 IF EXISTS(SELECT TOP 1 1 FROM [dbo].[ClosedMatterLedger]) BEGIN SET @Moved = 0 END DECLARE @LREF TABLE ([LREF] int, [RECORDID] int) IF (@Moved = 0) BEGIN INSERT INTO @LREF ([LREF]) SELECT ML.[LREF] FROM [dbo].[MatterLedger] ML INSERT INTO @LREF ([LREF], [RECORDID]) SELECT ML.[LREF], ML.[RECORDID] FROM [dbo].[ClosedMatterLedger] ML LEFT OUTER JOIN [dbo].[MatterLedger] MLO ON MLO.[LREF] = ML.[LREF] WHERE MLO.[LREF] IS NULL INSERT INTO @LREFR ([LREF], [RECORDID]) SELECT LR.[LREF], LR.[RECORDID] FROM @LREF LR ORDER BY LR.[LREF] END ELSE BEGIN INSERT INTO @LREFR ([LREF]) SELECT ML.[LREF] FROM [dbo].[MatterLedger] ML ORDER BY ML.[LREF] END IF (@Moved = 0) BEGIN UPDATE LR SET LR.[MATTER] = RTRIM(ISNULL(ML.[MATTER], '''')), LR.[BATCHNO] = ISNULL(ML.[BATCHNO], 0), LR.[PREF] = ML.[PREF], LR.[TransDate] = ML.[DATE], LR.[Ref] = RTRIM(ML.[REF]), LR.[Narr] = RTRIM(ML.[Narr]), LR.[ValueD] = ISNULL(ML.[ValueD], 0), LR.[ValueO] = ISNULL(ML.[ValueO], 0), LR.[ValueC] = ISNULL(ML.[ValueC], 0), LR.[Fee] = RTRIM(ISNULL(ML.[Fee], '''')), LR.[Per] = ML.[PER], LR.[TranYear] = ML.[YEAR], LR.[EntryDate] = ML.[ENTRYDATE], LR.[Client] = RTRIM(ISNULL(ML.[CLIENT], '''')), LR.[ValueCC] = ISNULL(ML.[VALUECC], 0), LR.[ValueCD] = ISNULL(ML.[VALUECD], 0), LR.[Deposittype] = ML.[DEPOSITTYPE] FROM @LREFR LR INNER JOIN [dbo].[ClosedMatterLedger] ML ON ML.[RECORDID] = LR.[RECORDID] END UPDATE LR SET LR.[MATTER] = RTRIM(ISNULL(ML.[MATTER], '''')), LR.[BATCHNO] = ML.[BATCHNO], LR.[PREF] = ML.[PREF], LR.[TransDate] = ML.[DATE], LR.[Ref] = RTRIM(ML.[REF]), LR.[Narr] = RTRIM(ML.[Narr]), LR.[ValueD] = ML.[VALUED], LR.[ValueO] = ML.[VALUEO], LR.[ValueC] = ML.[VALUEC], LR.[Fee] = ML.[FEE], LR.[Per] = ML.[PER], LR.[TranYear] = ML.[YEAR], LR.[EntryDate] = ML.[ENTRYDATE], LR.[Client] = ML.[CLIENT], LR.[ValueCC] = ML.[VALUECC], LR.[ValueCD] = ML.[VALUECD], LR.[Deposittype] = ML.[DEPOSITTYPE] FROM @LREFR LR INNER JOIN [dbo].[MatterLedger] ML ON ML.[LREF] = LR.[LREF] RETURN END ' END GO /****** Object: StoredProcedure [dbo].[report_parameter_insert] Script Date: 10/01/2014 16:18:47 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[report_parameter_insert]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- ============================================= -- Author: Magesh Kumar -- Create date: 3-MAR-2014 -- Description: This SP used to Insert/Update report Parameters -- ============================================= CREATE PROCEDURE [dbo].[report_parameter_insert] -- Add the parameters for the stored procedure here @userprompt VARCHAR(100), @parametername VARCHAR(100), @parametervalue VARCHAR(100), @parameterformat VARCHAR(100), @parametertype VARCHAR(100), @parameterlength DECIMAL(18,0), @defaultvalue VARCHAR(100), @requiredfield CHAR(10), @userrequest CHAR(10), @infile VARCHAR(100), @controltype VARCHAR(100), @listoption VARCHAR(1000), @reportid DECIMAL(18,0), @paramid DECIMAL (18,0) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; IF (@paramid IS NULL) SET @paramid=0 IF EXISTS(SELECT TOP 1 1 FROM crparameter WHERE paramid=@paramid) BEGIN UPDATE crparameter SET userprompt = @userprompt, parametername = @parametername, parametervalue = @parametervalue, parameterformat = @parameterformat, parametertype = @parametertype, parameterlength = @parameterlength, defaultvalue = @defaultvalue, requiredfield = @requiredfield, userrequest = @userrequest, infile = @infile, controltype = @controltype, listoption = @listoption WHERE paramid=@paramid END ELSE BEGIN INSERT INTO crparameter (userprompt,parametername,parametervalue,parameterformat,parametertype,parameterlength,defaultvalue,requiredfield,userrequest,infile,controltype,listoption,reportid) VALUES (@userprompt,@parametername,@parametervalue,@parameterformat,@parametertype,@parameterlength,@defaultvalue,@requiredfield,@userrequest,@infile,@controltype,@listoption,@reportid) END END ' END GO /****** Object: StoredProcedure [dbo].[delete_parameter] Script Date: 10/01/2014 16:16:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[delete_parameter]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE PROCEDURE [dbo].[delete_parameter] @paramid DECIMAL(18,0) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. DELETE FROM crparameter WHERE paramid = @paramid END ' END GO /****** Object: StoredProcedure [dbo].[load_parameters] Script Date: 10/01/2014 16:18:35 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[load_parameters]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- ============================================= -- Author: Magesh Kumar -- Create date: 3-MAR-2014 -- Description: This SP used to Fetch paramters details based on Report ID -- ============================================= CREATE PROCEDURE [dbo].[load_parameters] -- Add the parameters for the stored procedure here @id DECIMAL(18,0) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; SELECT paramid ''Param ID'', userprompt ''User Prompt'', parametername ''Name'', parametervalue ''Value'', parameterformat ''Format'', parametertype ''Type'', parameterlength ''Length'', defaultvalue ''Default Value'', requiredfield ''Required Field'', userrequest ''Allow User'' , infile ''In File'', controltype ''Control Type'', listoption ''List Option'' FROM crparameter WHERE reportid=@id ORDER BY paramid END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDAssignAction_DiaryDel81] Script Date: 10/01/2014 16:17:44 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDAssignAction_DiaryDel81]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDAssignAction_DiaryDel81 * * Step 2 of assigning an Action: write a new Diary Delegation record * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDAssignAction_DiaryDel81] (@ActionID int, @AssignNo int, @DelDateType int, @DelDate varchar(17), @Handler varchar(10), @AssignTo varchar(10), @Release int, @RESULT int OUTPUT) AS BEGIN DECLARE @DATETIME DATETIME --Default to 0 - Use Today''s Date SET @DelDateType = ISNULL(@DelDateType, 0) BEGIN TRY -- Make sure @DelDateType contains a valid value, i.e. 0, 1 or 2. -- Anything outside that range is changed to the default, 0 SET @DelDateType = CASE WHEN @DelDateType = 1 THEN 1 WHEN @DelDateType = 2 THEN 2 ELSE 0 END SET @DATETIME = CASE WHEN @DelDateType = 1 THEN CONVERT(datetime, null) WHEN @DelDateType = 2 THEN CONVERT(datetime, @DelDate) ELSE GETDATE() END END TRY BEGIN CATCH -- If @DelDate doesn''t contain a valid date in "YYYYMMDD HH:MI:SS" format, -- revert to the default behaviour: use today''s date SET @DelDateType = 0 SET @DATETIME = GETDATE() END CATCH SET @RESULT = 0 BEGIN TRY BEGIN INSERT INTO [dbo].[DiaryDelegations] ([ActionID], [DATE], [Handler], [DELEGATE], [TEAM], [TIME], [OWNER], [DELTYPE], [Status], [DueDate], [DueTime], [ActionType], [FromHandler]) SELECT DIA.[ActionID] As [ActionID], CASE WHEN ((@Release = 1) AND (@Handler = DIA.[FNCODE]) AND (@DATETIME IS NULL)) THEN DEL1.[DATE] WHEN ((@Release = 1) AND (@Handler = DIA.[FNCODE]) AND (@DATETIME IS NOT NULL)) THEN Convert(datetime, Replace(CONVERT(varchar, @DATETIME, 112), ''-'', '''')) ELSE DEL1.[DATE] END As [DATE], RES.[CODE] As [Handler], RES.[CODE] As [DELEGATE], CASE RTRIM(IsNull(RES.[TEAMCODE], ''N'')) WHEN ''Y'' THEN RES.[CODE] ELSE RES.[TEAM] END AS [TEAM], [dbo].[ky_ConvertTimeToClarion]([dbo].[ky_ConvertDateAndClarionTimeToDateTime](DEL1.[DATE], DEL1.[TIME])) As [TIME], CASE WHEN ((@Release = 1) AND (@Handler = DIA.[FNCODE])) THEN ''Y'' ELSE ''N'' END AS [OWNER], CASE WHEN ((@Release = 1) AND (@Handler = DIA.[FNCODE])) THEN ''Released'' ELSE ''Delegated'' END AS [DELTYPE], 0 As [Status], CASE WHEN ((@Release = 1) AND (@Handler = DIA.[FNCODE]) AND (@DATETIME IS NULL)) THEN DEL1.[DATE] WHEN ((@Release = 1) AND (@Handler = DIA.[FNCODE]) AND (@DATETIME IS NOT NULL)) THEN DEL1.[DUEDATE] ELSE DEL1.[DATE] END As [DueDate], DEL1.[DUETIME] As [DueTime], DIA.[ACTIONTYPE] AS [ActionType], @Handler As [FromHandler] FROM [dbo].[diary] DIA INNER JOIN [dbo].[DiaryDelegations] DEL1 ON DEL1.[AssignNo] = @AssignNo AND DEL1.[ACTIONID] = @ActionID INNER JOIN [dbo].[Handlers] RES ON RES.[CODE] = @AssignTo WHERE DIA.[ACTIONID] = @ActionID END END TRY BEGIN CATCH SET @RESULT = -1 END CATCH IF (@@ERROR <> 0) BEGIN SET @RESULT = -1 END END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDReleaseAction_DiaryDel81] Script Date: 10/01/2014 16:18:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDReleaseAction_DiaryDel81]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDReleaseAction_DiaryDel81 * * Step 1 of assigning an Action: release the Diary Delegation record * * @DelDateType: 0 - Use Today''s Date as the delegation date * 1 - Keep the original date/time * 2 - Use the date passed in through @DelDate as the delegation date * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDReleaseAction_DiaryDel81] (@ActionID int, @Handler varchar(10), @DelDateType int, @DelDate varchar(17), @RESULT int OUTPUT) AS BEGIN DECLARE @DATETIME DATETIME --Default to 0 - Use Today''s Date SET @DelDateType = ISNULL(@DelDateType, 0) BEGIN TRY -- Make sure @DelDateType contains a valid value, i.e. 0, 1 or 2. -- Anything outside that range is changed to the default, 0 SET @DelDateType = CASE WHEN @DelDateType = 1 THEN 1 WHEN @DelDateType = 2 THEN 2 ELSE 0 END SET @DATETIME = CASE WHEN @DelDateType = 1 THEN CONVERT(datetime, null) WHEN @DelDateType = 2 THEN CONVERT(datetime, @DelDate) ELSE GETDATE() END END TRY BEGIN CATCH -- If @DelDate doesn''t contain a valid date in "YYYYMMDD HH:MI:SS" format, -- revert to the default behaviour: use today''s date SET @DelDateType = 0 SET @DATETIME = GETDATE() END CATCH SET @RESULT = 0 BEGIN TRY BEGIN UPDATE DEL SET DEL.[Owner] = ''N'', DEL.[Status] = 1, DEL.[dater] = CASE WHEN @DATETIME IS NULL THEN DEL.[dater] ELSE convert(DATETIME, REPLACE(CONVERT(VARCHAR, @DATETIME, 112), ''-'', '''')) END, DEL.[timer] = CASE WHEN @DATETIME IS NULL THEN DEL.[timer] ELSE [dbo].[ky_ConvertTimeToClarion](@DATETIME) END, DEL.[DelegateStatus] = 1 FROM [dbo].[DiaryDelegations] DEL WHERE DEL.[ACTIONID] = @ActionID AND DEL.[HANDLER] = @HANDLER AND DEL.[STATUS] = 0 END END TRY BEGIN CATCH SET @RESULT = -1 END CATCH IF (@@ERROR <> 0) BEGIN SET @RESULT = -1 END END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDReleaseAction_DiaryDel] Script Date: 10/01/2014 16:18:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDReleaseAction_DiaryDel]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDReleaseAction_DiaryDel * * Step 1 of assigning an Action: release the Diary Delegation record * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDReleaseAction_DiaryDel] (@ActionID int, @Handler varchar(10), @RESULT int OUTPUT) AS BEGIN DECLARE @DATETIME DATETIME SET @DATETIME = GETDATE() SET @RESULT = 0 BEGIN TRY BEGIN UPDATE DEL SET DEL.[Owner] = ''N'', DEL.[Status] = 1, DEL.[dater] = convert(DATETIME, REPLACE(CONVERT(VARCHAR, @DATETIME, 112), ''-'', '''')), DEL.[timer] = [dbo].[ky_ConvertTimeToClarion](@DATETIME), DEL.[DelegateStatus] = 1 FROM [dbo].[DiaryDelegations] DEL WHERE DEL.[ACTIONID] = @ActionID AND DEL.[HANDLER] = @HANDLER AND DEL.[STATUS] = 0 END END TRY BEGIN CATCH SET @RESULT = -1 END CATCH IF (@@ERROR <> 0) BEGIN SET @RESULT = -1 END END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDAssignAction_DiaryDel] Script Date: 10/01/2014 16:17:43 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDAssignAction_DiaryDel]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDAssignAction_DiaryDel * * Step 2 of assigning an Action: write a new Diary Delegation record * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDAssignAction_DiaryDel] (@ActionID int, @AssignNo int, @Handler varchar(10), @AssignTo varchar(10), @Release int, @RESULT int OUTPUT) AS BEGIN SET @RESULT = 0 BEGIN TRY BEGIN INSERT INTO [dbo].[DiaryDelegations] ([ActionID], [DATE], [Handler], [TEAM], [TIME], [OWNER], [DELTYPE], [Status], [DueDate], [DueTime], [ActionType], [FromHandler]) SELECT DIA.[ActionID] As [ActionID], DEL1.[DATE] As [DATE], RES.[CODE] As [Handler], CASE RTRIM(IsNull(RES.[TEAMCODE], ''N'')) WHEN ''Y'' THEN RES.[CODE] ELSE RES.[TEAM] END AS [TEAM], [dbo].[ky_ConvertTimeToClarion]([dbo].[ky_ConvertDateAndClarionTimeToDateTime](DEL1.[DATE], DEL1.[TIME])) As [TIME], CASE WHEN ((@Release = 1) AND (@Handler = DIA.[FNCODE])) THEN ''Y'' ELSE ''N'' END AS [OWNER], CASE WHEN ((@Release = 1) AND (@Handler = DIA.[FNCODE])) THEN ''Released'' ELSE ''Delegated'' END AS [DELTYPE], 0 As [Status], DEL1.[DATE] As [DueDate], [dbo].[ky_ConvertTimeToClarion]([dbo].[ky_ConvertDateAndClarionTimeToDateTime](DEL1.[DATE], DEL1.[TIME])) As [DueTime], DIA.[ACTIONTYPE] AS [ActionType], @Handler As [FromHandler] FROM [dbo].[diary] DIA INNER JOIN [dbo].[DiaryDelegations] DEL1 ON DEL1.[AssignNo] = @AssignNo AND DEL1.[ACTIONID] = @ActionID INNER JOIN [dbo].[Handlers] RES ON RES.[CODE] = @AssignTo WHERE DIA.[ACTIONID] = @ActionID END END TRY BEGIN CATCH SET @RESULT = -1 END CATCH IF (@@ERROR <> 0) BEGIN SET @RESULT = -1 END END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDDelTeamView] Script Date: 10/01/2014 16:19:20 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDDelTeamView]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDDelTeamView * * Delegations by Team view * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDDelTeamView] (@team varchar(10), @startdate datetime, @enddate datetime, @outstanding int) RETURNS @DV TABLE ([CaseCode] varchar(20), [Action] varchar(255), [Status] int, [ActionType] varchar(1), [Priority] varchar(1), [DelegateStatus] int, [ImageNo] int, [Handler] varchar(10), [Team] varchar(10), [FromHandler] varchar(10), [ActionID] int, [DiaryStatus] int, [Highlighted] varchar(1), [Attachments] varchar(1), [DiaryDate] varchar(11), [FNCode] varchar(10), [TeamCode] varchar(10), [WorkProcess] int, [DelegationStatus] int, [ActionCode] varchar(30), [Duration] varchar(30), [DelegatedDateTime] datetime) AS BEGIN SET @outstanding = isnull(@outstanding, 1) INSERT INTO @DV ([CaseCode], [Action], [Status], [ActionType], [Priority], [DelegateStatus], [ImageNo], [Handler], [Team], [FromHandler], [ActionID], [DiaryStatus], [Highlighted], [Attachments], [DiaryDate], [FNCode], [TeamCode], [WorkProcess], [DelegationStatus], [ActionCode], [Duration], [DelegatedDateTime]) SELECT RTrim(IsNull(DIA.[CaseCode], '''')) As [CaseCode], '''' As [Action], DEL.[Status], IsNull(DIA.[ActionType], '''') As [ActionType], IsNull(DIA.[Priority], '''') As [Priority], IsNull(DEL.[DELEGATESTATUS], 0) As [DelegateStatus], DIA.[ImageNo], IsNull(DEL.[Handler], '''') As [Handler], IsNull(DEL.[Team], '''') As [Team], IsNull(DEL.[FromHandler], '''') As [FromHandler], DIA.[ActionID] As [ActionID], IsNull(DIA.[Status], 0) As [DiaryStatus], IsNull(DIA.[Highlighted], '''') As [Highlighted], IsNull(DIA.[Attachments], '''') As [Attachments], Convert(varchar, DIA.[DATE], 106) As [DiaryDate], RTrim(IsNull(DIA.[FNCode], '''')) AS [FNCode], IsNull(DIA.[TeamCode], '''') AS [TeamCode], IsNull(DIA.[WorkProcess], 0) AS [WorkProcess], Convert(int, IsNull(DIA.[DelegationStatus], 0)) AS [DelegationStatus], RTrim(IsNull(DIA.[ACTIONCODE], '''')) AS [ActionCode], CASE WHEN DIA.[ACTIONTYPE] = ''D'' AND DIA.[IMAGENO] > 0 THEN ''Length: '' + Convert(varchar, [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DIA.[DATE], DIA.[IMAGENO]), 108) ELSE '''' END AS [DURATION], [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DEL.[DATE], DEL.[TIME]) AS [DelegatedDateTime] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DEL.[ActionID] -- INNER JOIN [dbo].[WDOpenMatters] WOM -- ON WOM.[Code] = DIA.[CASECODE] WHERE DEL.[Team] = @team AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @outstanding = 0 OR DEL.[Status] = 0) UPDATE DV SET DV.[Action] = [dbo].[ky_removespuriouswhitespace](substring(DIA.[TEXT1], 1, 120), 80) FROM @DV DV INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DV.[ActionID] RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDDelView] Script Date: 10/01/2014 16:19:21 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDDelView]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDDelView * * Delegations view * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDDelView] (@handler varchar(10), @startdate datetime, @enddate datetime, @outstanding int) RETURNS @DV TABLE ([CaseCode] varchar(20), [Action] varchar(255), [Status] int, [ActionType] varchar(1), [Priority] varchar(1), [DelegateStatus] int, [ImageNo] int, [Handler] varchar(10), [Team] varchar(10), [FromHandler] varchar(10), [ActionID] int, [DiaryStatus] int, [Highlighted] varchar(1), [Attachments] varchar(1), [DiaryDate] varchar(11), [FNCode] varchar(10), [TeamCode] varchar(10), [WorkProcess] int, [DelegationStatus] int, [ActionCode] varchar(30), [Duration] varchar(30), [DelegatedDateTime] datetime) AS BEGIN SET @outstanding = isnull(@outstanding, 1) INSERT INTO @DV ([CaseCode], [Action], [Status], [ActionType], [Priority], [DelegateStatus], [ImageNo], [Handler], [Team], [FromHandler], [ActionID], [DiaryStatus], [Highlighted], [Attachments], [DiaryDate], [FNCode], [TeamCode], [WorkProcess], [DelegationStatus], [ActionCode], [Duration], [DelegatedDateTime]) SELECT RTrim(IsNull(DIA.[CaseCode], '''')) As [CaseCode], '''' As [Action], DEL.[Status], IsNull(DIA.[ActionType], '''') As [ActionType], IsNull(DIA.[Priority], '''') As [Priority], IsNull(DEL.[DELEGATESTATUS], 0) As [DelegateStatus], DIA.[ImageNo], IsNull(DEL.[Handler], '''') As [Handler], IsNull(DEL.[Team], '''') As [Team], IsNull(DEL.[FromHandler], '''') As [FromHandler], DIA.[ActionID] As [ActionID], IsNull(DIA.[Status], 0) As [DiaryStatus], IsNull(DIA.[Highlighted], '''') As [Highlighted], IsNull(DIA.[Attachments], '''') As [Attachments], Convert(varchar, DIA.[DATE], 106) As [DiaryDate], RTrim(IsNull(DIA.[FNCode], '''')) AS [FNCode], IsNull(DIA.[TeamCode], '''') AS [TeamCode], IsNull(DIA.[WorkProcess], 0) AS [WorkProcess], Convert(int, IsNull(DIA.[DelegationStatus], 0)) AS [DelegationStatus], RTrim(IsNull(DIA.[ACTIONCODE], '''')) AS [ActionCode], CASE WHEN DIA.[ACTIONTYPE] = ''D'' AND DIA.[IMAGENO] > 0 THEN ''Length: '' + Convert(varchar, [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DIA.[DATE], DIA.[IMAGENO]), 108) ELSE '''' END AS [DURATION], [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DEL.[DATE], DEL.[TIME]) AS [DelegatedDateTime] FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DEL.[ActionID] -- INNER JOIN [dbo].[WDOpenMatters] WOM -- ON WOM.[Code] = DIA.[CASECODE] WHERE DEL.[Handler] = @handler AND DEL.[DATE] >= @startdate AND DEL.[DATE] < @enddate AND DEL.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND ( @outstanding = 0 OR DEL.[Status] = 0) UPDATE DV SET DV.[Action] = [dbo].[ky_removespuriouswhitespace](substring(DIA.[TEXT1], 1, 120), 80) FROM @DV DV INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DV.[ActionID] RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDStoreFileBlob] Script Date: 10/01/2014 16:18:17 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDStoreFileBlob]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /******************************************************************************************* * * ky_WDStoreFileBlob * Stores a file that is accessible from the SQL Server as a BLOB in the "HandlerImages" table * for the current handler (with ImageType 101). The calling process can then retrieve the file * directly from SQL, requiring no direct access to the file system. Nice for Web Servers. * *******************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDStoreFileBlob] (@handler varchar(10), @filepath varchar(300)) AS BEGIN DECLARE @command varchar(2000) DELETE HIM FROM [dbo].[HandlerImages] HIM WHERE HIM.[Handler] = @handler AND HIM.[ImageType] = 101 SET @command = '' INSERT INTO [dbo].[HandlerImages] ([Handler], [ImageType], [Image]) SELECT '''''' + REPLACE(@handler, '''''''', '''''''''''') + '''''', 101, BulkColumn FROM OPENROWSET(Bulk '''''' + REPLACE(@filepath, '''''''', '''''''''''') + '''''', SINGLE_BLOB) AS BLOB'' EXEC (@command) END ' END GO /****** Object: StoredProcedure [dbo].[pWebCaseDiaryAdd] Script Date: 10/01/2014 16:18:40 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[pWebCaseDiaryAdd]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- Creates a new record in the [dbo].[diary] table. CREATE PROCEDURE [dbo].[pWebCaseDiaryAdd] @p_CASECODE char(20), @p_DATE datetime, @p_STATUS smallint, @p_ACTIONCODE char(15), @p_ACTIONSTATUS char(3), @p_ACTIONTYPE char(1), @p_PROCESSTYPE char(1), @p_FNCODE char(3), @p_TEAMCODE char(3), @p_TEXT1 text, @p_TEXT2 text, @p_DELEGATEDFNR char(3), @p_DELEGATEDDATE datetime, @p_DELEGATEDBACKDATE datetime, @p_DEFERRED char(3), @p_DUEDATE datetime, @p_IMAGENO int, @p_PUBLISH char(1), @p_DYSTARTTIME char(10), @p_DYENDTIME char(10), @p_DURATION smallint, @p_ACTIONID numeric(15,0), @p_ORGINALACTIONID numeric(15,0), @p_PRIORITY char(1), @p_HIGHLIGHTED char(1), @p_MILESTEONETYPE char(12), @p_ATTACHMENTS char(1), @p_PROCESSSTATUS smallint, @p_WORKPROCESS smallint, @p_BILLABLE int, @p_BILLDESCRIPTION char(150), @p_EMAILADDRESS char(150), @p_ADDRESSTO char(2000), @p_CCTo char(2000), @p_BCCTo char(2000), @p_EMAIL char(1), @p_SUBJECT char(150), @p_DELEGATIONSTATUS numeric(5,2), @p_DRAFTBILLNO int, @p_CHEQUEREQNO int, @p_TxmSent bit, @p_Location char(50), @p_HearingType char(20), @p_ForCopy char(1) AS 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], [Location], [HearingType], [ForCopy] ) VALUES ( @p_CASECODE, @p_DATE, @p_STATUS, @p_ACTIONCODE, @p_ACTIONSTATUS, @p_ACTIONTYPE, @p_PROCESSTYPE, @p_FNCODE, @p_TEAMCODE, @p_TEXT1, [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), @p_TEXT1), ''''), 200), @p_TEXT2, @p_DELEGATEDFNR, @p_DELEGATEDDATE, @p_DELEGATEDBACKDATE, @p_DEFERRED, @p_DUEDATE, @p_IMAGENO, @p_PUBLISH, @p_DYSTARTTIME, @p_DYENDTIME, @p_DURATION, @p_ACTIONID, @p_ORGINALACTIONID, @p_PRIORITY, @p_HIGHLIGHTED, @p_MILESTEONETYPE, @p_ATTACHMENTS, @p_PROCESSSTATUS, @p_WORKPROCESS, @p_BILLABLE, @p_BILLDESCRIPTION, @p_EMAILADDRESS, @p_ADDRESSTO, @p_CCTo, @p_BCCTo, @p_EMAIL, @p_SUBJECT, @p_DELEGATIONSTATUS, @p_DRAFTBILLNO, @p_CHEQUEREQNO, @p_Location, @p_HearingType, @p_ForCopy ) -- Call UPDATE for fields that have database defaults IF @p_TxmSent IS NOT NULL UPDATE [dbo].[diary] SET [TxmSent] = @p_TxmSent WHERE [ACTIONID] = @p_ACTIONID END ' END GO /****** Object: StoredProcedure [dbo].[spGetCaseDiary] Script Date: 10/01/2014 16:18:48 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spGetCaseDiary]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[spGetCaseDiary] (@CaseCode VARCHAR(20), @DateTime DATETIME, @ActionID DECIMAL(9,2)) AS /********************************************************************************* * * spGetCaseDiary * 2014-06-19 - should this include DisplayText * 2014-06-20 - Change CaseCode parameters to 20 characters with a view to * probable future expansion in size. * - Is this thing even still used? * *********************************************************************************/ BEGIN --This only needs to remain in place while the old and new versions of the software are still --being used side by side UPDATE DIA SET DIA.DisplayText = [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), DIA.[TEXT1]), ''''), 200) FROM [dbo].[diary] DIA WHERE DIA.[CASECODE] = @CaseCode AND DIA.[DisplayText] IS NULL SELECT RTRIM(ISNULL(DIA.[CASECODE], '''')) AS [CASECODE], DIA.[DATE], ISNULL(DIA.[STATUS], 0) AS [STATUS], 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(DIA.[TEAMCODE], '''')) AS [TEAMCODE], RTRIM(ISNULL(CONVERT(VARCHAR(MAX), DIA.[TEXT1]), '''')) AS [TEXT1], RTRIM(ISNULL(DIA.[DYSTARTTIME], '''')) AS [DYSTARTTIME], ISNULL(CONVERT(INT, DIA.[ACTIONID]), 0) AS [ACTIONID], ISNULL(CONVERT(INT, DIA.[ORGINALACTIONID]), 0) AS [ORIGINALACTIONID], CASE WHEN RTRIM(ISNULL(DIA.[PRIORITY], '''')) IN (''L'', ''N'', ''H'') THEN UPPER(RTRIM(ISNULL(DIA.[PRIORITY], ''''))) ELSE ''N'' END AS [PRIORITY], CASE WHEN RTRIM(ISNULL(DIA.[HIGHLIGHTED], ''N'')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [HIGHLIGHTED], CASE WHEN RTRIM(ISNULL(DIA.[ATTACHMENTS], ''N'')) = ''Y'' THEN ''Y'' ELSE ''N'' END 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(MAX), DIA.[ADDRESSTO]), '''')) AS [ADDRESSTO], CASE WHEN RTRIM(ISNULL(DIA.[EMAIL], ''N'')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [EMAIL], RTRIM(ISNULL(CONVERT(VARCHAR(MAX), DIA.[SUBJECT]), '''')) AS [SUBJECT], CONVERT(INT, ISNULL(DIA.[DELEGATIONSTATUS], 0)) AS [DELEGATIONSTATUS], ISNULL(DIA.[DRAFTBILLNO], 0) AS [DRAFTBILLNO] FROM [dbo].[diary] DIA WHERE DIA.[CASECODE] = @CaseCode /* Ok, I''ve formatted the Where clause below so it is actually readable, but I still can''t figure out what it is meant to do. Anybody able to enlighten me? */ AND ( (ISNULL(DIA.[STATUS], 0) = 0) OR ( (DIA.[DATE] >= @DateTime) AND ( (DIA.[DATE] > @DateTime) OR ( (DIA.[DYSTARTTIME] >= ''1'') AND ( (DIA.[DYSTARTTIME] > ''1'' ) OR (DIA.[ACTIONID] >= @ActionID)))))) ORDER BY ISNULL(DIA.[STATUS], 0) DESC, DIA.[DATE] ASC, RTRIM(ISNULL(DIA.[DYSTARTTIME], '''')) ASC, DIA.[ACTIONID] ASC END ' END GO /****** Object: StoredProcedure [dbo].[pWebCaseDiaryUpdate] Script Date: 10/01/2014 16:18:45 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[pWebCaseDiaryUpdate]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- Updates a record in the [dbo].[diary] table. -- Concurreny is supported by using checksum method. CREATE PROCEDURE [dbo].[pWebCaseDiaryUpdate] @p_CASECODE char(20), @p_DATE datetime, @p_STATUS smallint, @p_ACTIONCODE char(15), @p_ACTIONSTATUS char(3), @p_ACTIONTYPE char(1), @p_PROCESSTYPE char(1), @p_FNCODE char(3), @p_TEAMCODE char(3), @p_TEXT1 text, @p_TEXT2 text, @p_DELEGATEDFNR char(3), @p_DELEGATEDDATE datetime, @p_DELEGATEDBACKDATE datetime, @p_DEFERRED char(3), @p_DUEDATE datetime, @p_IMAGENO int, @p_PUBLISH char(1), @p_DYSTARTTIME char(10), @p_DYENDTIME char(10), @p_DURATION smallint, @p_ACTIONID numeric(15,0), @pk_ACTIONID numeric(15,0), @p_ORGINALACTIONID numeric(15,0), @p_PRIORITY char(1), @p_HIGHLIGHTED char(1), @p_MILESTEONETYPE char(12), @p_ATTACHMENTS char(1), @p_PROCESSSTATUS smallint, @p_WORKPROCESS smallint, @p_BILLABLE int, @p_BILLDESCRIPTION char(150), @p_EMAILADDRESS char(150), @p_ADDRESSTO char(2000), @p_CCTo char(2000), @p_BCCTo char(2000), @p_EMAIL char(1), @p_SUBJECT char(150), @p_DELEGATIONSTATUS numeric(5,2), @p_DRAFTBILLNO int, @p_CHEQUEREQNO int, @p_TxmSent bit, @p_Location char(50), @p_HearingType char(20), @p_ForCopy char(1), @p_prevConValue nvarchar(4000), @p_force_update char(1) AS DECLARE @l_newValue nvarchar(4000), @return_status int, @l_rowcount int BEGIN -- Check whether the record still exists before doing update IF NOT EXISTS (SELECT TOP 1 1 FROM [dbo].[diary] WHERE [ACTIONID] = @pk_ACTIONID) RAISERROR (''Concurrency Error: The record has been deleted by another user. Table [dbo].[diary]'', 16, 1) -- If user wants to force update to happen even if -- the record has been modified by a concurrent user, -- then we do this. IF (@p_force_update = ''Y'') BEGIN -- Update the record with the passed parameters UPDATE [dbo].[diary] SET [CASECODE] = @p_CASECODE, [DATE] = @p_DATE, [STATUS] = @p_STATUS, [ACTIONCODE] = @p_ACTIONCODE, [ACTIONSTATUS] = @p_ACTIONSTATUS, [ACTIONTYPE] = @p_ACTIONTYPE, [PROCESSTYPE] = @p_PROCESSTYPE, [FNCODE] = @p_FNCODE, [TEAMCODE] = @p_TEAMCODE, [TEXT1] = @p_TEXT1, [DisplayText] = [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), @p_TEXT1), ''''), 200), [TEXT2] = @p_TEXT2, [DELEGATEDFNR] = @p_DELEGATEDFNR, [DELEGATEDDATE] = @p_DELEGATEDDATE, [DELEGATEDBACKDATE] = @p_DELEGATEDBACKDATE, [DEFERRED] = @p_DEFERRED, [DUEDATE] = @p_DUEDATE, [IMAGENO] = @p_IMAGENO, [PUBLISH] = @p_PUBLISH, [DYSTARTTIME] = @p_DYSTARTTIME, [DYENDTIME] = @p_DYENDTIME, [DURATION] = @p_DURATION, [ACTIONID] = @p_ACTIONID, [ORGINALACTIONID] = @p_ORGINALACTIONID, [PRIORITY] = @p_PRIORITY, [HIGHLIGHTED] = @p_HIGHLIGHTED, [MILESTEONETYPE] = @p_MILESTEONETYPE, [ATTACHMENTS] = @p_ATTACHMENTS, [PROCESSSTATUS] = @p_PROCESSSTATUS, [WORKPROCESS] = @p_WORKPROCESS, [BILLABLE] = @p_BILLABLE, [BILLDESCRIPTION] = @p_BILLDESCRIPTION, [EMAILADDRESS] = @p_EMAILADDRESS, [ADDRESSTO] = @p_ADDRESSTO, [CCTo] = @p_CCTo, [BCCTo] = @p_BCCTo, [EMAIL] = @p_EMAIL, [SUBJECT] = @p_SUBJECT, [DELEGATIONSTATUS] = @p_DELEGATIONSTATUS, [DRAFTBILLNO] = @p_DRAFTBILLNO, [CHEQUEREQNO] = @p_CHEQUEREQNO, [TxmSent] = @p_TxmSent, [Location] = @p_Location, [HearingType] = @p_HearingType, [ForCopy] = @p_ForCopy WHERE [ACTIONID] = @pk_ACTIONID -- Make sure only one record is affected SET @l_rowcount = @@ROWCOUNT IF @l_rowcount = 0 RAISERROR (''The record cannot be updated.'', 16, 1) IF @l_rowcount > 1 RAISERROR (''duplicate object instances.'', 16, 1) END ELSE BEGIN -- Get the checksum value for the record -- and put an update lock on the record to -- ensure transactional integrity. The lock -- will be release when the transaction is -- later committed or rolled back. Select @l_newValue = CAST(BINARY_CHECKSUM([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]) AS nvarchar(4000)) FROM [dbo].[diary] with (rowlock, holdlock) WHERE [ACTIONID] = @pk_ACTIONID -- Check concurrency by comparing the checksum values IF (@p_prevConValue = @l_newValue) SET @return_status = 0 -- pass ElSE SET @return_status = 1 -- fail -- Concurrency check passed. Go ahead and -- update the record IF (@return_status = 0) BEGIN UPDATE [dbo].[diary] SET [CASECODE] = @p_CASECODE, [DATE] = @p_DATE, [STATUS] = @p_STATUS, [ACTIONCODE] = @p_ACTIONCODE, [ACTIONSTATUS] = @p_ACTIONSTATUS, [ACTIONTYPE] = @p_ACTIONTYPE, [PROCESSTYPE] = @p_PROCESSTYPE, [FNCODE] = @p_FNCODE, [TEAMCODE] = @p_TEAMCODE, [TEXT1] = @p_TEXT1, [DisplayText] = [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), @p_TEXT1), ''''), 200), [TEXT2] = @p_TEXT2, [DELEGATEDFNR] = @p_DELEGATEDFNR, [DELEGATEDDATE] = @p_DELEGATEDDATE, [DELEGATEDBACKDATE] = @p_DELEGATEDBACKDATE, [DEFERRED] = @p_DEFERRED, [DUEDATE] = @p_DUEDATE, [IMAGENO] = @p_IMAGENO, [PUBLISH] = @p_PUBLISH, [DYSTARTTIME] = @p_DYSTARTTIME, [DYENDTIME] = @p_DYENDTIME, [DURATION] = @p_DURATION, [ACTIONID] = @p_ACTIONID, [ORGINALACTIONID] = @p_ORGINALACTIONID, [PRIORITY] = @p_PRIORITY, [HIGHLIGHTED] = @p_HIGHLIGHTED, [MILESTEONETYPE] = @p_MILESTEONETYPE, [ATTACHMENTS] = @p_ATTACHMENTS, [PROCESSSTATUS] = @p_PROCESSSTATUS, [WORKPROCESS] = @p_WORKPROCESS, [BILLABLE] = @p_BILLABLE, [BILLDESCRIPTION] = @p_BILLDESCRIPTION, [EMAILADDRESS] = @p_EMAILADDRESS, [ADDRESSTO] = @p_ADDRESSTO, [CCTo] = @p_CCTo, [BCCTo] = @p_BCCTo, [EMAIL] = @p_EMAIL, [SUBJECT] = @p_SUBJECT, [DELEGATIONSTATUS] = @p_DELEGATIONSTATUS, [DRAFTBILLNO] = @p_DRAFTBILLNO, [CHEQUEREQNO] = @p_CHEQUEREQNO, [TxmSent] = @p_TxmSent, [Location] = @p_Location, [HearingType] = @p_HearingType, [ForCopy] = @p_ForCopy WHERE [ACTIONID] = @pk_ACTIONID SET @l_rowcount = @@ROWCOUNT IF @l_rowcount = 0 RAISERROR (''The record cannot be updated.'', 16, 1) IF @l_rowcount > 1 RAISERROR (''duplicate object instances.'', 16, 1) END ELSE -- Concurrency check failed. Inform the user by raising the error RAISERROR (''Concurrency Error: The record has been updated by another user. Table [dbo].[diary]'', 16, 1) END END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDUpdateAppt5] Script Date: 10/01/2014 16:18:32 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDUpdateAppt5]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_WDUpdateAppt5] (@pConvIndex varchar(500), @pDate datetime, @pDueDate datetime, @pText1 varchar(MAX), @pEmailAddress varchar(MAX), @pAddressTo varchar(MAX), @pccTo varchar(MAX), @pSubject varchar(MAX), @pLocation varchar(50), @pDuration int) AS /************************************************************************ * * Update Appt .NET version - Version 5. * *************************************************************************/ BEGIN DECLARE @continue int DECLARE @error varchar(1000) DECLARE @dDate datetime DECLARE @pTime char(10) DECLARE @pEndTime char(10) DECLARE @dDueDate datetime DECLARE @pDueTime char(10) SET @continue = 0 SET @error = '''' BEGIN TRANSACTION SET @continue = 0 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'' 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'' END CATCH 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, '''')) END IF (@continue = 0) BEGIN BEGIN TRY UPDATE DIA SET DIA.[DATE] = @pDate, DIA.[EMAILADDRESS] = @pEmailAddress, DIA.[ADDRESSTO] = @pAddressTo, DIA.[CCTo] = @pccTo, DIA.[Location] = @pLocation, DIA.[DUEDATE] = @pDueDate, DIA.[DYSTARTTIME] = @pTime, DIA.[DYENDTIME] = @pEndTime, DIA.[TEXT1] = @pText1, DIA.[DisplayText] = [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), @pText1), ''''), 200) FROM [dbo].[OLApptXref] OLA INNER JOIN [dbo].[diary] DIA ON DIA.[ACTIONID] = OLA.[ACTIONID] WHERE OLA.[ConversationIndex] = @pConvIndex END TRY BEGIN CATCH SET @continue = 3 SET @error = ''error updating diary'' END CATCH END IF (@continue = 0) BEGIN BEGIN TRY UPDATE DEL SET DEL.[DATE] = @dDate, DEL.[TIME] = @pTime, DEL.[DATER] = @dDate, DEL.[TIMER] = @pTime, DEL.[DUEDATE] = @dDueDate, DEL.[DUETIME] = @pDueTime FROM [dbo].[OLApptXref] OLA INNER JOIN [dbo].[DiaryDelegations] DEL ON DEL.[ACTIONID] = OLA.[ACTIONID] END TRY BEGIN CATCH SET @continue = 4 SET @error = ''error updating diary delegations'' END CATCH END SELECT @continue IF (@continue = 0) BEGIN COMMIT END ELSE BEGIN ROLLBACK END SELECT @continue AS [ErrorCode], @error AS [ErrorMessage] END ' END GO /****** Object: StoredProcedure [dbo].[ky_IMMoveBriefDocuments] Script Date: 10/01/2014 16:17:22 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_IMMoveBriefDocuments]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_IMMoveBriefDocuments] (@docs VARCHAR(MAX)) AS /************************************************************************************************************* * * ky_IMMoveBriefDocuments - Move documents FROM one Brief section to the other * *************************************************************************************************************/ BEGIN BEGIN TRANSACTION DECLARE @idoc INT DECLARE @SectionID INT DECLARE @BriefID INT DECLARE @MoveDocs TABLE ([recordid] INT, [BriefID] INT, [DocumentName] VARCHAR(255), [TrackReference] INT, [FileLocation] VARCHAR(255), [Filedate] DATETIME, [DocumentType] VARCHAR(4), [DocumentClass] VARCHAR(100), [SortOrder] INT identity(1, 1), [SectionID] INT, [IMDOCID] VARCHAR(500)) DECLARE @DelDocs TABLE ([recordid] INT) DECLARE @NewSort TABLE ([recordid] INT, [SectionID] INT, [ID] INT identity(1, 1), [NewSort] INT) BEGIN TRY EXEC sp_xml_preparedocument @idoc OUTPUT, @docs SELECT TOP 1 @SectionID = [tosection], @BriefID = [briefid] FROM OPENXML(@idoc, ''docs/doc'', 2) WITH([briefid] INT ''../@briefid'', [tosection] INT ''../@tosection'') DCS IF (@SectionID <> 0) BEGIN INSERT INTO @MoveDocs ([recordid], [BriefID], [DocumentName], [TrackReference], [FileLocation], [Filedate], [DocumentType], [DocumentClass], [SectionID], [IMDOCID]) SELECT BRD.[recordid], BRD.[BriefID], RTRIM(ISNULL(BRD.[DocumentName], '''')) AS [DocumentName], BRD.[TrackReference], CASE WHEN UNC.[Drive] IS NULL THEN RTRIM(ISNULL(BRD.[FileLocation], '''')) ELSE RTRIM(ISNULL(UNC.[UNC] + SUBSTRING(BRD.[FileLocation], 3, LEN(BRD.[FileLocation]) - 2), '''')) END AS [FileLocation], BRD.[Filedate], UPPER(RTRIM(ISNULL(BRD.[DocumentType], ''''))) AS [DocumentType], RTRIM(ISNULL(BRD.[DocumentClass], '''')) AS [DocumentClass], BRD.[SectionID], RTRIM(ISNULL(BRD.[IMDOCID], '''')) AS [IMDOCID] FROM [dbo].[BriefDocuments] BRD LEFT OUTER JOIN [dbo].[UNCAlias] UNC ON UNC.[Drive] = CASE WHEN SUBSTRING(BRD.[FileLocation], 2, 1) = '':'' THEN LEFT(BRD.[FileLocation], 1) ELSE '''' END WHERE BRD.[SectionID] = @SectionID INSERT INTO @MoveDocs ([recordid], [BriefID], [DocumentName], [TrackReference], [FileLocation], [Filedate], [DocumentType], [DocumentClass], [SectionID], [IMDOCID]) SELECT 0 AS [recordid], @BriefID AS [BriefID], DCS.[DocumentName], DCS.[TrackReference], DCS.[FileLocation], DCS.[Filedate], DCS.[DocumentType], DCS.[DocumentClass], @SectionID AS [SectionID], DCS.[IMDOCID] FROM OPENXML(@idoc, ''docs/doc'', 2) WITH([DocumentName] VARCHAR(255) ''@DocumentName'', [Filedate] DATETIME ''@DocumentDate'', [FileLocation] VARCHAR(255) ''@FileLocation'', [DocumentType] VARCHAR(4) ''@DocumentType'', [DocumentClass] VARCHAR(100) ''@DocumentClass'', [trackreference] INT ''@TrackReference'', [IMDOCID] VARCHAR(500) ''@IMDocID'') DCS END INSERT INTO @DelDocs ([recordid]) SELECT DCS.[recordid] AS [recordid] FROM OPENXML(@idoc, ''docs/doc'', 2) WITH([recordid] INT ''@recordid'') DCS WHERE DCS.[recordid] <> 0 EXEC sp_xml_removedocument @idoc DELETE BRD FROM @DelDocs DD INNER JOIN [dbo].[BriefDocuments] BRD ON BRD.[recordId] = DD.[recordid] INSERT INTO [dbo].[BriefDocuments] ([BriefID], [DocumentName], [TrackReference], [FileLocation], [Filedate], [DocumentType], [DocumentClass], [SortOrder], [SectionID], [IMDOCID]) SELECT ND.[BriefID], ND.[DocumentName], ND.[TrackReference], ND.[FileLocation], ND.[Filedate], ND.[DocumentType], ND.[DocumentClass], ND.[SortOrder], ND.[SectionID], ND.[IMDOCID] FROM @MoveDocs ND WHERE ND.[recordid] = 0 INSERT INTO @NewSort ([recordid], [sectionid]) SELECT BRD.[recordId], BRD.[SectionID] FROM [dbo].[BriefDocuments] BRD WHERE BRD.[BriefId] = @BriefID ORDER BY BRD.[SectionID], BRD.[SortOrder] UPDATE NS SET NS.[NewSort] = NS.[ID] - NST.[TOTAL] FROM @NewSort NS CROSS APPLY (SELECT COUNT(1) AS [TOTAL] FROM @NewSort NS2 WHERE NS2.[SectionID] < NS.[SectionID]) NST UPDATE BRD SET BRD.[SortOrder] = NS.[NewSort] FROM @NewSort NS INNER JOIN [dbo].[BriefDocuments] BRD ON BRD.[recordid] = NS.[recordid] COMMIT END TRY BEGIN CATCH ROLLBACK END CATCH END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_GetUNCPathFromFile] Script Date: 10/01/2014 16:19:02 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GetUNCPathFromFile]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************ * * Get the UNC Location of a file (provided the drive is stored in * the UNCAlias table) * *************************************************************************/ CREATE FUNCTION [dbo].[ky_GetUNCPathFromFile] (@strFileName varchar(max)) RETURNS varchar(max) AS BEGIN DECLARE @strUNCFileName varchar(max) 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 RETURN @strUNCFileName END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDAlterTimeDayBook] Script Date: 10/01/2014 16:17:43 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDAlterTimeDayBook]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDAlterTimeDayBook * * Sets Day Book values OR creates a new Day Book entry * NOTE: this does not set RATE or CHARGE as CHARGE is named CHARGED (with a final D) * in SAM4, so this is taken care of elsewhere. * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDAlterTimeDayBook] (@RECID int, @matter varchar(20), @FEEEARN varchar(10), @TEAM varchar(10), @DATE varchar(8), @TIME int, @TASKORNCC varchar(10), @COMMENT varchar(600), @REC_IRR varchar(1), @STOPWATCH int, @RUNNINGTIME int, @ActionID int) AS BEGIN DECLARE @STARTTIME int DECLARE @NCCCODE varchar(10) DECLARE @TRACKREF int DECLARE @DOCKET varchar(8) DECLARE @STOPWATCHSTARTTIME datetime DECLARE @STOPWATCHSTATUS int DECLARE @TIMEORCHARGE varchar(1) DECLARE @COMLEN int DECLARE @TASK varchar(10) DECLARE @CONTINUE int BEGIN TRANSACTION SET @CONTINUE = 0 BEGIN TRY BEGIN select @comlen = sc.[length] from sysobjects so inner join syscolumns sc on sc.[id] = so.[id] and sc.[name] = ''COMMENT'' where so.[name] = ''TimeDayBook'' and so.[xtype] = ''U'' SET @TIMEORCHARGE = ''T'' SET @STOPWATCHSTARTTIME = CASE @STOPWATCH WHEN 1 THEN GETDATE() ELSE NULL END SET @STOPWATCHSTATUS = CASE @STOPWATCH WHEN 1 THEN 1 ELSE 0 END SET @NCCCODE = CASE RTRIM(IsNull(@matter, '''')) WHEN '''' THEN @TASKORNCC ELSE NULL END SET @TASK = CASE RTRIM(IsNull(@matter, '''')) WHEN '''' THEN '''' ELSE IsNull(@TASKORNCC, '''') END IF (ISNULL(@RECID, 0) = 0) BEGIN INSERT INTO [dbo].[TimeDayBook] ([ActionID], [COMMENT], [DATE], [FEEEARN], [MATTER], [NCCCODE], [REC_IRR], [StopwatchStartTime], [StopwatchStatus], [TASK], [TEAM], [TIME], [TIMEORCHARGE]) VALUES(@ACTIONID, SUBSTRING(@COMMENT, 1, @COMLEN), @DATE, @FEEEARN, @matter, @NCCCODE, @REC_IRR, @STOPWATCHSTARTTIME, @STOPWATCHSTATUS, @TASK, @TEAM, @TIME, @TIMEORCHARGE) IF (@@ERROR = 0) BEGIN SELECT @RECID = ISNULL(MAX(TDB.[RECORDID]), 0) FROM [dbo].[TimeDayBook] TDB WHERE [FEEEARN] = @feeearn END ELSE BEGIN SET @CONTINUE = 1 END END ELSE BEGIN UPDATE TDB SET [ActionID] = @ACTIONID, [COMMENT] = SUBSTRING(@COMMENT, 1, @COMLEN), [DATE] = @DATE, [FEEEARN] = @FEEEARN, [MATTER] = @matter, [NCCCODE] = @NCCCODE, [REC_IRR] = @REC_IRR, [StopwatchStartTime] = @STOPWATCHSTARTTIME, [StopwatchStatus] = @STOPWATCHSTATUS, [TASK] = @TASK, [TEAM] = @TEAM, [TIME] = @TIME + CASE @STOPWATCH WHEN 1 then 0 WHEN 0 then 0 ELSE datediff(n, TDB.[StopwatchStartTime], getDate()) END, [TIMEORCHARGE] = @TIMEORCHARGE FROM [dbo].[TimeDayBook] TDB WHERE TDB.[RECORDID] = @RECID END END IF (@STOPWATCH = 1) BEGIN UPDATE TDB SET TDB.[TIME] = [TIME] + datediff(n, TDB.[StopwatchStartTime], getDate()), TDB.[StopwatchStartTime] = NULL, TDB.[StopwatchStatus] = NULL from [dbo].[TimeDayBook] TDB where TDB.[FEEEARN] = @FEEEARN AND TDB.[RECORDID] <> @RECID AND TDB.[StopwatchStartTime] is not null END END TRY BEGIN CATCH SET @CONTINUE = 1 END CATCH IF (@CONTINUE = 0) COMMIT ELSE ROLLBACK END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTimeWriteoff] Script Date: 10/01/2014 16:18:30 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTimeWriteoff]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[ky_WDTimeWriteoff] (@TIMSER varchar(max), @FE varchar(10), @matter varchar(20), @woDate varchar(8)) AS BEGIN BEGIN TRANSACTION DECLARE @idoc int DECLARE @Continue int DECLARE @MAXID int DECLARE @NEWMAXID int DECLARE @WOT TABLE ([ID] int identity(0, 1), [HANDLER] varchar(10), [TOTALCHARGE] decimal(7, 2), [TOTALTIME] int) EXEC sp_xml_preparedocument @idoc OUTPUT, @TIMSER SET @Continue = 0 IF (@Continue = 0) BEGIN BEGIN TRY BEGIN SELECT @MAXID = IDENT_CURRENT(''[dbo].[TimeEntry]'') IF (@@Error <> 0) SET @Continue = 1 SET @MAXID = @MAXID + 1 END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END IF (@Continue = 0) BEGIN BEGIN TRY BEGIN INSERT INTO [dbo].[TimeEntryLog] ([TimeId], [FromMatter], [ToMatter], [TrDate], [TrBy]) SELECT TIE.[RECORDID], TIE.[MATTER], TIE.[MATTER], @woDate, ''w/o'' FROM OPENXML(@idoc, ''ute/r'', 2) WITH(RecordID int ''.'') UTE INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[RECORDID] = UTE.[RecordID] AND TIE.[TASK] <> ''WRI'' AND IsNull(TIE.[WriteOffID], 0) = 0 END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END IF (@Continue = 0) BEGIN BEGIN TRY BEGIN INSERT INTO @WOT ([HANDLER], [TOTALCHARGE], [TOTALTIME]) SELECT TIE.[FEEEARN], ISNULL(SUM(IsNull(TIE.[CHARGE], 0)), 0), ISNULL(SUM(ISNULL(TIE.[TIME], 0)), 0) FROM OPENXML(@idoc, ''ute/r'', 2) WITH(RecordID int ''.'') UTE INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[RECORDID] = UTE.[RecordID] AND TIE.[TASK] <> ''WRI'' AND IsNull(TIE.[WriteOffID], 0) = 0 GROUP BY TIE.[FEEEARN] END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END IF (@Continue = 0) BEGIN BEGIN TRY BEGIN UPDATE TIE SET TIE.[INVOICENO] = 0, TIE.[WriteOffDT] = @woDate, TIE.[WriteOffID] = @MAXID + WOT.[ID], TIE.[BilledAmount] = NULL FROM OPENXML(@idoc, ''ute/r'', 2) WITH(RecordID int ''.'') UTE INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[RECORDID] = UTE.[RecordID] AND TIE.[TASK] <> ''WRI'' AND IsNull(TIE.[WriteOffID], 0) = 0 INNER JOIN @WOT WOT ON WOT.[HANDLER] = TIE.[FEEEARN] END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END -- SET IDENTITY_INSERT [dbo].[TimeEntry] ON IF (@Continue = 0) BEGIN BEGIN TRY BEGIN INSERT INTO [dbo].[TimeEntry] ([MATTER], [FEEEARN], [DATE], [TIME], [CHARGE], [RATE], [TASK], [TIMEORCHARGE], [COMMENT], [NCCODE], [DOCKET], [TEAM], [TRACKREF], [REC_IRR], [PERIOD], [YEAR], [ACTIONID], [StageCode], -- [RECORDID], [BILLED], [INVOICENO], [BILLINGPERIOD], [BILLINGYEAR], [OPENINV], [IncludeInBill]) SELECT @matter, HAN.[CODE], @woDate, -WOT.[TOTALTIME], -WOT.[TOTALCHARGE], 1, ''WRI'', ''T'', ''Write-off'', '''', 0, HAN.[TEAM], 0, ''C'', 1, LEFT(@woDate, 4), NULL, NULL, -- WOT.[ID] + @MAXID, 0, 0, 0, 0, '''', 1 FROM @WOT WOT INNER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = WOT.[HANDLER] WHERE WOT.[TOTALCHARGE] <> 0 OR WOT.[TOTALTIME] <> 0 ORDER BY WOT.[ID] END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END -- SET IDENTITY_INSERT [dbo].[TimeEntry] OFF IF (@Continue = 0) BEGIN BEGIN TRY BEGIN SELECT @NEWMAXID = ISNull(MAX([RECORDID]), 0) FROM [dbo].[TimeEntry] SELECT @MAXID = ISNULL(MAX(@MAXID + [ID]), 0) FROM @WOT -- SELECT @MAXID = ISNULL(MAX(TIE.[RECORDID]), 0) -- FROM [dbo].[TimeEntry] TIE -- DBCC CHECKIDENT([TimeEntry], RESEED, @MAXID) IF (@@Error <> 0) SET @Continue = 1 IF (@MAXID <> @NEWMAXID) SET @Continue = 1 END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END EXEC sp_xml_removedocument @idoc IF (@Continue = 0) COMMIT ELSE ROLLBACK END' END GO /****** Object: StoredProcedure [dbo].[ky_WDSetTimeInvoiceNo] Script Date: 10/01/2014 16:18:17 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSetTimeInvoiceNo]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[ky_WDSetTimeInvoiceNo] (@InvoiceNo int, @TIMSER VARCHAR(MAX)) AS BEGIN declare @msg VARCHAR(8) DECLARE @Continue int declare @updWO table (WriteOffID int) DECLARE @idoc int BEGIN TRANSACTION SET @Continue = 0 EXEC sp_xml_preparedocument @idoc OUTPUT, @TIMSER IF (@Continue = 0) BEGIN BEGIN TRY BEGIN INSERT INTO @updWO ([WriteOffID]) SELECT DISTINCT TIE.[WriteOffID] FROM OPENXML(@idoc, ''ute/r'', 2) WITH(RecordID int ''.'') UTE INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[RECORDID] = UTE.[RecordID] AND IsNull(TIE.[WriteOffID], 0) <> 0 END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END IF (@Continue = 0) BEGIN BEGIN TRY BEGIN UPDATE TIE SET TIE.[INVOICENO] = @InvoiceNo, TIE.[WriteOffDT] = NULL, TIE.[WriteOffID] = NULL, TIE.[BilledAmount] = CASE WHEN ISNULL(@InvoiceNo, 0) = 0 THEN NULL ELSE TIE.CHARGE END FROM OPENXML(@idoc, ''ute/r'', 2) WITH(RecordID int ''.'') UTE INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[RECORDID] = UTE.[RecordID] AND TIE.[TASK] <> ''WRI'' END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END IF (@invoiceno = 0) BEGIN SET @msg = ''unbilled'' END ELSE BEGIN SET @msg = ''I'' + RIGHT(''00000000'' + convert(VARCHAR(8), @InvoiceNo), 7) END IF (@Continue = 0) BEGIN BEGIN TRY BEGIN DELETE WOT FROM @updWO WO INNER JOIN [dbo].[TimeEntry] WOT ON WOT.[RECORDID] = WO.[WriteOffID] CROSS APPLY (SELECT COUNT(1) AS [TOTAL] FROM [dbo].[TimeEntry] TIE WHERE TIE.[WriteOffID] = WO.[WriteOffID]) WOE WHERE WOE.[TOTAL] = 0 END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END IF (@Continue = 0) BEGIN BEGIN TRY BEGIN UPDATE WOT SET WOT.[TIME] = -WOE.[TIME], WOT.[CHARGE] = -WOE.[CHARGE] FROM @updWO WO INNER JOIN [dbo].[TimeEntry] WOT ON WOT.[RECORDID] = WO.[WriteOffID] CROSS APPLY (SELECT IsNull(SUM(IsNull(TIE.[TIME], 0)), 0) AS [TIME], IsNull(SUM(IsNull(TIE.[CHARGE], 0)), 0) AS [CHARGE] FROM [dbo].[TimeEntry] TIE WHERE TIE.[WriteOffID] = WO.[WriteOffID]) WOE END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END IF (@Continue = 0) BEGIN BEGIN TRY BEGIN INSERT INTO [dbo].[TimeEntryLog] ([TimeId], [FromMatter], [ToMatter], [TrDate], [TrBy]) SELECT TIE.[RECORDID], TIE.[MATTER], TIE.[MATTER], getDate(), @msg FROM OPENXML(@idoc, ''ute/r'', 2) WITH(RecordID int ''.'') UTE INNER JOIN [dbo].[TimeEntry] TIE ON TIE.[RECORDID] = UTE.[RecordID] AND TIE.[TASK] <> ''WRI'' END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END EXEC sp_xml_removedocument @idoc IF (@Continue = 0) COMMIT ELSE ROLLBACK END' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDReadTimeEntryLog] Script Date: 10/01/2014 16:19:30 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDReadTimeEntryLog]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' Create Function [dbo].[ky_WDReadTimeEntryLog] (@timeID int) RETURNS @TLG Table ([TrDate] datetime, [TrDateFmt] varchar(11), [FromMatter] varchar(20), [ToMatter] varchar(20), [Action] varchar(50)) AS BEGIN INSERT INTO @TLG ([TrDate], [TrDateFmt], [FromMatter], [ToMatter], [Action]) select TEL.[TrDate], CONVERT(varchar(11), TEL.[trDate], 106) AS [TrDateFmt], CASE WHEN TEL.[FromMatter] = TEL.[ToMatter] THEN '''' ELSE TEL.[FromMatter] END AS [FromMatter], TEL.[ToMatter] AS [Matter], CASE WHEN TrBy = ''TR'' THEN ''Transfer'' WHEN TrBy = ''UP'' THEN ''Updated'' WHEN TrBy = ''w/o'' THEN ''Written Off'' WHEN TrBy = ''unbilled'' THEN ''marked as unbilled'' WHEN ( (LEFT(convert(nvarchar(20), trBy), 1) = N''I'') AND (ISNUMERIC(RIGHT(convert(nvarchar(20), trBy), len(trBy) - 1)) = 1)) THEN ''Invoiced to Invoice Number '' + convert(varchar(20), convert(int, RIGHT(convert(nvarchar(20), trBy), len(trBy) - 1))) ELSE trBY END AS [Action] from timeentrylog TEL where TEL.[TimeId] = @timeID ORDER BY TEL.[Id] DESC RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDListMailAssociations2] Script Date: 10/01/2014 16:18:07 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDListMailAssociations2]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************ * * List mail associations - links e-mail to Case Diary via mail date and * subject. Version 2 - improved performance * *************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDListMailAssociations2] (@handler varchar(10), @EmailsXML varchar(MAX)) AS BEGIN DELETE DMC FROM [dbo].[DiaMailCandidates] DMC WHERE DMC.[handler] = @handler DECLARE @idoc int EXEC sp_xml_preparedocument @idoc OUTPUT, @EmailsXML INSERT INTO [dbo].[DiaMailCandidates] ([handler], [id], [date], [from], [fromname], [actionid], [subject], [casecode]) SELECT @handler, EML.[id], EML.[date], Replace(EML.[from], ''"'', ''''), EML.[fromname], IsNull(DIA.[actionid], 0), SUBSTRING(EML.[subject], 1, 150), DIA.[CASECODE] FROM OPENXML(@idoc, ''emails/email'', 2) WITH([id] int ''id'', [date] datetime ''date'', [from] varchar(150) ''from'', [fromname] varchar(150) ''fromname'', [subject] varchar(2000) ''subject'') EML LEFT OUTER JOIN [dbo].[Diary] DIA ON ( DIA.[TxmDate] IN (SELECT DISTINCT [date] FROM OPENXML(@idoc, ''emails/email'', 2) WITH([id] int ''id'', [date] datetime ''date'', [from] varchar(150) ''from'', [fromname] varchar(150) ''fromname'', [subject] varchar(2000) ''subject'') EML2) OR DIA.[DATE] IN (SELECT DISTINCT [date] FROM OPENXML(@idoc, ''emails/email'', 2) WITH([id] int ''id'', [date] datetime ''date'', [from] varchar(150) ''from'', [fromname] varchar(150) ''fromname'', [subject] varchar(2000) ''subject'') EML2)) AND DIA.[EMAIL] = ''Y'' UPDATE DIC SET DIC.[diasubject] = SUBSTRING(DIA.[subject], 1, 150), DIC.[diaemail] = Replace(SUBSTRING(DIA.[EMAILADDRESS], 1, 150), ''"'', '''') from [dbo].[DiaMailCandidates] DIC INNER JOIN [dbo].[diary] DIA ON DIA.[ACTIONID] = DIC.[actionid] AND DIA.[ACTIONID] <> 0 AND ( DIA.[date] = DIC.[date] OR DIA.[TxmDate] = DIC.[date]) where DIC.[handler] = @handler DELETE DIC from [dbo].[DiaMailCandidates] DIC WHERE DIC.[handler] = @handler AND DIC.[casecode] is not null AND ( DIC.[subject] <> IsNull(DIC.[diasubject], '''') OR DIC.[from] <> IsNull(DIC.[diaemail], '''')) DELETE DIC from [dbo].[DiaMailCandidates] DIC CROSS APPLY (SELECT COUNT(1) AS [TOTAL] FROM [dbo].[DiaMailCandidates] DIC2 WHERE DIC2.[handler] = DIC.[handler] AND DIC2.[id] = DIC.[id] AND DIC2.[actionid] < DIC.[actionid]) OTH WHERE DIC.[handler] = @handler AND DIC.[casecode] is not null AND OTH.[TOTAL] > 0 EXEC sp_xml_removedocument @idoc END ' END GO /****** Object: View [dbo].[MatterLastBillDate] Script Date: 10/01/2014 16:20:00 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[MatterLastBillDate]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[MatterLastBillDate] AS SELECT MATTER AS MatterCode, MAX([DATE]) AS BillDate FROM dbo.DebtorsLedger WHERE (TYPE = ''I'') GROUP BY MATTER ' GO /****** Object: StoredProcedure [dbo].[spGetNextAssignNoInDiaryDelegations] Script Date: 10/01/2014 16:18:50 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spGetNextAssignNoInDiaryDelegations]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[spGetNextAssignNoInDiaryDelegations] AS /************************************************************************** * * spGetNextAssignNoInDiaryDelegations * Gets the next available ASSIGNNO value in [dbo].[DiaryDelegations] * * Modified 18 Sept 2014 - PINO - No SP comment, so created this * 18 Sept 2014 - PINO - Use ISNULL(MAX because * MAX returns null on empty tables **************************************************************************/ BEGIN SELECT ISNULL(MAX([AssignNo]), 0)+1 AS [ASSIGNNO] FROM [dbo].[DiaryDelegations] END ' END GO /****** Object: StoredProcedure [dbo].[ky_DeleteCalendarStep] Script Date: 10/01/2014 16:17:12 ******/ SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_DeleteCalendarStep]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[ky_DeleteCalendarStep]( @pOutlookID varchar(256)) AS SET NOCOUNT ON DECLARE @strcasecode nVarChar(17) DECLARE @intActionID Int DECLARE @intAssignno int -- Start Transaction ----------------------------------------------------------------------------------------------------------------------------------------- BEGIN TRAN Key_Tran_01 IF @@error <> 0 GOTO Tran_Fail SELECT @intActionID = ( SELECT ActionID FROM OutlookIds where outlookid = @pOutlookID) IF @@error <> 0 GOTO Tran_Fail -- Write Diary Record ----------------------------------------------------------------------------------------------------------------------------------------- Delete Diary where actionid = @intActionID IF @@error <> 0 GOTO Tran_Fail -- Write the diary delegation record -------------------------------------------------------------- @pActionId int=0 output Delete [DiaryDelegations] where actionid = @intActionID delete OutlookIds where outlookid = @pOutlookID -- Commit Transaction ------------------------------------------------------------------------------------------------------------------ COMMIT TRAN Key_Tran_01 IF @@error <> 0 GOTO Tran_Fail -- Select @pActionId = @intActionID -- End Of Processing -------------------------------------------------------------------------------------------------------------------- ExitPoint: Return -- Error Processing ------------------------------------------------------------------------------------------------------------------------------------- Tran_Fail: rollback tran Key_Tran_01 -- Select @pActionId = 0 goto ExitPoint ' END GO /****** Object: View [dbo].[NoOverDueTasks] Script Date: 10/01/2014 16:20:01 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[NoOverDueTasks]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[NoOverDueTasks] AS SELECT TOP 100 PERCENT HANDLER, COUNT(ACTIONID) AS NoOutstandActions FROM dbo.DiaryDelegations WHERE (STATUS = 0) AND ([DATE] <= { fn NOW() }) GROUP BY HANDLER ORDER BY HANDLER ' GO /****** Object: View [dbo].[NoOutstandingTasks] Script Date: 10/01/2014 16:20:01 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[NoOutstandingTasks]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[NoOutstandingTasks] AS SELECT TOP 100 PERCENT HANDLER, COUNT(ACTIONID) AS NoOutstandActions FROM dbo.DiaryDelegations WHERE (STATUS = 0) GROUP BY HANDLER ORDER BY HANDLER ' GO /****** Object: UserDefinedFunction [dbo].[ky_NewerAssignments] Script Date: 10/01/2014 16:19:07 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NewerAssignments]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_NewerAssignments * * Checks whether there are newer Diary Delegation records in the system that fit the selection * criteria. (If there are, this row should be excluded from the results) * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_NewerAssignments] (@AssignNo int, @startdate datetime, @enddate datetime, @handler varchar(10), @team varchar(10), @outstanding int, @ActionType varchar(500)) RETURNS int AS BEGIN DECLARE @total int SELECT @total = DC.[TOTAL] FROM [dbo].[DiaryDelegations] DEL CROSS APPLY (SELECT COUNT(1) AS [TOTAL] FROM [dbo].[DiaryDelegations] D2 WHERE D2.[ACTIONID] = DEL.[ACTIONID] AND D2.[HANDLER] = CASE WHEN @handler = '''' THEN D2.[HANDLER] ELSE @handler END AND D2.[TEAM] = CASE WHEN @team = '''' THEN D2.[TEAM] ELSE @team END AND D2.[STATUS] = CASE WHEN @outstanding = 0 THEN D2.[STATUS] ELSE 0 END AND D2.[DATE] >= @startdate AND D2.[DATE] < @enddate AND ( @ActionType LIKE ''%*'' + D2.[ACTIONTYPE] + ''*%'' OR ISNULL(@ActionType, '''') = '''') AND D2.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') AND D2.[AssignNo] > DEL.[AssignNo]) DC WHERE DEL.[AssignNo] = @AssignNo RETURN @total END ' END GO /****** Object: View [dbo].[NoOverDuePhoneCalls] Script Date: 10/01/2014 16:20:01 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[NoOverDuePhoneCalls]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[NoOverDuePhoneCalls] AS SELECT TOP 100 PERCENT HANDLER, COUNT(ACTIONID) AS NoOutstandActions, ActionType FROM dbo.DiaryDelegations WHERE (STATUS = 0) AND ([DATE] <= { fn NOW() }) GROUP BY HANDLER, ActionType HAVING (ActionType = ''T'') ORDER BY HANDLER ' GO /****** Object: StoredProcedure [dbo].[ky_CloseCasePhoneCall] Script Date: 10/01/2014 16:17:05 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CloseCasePhoneCall]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /******************************************************************************************* * * * close case phone call * * * *******************************************************************************************/ CREATE PROCEDURE [dbo].[ky_CloseCasePhoneCall] (@id int) AS BEGIN DECLARE @now datetime SET @now = GETDATE() UPDATE CPL SET CPL.[endofcall] = @now, CPL.[durationseconds] = DATEDIFF(SS, CPL.[startofcall], @now) FROM [dbo].[CasePhoneLog] CPL WHERE CPL.[id] = @id END ' END GO /****** Object: StoredProcedure [dbo].[ky_StartCasePhoneCall] Script Date: 10/01/2014 16:17:40 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_StartCasePhoneCall]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /******************************************************************************************* * * * start case phone call * * * *******************************************************************************************/ CREATE PROCEDURE [dbo].[ky_StartCasePhoneCall] (@handler varchar(10), @incoming int, --1 = yes, incoming, 0 = no, outgoing @systemid varchar(50), --ID in the Phone system @countrycode varchar(6), @areacode varchar(6), @phonenumber varchar(20)) AS BEGIN DECLARE @now datetime /* handler will be making one call at a time, so any call that currently appears to be "in progress" has in fact finished */ SET @now = GETDATE() UPDATE CPL SET CPL.[endofcall] = @now, CPL.[durationseconds] = DATEDIFF(SS, CPL.[startofcall], @now) FROM [dbo].[CasePhoneLog] CPL WHERE CPL.[handler] = @handler AND CPL.[endofcall] IS NULL INSERT INTO [dbo].[CasePhoneLog] ([systemid], [handler], [startofcall], [incoming], [countrycode], [areacode], [phonenumber]) VALUES(@systemid, @handler, @now, @incoming, @countrycode, @areacode, @phonenumber) SELECT CONVERT(int, SCOPE_IDENTITY()) AS [MostRecentID] END ' END GO /****** Object: StoredProcedure [dbo].[ky_SetCasePhoneCallMatter] Script Date: 10/01/2014 16:17:36 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_SetCasePhoneCallMatter]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /******************************************************************************************* * * * set case phone call casecode * * * *******************************************************************************************/ CREATE PROCEDURE [dbo].[ky_SetCasePhoneCallMatter] (@id int, @mattercode varchar(20), @actionid int) AS BEGIN UPDATE CPL SET CPL.[casecode] = @mattercode, CPL.[actionid] = @actionid FROM [dbo].[CasePhoneLog] CPL WHERE CPL.[id] = @id END ' END GO /****** Object: StoredProcedure [dbo].[spGetDocumentClassesLookup] Script Date: 10/01/2014 16:18:49 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spGetDocumentClassesLookup]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[spGetDocumentClassesLookup] AS BEGIN SELECT RTRIM(LTRIM(A.CLASSCODE)) AS CODE, RTRIM(LTRIM(A.CLASSDESCRIPTION)) AS [DESCRIPTION] FROM DocumentClasses A ORDER BY {fn UCASE( A.CLASSCODE)} END ' END GO /****** Object: View [dbo].[DiaryBriefs] Script Date: 10/01/2014 16:19:54 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[DiaryBriefs]')) EXEC dbo.sp_executesql @statement = N'Create VIEW [dbo].[DiaryBriefs] AS SELECT TOP 100 PERCENT DAT.[Type], DCX.[DocInBrief], DCL.[ClassDescription], DAT.[LastAccessDate] As [FileDate], CASE WHEN DAT.[Type] = ''MSG'' THEN convert(char(100), SubString( ''E-mail from '' + CASE WHEN RTRIM(LTRIM(IsNull(DIA.[EMAILADDRESS], ''(undisclosed)''))) = '''' THEN ''(undisclosed)'' ELSE RTRIM(LTRIM(IsNull(DIA.[EMAILADDRESS], ''(undisclosed)''))) END + '' to '' + CASE WHEN RTRIM(LTRIM(IsNull(SubString(DIA.[ADDRESSTO], 1, 100), ''(undisclosed)''))) = '''' THEN ''(undisclosed)'' ELSE RTRIM(LTRIM(IsNull(SubString(DIA.[ADDRESSTO], 1, 100), ''(undisclosed)''))) END + '': '' + CASE WHEN RTRIM(LTRIM(IsNull(SubString(DIA.[SUBJECT], 1, 100), ''(no subject)''))) = '''' THEN ''(no subject)'' ELSE RTRIM(LTRIM(IsNull(SubString(DIA.[SUBJECT], 1, 100), ''(no subject)''))) END, 1, 100)) ELSE DAT.[Document] END As [Document], DAT.[Source], DIA.[EmailAddress], Convert(varchar(2000), SUBSTRING(DIA.[AddressTo], 1, 2000)) As [AddressTo], Convert(varchar(5000), SUBSTRING(DIA.[Subject], 1, 5000)) As [Subject], DAT.[EnteredBy], DAT.[DateEntered], DAT.[LastAccessBy], DAT.[LastAccessDate], DCX.[TrackReference], DAT.[Name], DAT.[FilePath], DAT.[DiaryID], DIA.[ProcessType], DIA.[ActionType], DAT.[CaseCode], DAT.[DocClass], DCX.[BriefID], substring(convert(varchar, DAT.[LastAccessDate], 112), 1, 8) + substring(convert(varchar, DAT.[LastAccessDate], 108), 1, 8) + right(''00000000'' + convert(varchar, DCX.[TrackReference]), 8) As DateSorter FROM ( select DAT.[CaseCode], DAT.[TrackReference], 0 As BriefID, 0 As DocInBrief from [dbo].[DiaryAttachments] DAT UNION ALL select DAT.[CaseCode], DAT.[TrackReference], BR.[ID] As BriefId, case count(BD.[TrackReference]) when 0 then 0 else 1 end As DocInBrief from [dbo].[DiaryAttachments] DAT inner join [dbo].[Brief] BR ON BR.[MatterCode] = DAT.[CaseCode] left outer join [dbo].[BriefDocuments] BD on BD.[BriefId] = BR.[ID] and BD.[TrackReference] = DAT.[TrackReference] group by DAT.[CaseCode], DAT.[TrackReference], BR.[ID]) DCX INNER JOIN [dbo].[DiaryAttachments] DAT INNER JOIN [dbo].[DocumentClasses] DCL ON DCL.[ClassCode] = DAT.[DocClass] INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DAT.[DiaryID] ON DAT.[TrackReference] = DCX.[TrackReference] ORDER BY DAT.CaseCode, DCX.BriefID, substring(convert(varchar, DAT.[LastAccessDate], 112), 1, 8) + substring(convert(varchar, DAT.[LastAccessDate], 108), 1, 8) + right(''00000000'' + convert(varchar, DCX.[TrackReference]), 8) Desc ' GO /****** Object: StoredProcedure [dbo].[ky_GenerateBrief4] Script Date: 10/01/2014 16:17:16 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GenerateBrief4]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_GenerateBrief4] (@MatterCode varchar(11), @BriefTitle varchar(200), @BriefAuthor varchar(100), @Location varchar(256), @Description varchar(4000), @CreateDate varchar(11), @PublishDate varchar(11), @ImportCaseDocs int, @CopyBrief int, @BriefTemplateID int) AS /******************************************************************************* ImportCaseDocs: 1 - Include all case documents in this brief (if brief is created as a copy of the last brief, include missing ones) 0 - Leave out missing case documents CopyBrief: 1 - Create a New Brief as a copy of the last Brief for this Case 0 - Create a New Brief that is blank *******************************************************************************/ Declare @NewSectionNo int Declare @NewSection varchar(40) Declare @NewBriefID int Declare @DocBriefID int Declare @DocName varchar(255) Declare @DocTrackRef int Declare @DocFileLoc varchar(255) Declare @DocFileDate datetime Declare @DocType char(4) Declare @DocClass varchar(100) Declare @DocSortOrder int Declare @DocLastSectionID int Declare @DocSectionID int Declare @LastBriefID int IF @CopyBrief = 1 BEGIN Select Top 1 @LastBriefID = BR.[ID] from [dbo].[brief] BR where BR.[MatterCode] = @MatterCode Order by BR.[ID] desc END INSERT INTO [dbo].[Brief] ([Title], [MatterCode], [Author], [Location], [CreationDate], [PublishDate], [Description]) VALUES(@BriefTitle, @MatterCode, @BriefAuthor, @Location, convert(datetime, @createdate), convert(datetime, @publishdate), @Description) Set @NewBriefID = SCOPE_IDENTITY() IF IsNull(@BriefTemplateID, 0) <> 0 BEGIN INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) SELECT @NewBriefID, BTS.[CoverPage], BTS.[Sequence], BTS.[Section] FROM [dbo].[BriefTemplateSections] BTS WHERE BTS.[BriefTemplateID] = @BriefTemplateID END IF IsNull(@BriefTemplateID, 0) = 0 BEGIN INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) VALUES(@NewBriefID, 1, 1, ''Cover Letters'') END IF @ImportCaseDocs = 1 BEGIN Select @NewSectionNo = MAX(sequence) FROM [dbo].[BriefSections] BS WHERE BS.[BriefID] = @NewBriefID DECLARE NewSections Cursor FOR select Distinct DC.[ClassDescription] from [dbo].[DiaryAttachments] DA INNER JOIN [dbo].[DocumentClasses] DC LEFT OUTER JOIN [dbo].[BriefSections] BS2 ON BS2.[BriefID] = @NewBriefID AND BS2.[Section] = DC.[ClassDescription] ON DC.[ClassCode] = DA.[DocClass] where DA.[CaseCode] = @MatterCode and BS2.[id] is null Open NewSections Fetch Next From NewSections INTO @NewSection WHILE @@FETCH_STATUS = 0 BEGIN Set @NewSectionNo = @NewSectionNo + 1 INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) VALUES(@NewBriefID, 0, @NewSectionNo, @NewSection) Fetch Next From NewSections INTO @NewSection END Close NewSections Deallocate NewSections END IF @CopyBrief = 1 BEGIN INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) SELECT @NewBriefID, BS.[CoverPage], BS.[Sequence], BS.[Section] FROM [dbo].[BriefSections] BS LEFT OUTER JOIN [dbo].[BriefSections] BS2 ON BS2.[BriefID] = @NewBriefID AND BS2.[Section] = BS.[Section] WHERE BS.[BriefID] = @LastBriefID AND BS2.[ID] IS NULL END UPDATE BS SET BS.khsorter = convert(varchar, 1-coverpage) + right(convert(varchar, 10000 + sequence), 4) + right(convert(varchar, 10000000 + ID), 7) from briefsections BS where BS.BriefID = @NewBriefID IF @CopyBrief = 1 BEGIN INSERT INTO [dbo].[BriefDocuments] ([BriefID], [DocumentName], [TrackReference], [FileLocation], [FileDate], [DocumentType], [DocumentClass], [SortOrder], [SectionID]) SELECT @NewBriefID, BD.[DocumentName], BD.[TrackReference], BD.[FileLocation], BD.[Filedate], BD.[DocumentType], BD.[DocumentClass], BD.[SortOrder], BS2.[ID] FROM [dbo].[BriefDocuments] BD INNER JOIN [dbo].[BriefSections] BS1 INNER JOIN [dbo].[BriefSections] BS2 ON BS2.[BriefID] = @NewBriefID AND BS2.[CoverPage] = BS1.[CoverPage] AND BS2.[Sequence] = BS1.[Sequence] AND BS2.[Section] = BS1.[Section] ON BS1.[ID] = BD.SectionID WHERE BD.BriefID = @LastBriefID END IF @ImportCaseDocs = 1 BEGIN Declare NewDocuments Cursor FOR select BR.[ID] As BriefID, CASE WHEN DA.[Type] = ''MSG'' THEN convert(char(255), SubString( ''E-mail from '' + CASE WHEN RTRIM(LTRIM(IsNull(DIA.[EMAILADDRESS], ''(undisclosed)''))) = '''' THEN ''(undisclosed)'' ELSE RTRIM(LTRIM(IsNull(DIA.[EMAILADDRESS], ''(undisclosed)''))) END + '' to '' + CASE WHEN RTRIM(LTRIM(IsNull(SubString(DIA.[ADDRESSTO], 1, 255), ''(undisclosed)''))) = '''' THEN ''(undisclosed)'' ELSE RTRIM(LTRIM(IsNull(SubString(DIA.[ADDRESSTO], 1, 255), ''(undisclosed)''))) END + '': '' + CASE WHEN RTRIM(LTRIM(IsNull(SubString(DIA.[SUBJECT], 1, 255), ''(no subject)''))) = '''' THEN ''(no subject)'' ELSE RTRIM(LTRIM(IsNull(SubString(DIA.[SUBJECT], 1, 255), ''(no subject)''))) END, 1, 255)) ELSE DA.[Document] END As DocumentName, DA.[TrackReference] As TrackReference, DA.[FilePath] As FileLocation, DA.[LastAccessDate] As FileDate, DA.[Type] As DocumentType, DC.[ClassDescription] As DocumentClass, BS.[ID] As SectionID from [dbo].[BriefSections] BS INNER JOIN [dbo].[Brief] BR ON BR.[ID] = BS.[BriefID] INNER JOIN [dbo].[documentclasses] DC ON DC.[ClassDescription] = BS.[Section] INNER JOIN [dbo].[diaryattachments] DA INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DA.[DiaryID] ON DA.[CaseCode] = BR.[MatterCode] AND DA.[DocClass] = DC.[ClassCode] LEFT OUTER JOIN [dbo].[BriefDocuments] BD ON BD.[BriefID] = BR.[ID] AND BD.[DocumentName] = DA.[Document] where BS.BriefID = @NewBriefID AND BD.[recordid] IS NULL ORDER BY BS.CoverPage Desc, BS.Sequence Asc SET @DocSortOrder = 0 SET @DocLastSectionID = 0 OPEN NewDocuments FETCH NEXT FROM NEWDOCUMENTS INTO @DocBriefID, @DocName, @DocTrackRef, @DocFileLoc, @DocFileDate, @DocType, @DocClass, @DocSectionID WHILE @@FETCH_STATUS = 0 BEGIN IF (@DocLastSectionID <> @DocSectionID) BEGIN SET @DocLastSectionID = @DocSectionID SET @DocSortOrder = 0 END SET @DocSortOrder = @DocSortOrder + 1 INSERT INTO [dbo].[BriefDocuments] ([BriefID], [DocumentName], [TrackReference], [FileLocation], [FileDate], [DocumentType], [DocumentClass], [SortOrder], [SectionID]) VALUES(@DocBriefID, @DocName, @DocTrackRef, @DocFileLoc, @DocFileDate, @DocType, @DocClass, @DocSortOrder, @DocSectionID) FETCH NEXT FROM NEWDOCUMENTS INTO @DocBriefID, @DocName, @DocTrackRef, @DocFileLoc, @DocFileDate, @DocType, @DocClass, @DocSectionID END CLOSE NewDocuments DEALLOCATE NewDocuments END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDGenerateBrief] Script Date: 10/01/2014 16:18:04 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDGenerateBrief]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' Create Procedure [dbo].[ky_WDGenerateBrief] (@MatterCode varchar(20), @BriefTitle varchar(200), @Description varchar(4000), @BriefAuthor varchar(100), @Location varchar(256), @CreateDate varchar(11), @PublishDate varchar(11), @CopyBrief int, @CopyBriefID int, @BriefTemplateID int, @ImportCaseDocs int, @ImportNonClassified int) AS /******************************************************************************* WinDEV version of the Generate Brief procedure. ImportCaseDocs: 1 - Include all case documents in this brief (if brief is created as a copy of the last brief, include missing ones) 0 - Leave out missing case documents CopyBrief: 1 - Create a New Brief as a copy of the last Brief for this Case 0 - Create a New Brief that is blank Nonclassified: 1 - Add all documents into the brief, creating new sections for document classes not already represented in the brief sections 0 - Add only documents that have a document class corresponding to a Brief Section that already exists in the document. *******************************************************************************/ BEGIN DECLARE @NewBriefID int DECLARE @LastBriefID int DECLARE @NewSectionNo int DECLARE @NewSection varchar(100) DECLARE @DocSortOrder int DECLARE @DocLastSectionID int DECLARE @DocBriefID int DECLARE @DocName varchar(255) DECLARE @DocTrackRef int DECLARE @DocFileLoc varchar(255) DECLARE @DocFileDate datetime DECLARE @DocType char(4) DECLARE @DocSectionID int DECLARE @DocClass varchar(100) BEGIN TRANSACTION BEGIN TRY IF (@CopyBrief = 1) BEGIN SELECT @LastBriefID = BRI.[ID] FROM [dbo].[Brief] BRI WHERE BRI.[MatterCode] = @MatterCode AND BRI.[ID] = IsNull(@CopyBriefID, BRI.[ID]) ORDER BY BRI.[CreationDate] DESC, BRI.[ID] DESC IF (@LastBriefID IS NULL) BEGIN RAISERROR(N''Copy Brief Requested but no current brief present'', 20, 1); END END INSERT INTO [dbo].[Brief] ([Title], [MatterCode], [Author], [Location], [CreationDate], [PublishDate], [Description]) VALUES(@BriefTitle, @MatterCode, @BriefAuthor, @Location, convert(datetime, @createdate), convert(datetime, @publishdate), @Description) Set @NewBriefID = SCOPE_IDENTITY() UPDATE BRI SET BRI.[Location] = Replace(BRI.[Location], ''.pdf'', ''_'' + convert(varchar(8), BRI.[ID]) + ''.pdf'') FROM [dbo].[Brief] BRI WHERE BRI.[ID] = @NewBriefID /* Use Brief Template to create Brief Sections if requested */ IF IsNull(@BriefTemplateID, 0) <> 0 BEGIN INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) SELECT @NewBriefID, BTS.[CoverPage], BTS.[Sequence], BTS.[Section] FROM [dbo].[BriefTemplateSections] BTS WHERE BTS.[BriefTemplateID] = @BriefTemplateID END /* Create a Cover Letters Section so that the Brief will have at least ONE section*/ IF IsNull(@BriefTemplateID, 0) = 0 BEGIN INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) VALUES(@NewBriefID, 1, 1, ''Cover Letters'') END /* If Case Documents need to be imported, and Non-Classified documents need to be imported, we must check whether any documents in this case have Classifications that the Brief Template doesn''t cater for, and if so we must create the matching Sections in the brief */ IF @ImportNonClassified = 1 BEGIN Select @NewSectionNo = MAX(sequence) FROM [dbo].[BriefSections] BS WHERE BS.[BriefID] = @NewBriefID DECLARE NewSections Cursor FOR select Distinct DC.[ClassDescription] from [dbo].[diary] DIA INNER JOIN [dbo].[DiaryAttachments] DA INNER JOIN [dbo].[DocumentClasses] DC LEFT OUTER JOIN [dbo].[BriefSections] BS2 ON BS2.[BriefID] = @NewBriefID AND BS2.[Section] = DC.[ClassDescription] ON DC.[ClassCode] = DA.[DocClass] ON DA.[DIARYID] = DIA.[ACTIONID] where DIA.[CaseCode] = @MatterCode and BS2.[id] is null Open NewSections Fetch Next From NewSections INTO @NewSection WHILE @@FETCH_STATUS = 0 BEGIN Set @NewSectionNo = @NewSectionNo + 1 INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) VALUES(@NewBriefID, 0, @NewSectionNo, @NewSection) Fetch Next From NewSections INTO @NewSection END Close NewSections Deallocate NewSections END /* If this is a copy of an earlier brief, make sure that all the sections from the old Brief are also present in the new Brief. Avoid duplicates. */ IF @CopyBrief = 1 BEGIN INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) SELECT @NewBriefID, BS.[CoverPage], BS.[Sequence], BS.[Section] FROM [dbo].[BriefSections] BS LEFT OUTER JOIN [dbo].[BriefSections] BS2 ON BS2.[BriefID] = @NewBriefID AND BS2.[Section] = BS.[Section] WHERE BS.[BriefID] = @LastBriefID AND BS2.[ID] IS NULL END /* For backward compatibility with the Clarion version, we will be updating these ''sorter'' fields that allow the Clarion program to show the sections in the correct order. the WinDev programs can handle this themselves and they don''t need this */ UPDATE BS SET BS.khsorter = convert(varchar, 1-coverpage) + right(convert(varchar, 10000 + sequence), 4) + right(convert(varchar, 10000000 + ID), 7) from briefsections BS where BS.BriefID = @NewBriefID /* If this is a copy from an older Brief, copy the Brief documents from the old Brief into the new Brief */ IF @CopyBrief = 1 BEGIN INSERT INTO [dbo].[BriefDocuments] ([BriefID], [DocumentName], [TrackReference], [FileLocation], [FileDate], [DocumentType], [DocumentClass], [SortOrder], [SectionID]) SELECT @NewBriefID, BD.[DocumentName], BD.[TrackReference], BD.[FileLocation], BD.[Filedate], BD.[DocumentType], BD.[DocumentClass], BD.[SortOrder], BS2.[ID] FROM [dbo].[BriefDocuments] BD INNER JOIN [dbo].[BriefSections] BS1 INNER JOIN [dbo].[BriefSections] BS2 ON BS2.[BriefID] = @NewBriefID AND BS2.[CoverPage] = BS1.[CoverPage] AND BS2.[Sequence] = BS1.[Sequence] AND BS2.[Section] = BS1.[Section] ON BS1.[ID] = BD.SectionID WHERE BD.BriefID = @LastBriefID END /* Import the Case Documents into the new Brief if requested. Importing of non-classified documents implies importing ALL documents. */ IF (@ImportCaseDocs = 1) OR (@ImportNonClassified = 1) BEGIN Declare NewDocuments Cursor FOR select BR.[ID] As BriefID, CASE WHEN ( ( (ISNULL(DIA.[EMAIL], '''') = ''Y'') OR (OMS.[TYPE] = ''MSG'')) AND (DAT.TrackReference = OMS.TrackReference)) THEN convert(char(255), SubString( ''E-mail from '' + CASE WHEN RTRIM(ISNULL(DIA.[EMAILADDRESS], '''')) = '''' THEN ''[undisclosed]'' ELSE RTRIM(DIA.[EMAILADDRESS]) END + '' to '' + CASE WHEN RTRIM(ISNULL(CONVERT(VARCHAR(255), SUBSTRING(DIA.[ADDRESSTO], 1, 255)), '''')) = '''' THEN ''[undisclosed]'' ELSE RTRIM(CONVERT(VARCHAR(255), SUBSTRING(DIA.[ADDRESSTO], 1, 255))) END + '': '' + CASE UPPER(RTRIM(ISNULL(CONVERT(VARCHAR(255), SUBSTRING(DIA.[SUBJECT], 1, 255)), ''''))) WHEN '''' THEN ''[no subject]'' WHEN ''FW:'' THEN ''FW: [no subject]'' WHEN ''RE:'' THEN ''RE: [no subject]'' ELSE RTRIM(CONVERT(VARCHAR(255), SUBSTRING(DIA.[SUBJECT], 1, 255))) END, 1, 255)) ELSE DAT.[Document] END As DocumentName, DAT.[TrackReference] As TrackReference, DAT.[FilePath] As FileLocation, DAT.[LastAccessDate] As FileDate, DAT.[Type] As DocumentType, DC.[ClassDescription] As DocumentClass, BS.[ID] As SectionID from [dbo].[BriefSections] BS INNER JOIN [dbo].[Brief] BR ON BR.[ID] = BS.[BriefID] INNER JOIN [dbo].[documentclasses] DC ON DC.[ClassDescription] = BS.[Section] INNER JOIN [dbo].[diaryattachments] DAT INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DAT.[DiaryID] ON DAT.[CaseCode] = BR.[MatterCode] AND DAT.[DocClass] = DC.[ClassCode] LEFT OUTER JOIN [dbo].[BriefDocuments] BD ON BD.[BriefID] = BR.[ID] AND BD.[DocumentName] = DAT.[Document] OUTER APPLY ( SELECT TOP 1 MST.[TrackReference] AS [TrackReference], MST.[Type] AS [Type] FROM [dbo].[diaryattachments] MST WHERE MST.[diaryid] = DIA.[ActionID] ORDER BY CASE WHEN MST.TYPE = ''MSG'' THEN 0 ELSE 1 END, MST.[TrackReference]) OMS where BS.BriefID = @NewBriefID AND BD.[recordid] IS NULL ORDER BY BS.CoverPage Desc, BS.Sequence Asc, DAT.[LastAccessDate] Asc SET @DocSortOrder = 0 SET @DocLastSectionID = 0 OPEN NewDocuments FETCH NEXT FROM NEWDOCUMENTS INTO @DocBriefID, @DocName, @DocTrackRef, @DocFileLoc, @DocFileDate, @DocType, @DocClass, @DocSectionID WHILE @@FETCH_STATUS = 0 BEGIN IF (@DocLastSectionID <> @DocSectionID) BEGIN SET @DocLastSectionID = @DocSectionID SET @DocSortOrder = 0 END SET @DocSortOrder = @DocSortOrder + 1 INSERT INTO [dbo].[BriefDocuments] ([BriefID], [DocumentName], [TrackReference], [FileLocation], [FileDate], [DocumentType], [DocumentClass], [SortOrder], [SectionID]) VALUES(@DocBriefID, @DocName, @DocTrackRef, @DocFileLoc, @DocFileDate, @DocType, @DocClass, @DocSortOrder, @DocSectionID) FETCH NEXT FROM NEWDOCUMENTS INTO @DocBriefID, @DocName, @DocTrackRef, @DocFileLoc, @DocFileDate, @DocType, @DocClass, @DocSectionID END CLOSE NewDocuments DEALLOCATE NewDocuments END COMMIT END TRY BEGIN CATCH ROLLBACK END CATCH END ' END GO /****** Object: StoredProcedure [dbo].[ky_GenerateBrief2] Script Date: 10/01/2014 16:17:15 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GenerateBrief2]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_GenerateBrief2] (@MatterCode varchar(11), @BriefTitle varchar(200), @BriefAuthor varchar(100), @Location varchar(256), @Description varchar(4000), @CreateDate varchar(11), @PublishDate varchar(11), @CreateOption int) AS /******************************************************************************* CreateOption: 1 - Create a New Brief containing all the documents from the Case 2 - Create a New Brief as a copy of the last Brief for this Case 3 - Create a New Brief that is blank *******************************************************************************/ Declare @NewSectionNo int Declare @NewSection varchar(40) Declare @NewBriefID int Declare @DocBriefID int Declare @DocName varchar(255) Declare @DocTrackRef int Declare @DocFileLoc varchar(255) Declare @DocFileDate datetime Declare @DocType char(4) Declare @DocClass varchar(100) Declare @DocSortOrder int Declare @DocLastSectionID int Declare @DocSectionID int Declare @LastBriefID int IF @CreateOption = 2 BEGIN Select Top 1 @LastBriefID = BR.[ID] from [dbo].[brief] BR where BR.[MatterCode] = @MatterCode Order by BR.[ID] desc END INSERT INTO [dbo].[Brief] ([Title], [MatterCode], [Author], [Location], [CreationDate], [PublishDate], [Description]) VALUES(@BriefTitle, @MatterCode, @BriefAuthor, @Location, convert(datetime, @createdate), convert(datetime, @publishdate), @Description) Set @NewBriefID = SCOPE_IDENTITY() IF @CreateOption <> 2 BEGIN INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) VALUES(@NewBriefID, 1, 1, ''Cover Letters'') END IF @CreateOption = 1 BEGIN Set @NewSectionNo = 1 DECLARE NewSections Cursor FOR select Distinct DC.[ClassDescription] from [dbo].[DiaryAttachments] DA INNER JOIN [dbo].[DocumentClasses] DC ON DC.[ClassCode] = DA.[DocClass] where DA.[CaseCode] = @MatterCode Open NewSections Fetch Next From NewSections INTO @NewSection WHILE @@FETCH_STATUS = 0 BEGIN Set @NewSectionNo = @NewSectionNo + 1 INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) VALUES(@NewBriefID, 0, @NewSectionNo, @NewSection) Fetch Next From NewSections INTO @NewSection END Close NewSections Deallocate NewSections END IF @CreateOption = 2 BEGIN INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) SELECT @NewBriefID, BS.[CoverPage], BS.[Sequence], BS.[Section] FROM [dbo].[BriefSections] BS WHERE BS.[BriefID] = @LastBriefID END UPDATE BS SET BS.khsorter = convert(varchar, 1-coverpage) + right(convert(varchar, 10000 + sequence), 4) + right(convert(varchar, 10000000 + ID), 7) from briefsections BS where BS.BriefID = @NewBriefID IF @CreateOption = 1 BEGIN Declare NewDocuments Cursor FOR select BR.[ID] As BriefID, CASE WHEN DA.[Type] = ''MSG'' THEN convert(char(255), SubString( ''E-mail from '' + CASE WHEN RTRIM(LTRIM(IsNull(DIA.[EMAILADDRESS], ''(undisclosed)''))) = '''' THEN ''(undisclosed)'' ELSE RTRIM(LTRIM(IsNull(DIA.[EMAILADDRESS], ''(undisclosed)''))) END + '' to '' + CASE WHEN RTRIM(LTRIM(IsNull(SubString(DIA.[ADDRESSTO], 1, 255), ''(undisclosed)''))) = '''' THEN ''(undisclosed)'' ELSE RTRIM(LTRIM(IsNull(SubString(DIA.[ADDRESSTO], 1, 255), ''(undisclosed)''))) END + '': '' + CASE WHEN RTRIM(LTRIM(IsNull(SubString(DIA.[SUBJECT], 1, 255), ''(no subject)''))) = '''' THEN ''(no subject)'' ELSE RTRIM(LTRIM(IsNull(SubString(DIA.[SUBJECT], 1, 255), ''(no subject)''))) END, 1, 255)) ELSE DA.[Document] END As DocumentName, DA.[TrackReference] As TrackReference, DA.[FilePath] As FileLocation, DA.[LastAccessDate] As FileDate, DA.[Type] As DocumentType, DC.[ClassDescription] As DocumentClass, BS.[ID] As SectionID from [dbo].[BriefSections] BS INNER JOIN [dbo].[Brief] BR ON BR.[ID] = BS.[BriefID] INNER JOIN [dbo].[documentclasses] DC ON DC.[ClassDescription] = BS.[Section] INNER JOIN [dbo].[diaryattachments] DA INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DA.[DiaryID] ON DA.[CaseCode] = BR.[MatterCode] AND DA.[DocClass] = DC.[ClassCode] where BS.BriefID = @NewBriefID ORDER BY BS.CoverPage Desc, BS.Sequence Asc SET @DocSortOrder = 0 SET @DocLastSectionID = 0 OPEN NewDocuments FETCH NEXT FROM NEWDOCUMENTS INTO @DocBriefID, @DocName, @DocTrackRef, @DocFileLoc, @DocFileDate, @DocType, @DocClass, @DocSectionID WHILE @@FETCH_STATUS = 0 BEGIN IF (@DocLastSectionID <> @DocSectionID) BEGIN SET @DocLastSectionID = @DocSectionID SET @DocSortOrder = 0 END SET @DocSortOrder = @DocSortOrder + 1 INSERT INTO [dbo].[BriefDocuments] ([BriefID], [DocumentName], [TrackReference], [FileLocation], [FileDate], [DocumentType], [DocumentClass], [SortOrder], [SectionID]) VALUES(@DocBriefID, @DocName, @DocTrackRef, @DocFileLoc, @DocFileDate, @DocType, @DocClass, @DocSortOrder, @DocSectionID) FETCH NEXT FROM NEWDOCUMENTS INTO @DocBriefID, @DocName, @DocTrackRef, @DocFileLoc, @DocFileDate, @DocType, @DocClass, @DocSectionID END CLOSE NewDocuments DEALLOCATE NewDocuments END IF @CreateOption = 2 BEGIN INSERT INTO [dbo].[BriefDocuments] ([BriefID], [DocumentName], [TrackReference], [FileLocation], [FileDate], [DocumentType], [DocumentClass], [SortOrder], [SectionID]) SELECT @NewBriefID, BD.[DocumentName], BD.[TrackReference], BD.[FileLocation], BD.[Filedate], BD.[DocumentType], BD.[DocumentClass], BD.[SortOrder], BS2.[ID] FROM [dbo].[BriefDocuments] BD INNER JOIN [dbo].[BriefSections] BS1 INNER JOIN [dbo].[BriefSections] BS2 ON BS2.[BriefID] = @NewBriefID AND BS2.[CoverPage] = BS1.[CoverPage] AND BS2.[Sequence] = BS1.[Sequence] AND BS2.[Section] = BS1.[Section] ON BS1.[ID] = BD.SectionID WHERE BD.BriefID = @LastBriefID END ' END GO /****** Object: StoredProcedure [dbo].[ky_GenerateBrief5] Script Date: 10/01/2014 16:17:17 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GenerateBrief5]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_GenerateBrief5] (@MatterCode varchar(11), @BriefTitle varchar(200), @BriefAuthor varchar(100), @Location varchar(256), @Description varchar(4000), @CreateDate varchar(11), @PublishDate varchar(11), @ImportCaseDocs int, @CopyBrief int, @NonClassified int, @BriefTemplateID int) AS /******************************************************************************* ImportCaseDocs: 1 - Include all case documents in this brief (if brief is created as a copy of the last brief, include missing ones) 0 - Leave out missing case documents CopyBrief: 1 - Create a New Brief as a copy of the last Brief for this Case 0 - Create a New Brief that is blank Nonclassified: 1 - Add all documents into the brief, creating new sections for document classes not already represented in the brief sections 0 - Add only documents that have a document class corresponding to a Brief Section that already exists in the document. *******************************************************************************/ Declare @NewSectionNo int Declare @NewSection varchar(40) Declare @NewBriefID int Declare @DocBriefID int Declare @DocName varchar(255) Declare @DocTrackRef int Declare @DocFileLoc varchar(255) Declare @DocFileDate datetime Declare @DocType char(4) Declare @DocClass varchar(100) Declare @DocSortOrder int Declare @DocLastSectionID int Declare @DocSectionID int Declare @LastBriefID int IF @CopyBrief = 1 BEGIN Select Top 1 @LastBriefID = BR.[ID] from [dbo].[brief] BR where BR.[MatterCode] = @MatterCode Order by BR.[ID] desc END INSERT INTO [dbo].[Brief] ([Title], [MatterCode], [Author], [Location], [CreationDate], [PublishDate], [Description]) VALUES(@BriefTitle, @MatterCode, @BriefAuthor, @Location, convert(datetime, @createdate), convert(datetime, @publishdate), @Description) Set @NewBriefID = SCOPE_IDENTITY() IF IsNull(@BriefTemplateID, 0) <> 0 BEGIN INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) SELECT @NewBriefID, BTS.[CoverPage], BTS.[Sequence], BTS.[Section] FROM [dbo].[BriefTemplateSections] BTS WHERE BTS.[BriefTemplateID] = @BriefTemplateID END IF IsNull(@BriefTemplateID, 0) = 0 BEGIN INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) VALUES(@NewBriefID, 1, 1, ''Cover Letters'') END IF @ImportCaseDocs = 1 BEGIN IF @NonClassified = 1 BEGIN Select @NewSectionNo = MAX(sequence) FROM [dbo].[BriefSections] BS WHERE BS.[BriefID] = @NewBriefID DECLARE NewSections Cursor FOR select Distinct DC.[ClassDescription] from [dbo].[DiaryAttachments] DA INNER JOIN [dbo].[DocumentClasses] DC LEFT OUTER JOIN [dbo].[BriefSections] BS2 ON BS2.[BriefID] = @NewBriefID AND BS2.[Section] = DC.[ClassDescription] ON DC.[ClassCode] = DA.[DocClass] where DA.[CaseCode] = @MatterCode and BS2.[id] is null Open NewSections Fetch Next From NewSections INTO @NewSection WHILE @@FETCH_STATUS = 0 BEGIN Set @NewSectionNo = @NewSectionNo + 1 INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) VALUES(@NewBriefID, 0, @NewSectionNo, @NewSection) Fetch Next From NewSections INTO @NewSection END Close NewSections Deallocate NewSections END END IF @CopyBrief = 1 BEGIN INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) SELECT @NewBriefID, BS.[CoverPage], BS.[Sequence], BS.[Section] FROM [dbo].[BriefSections] BS LEFT OUTER JOIN [dbo].[BriefSections] BS2 ON BS2.[BriefID] = @NewBriefID AND BS2.[Section] = BS.[Section] WHERE BS.[BriefID] = @LastBriefID AND BS2.[ID] IS NULL END UPDATE BS SET BS.khsorter = convert(varchar, 1-coverpage) + right(convert(varchar, 10000 + sequence), 4) + right(convert(varchar, 10000000 + ID), 7) from briefsections BS where BS.BriefID = @NewBriefID IF @CopyBrief = 1 BEGIN INSERT INTO [dbo].[BriefDocuments] ([BriefID], [DocumentName], [TrackReference], [FileLocation], [FileDate], [DocumentType], [DocumentClass], [SortOrder], [SectionID]) SELECT @NewBriefID, BD.[DocumentName], BD.[TrackReference], BD.[FileLocation], BD.[Filedate], BD.[DocumentType], BD.[DocumentClass], BD.[SortOrder], BS2.[ID] FROM [dbo].[BriefDocuments] BD INNER JOIN [dbo].[BriefSections] BS1 INNER JOIN [dbo].[BriefSections] BS2 ON BS2.[BriefID] = @NewBriefID AND BS2.[CoverPage] = BS1.[CoverPage] AND BS2.[Sequence] = BS1.[Sequence] AND BS2.[Section] = BS1.[Section] ON BS1.[ID] = BD.SectionID WHERE BD.BriefID = @LastBriefID END IF @ImportCaseDocs = 1 BEGIN Declare NewDocuments Cursor FOR select BR.[ID] As BriefID, CASE WHEN DA.[Type] = ''MSG'' THEN convert(char(255), SubString( ''E-mail from '' + CASE WHEN RTRIM(LTRIM(IsNull(DIA.[EMAILADDRESS], ''(undisclosed)''))) = '''' THEN ''(undisclosed)'' ELSE RTRIM(LTRIM(IsNull(DIA.[EMAILADDRESS], ''(undisclosed)''))) END + '' to '' + CASE WHEN RTRIM(LTRIM(IsNull(SubString(DIA.[ADDRESSTO], 1, 255), ''(undisclosed)''))) = '''' THEN ''(undisclosed)'' ELSE RTRIM(LTRIM(IsNull(SubString(DIA.[ADDRESSTO], 1, 255), ''(undisclosed)''))) END + '': '' + CASE WHEN RTRIM(LTRIM(IsNull(SubString(DIA.[SUBJECT], 1, 255), ''(no subject)''))) = '''' THEN ''(no subject)'' ELSE RTRIM(LTRIM(IsNull(SubString(DIA.[SUBJECT], 1, 255), ''(no subject)''))) END, 1, 255)) ELSE DA.[Document] END As DocumentName, DA.[TrackReference] As TrackReference, DA.[FilePath] As FileLocation, DA.[LastAccessDate] As FileDate, DA.[Type] As DocumentType, DC.[ClassDescription] As DocumentClass, BS.[ID] As SectionID from [dbo].[BriefSections] BS INNER JOIN [dbo].[Brief] BR ON BR.[ID] = BS.[BriefID] INNER JOIN [dbo].[documentclasses] DC ON DC.[ClassDescription] = BS.[Section] INNER JOIN [dbo].[diaryattachments] DA INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DA.[DiaryID] ON DA.[CaseCode] = BR.[MatterCode] AND DA.[DocClass] = DC.[ClassCode] LEFT OUTER JOIN [dbo].[BriefDocuments] BD ON BD.[BriefID] = BR.[ID] AND BD.[DocumentName] = DA.[Document] where BS.BriefID = @NewBriefID AND BD.[recordid] IS NULL ORDER BY BS.CoverPage Desc, BS.Sequence Asc, DA.[LastAccessDate] Asc SET @DocSortOrder = 0 SET @DocLastSectionID = 0 OPEN NewDocuments FETCH NEXT FROM NEWDOCUMENTS INTO @DocBriefID, @DocName, @DocTrackRef, @DocFileLoc, @DocFileDate, @DocType, @DocClass, @DocSectionID WHILE @@FETCH_STATUS = 0 BEGIN IF (@DocLastSectionID <> @DocSectionID) BEGIN SET @DocLastSectionID = @DocSectionID SET @DocSortOrder = 0 END SET @DocSortOrder = @DocSortOrder + 1 INSERT INTO [dbo].[BriefDocuments] ([BriefID], [DocumentName], [TrackReference], [FileLocation], [FileDate], [DocumentType], [DocumentClass], [SortOrder], [SectionID]) VALUES(@DocBriefID, @DocName, @DocTrackRef, @DocFileLoc, @DocFileDate, @DocType, @DocClass, @DocSortOrder, @DocSectionID) FETCH NEXT FROM NEWDOCUMENTS INTO @DocBriefID, @DocName, @DocTrackRef, @DocFileLoc, @DocFileDate, @DocType, @DocClass, @DocSectionID END CLOSE NewDocuments DEALLOCATE NewDocuments END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDAddBriefDocuments] Script Date: 10/01/2014 16:17:41 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDAddBriefDocuments]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************************************* * * ky_WDAddBriefDocuments - Adds new documents to a brief section. * *************************************************************************************************************/ Create Procedure [dbo].[ky_WDAddBriefDocuments] (@SectionID int, @doclist varchar(max)) AS DECLARE @BriefID int DECLARE @idoc int DECLARE @MaxSO int DECLARE @continue int DECLARE @SO TABLE ([SO] int identity(1, 1), [NEWSO] int, [TrackReference] int) SELECT @MaxSO = ISNULL(Max(BRD.[SortOrder]), 0) FROM [dbo].[BriefDocuments] BRD WHERE BRD.SectionID = @SectionID BEGIN TRANSACTION EXEC sp_xml_preparedocument @idoc OUTPUT, @doclist SET @continue = 0 BEGIN TRY BEGIN IF (@continue = 0) BEGIN SELECT @BriefID = BS.BriefID FROM [dbo].[BriefSections] BS WHERE BS.[ID] = @SectionID IF (@@Error <> 0) SET @continue = 1 END IF (@continue = 0) BEGIN INSERT INTO @SO ([TrackReference]) SELECT DCS.[trackreference] from OPENXML(@idoc, ''docs/tr'', 2) WITH([trackreference] int ''.'') DCS IF (@@Error <> 0) SET @continue = 1 END IF (@continue = 0) BEGIN UPDATE SO SET [NEWSO] = @MaxSO + SO.[SO] FROM @SO SO IF (@@Error <> 0) SET @continue = 1 END IF (@continue = 0) BEGIN INSERT INTO [dbo].[BriefDocuments] ([BriefID], [DocumentName], [TrackReference], [FileLocation], [FileDate], [DocumentType], [DocumentClass], [SortOrder], [SectionID]) select @BriefID As BriefID, CASE WHEN DA.[Type] = ''MSG'' THEN convert(char(255), SubString( ''E-mail from '' + CASE WHEN RTRIM(LTRIM(IsNull(DIA.[EMAILADDRESS], ''(undisclosed)''))) = '''' THEN ''(undisclosed)'' ELSE RTRIM(LTRIM(IsNull(DIA.[EMAILADDRESS], ''(undisclosed)''))) END + '' to '' + CASE WHEN RTRIM(LTRIM(IsNull(SubString(DIA.[ADDRESSTO], 1, 255), ''(undisclosed)''))) = '''' THEN ''(undisclosed)'' ELSE RTRIM(LTRIM(IsNull(SubString(DIA.[ADDRESSTO], 1, 255), ''(undisclosed)''))) END + '': '' + CASE WHEN RTRIM(LTRIM(IsNull(SubString(DIA.[SUBJECT], 1, 255), ''(no subject)''))) = '''' THEN ''(no subject)'' ELSE RTRIM(LTRIM(IsNull(SubString(DIA.[SUBJECT], 1, 255), ''(no subject)''))) END, 1, 255)) ELSE DA.[Document] END, DA.[TrackReference] As [TrackReference], RTRIM(IsNull(DA.[FilePath], '''')) As [FileLocation], DA.[LastAccessDate] As [FileDate], DA.[Type] As [DocumentType], RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '''')) As [DocumentClass], SO.[NEWSO], @SectionID AS SectionID from @SO SO INNER JOIN [dbo].[Brief] BRI ON BRI.[ID] = @BriefID INNER JOIN [dbo].[DiaryAttachments] DA INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DA.[DiaryID] LEFT OUTER JOIN [dbo].[DocumentClasses] DCL ON DCL.[CLASSCODE] = DA.[DOCCLASS] ON DA.[TrackReference] = SO.[TrackReference] LEFT OUTER JOIN [dbo].[BriefDocuments] BDN ON BDN.[BriefId] = @BriefID AND BDN.[TrackReference] = SO.[TrackReference] WHERE BDN.[TrackReference] is null AND DIA.[CASECODE] = BRI.[MatterCode] IF (@@Error <> 0) SET @continue = 1 END END END TRY BEGIN CATCH BEGIN SET @continue = 1 END END CATCH IF (@continue = 0) BEGIN COMMIT END ELSE BEGIN ROLLBACK END EXEC sp_xml_removedocument @idoc ' END GO /****** Object: StoredProcedure [dbo].[ky_briefdocumentadd] Script Date: 10/01/2014 16:17:03 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_briefdocumentadd]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_briefdocumentadd] (@BriefID int, @TrackRef int, @AddToLastSection int) AS Declare @SectionID int IF (@AddToLastSection = 0) BEGIN set @SectionID = NULL select @SectionID = (SELECT TOP 1 BS.ID AS SectionID from [dbo].[DiaryAttachments] DA INNER JOIN [dbo].[documentclasses] DC ON DC.[ClassCode] = DA.[DocClass] INNER JOIN [dbo].[BriefSections] BS ON BS.[BriefID] = @BriefID AND BS.[Section] = DC.[ClassDescription] where DA.[TrackReference] = @TrackRef) IF (@SectionID IS NULL) BEGIN INSERT INTO [dbo].[BriefSections] ([BriefID], [Sequence], [CoverPage], [Section]) SELECT @BRIEFID AS BriefID, IsNull(MAX(BS.Sequence), 0) + 1 AS SEQUENCE, 0 AS CoverPage, (SELECT DC.[ClassDescription] FROM [dbo].[DiaryAttachments] DA INNER JOIN [dbo].[DocumentClasses] DC ON DC.[ClassCode] = DA.[DocClass] WHERE DA.[TrackReference] = @TrackRef) AS Section FROM [dbo].[BriefSections] BS WHERE BS.[BriefID] = @BriefID SET @SectionID = SCOPE_IDENTITY() UPDATE BS SET BS.khsorter = convert(varchar, 1-coverpage) + right(convert(varchar, 10000 + sequence), 4) + right(convert(varchar, 10000000 + ID), 7) from briefsections BS where BS.[ID] = @SectionID END END select @SectionID = ( SELECT TOP 1 SectionID FROM (SELECT IsNull(BS.ID, IsNull(BS2.ID, BS3.ID)) AS SectionID, CASE WHEN BS.ID IS NOT NULL THEN BS.SEQUENCE WHEN BS2.ID IS NOT NULL THEN BS2.SEQUENCE ELSE BS3.SEQUENCE END AS SEQUENCE from [dbo].[DiaryAttachments] DA INNER JOIN [dbo].[documentclasses] DC ON DC.[ClassCode] = DA.[DocClass] LEFT OUTER JOIN [dbo].[BriefSections] BS ON BS.[BriefID] = @BriefID AND BS.[Section] = DC.[ClassDescription] LEFT OUTER JOIN [dbo].[BriefSections] BS2 ON BS2.[BriefID] = @BriefID AND BS2.CoverPage = 0 INNER JOIN [dbo].[BriefSections] BS3 ON BS3.[BriefID] = @BriefID where DA.[TrackReference] = @TrackRef) BSS ORDER BY BSS.Sequence DESC) INSERT INTO [dbo].[BriefDocuments] ([BriefID], [DocumentName], [TrackReference], [FileLocation], [FileDate], [DocumentType], [DocumentClass], [SortOrder], [SectionID]) select @BriefID As BriefID, CASE WHEN DA.[Type] = ''MSG'' THEN convert(char(255), SubString( ''E-mail from '' + CASE WHEN RTRIM(LTRIM(IsNull(DIA.[EMAILADDRESS], ''(undisclosed)''))) = '''' THEN ''(undisclosed)'' ELSE RTRIM(LTRIM(IsNull(DIA.[EMAILADDRESS], ''(undisclosed)''))) END + '' to '' + CASE WHEN RTRIM(LTRIM(IsNull(SubString(DIA.[ADDRESSTO], 1, 255), ''(undisclosed)''))) = '''' THEN ''(undisclosed)'' ELSE RTRIM(LTRIM(IsNull(SubString(DIA.[ADDRESSTO], 1, 255), ''(undisclosed)''))) END + '': '' + CASE WHEN RTRIM(LTRIM(IsNull(SubString(DIA.[SUBJECT], 1, 255), ''(no subject)''))) = '''' THEN ''(no subject)'' ELSE RTRIM(LTRIM(IsNull(SubString(DIA.[SUBJECT], 1, 255), ''(no subject)''))) END, 1, 255)) ELSE DA.[Document] END, DA.[TrackReference] As [TrackReference], DA.[FilePath] As [FileLocation], DA.[LastAccessDate] As [FileDate], DA.[Type] As [DocumentType], DA.[DocClass] As [DocumentClass], BD2.[SortOrder], @SectionID AS SectionID from (SELECT IsNull(max(BD.SortOrder), 0) + 1 as SortOrder FROM [dbo].[BriefDocuments] BD WHERE BD.SectionID = @SectionID) BD2 INNER JOIN [dbo].[DiaryAttachments] DA INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DA.[DiaryID] ON DA.[TrackReference] = @TrackRef ' END GO /****** Object: StoredProcedure [dbo].[ky_GenerateBrief] Script Date: 10/01/2014 16:17:14 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GenerateBrief]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_GenerateBrief] (@MatterCode varchar(11), @BriefTitle varchar(200), @BriefAuthor varchar(100), @Location varchar(256), @Description varchar(4000), @CreateDate varchar(11), @PublishDate varchar(11)) AS Declare @NewSectionNo int Declare @NewSection varchar(40) Declare @NewBriefID int Declare @DocBriefID int Declare @DocName varchar(255) Declare @DocTrackRef int Declare @DocFileLoc varchar(255) Declare @DocFileDate datetime Declare @DocType char(4) Declare @DocClass varchar(100) Declare @DocSortOrder int Declare @DocLastSectionID int Declare @DocSectionID int INSERT INTO [dbo].[Brief] ([Title], [MatterCode], [Author], [Location], [CreationDate], [PublishDate], [Description]) VALUES(@BriefTitle, @MatterCode, @BriefAuthor, @Location, convert(datetime, @createdate), convert(datetime, @publishdate), @Description) Set @NewBriefID = SCOPE_IDENTITY() INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) VALUES(@NewBriefID, 1, 1, ''Cover Letters'') Set @NewSectionNo = 1 DECLARE NewSections Cursor FOR select Distinct DC.[ClassDescription] from [dbo].[DiaryAttachments] DA INNER JOIN [dbo].[DocumentClasses] DC ON DC.[ClassCode] = DA.[DocClass] where DA.[CaseCode] = @MatterCode Open NewSections Fetch Next From NewSections INTO @NewSection WHILE @@FETCH_STATUS = 0 BEGIN Set @NewSectionNo = @NewSectionNo + 1 INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) VALUES(@NewBriefID, 0, @NewSectionNo, @NewSection) Fetch Next From NewSections INTO @NewSection END Close NewSections Deallocate NewSections UPDATE BS SET BS.khsorter = convert(varchar, 1-coverpage) + right(convert(varchar, 10000 + sequence), 4) + right(convert(varchar, 10000000 + ID), 7) from briefsections BS where BS.BriefID = @NewBriefID Declare NewDocuments Cursor FOR select BR.[ID] As BriefID, CASE WHEN DA.[Type] = ''MSG'' THEN convert(char(255), SubString( ''E-mail from '' + CASE WHEN RTRIM(LTRIM(IsNull(DIA.[EMAILADDRESS], ''(undisclosed)''))) = '''' THEN ''(undisclosed)'' ELSE RTRIM(LTRIM(IsNull(DIA.[EMAILADDRESS], ''(undisclosed)''))) END + '' to '' + CASE WHEN RTRIM(LTRIM(IsNull(SubString(DIA.[ADDRESSTO], 1, 255), ''(undisclosed)''))) = '''' THEN ''(undisclosed)'' ELSE RTRIM(LTRIM(IsNull(SubString(DIA.[ADDRESSTO], 1, 255), ''(undisclosed)''))) END + '': '' + CASE WHEN RTRIM(LTRIM(IsNull(SubString(DIA.[SUBJECT], 1, 255), ''(no subject)''))) = '''' THEN ''(no subject)'' ELSE RTRIM(LTRIM(IsNull(SubString(DIA.[SUBJECT], 1, 255), ''(no subject)''))) END, 1, 255)) ELSE DA.[Document] END As DocumentName, DA.[TrackReference] As TrackReference, DA.[FilePath] As FileLocation, DA.[LastAccessDate] As FileDate, DA.[Type] As DocumentType, DC.[ClassDescription] As DocumentClass, BS.[ID] As SectionID from [dbo].[BriefSections] BS INNER JOIN [dbo].[Brief] BR ON BR.[ID] = BS.[BriefID] INNER JOIN [dbo].[documentclasses] DC ON DC.[ClassDescription] = BS.[Section] INNER JOIN [dbo].[diaryattachments] DA INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DA.[DiaryID] ON DA.[CaseCode] = BR.[MatterCode] AND DA.[DocClass] = DC.[ClassCode] where BS.BriefID = @NewBriefID ORDER BY BS.CoverPage Desc, BS.Sequence Asc SET @DocSortOrder = 0 SET @DocLastSectionID = 0 OPEN NewDocuments FETCH NEXT FROM NEWDOCUMENTS INTO @DocBriefID, @DocName, @DocTrackRef, @DocFileLoc, @DocFileDate, @DocType, @DocClass, @DocSectionID WHILE @@FETCH_STATUS = 0 BEGIN IF (@DocLastSectionID <> @DocSectionID) BEGIN SET @DocLastSectionID = @DocSectionID SET @DocSortOrder = 0 END SET @DocSortOrder = @DocSortOrder + 1 INSERT INTO [dbo].[BriefDocuments] ([BriefID], [DocumentName], [TrackReference], [FileLocation], [FileDate], [DocumentType], [DocumentClass], [SortOrder], [SectionID]) VALUES(@DocBriefID, @DocName, @DocTrackRef, @DocFileLoc, @DocFileDate, @DocType, @DocClass, @DocSortOrder, @DocSectionID) FETCH NEXT FROM NEWDOCUMENTS INTO @DocBriefID, @DocName, @DocTrackRef, @DocFileLoc, @DocFileDate, @DocType, @DocClass, @DocSectionID END CLOSE NewDocuments DEALLOCATE NewDocuments ' END GO /****** Object: StoredProcedure [dbo].[ky_GenerateBrief3] Script Date: 10/01/2014 16:17:15 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GenerateBrief3]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_GenerateBrief3] (@MatterCode varchar(11), @BriefTitle varchar(200), @BriefAuthor varchar(100), @Location varchar(256), @Description varchar(4000), @CreateDate varchar(11), @PublishDate varchar(11), @ImportCaseDocs int, @CopyBrief int) AS /******************************************************************************* ImportCaseDocs: 1 - Include all case documents in this brief (if brief is created as a copy of the last brief, include missing ones) 0 - Leave out missing case documents CopyBrief: 1 - Create a New Brief as a copy of the last Brief for this Case 0 - Create a New Brief that is blank *******************************************************************************/ Declare @NewSectionNo int Declare @NewSection varchar(40) Declare @NewBriefID int Declare @DocBriefID int Declare @DocName varchar(255) Declare @DocTrackRef int Declare @DocFileLoc varchar(255) Declare @DocFileDate datetime Declare @DocType char(4) Declare @DocClass varchar(100) Declare @DocSortOrder int Declare @DocLastSectionID int Declare @DocSectionID int Declare @LastBriefID int IF @CopyBrief = 1 BEGIN Select Top 1 @LastBriefID = BR.[ID] from [dbo].[brief] BR where BR.[MatterCode] = @MatterCode Order by BR.[ID] desc END INSERT INTO [dbo].[Brief] ([Title], [MatterCode], [Author], [Location], [CreationDate], [PublishDate], [Description]) VALUES(@BriefTitle, @MatterCode, @BriefAuthor, @Location, convert(datetime, @createdate), convert(datetime, @publishdate), @Description) Set @NewBriefID = SCOPE_IDENTITY() INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) VALUES(@NewBriefID, 1, 1, ''Cover Letters'') IF @ImportCaseDocs = 1 BEGIN Set @NewSectionNo = 1 DECLARE NewSections Cursor FOR select Distinct DC.[ClassDescription] from [dbo].[DiaryAttachments] DA INNER JOIN [dbo].[DocumentClasses] DC ON DC.[ClassCode] = DA.[DocClass] where DA.[CaseCode] = @MatterCode Open NewSections Fetch Next From NewSections INTO @NewSection WHILE @@FETCH_STATUS = 0 BEGIN Set @NewSectionNo = @NewSectionNo + 1 INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) VALUES(@NewBriefID, 0, @NewSectionNo, @NewSection) Fetch Next From NewSections INTO @NewSection END Close NewSections Deallocate NewSections END IF @CopyBrief = 1 BEGIN INSERT INTO [dbo].[BriefSections] ([BriefID], [CoverPage], [Sequence], [Section]) SELECT @NewBriefID, BS.[CoverPage], BS.[Sequence], BS.[Section] FROM [dbo].[BriefSections] BS LEFT OUTER JOIN [dbo].[BriefSections] BS2 ON BS2.[BriefID] = @NewBriefID AND BS2.[Section] = BS.[Section] WHERE BS.[BriefID] = @LastBriefID AND BS2.[ID] IS NULL END UPDATE BS SET BS.khsorter = convert(varchar, 1-coverpage) + right(convert(varchar, 10000 + sequence), 4) + right(convert(varchar, 10000000 + ID), 7) from briefsections BS where BS.BriefID = @NewBriefID IF @CopyBrief = 1 BEGIN INSERT INTO [dbo].[BriefDocuments] ([BriefID], [DocumentName], [TrackReference], [FileLocation], [FileDate], [DocumentType], [DocumentClass], [SortOrder], [SectionID]) SELECT @NewBriefID, BD.[DocumentName], BD.[TrackReference], BD.[FileLocation], BD.[Filedate], BD.[DocumentType], BD.[DocumentClass], BD.[SortOrder], BS2.[ID] FROM [dbo].[BriefDocuments] BD INNER JOIN [dbo].[BriefSections] BS1 INNER JOIN [dbo].[BriefSections] BS2 ON BS2.[BriefID] = @NewBriefID AND BS2.[CoverPage] = BS1.[CoverPage] AND BS2.[Sequence] = BS1.[Sequence] AND BS2.[Section] = BS1.[Section] ON BS1.[ID] = BD.SectionID WHERE BD.BriefID = @LastBriefID END IF @ImportCaseDocs = 1 BEGIN Declare NewDocuments Cursor FOR select BR.[ID] As BriefID, CASE WHEN DA.[Type] = ''MSG'' THEN convert(char(255), SubString( ''E-mail from '' + CASE WHEN RTRIM(LTRIM(IsNull(DIA.[EMAILADDRESS], ''(undisclosed)''))) = '''' THEN ''(undisclosed)'' ELSE RTRIM(LTRIM(IsNull(DIA.[EMAILADDRESS], ''(undisclosed)''))) END + '' to '' + CASE WHEN RTRIM(LTRIM(IsNull(SubString(DIA.[ADDRESSTO], 1, 255), ''(undisclosed)''))) = '''' THEN ''(undisclosed)'' ELSE RTRIM(LTRIM(IsNull(SubString(DIA.[ADDRESSTO], 1, 255), ''(undisclosed)''))) END + '': '' + CASE WHEN RTRIM(LTRIM(IsNull(SubString(DIA.[SUBJECT], 1, 255), ''(no subject)''))) = '''' THEN ''(no subject)'' ELSE RTRIM(LTRIM(IsNull(SubString(DIA.[SUBJECT], 1, 255), ''(no subject)''))) END, 1, 255)) ELSE DA.[Document] END As DocumentName, DA.[TrackReference] As TrackReference, DA.[FilePath] As FileLocation, DA.[LastAccessDate] As FileDate, DA.[Type] As DocumentType, DC.[ClassDescription] As DocumentClass, BS.[ID] As SectionID from [dbo].[BriefSections] BS INNER JOIN [dbo].[Brief] BR ON BR.[ID] = BS.[BriefID] INNER JOIN [dbo].[documentclasses] DC ON DC.[ClassDescription] = BS.[Section] INNER JOIN [dbo].[diaryattachments] DA INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DA.[DiaryID] ON DA.[CaseCode] = BR.[MatterCode] AND DA.[DocClass] = DC.[ClassCode] LEFT OUTER JOIN [dbo].[BriefDocuments] BD ON BD.[BriefID] = BR.[ID] AND BD.[DocumentName] = DA.[Document] where BS.BriefID = @NewBriefID AND BD.[recordid] IS NULL ORDER BY BS.CoverPage Desc, BS.Sequence Asc SET @DocSortOrder = 0 SET @DocLastSectionID = 0 OPEN NewDocuments FETCH NEXT FROM NEWDOCUMENTS INTO @DocBriefID, @DocName, @DocTrackRef, @DocFileLoc, @DocFileDate, @DocType, @DocClass, @DocSectionID WHILE @@FETCH_STATUS = 0 BEGIN IF (@DocLastSectionID <> @DocSectionID) BEGIN SET @DocLastSectionID = @DocSectionID SET @DocSortOrder = 0 END SET @DocSortOrder = @DocSortOrder + 1 INSERT INTO [dbo].[BriefDocuments] ([BriefID], [DocumentName], [TrackReference], [FileLocation], [FileDate], [DocumentType], [DocumentClass], [SortOrder], [SectionID]) VALUES(@DocBriefID, @DocName, @DocTrackRef, @DocFileLoc, @DocFileDate, @DocType, @DocClass, @DocSortOrder, @DocSectionID) FETCH NEXT FROM NEWDOCUMENTS INTO @DocBriefID, @DocName, @DocTrackRef, @DocFileLoc, @DocFileDate, @DocType, @DocClass, @DocSectionID END CLOSE NewDocuments DEALLOCATE NewDocuments END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_KHC_GetNextAction] Script Date: 10/01/2014 16:19:04 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_KHC_GetNextAction]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_KHC_GetNextAction * * Get the next published action for a matter * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_KHC_GetNextAction] (@mattercode VARCHAR(20)) RETURNS @ACIN TABLE ([DATE] datetime, [TEXT1] varchar(200)) AS BEGIN INSERT INTO @ACIN ([DATE], [TEXT1]) SELECT TOP 1 NA.[DATE], RTRIM(ISNULL(Convert(VARCHAR(200), NA.[Text1]), '''')) AS [Text1] FROM dbo.[diary] NA WHERE NA.[CaseCode] = @MatterCode AND NA.[PUBLISH] = ''P'' AND NA.[STATUS] = 0 ORDER BY NA.[DATE] ASC RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_KHC_GetLastMilestone] Script Date: 10/01/2014 16:19:04 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_KHC_GetLastMilestone]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_KHC_GetLastMilestone * * Get the most recent published milestone (highlighted) action for a matter * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_KHC_GetLastMilestone] (@mattercode VARCHAR(20)) RETURNS @ACIN TABLE ([DATE] datetime, [TEXT1] varchar(200)) AS BEGIN INSERT INTO @ACIN ([DATE], [TEXT1]) SELECT TOP 1 LH.[DATE], RTRIM(ISNULL(Convert(VARCHAR(200), LH.[Text1]), '''')) AS [Text1] FROM dbo.[diary] LH WHERE LH.[CaseCode] = @MatterCode AND LH.[PUBLISH] = ''P'' AND LH.[HIGHLIGHTED] = ''Y'' AND LH.[STATUS] = 1 ORDER BY LH.[DATE] DESC RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_BriefDocAddToSection] Script Date: 10/01/2014 16:17:03 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BriefDocAddToSection]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'/********************************************************************** * * Recreate Stored Procedures * **********************************************************************/ Create Procedure [dbo].[ky_BriefDocAddToSection] (@SectionID int, @TrackRef int) AS DECLARE @BriefID int SELECT @BriefID = BS.BriefID FROM [dbo].[BriefSections] BS WHERE BS.[ID] = @SectionID INSERT INTO [dbo].[BriefDocuments] ([BriefID], [DocumentName], [TrackReference], [FileLocation], [FileDate], [DocumentType], [DocumentClass], [SortOrder], [SectionID]) select @BriefID As BriefID, CASE WHEN DA.[Type] = ''MSG'' THEN convert(char(255), SubString( ''E-mail from '' + CASE WHEN RTRIM(LTRIM(IsNull(DIA.[EMAILADDRESS], ''(undisclosed)''))) = '''' THEN ''(undisclosed)'' ELSE RTRIM(LTRIM(IsNull(DIA.[EMAILADDRESS], ''(undisclosed)''))) END + '' to '' + CASE WHEN RTRIM(LTRIM(IsNull(SubString(DIA.[ADDRESSTO], 1, 255), ''(undisclosed)''))) = '''' THEN ''(undisclosed)'' ELSE RTRIM(LTRIM(IsNull(SubString(DIA.[ADDRESSTO], 1, 255), ''(undisclosed)''))) END + '': '' + CASE WHEN RTRIM(LTRIM(IsNull(SubString(DIA.[SUBJECT], 1, 255), ''(no subject)''))) = '''' THEN ''(no subject)'' ELSE RTRIM(LTRIM(IsNull(SubString(DIA.[SUBJECT], 1, 255), ''(no subject)''))) END, 1, 255)) ELSE DA.[Document] END, DA.[TrackReference] As [TrackReference], DA.[FilePath] As [FileLocation], DA.[LastAccessDate] As [FileDate], DA.[Type] As [DocumentType], DA.[DocClass] As [DocumentClass], BD2.[SortOrder], @SectionID AS SectionID from (SELECT IsNull(max(BD.SortOrder), 0) + 1 as SortOrder FROM [dbo].[BriefDocuments] BD WHERE BD.SectionID = @SectionID) BD2 INNER JOIN [dbo].[DiaryAttachments] DA INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DA.[DiaryID] ON DA.[TrackReference] = @TrackRef ' END GO /****** Object: UserDefinedFunction [dbo].[ky_KHC_GetLastAction] Script Date: 10/01/2014 16:19:04 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_KHC_GetLastAction]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_KHC_GetLastAction * * Get the most recent published action for a matter * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_KHC_GetLastAction] (@mattercode VARCHAR(20)) RETURNS @ACIN TABLE ([DATE] datetime, [TEXT1] varchar(200)) AS BEGIN INSERT INTO @ACIN ([DATE], [TEXT1]) SELECT TOP 1 LA.[DATE], RTRIM(ISNULL(Convert(VARCHAR(200), LA.[Text1]), '''')) AS [Text1] FROM dbo.[diary] LA WHERE LA.[CaseCode] = @MatterCode AND LA.[PUBLISH] = ''P'' AND LA.[STATUS] = 1 ORDER BY LA.[DATE] DESC RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDActionDocListPub] Script Date: 10/01/2014 16:19:10 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDActionDocListPub]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDCaseDocListPub * * Lists case documents. With support for Paging. * Based on ky_WDCaseDocList4, but showing Published documents only * Supersedes ky_WDCaseDocList3. Added the option to exclude media * Supersedes ky_WDCaseDocList2. Added the option to exclude e-mails * * Already added in ky_WDCaseDocList2: * Includes checks for selected classes, * the option to exclude images from the result, * or selected document types * * Note: parameter format for selected classes or selected types (@classes and @types) * is (e.g.) ''*Item1*Item2*Item3*Item4*'' * to select all classes or all types, pass in '''' or NULL * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDActionDocListPub] (@casecode varchar(20), @search varchar(50), @startno int, @count int, @classes varchar(max), @noimg int, @noeml int, @nomed int, @types varchar(max), @ActionID int) RETURNS @CDL TABLE ([docid] int IDENTITY(1, 1), [CASECODE] varchar(20), [DATE] datetime, [DIARYID] int, [TrackReference] int) AS BEGIN DECLARE @CDL2 TABLE ([docid] int IDENTITY(1, 1), [CASECODE] varchar(20), [DATE] datetime, [DIARYID] int, [EMAIL] varchar(1), [TYPE] varchar(10), [DOCCLASS] varchar(10), [TrackReference] int) SET @search = ''%'' + RTrim(IsNull(@Search, '''')) + ''%'' SET @search = Replace(@search, ''%%'', ''%'') IF (@search = ''%'') BEGIN INSERT INTO @CDL2 ([CASECODE], [DATE], [DIARYID], [EMAIL], [TYPE], [DOCCLASS], [TRACKREFERENCE]) SELECT DIA.[CASECODE], IsNull(DIA.[DATE], convert(datetime, ''18991230'')) AS [DATE], DIA.[ActionID], DIA.[EMAIL], RTRIM(ISNULL(DAT.[TYPE], '''')), RTRIM(ISNULL(DAT.[DOCCLASS], '''')), DAT.[TrackReference] FROM [dbo].[Diary] DIA INNER JOIN [dbo].[DiaryAttachments] DAT ON DAT.[DiaryID] = DIA.[ActionID] WHERE DIA.[ActionID] = @ActionID AND DIA.[CASECODE] = @casecode AND DIA.[PUBLISH] = ''P'' ORDER BY DIA.[DATE] DESC, DAT.[TrackReference] DESC END ELSE BEGIN INSERT INTO @CDL2 ([CASECODE], [DATE], [DIARYID], [EMAIL], [TYPE], [TRACKREFERENCE]) SELECT DIA.[CASECODE], IsNull(DIA.[DATE], convert(datetime, ''18991230'')) AS [DATE], DIA.[ActionID], DIA.[EMAIL], DAT.[TYPE], DAT.[TrackReference] FROM [dbo].[Diary] DIA INNER JOIN [dbo].[DiaryAttachments] DAT ON DAT.[DiaryID] = DIA.[ActionID] WHERE DIA.[ActionID] = @ActionID AND DIA.[CASECODE] = @casecode AND DIA.[PUBLISH] = ''P'' AND ( DAT.[Document] LIKE @search OR DIA.[subject] LIKE @search OR DIA.[emailaddress] LIKE @search OR Substring(DIA.[AddressTo], 1, 200) LIKE @search) ORDER BY DIA.[DATE] DESC, DAT.[TrackReference] DESC END IF (@noimg = 1) BEGIN DELETE CD FROM @CDL2 CD WHERE CD.[TYPE] IN (''GIF'', ''JPG'', ''JPEG'', ''BMP'', ''PNG'', ''TIF'', ''TIFF'') END IF (@nomed = 1) BEGIN DELETE CD FROM @CDL2 CD WHERE CD.[TYPE] IN (''WAV'', ''MP3'', ''MP4'', ''WMV'', ''AVI'', ''MOV'', ''3GP'', ''MPG'', ''OGG'') END IF (ISNULL(@types, '''') <> '''') BEGIN DELETE CD FROM @CDL2 CD WHERE @types NOT LIKE ''%*'' + CD.[TYPE] + ''*%'' END IF (ISNULL(@classes, '''') <> '''') BEGIN DELETE CD FROM @CDL2 CD WHERE @classes NOT LIKE ''%*'' + CD.[DOCCLASS] + ''*%'' END IF (@noeml = 1) BEGIN DELETE CDL2 FROM @CDL2 CDL2 OUTER APPLY ( SELECT TOP 1 MST.[TrackReference] AS [TrackReference], MST.[Type] AS [Type] FROM [dbo].[diaryattachments] MST WHERE MST.[diaryid] = CDL2.[DiaryID] ORDER BY CASE WHEN MST.[TYPE] = ''MSG'' THEN 0 WHEN MST.[TYPE] = ''HTM'' THEN 1 ELSE 2 END, MST.[TrackReference]) OMS WHERE CASE WHEN ( ISNULL(CDL2.[EMAIL], '''') = ''Y'' AND CDL2.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' WHEN ( ISNULL(CDL2.[TYPE], '''') = ''MSG'' AND CDL2.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' ELSE ''N'' END = ''Y'' END INSERT INTO @CDL ([CASECODE], [DATE], [DIARYID], [TrackReference]) SELECT CDL2.[CASECODE], CDL2.[DATE], CDL2.[DIARYID], CDL2.[TrackReference] FROM @CDL2 CDL2 ORDER BY CDL2.[docid] DELETE @CDL WHERE [docid] < @startno DELETE @CDL WHERE [docid] > (@startno + @count - 1) RETURN END ' END GO /****** Object: View [dbo].[CaseDocuments] Script Date: 10/01/2014 16:19:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[CaseDocuments]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[CaseDocuments] AS SELECT dbo.diary.CASECODE AS MatterCode, dbo.DiaryAttachments.NAME AS DocumentName, dbo.DiaryAttachments.DOCUMENT, dbo.DiaryAttachments.FILEPATH, dbo.DiaryAttachments.TYPE, dbo.DiaryAttachments.DOCCLASS, dbo.DiaryAttachments.DATEENTERED, dbo.DiaryAttachments.ENTEREDBY, dbo.DiaryAttachments.LASTACCESSDATE, dbo.DiaryAttachments.LASTACCESSBY, dbo.DiaryAttachments.SYSTEM, dbo.DiaryAttachments.DICTATIONFILE, dbo.DiaryAttachments.TRACKREFERENCE, dbo.DiaryAttachments.DIARYID, dbo.diary.FNCODE AS ActionFe, dbo.diary.ACTIONCODE, dbo.diary.ACTIONSTATUS, dbo.diary.STATUS, dbo.diary.[DATE] AS DiaryDate, dbo.diary.ACTIONTYPE, dbo.diary.TEAMCODE, dbo.diary.PUBLISH, dbo.diary.PRIORITY, dbo.diary.ADDRESSTO, dbo.diary.CCTo, dbo.diary.BCCTo, dbo.diary.EMAIL, dbo.diary.SUBJECT FROM dbo.diary RIGHT OUTER JOIN dbo.DiaryAttachments ON dbo.diary.ACTIONID = dbo.DiaryAttachments.DIARYID ' GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDocList3] Script Date: 10/01/2014 16:19:17 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDocList3]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDCaseDocList3 * * Lists case documents. With support for Paging. * Supersedes ky_WDCaseDocList2. Added the option to exclude e-mails * * Already added in ky_WDCaseDocList2: * Includes checks for selected classes, * the option to exclude images from the result, * or selected document types * * Note: parameter format for selected classes or selected types (@classes and @types) * is (e.g.) ''*Item1*Item2*Item3*Item4*'' * to select all classes or all types, pass in '''' or NULL * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDCaseDocList3] (@casecode varchar(20), @search varchar(50), @startno int, @count int, @classes varchar(max), @noimg int, @noeml int, @types varchar(max)) RETURNS @CDL TABLE ([docid] int IDENTITY(1, 1), [CASECODE] varchar(20), [DATE] datetime, [DIARYID] int, [TrackReference] int) AS BEGIN DECLARE @CDL2 TABLE ([docid] int IDENTITY(1, 1), [CASECODE] varchar(20), [DATE] datetime, [DIARYID] int, [EMAIL] varchar(1), [TYPE] varchar(10), [TrackReference] int) DECLARE @noimgtypes varchar(max) IF (@noimg = 1) SET @noimgtypes = ''*GIF*JPG*JPEG*BMP*PNG*TIF*TIFF*'' ELSE SET @noimgtypes = ''*'' SET @search = ''%'' + RTrim(IsNull(@Search, '''')) + ''%'' SET @search = Replace(@search, ''%%'', ''%'') IF (@search = ''%'') BEGIN INSERT INTO @CDL2 ([CASECODE], [DATE], [DIARYID], [EMAIL], [TYPE], [TRACKREFERENCE]) SELECT DIA.[CASECODE], IsNull(DIA.[DATE], convert(datetime, ''18991230'')) AS [DATE], DIA.[ActionID], DIA.[EMAIL], DAT.[TYPE], DAT.[TrackReference] FROM [dbo].[Diary] DIA INNER JOIN [dbo].[DiaryAttachments] DAT ON DAT.[DiaryID] = DIA.[ActionID] AND @noimgtypes NOT LIKE ''%*'' + DAT.[TYPE] + ''*%'' AND ( (@types is NULL) OR (@types LIKE ''%*'' + DAT.[TYPE] + ''*%'')) AND ( (@classes is NULL) OR (@classes LIKE ''%*'' + DAT.[DOCCLASS] + ''*%'')) WHERE DIA.[CASECODE] = @casecode ORDER BY DIA.[DATE] DESC, DAT.[TrackReference] DESC END ELSE BEGIN INSERT INTO @CDL2 ([CASECODE], [DATE], [DIARYID], [EMAIL], [TYPE], [TRACKREFERENCE]) SELECT DIA.[CASECODE], IsNull(DIA.[DATE], convert(datetime, ''18991230'')) AS [DATE], DIA.[ActionID], DIA.[EMAIL], DAT.[TYPE], DAT.[TrackReference] FROM [dbo].[Diary] DIA INNER JOIN [dbo].[DiaryAttachments] DAT ON DAT.[DiaryID] = DIA.[ActionID] AND @noimgtypes NOT LIKE ''%*'' + DAT.[TYPE] + ''*%'' AND ( (@types is NULL) OR (@types LIKE ''%*'' + DAT.[TYPE] + ''*%'')) AND ( (@classes is NULL) OR (@classes LIKE ''%*'' + DAT.[DOCCLASS] + ''*%'')) WHERE DIA.[CASECODE] = @casecode AND ( DAT.[Document] LIKE @search OR DIA.[subject] LIKE @search OR DIA.[emailaddress] LIKE @search OR Substring(DIA.[AddressTo], 1, 200) LIKE @search) ORDER BY DIA.[DATE] DESC, DAT.[TrackReference] DESC END IF (@noeml = 1) BEGIN DELETE CDL2 FROM @CDL2 CDL2 OUTER APPLY ( SELECT TOP 1 MST.[TrackReference] AS [TrackReference], MST.[Type] AS [Type] FROM [dbo].[diaryattachments] MST WHERE MST.[diaryid] = CDL2.[DiaryID] ORDER BY CASE WHEN MST.[TYPE] = ''MSG'' THEN 0 WHEN MST.[TYPE] = ''HTM'' THEN 1 ELSE 2 END, MST.[TrackReference]) OMS WHERE CASE WHEN ( ISNULL(CDL2.[EMAIL], '''') = ''Y'' AND CDL2.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' WHEN ( ISNULL(CDL2.[TYPE], '''') = ''MSG'' AND CDL2.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' ELSE ''N'' END = ''Y'' END INSERT INTO @CDL ([CASECODE], [DATE], [DIARYID], [TrackReference]) SELECT CDL2.[CASECODE], CDL2.[DATE], CDL2.[DIARYID], CDL2.[TrackReference] FROM @CDL2 CDL2 ORDER BY CDL2.[docid] DELETE @CDL WHERE [docid] < @startno DELETE @CDL WHERE [docid] > (@startno + @count - 1) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDocList4] Script Date: 10/01/2014 16:19:18 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDocList4]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDCaseDocList4 * * Lists case documents. With support for Paging. * Supersedes ky_WDCaseDocList3. Added the option to exclude media * Supersedes ky_WDCaseDocList2. Added the option to exclude e-mails * * Already added in ky_WDCaseDocList2: * Includes checks for selected classes, * the option to exclude images from the result, * or selected document types * * Note: parameter format for selected classes or selected types (@classes and @types) * is (e.g.) ''*Item1*Item2*Item3*Item4*'' * to select all classes or all types, pass in '''' or NULL * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDCaseDocList4] (@casecode varchar(20), @search varchar(50), @startno int, @count int, @classes varchar(max), @noimg int, @noeml int, @nomed int, @types varchar(max)) RETURNS @CDL TABLE ([docid] int IDENTITY(1, 1), [CASECODE] varchar(20), [DATE] datetime, [DIARYID] int, [TrackReference] int) AS BEGIN DECLARE @CDL2 TABLE ([docid] int IDENTITY(1, 1), [CASECODE] varchar(20), [DATE] datetime, [DIARYID] int, [EMAIL] varchar(1), [TYPE] varchar(10), [TrackReference] int) DECLARE @noimgtypes varchar(max) DECLARE @nomedtypes varchar(max) IF (@noimg = 1) SET @noimgtypes = ''*GIF*JPG*JPEG*BMP*PNG*TIF*TIFF*'' ELSE SET @noimgtypes = ''*'' IF (@nomed = 1) SET @nomedtypes = ''*WAV*MP3*MP4*WMV*AVI*MOV*3GP*MPG*OGG*'' ELSE SET @nomedtypes = ''*'' SET @search = ''%'' + RTrim(IsNull(@Search, '''')) + ''%'' SET @search = Replace(@search, ''%%'', ''%'') IF (@search = ''%'') BEGIN INSERT INTO @CDL2 ([CASECODE], [DATE], [DIARYID], [EMAIL], [TYPE], [TRACKREFERENCE]) SELECT DIA.[CASECODE], IsNull(DIA.[DATE], convert(datetime, ''18991230'')) AS [DATE], DIA.[ActionID], DIA.[EMAIL], DAT.[TYPE], DAT.[TrackReference] FROM [dbo].[Diary] DIA INNER JOIN [dbo].[DiaryAttachments] DAT ON DAT.[DiaryID] = DIA.[ActionID] AND @noimgtypes NOT LIKE ''%*'' + DAT.[TYPE] + ''*%'' AND @nomedtypes NOT LIKE ''%*'' + DAT.[TYPE] + ''*%'' AND ( (@types is NULL) OR (@types LIKE ''%*'' + DAT.[TYPE] + ''*%'')) AND ( (@classes is NULL) OR (@classes LIKE ''%*'' + DAT.[DOCCLASS] + ''*%'')) WHERE DIA.[CASECODE] = @casecode ORDER BY DIA.[DATE] DESC, DAT.[TrackReference] DESC END ELSE BEGIN INSERT INTO @CDL2 ([CASECODE], [DATE], [DIARYID], [EMAIL], [TYPE], [TRACKREFERENCE]) SELECT DIA.[CASECODE], IsNull(DIA.[DATE], convert(datetime, ''18991230'')) AS [DATE], DIA.[ActionID], DIA.[EMAIL], DAT.[TYPE], DAT.[TrackReference] FROM [dbo].[Diary] DIA INNER JOIN [dbo].[DiaryAttachments] DAT ON DAT.[DiaryID] = DIA.[ActionID] AND @noimgtypes NOT LIKE ''%*'' + DAT.[TYPE] + ''*%'' AND @nomedtypes NOT LIKE ''%*'' + DAT.[TYPE] + ''*%'' AND ( (@types is NULL) OR (@types LIKE ''%*'' + DAT.[TYPE] + ''*%'')) AND ( (@classes is NULL) OR (@classes LIKE ''%*'' + DAT.[DOCCLASS] + ''*%'')) WHERE DIA.[CASECODE] = @casecode AND ( DAT.[Document] LIKE @search OR DIA.[subject] LIKE @search OR DIA.[emailaddress] LIKE @search OR Substring(DIA.[AddressTo], 1, 200) LIKE @search) ORDER BY DIA.[DATE] DESC, DAT.[TrackReference] DESC END IF (@noeml = 1) BEGIN DELETE CDL2 FROM @CDL2 CDL2 OUTER APPLY ( SELECT TOP 1 MST.[TrackReference] AS [TrackReference], MST.[Type] AS [Type] FROM [dbo].[diaryattachments] MST WHERE MST.[diaryid] = CDL2.[DiaryID] ORDER BY CASE WHEN MST.[TYPE] = ''MSG'' THEN 0 WHEN MST.[TYPE] = ''HTM'' THEN 1 ELSE 2 END, MST.[TrackReference]) OMS WHERE CASE WHEN ( ISNULL(CDL2.[EMAIL], '''') = ''Y'' AND CDL2.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' WHEN ( ISNULL(CDL2.[TYPE], '''') = ''MSG'' AND CDL2.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' ELSE ''N'' END = ''Y'' END INSERT INTO @CDL ([CASECODE], [DATE], [DIARYID], [TrackReference]) SELECT CDL2.[CASECODE], CDL2.[DATE], CDL2.[DIARYID], CDL2.[TrackReference] FROM @CDL2 CDL2 ORDER BY CDL2.[docid] DELETE @CDL WHERE [docid] < @startno DELETE @CDL WHERE [docid] > (@startno + @count - 1) RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDUpdateAction_DiaryDel] Script Date: 10/01/2014 16:18:31 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDUpdateAction_DiaryDel]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDUpdateAction_DiaryDel * * Step 3 of assigning an Action: update the Diary record * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDUpdateAction_DiaryDel] (@ActionID int, @AssignNo int, @Handler varchar(10), @AssignTo varchar(10), @Release int, @RESULT int OUTPUT) AS BEGIN SET @RESULT = 0 BEGIN TRY BEGIN UPDATE DIA SET DIA.[DELEGATIONSTATUS] = CASE WHEN ((@Release = 1) AND (@Handler = DIA.[FNCODE])) THEN 0 ELSE 1 END, DIA.[FNCODE] = CASE WHEN ((@Release = 1) AND (@Handler = DIA.[FNCODE])) THEN @AssignTo ELSE DIA.[FNCODE] END, DIA.[DATE] = CASE WHEN ((@Release = 1) AND (@Handler = DIA.[FNCODE])) THEN Convert(datetime, Replace(CONVERT(varchar, getDate(), 112), ''-'', '''')) ELSE DIA.[DATE] END, DIA.[TEAMCODE] = CASE RTRIM(IsNull(RES.[TEAMCODE], ''N'')) WHEN ''Y'' THEN RES.[CODE] ELSE RES.[TEAM] END, DIA.[DELEGATEDFNR] = @AssignTo, DIA.[DELEGATEDDATE] = Convert(datetime, Replace(CONVERT(varchar, getDate(), 112), ''-'', '''')) FROM [dbo].[diary] DIA INNER JOIN [dbo].[Handlers] RES ON RES.[CODE] = @AssignTo WHERE DIA.[ACTIONID] = @ActionID END END TRY BEGIN CATCH SET @RESULT = -1 END CATCH IF (@@ERROR <> 0) BEGIN SET @RESULT = -1 END END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDocListPub] Script Date: 10/01/2014 16:19:19 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDocListPub]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDCaseDocListPub * * Lists case documents. With support for Paging. * Based on ky_WDCaseDocList4, but showing Published documents only * Supersedes ky_WDCaseDocList3. Added the option to exclude media * Supersedes ky_WDCaseDocList2. Added the option to exclude e-mails * * Already added in ky_WDCaseDocList2: * Includes checks for selected classes, * the option to exclude images from the result, * or selected document types * * Note: parameter format for selected classes or selected types (@classes and @types) * is (e.g.) ''*Item1*Item2*Item3*Item4*'' * to select all classes or all types, pass in '''' or NULL * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDCaseDocListPub] (@casecode varchar(20), @search varchar(50), @startno int, @count int, @classes varchar(max), @noimg int, @noeml int, @nomed int, @types varchar(max)) RETURNS @CDL TABLE ([docid] int IDENTITY(1, 1), [CASECODE] varchar(20), [DATE] datetime, [DIARYID] int, [TrackReference] int) AS BEGIN DECLARE @CDL2 TABLE ([docid] int IDENTITY(1, 1), [CASECODE] varchar(20), [DATE] datetime, [DIARYID] int, [EMAIL] varchar(1), [TYPE] varchar(10), [DOCCLASS] varchar(10), [TrackReference] int) SET @search = ''%'' + RTrim(IsNull(@Search, '''')) + ''%'' SET @search = Replace(@search, ''%%'', ''%'') IF (@search = ''%'') BEGIN INSERT INTO @CDL2 ([CASECODE], [DATE], [DIARYID], [EMAIL], [TYPE], [DOCCLASS], [TRACKREFERENCE]) SELECT DIA.[CASECODE], IsNull(DIA.[DATE], convert(datetime, ''18991230'')) AS [DATE], DIA.[ActionID], DIA.[EMAIL], RTRIM(ISNULL(DAT.[TYPE], '''')), RTRIM(ISNULL(DAT.[DOCCLASS], '''')), DAT.[TrackReference] FROM [dbo].[Diary] DIA INNER JOIN [dbo].[DiaryAttachments] DAT ON DAT.[DiaryID] = DIA.[ActionID] WHERE DIA.[CASECODE] = @casecode AND DIA.[PUBLISH] = ''P'' ORDER BY DIA.[DATE] DESC, DAT.[TrackReference] DESC END ELSE BEGIN INSERT INTO @CDL2 ([CASECODE], [DATE], [DIARYID], [EMAIL], [TYPE], [TRACKREFERENCE]) SELECT DIA.[CASECODE], IsNull(DIA.[DATE], convert(datetime, ''18991230'')) AS [DATE], DIA.[ActionID], DIA.[EMAIL], DAT.[TYPE], DAT.[TrackReference] FROM [dbo].[Diary] DIA INNER JOIN [dbo].[DiaryAttachments] DAT ON DAT.[DiaryID] = DIA.[ActionID] WHERE DIA.[CASECODE] = @casecode AND DIA.[PUBLISH] = ''P'' AND ( DAT.[Document] LIKE @search OR DIA.[subject] LIKE @search OR DIA.[emailaddress] LIKE @search OR Substring(DIA.[AddressTo], 1, 200) LIKE @search) ORDER BY DIA.[DATE] DESC, DAT.[TrackReference] DESC END IF (@noimg = 1) BEGIN DELETE CD FROM @CDL2 CD WHERE CD.[TYPE] IN (''GIF'', ''JPG'', ''JPEG'', ''BMP'', ''PNG'', ''TIF'', ''TIFF'') END IF (@nomed = 1) BEGIN DELETE CD FROM @CDL2 CD WHERE CD.[TYPE] IN (''WAV'', ''MP3'', ''MP4'', ''WMV'', ''AVI'', ''MOV'', ''3GP'', ''MPG'', ''OGG'') END IF (ISNULL(@types, '''') <> '''') BEGIN DELETE CD FROM @CDL2 CD WHERE @types NOT LIKE ''%*'' + CD.[TYPE] + ''*%'' END IF (ISNULL(@classes, '''') <> '''') BEGIN DELETE CD FROM @CDL2 CD WHERE @classes NOT LIKE ''%*'' + CD.[DOCCLASS] + ''*%'' END IF (@noeml = 1) BEGIN DELETE CDL2 FROM @CDL2 CDL2 OUTER APPLY ( SELECT TOP 1 MST.[TrackReference] AS [TrackReference], MST.[Type] AS [Type] FROM [dbo].[diaryattachments] MST WHERE MST.[diaryid] = CDL2.[DiaryID] ORDER BY CASE WHEN MST.[TYPE] = ''MSG'' THEN 0 WHEN MST.[TYPE] = ''HTM'' THEN 1 ELSE 2 END, MST.[TrackReference]) OMS WHERE CASE WHEN ( ISNULL(CDL2.[EMAIL], '''') = ''Y'' AND CDL2.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' WHEN ( ISNULL(CDL2.[TYPE], '''') = ''MSG'' AND CDL2.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' ELSE ''N'' END = ''Y'' END INSERT INTO @CDL ([CASECODE], [DATE], [DIARYID], [TrackReference]) SELECT CDL2.[CASECODE], CDL2.[DATE], CDL2.[DIARYID], CDL2.[TrackReference] FROM @CDL2 CDL2 ORDER BY CDL2.[docid] DELETE @CDL WHERE [docid] < @startno DELETE @CDL WHERE [docid] > (@startno + @count - 1) RETURN END ' END GO /****** Object: View [dbo].[EmailAddressHistory] Script Date: 10/01/2014 16:19:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[EmailAddressHistory]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[EmailAddressHistory] AS SELECT TOP 100 PERCENT CASECODE, ACTIONID, EMAILADDRESS, ADDRESSTO FROM dbo.diary WHERE (ADDRESSTO LIKE ''%@%'') OR (EMAILADDRESS LIKE ''%@%'') ORDER BY CASECODE, ACTIONID ' GO /****** Object: StoredProcedure [dbo].[pWebCaseDiaryGet] Script Date: 10/01/2014 16:18:40 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[pWebCaseDiaryGet]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'-- Returns a specific record from the [dbo].[diary] table. CREATE PROCEDURE [dbo].[pWebCaseDiaryGet] @pk_ACTIONID numeric(15,0) AS DECLARE @l_count int BEGIN -- 2014-06-19 the software to which this pertains has no knowledge of the DisplayText field -- Get the rowcount first and make sure -- only one row is returned SELECT @l_count = count(*) FROM [dbo].[diary] WHERE [ACTIONID] =@pk_ACTIONID IF @l_count = 0 RAISERROR (''The record no longer exists.'', 16, 1) IF @l_count > 1 RAISERROR (''duplicate object instances.'', 16, 1) -- Get the row from the query. Checksum value will be -- returned along the row data to support concurrency. SELECT [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], CAST(BINARY_CHECKSUM([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]) AS nvarchar(4000)) AS IS_CHECKSUM_COLUMN_12345 FROM [dbo].[diary] WHERE [ACTIONID] =@pk_ACTIONID END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDocList2] Script Date: 10/01/2014 16:19:16 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDocList2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDCaseDocList2 * * Lists case documents. With support for Paging. * Supersedes ky_WDCaseDocList. Includes checks for selected classes, * the option to exclude images from the result, * or selected document types * * Note: parameter format for selected classes or selected types (@classes and @types) * is (e.g.) ''*Item1*Item2*Item3*Item4*'' * to select all classes or all types, pass in '''' or NULL * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDCaseDocList2] (@casecode varchar(20), @search varchar(50), @startno int, @count int, @classes varchar(max), @noimg int, @types varchar(max)) RETURNS @CDL TABLE ([docid] int IDENTITY(1, 1), [CASECODE] varchar(20), [DATE] datetime, [DIARYID] int, [TrackReference] int) AS BEGIN DECLARE @noimgtypes varchar(max) IF (@noimg = 1) SET @noimgtypes = ''*GIF*JPG*JPEG*BMP*PNG*TIF*TIFF*'' ELSE SET @noimgtypes = ''*'' SET @search = ''%'' + RTrim(IsNull(@Search, '''')) + ''%'' SET @search = Replace(@search, ''%%'', ''%'') IF (@search = ''%'') BEGIN INSERT INTO @CDL ([CASECODE], [DATE], [DIARYID], [TRACKREFERENCE]) SELECT DIA.[CASECODE], IsNull(DIA.[DATE], convert(datetime, ''18991230'')) AS [DATE], DIA.[ActionID], DAT.[TrackReference] FROM [dbo].[Diary] DIA INNER JOIN [dbo].[DiaryAttachments] DAT ON DAT.[DiaryID] = DIA.[ActionID] AND @noimgtypes NOT LIKE ''%*'' + DAT.[TYPE] + ''*%'' AND ( (@types is NULL) OR (@types LIKE ''%*'' + DAT.[TYPE] + ''*%'')) AND ( (@classes is NULL) OR (@classes LIKE ''%*'' + DAT.[DOCCLASS] + ''*%'')) WHERE DIA.[CASECODE] = @casecode ORDER BY DIA.[DATE] DESC, DAT.[TrackReference] DESC END ELSE BEGIN INSERT INTO @CDL ([CASECODE], [DATE], [DIARYID], [TRACKREFERENCE]) SELECT DIA.[CASECODE], IsNull(DIA.[DATE], convert(datetime, ''18991230'')) AS [DATE], DIA.[ActionID], DAT.[TrackReference] FROM [dbo].[Diary] DIA INNER JOIN [dbo].[DiaryAttachments] DAT ON DAT.[DiaryID] = DIA.[ActionID] AND @noimgtypes NOT LIKE ''%*'' + DAT.[TYPE] + ''*%'' AND ( (@types is NULL) OR (@types LIKE ''%*'' + DAT.[TYPE] + ''*%'')) AND ( (@classes is NULL) OR (@classes LIKE ''%*'' + DAT.[DOCCLASS] + ''*%'')) WHERE DIA.[CASECODE] = @casecode AND ( DAT.[Document] LIKE @search OR DIA.[subject] LIKE @search OR DIA.[emailaddress] LIKE @search OR Substring(DIA.[AddressTo], 1, 200) LIKE @search) ORDER BY DIA.[DATE] DESC, DAT.[TrackReference] DESC END DELETE @CDL WHERE [docid] < @startno DELETE @CDL WHERE [docid] > (@startno + @count - 1) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDDiaryDocList] Script Date: 10/01/2014 16:19:21 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDDiaryDocList]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDDiaryDocList * * Lists Diary documents (Diary Attachments). With support for Paging. * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDDiaryDocList] (@actionID int, @search varchar(50), @startno int, @count int) RETURNS @CDL TABLE ([docid] int IDENTITY(1, 1), [CASECODE] varchar(20), [DATE] datetime, [DIARYID] int, [TrackReference] int) AS BEGIN SET @search = ''%'' + RTrim(IsNull(@Search, '''')) + ''%'' SET @search = Replace(@search, ''%%'', ''%'') IF (@search = ''%'') BEGIN INSERT INTO @CDL ([CASECODE], [DATE], [DIARYID], [TRACKREFERENCE]) SELECT DIA.[CASECODE], IsNull(DIA.[DATE], convert(datetime, ''18991230'')) AS [DATE], DIA.[ActionID], DAT.[TrackReference] FROM [dbo].[Diary] DIA INNER JOIN [dbo].[DiaryAttachments] DAT ON DAT.[DiaryID] = DIA.[ActionID] WHERE DIA.[ACTIONID] = @actionID ORDER BY DIA.[DATE] DESC, DAT.[TrackReference] DESC END ELSE BEGIN INSERT INTO @CDL ([CASECODE], [DATE], [DIARYID], [TRACKREFERENCE]) SELECT DIA.[CASECODE], IsNull(DIA.[DATE], convert(datetime, ''18991230'')) AS [DATE], DIA.[ActionID], DAT.[TrackReference] FROM [dbo].[Diary] DIA INNER JOIN [dbo].[DiaryAttachments] DAT ON DAT.[DiaryID] = DIA.[ActionID] WHERE DIA.[ACTIONID] = @actionID AND ( DAT.[Document] LIKE @search OR DIA.[subject] LIKE @search OR DIA.[emailaddress] LIKE @search OR Substring(DIA.[AddressTo], 1, 200) LIKE @search) ORDER BY DIA.[DATE] DESC, DAT.[TrackReference] DESC END DELETE @CDL WHERE [docid] < @startno DELETE @CDL WHERE [docid] > (@startno + @count - 1) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_Diary] Script Date: 10/01/2014 16:19:00 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_Diary]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' create function [dbo].[ky_Diary] (@CaseCode varchar(20)) RETURNS @CDiary TABLE ([ActionID] int, [AddressTo] varchar(255), [Subject] varchar(255)) AS BEGIN INSERT INTO @CDiary ([ActionID], [AddressTo], [Subject]) SELECT DIA.[ActionID], RTRIM(ISNULL(CONVERT(VARCHAR(255), SUBSTRING(DIA.[AddressTo], 1, 255)), '''')) As [AddressTo], RTRIM(ISNULL(CONVERT(VARCHAR(255), SUBSTRING(DIA.[Subject], 1, 255)), '''')) As [Subject] FROM [dbo].[Diary] DIA WHERE DIA.[CaseCode] = @CaseCode RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDiaryPage] Script Date: 10/01/2014 16:19:14 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDiaryPage]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDCaseDiaryPage * * Retrieve a page from the Case Diary * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDCaseDiaryPage] (@CASECODE VARCHAR(20), @start int, @pagesize int) RETURNS @CD TABLE ([ID] int identity(1, 1), [ActionID] int, [DiaryDate] datetime) AS BEGIN INSERT INTO @CD ([ActionID], [DiaryDate]) SELECT DIA.[ActionID], DIA.[Date] FROM [dbo].[Diary] DIA WHERE DIA.[CASECODE] = @CASECODE ORDER BY DIA.[Status], DIA.[DATE] DESC DELETE @CD WHERE [ID] < @start DELETE @CD WHERE [ID] >= @start + @pagesize RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDocList] Script Date: 10/01/2014 16:19:15 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDocList]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDCaseDocList * * Lists case documents. With support for Paging. * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDCaseDocList] (@casecode varchar(20), @search varchar(50), @startno int, @count int) RETURNS @CDL TABLE ([docid] int IDENTITY(1, 1), [CASECODE] varchar(20), [DATE] datetime, [DIARYID] int, [TrackReference] int) AS BEGIN SET @search = ''%'' + RTrim(IsNull(@Search, '''')) + ''%'' SET @search = Replace(@search, ''%%'', ''%'') IF (@search = ''%'') BEGIN INSERT INTO @CDL ([CASECODE], [DATE], [DIARYID], [TRACKREFERENCE]) SELECT DIA.[CASECODE], IsNull(DIA.[DATE], convert(datetime, ''18991230'')) AS [DATE], DIA.[ActionID], DAT.[TrackReference] FROM [dbo].[Diary] DIA INNER JOIN [dbo].[DiaryAttachments] DAT ON DAT.[DiaryID] = DIA.[ActionID] WHERE DIA.[CASECODE] = @casecode ORDER BY DIA.[DATE] DESC, DAT.[TrackReference] DESC END ELSE BEGIN INSERT INTO @CDL ([CASECODE], [DATE], [DIARYID], [TRACKREFERENCE]) SELECT DIA.[CASECODE], IsNull(DIA.[DATE], convert(datetime, ''18991230'')) AS [DATE], DIA.[ActionID], DAT.[TrackReference] FROM [dbo].[Diary] DIA INNER JOIN [dbo].[DiaryAttachments] DAT ON DAT.[DiaryID] = DIA.[ActionID] WHERE DIA.[CASECODE] = @casecode AND ( DAT.[Document] LIKE @search OR DIA.[subject] LIKE @search OR DIA.[emailaddress] LIKE @search OR Substring(DIA.[AddressTo], 1, 200) LIKE @search) ORDER BY DIA.[DATE] DESC, DAT.[TrackReference] DESC END DELETE @CDL WHERE [docid] < @startno DELETE @CDL WHERE [docid] > (@startno + @count - 1) RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDiaryPage3] Script Date: 10/01/2014 16:19:15 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDiaryPage3]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDCaseDiaryPage3 * * Retrieve a page from the Case Diary, with search criteria * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDCaseDiaryPage3] (@CASECODE VARCHAR(20), @start int, @pagesize int, @search varchar(100), @ActionType varchar(1), @highlighted varchar(1), @Priority varchar(1)) RETURNS @CD TABLE ([ID] int identity(1, 1), [ActionID] int, [DiaryDate] datetime) AS BEGIN SET @search = REPLACE(''%'' + RTRIM(ISNULL(@search, '''')) + ''%'', ''%%'', ''%'') SET @highlighted = CASE WHEN UPPER(ISNULL(@highlighted, ''N'')) = ''Y'' THEN ''Y'' ELSE '''' END SET @ActionType = RTRIM(ISNULL(@actiontype, '''')) SET @Priority = RTRIM(ISNULL(@priority, '''')) INSERT INTO @CD ([ActionID], [DiaryDate]) SELECT DIA.[ActionID], DIA.[Date] FROM [dbo].[Diary] DIA WHERE DIA.[CASECODE] = @CASECODE AND ( @search = ''%'' OR CONVERT(varchar(5000), DIA.[subject]) LIKE @Search OR CONVERT(varchar(5000), DIA.[text1]) LIKE @Search) AND ( @highlighted = '''' OR DIA.[HIGHLIGHTED] = ''Y'') AND ( @ActionType = '''' OR DIA.[ACTIONTYPE] = @ActionType) AND ( @Priority = '''' OR DIA.[PRIORITY] = @Priority) ORDER BY DIA.[Status], DIA.[DATE] DESC DELETE @CD WHERE [ID] < @start DELETE @CD WHERE [ID] >= @start + @pagesize RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDUpdateAction_DiaryDel81] Script Date: 10/01/2014 16:18:31 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDUpdateAction_DiaryDel81]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDUpdateAction_DiaryDel81 * * Step 3 of assigning an Action: update the Diary record * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDUpdateAction_DiaryDel81] (@ActionID int, @AssignNo int, @DelDateType int, @DelDate varchar(17), @Handler varchar(10), @AssignTo varchar(10), @Release int, @RESULT int OUTPUT) AS BEGIN SET @RESULT = 0 DECLARE @DATETIME DATETIME --Default to 0 - Use Today''s Date SET @DelDateType = ISNULL(@DelDateType, 0) BEGIN TRY -- Make sure @DelDateType contains a valid value, i.e. 0, 1 or 2. -- Anything outside that range is changed to the default, 0 SET @DelDateType = CASE WHEN @DelDateType = 1 THEN 1 WHEN @DelDateType = 2 THEN 2 ELSE 0 END SET @DATETIME = CASE WHEN @DelDateType = 1 THEN CONVERT(datetime, null) WHEN @DelDateType = 2 THEN CONVERT(datetime, @DelDate) ELSE GETDATE() END END TRY BEGIN CATCH -- If @DelDate doesn''t contain a valid date in "YYYYMMDD HH:MI:SS" format, -- revert to the default behaviour: use today''s date SET @DelDateType = 0 SET @DATETIME = GETDATE() END CATCH BEGIN TRY BEGIN UPDATE DIA SET DIA.[DELEGATIONSTATUS] = CASE WHEN ((@Release = 1) AND (@Handler = DIA.[FNCODE])) THEN 0 ELSE 1 END, DIA.[FNCODE] = CASE WHEN ((@Release = 1) AND (@Handler = DIA.[FNCODE])) THEN @AssignTo ELSE DIA.[FNCODE] END, DIA.[DATE] = CASE WHEN ((@Release = 1) AND (@Handler = DIA.[FNCODE]) AND (@DATETIME IS NULL)) THEN DIA.[DATE] WHEN ((@Release = 1) AND (@Handler = DIA.[FNCODE]) AND (@DATETIME IS NOT NULL)) THEN Convert(datetime, Replace(CONVERT(varchar, @DATETIME, 112), ''-'', '''')) ELSE DIA.[DATE] END, DIA.[TEAMCODE] = CASE RTRIM(IsNull(RES.[TEAMCODE], ''N'')) WHEN ''Y'' THEN RES.[CODE] ELSE RES.[TEAM] END, DIA.[DELEGATEDFNR] = @AssignTo, DIA.[DELEGATEDDATE] = Convert(datetime, Replace(CONVERT(varchar, GETDATE(), 112), ''-'', '''')) FROM [dbo].[diary] DIA INNER JOIN [dbo].[Handlers] RES ON RES.[CODE] = @AssignTo WHERE DIA.[ACTIONID] = @ActionID END END TRY BEGIN CATCH SET @RESULT = -1 END CATCH IF (@@ERROR <> 0) BEGIN SET @RESULT = -1 END END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_BGListGroupedEntries] Script Date: 10/01/2014 16:18:58 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGListGroupedEntries]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' create function [dbo].[ky_BGListGroupedEntries] (@ControlID int) RETURNS TABLE AS RETURN SELECT CASE WHEN (SUMM.[IncludeInBill] = 2) THEN ''Exclude'' WHEN SUMM.[BillNow] = 0 THEN ''Don''''t Bill'' WHEN SUMM.[AnyIncompleteItems] = 1 THEN ''Bill Partially'' ELSE ''Bill in Full'' END AS [IncludeInBill], SUMM.[Type], SUMM.[MATTER], SUMM.[FEEEARN], SUMM.[OUTLAYCODE], CASE WHEN SUMM.[OUTLAYCODE] = ''(multiple)'' THEN ''(multiple)'' WHEN SUMM.[OUTLAYCODE] = '''' THEN '''' ELSE ISNULL(OLC.[Description], '''') END AS [OUTLAYDESCRIPTION], CASE WHEN SUMM.[FEEEARN] = ''(multiple)'' THEN ''(multiple)'' WHEN SUMM.[FEEEARN] = '''' THEN '''' ELSE ISNULL(HAN.[NAME], '''') END AS [HANDLERNAME], CASE WHEN SUMM.[FEEEARN] = ''(multiple)'' THEN ''(multiple)'' WHEN SUMM.[FEEEARN] = '''' THEN '''' ELSE ISNULL(TEA.[NAME], '''') END AS [TEAMNAME], SUMM.[DATE], BGG2.[Narrative] AS [COMMENT], SUMM.[InvoiceNo], SUMM.[CHARGE], SUMM.[ORIGINALCHARGE], SUMM.[BilledAmount], SUMM.[LeftToBill], SUMM.[BillNow], BGG2.[SeqNo] AS [GroupNumber], SUMM.[NumberOfDetailItems], CASE WHEN SUMM.[NumberOfDetailItems] = 1 THEN 0 ELSE 1 END AS [Grouped], CONVERT(VARCHAR(38), BGG2.[ID]) AS [GroupID] FROM ( SELECT BGG.[ID], CASE WHEN COUNT(DISTINCT BGD.[Type]) = 1 THEN ISNULL(MAX(BGD.[Type]), '''') ELSE ''(multiple)'' END AS [Type], CASE WHEN COUNT(DISTINCT BGD.[MATTER]) = 1 THEN ISNULL(MAX(BGD.[MATTER]), '''') ELSE ''(multiple)'' END AS [MATTER], CASE WHEN COUNT(DISTINCT BGD.[FEEEARN]) = 1 THEN ISNULL(MAX(BGD.[FEEEARN]), '''') ELSE ''(multiple)'' END AS [FEEEARN], CASE WHEN COUNT(DISTINCT ISNULL(BGD.[OUTLAYCODE], '''')) = 1 THEN ISNULL(MAX(BGD.[OUTLAYCODE]), '''') ELSE ''(multiple)'' END AS [OUTLAYCODE], CASE WHEN COUNT(DISTINCT ISNULL(convert(VARCHAR, BGD.[DATE], 106), '''')) = 1 THEN ISNULL(MAX(convert(VARCHAR, BGD.[DATE], 106)), '''') ELSE ''(multiple)'' END AS [DATE], CASE WHEN COUNT(DISTINCT ISNULL(BGD.[InvoiceNo], 0)) = 1 THEN ISNULL(MAX(BGD.[InvoiceNo]), 0) ELSE 0 END AS [InvoiceNo], SUM(ISNULL(BGD.[CHARGE], 0)) AS [CHARGE], SUM(CASE WHEN BGD.[Type] = ''F'' THEN IsNull(TIE.[CHARGE], 0) ELSE convert(decimal(19,2), IsNull(MAL.[VALUEO], 0)) END) AS [ORIGINALCHARGE], SUM(ISNULL(BGD.[BilledAmount], 0)) AS [BilledAmount], SUM(ISNULL(BGD.[BillNow], 0)) AS [BillNow], SUM(ISNULL(BGD.[CHARGE], 0)) - SUM(ISNULL(BGD.[BilledAmount], 0)) AS [LeftToBill], MAX(CASE WHEN ISNULL(BGD.[CHARGE], 0) = ISNULL(BGD.[BilledAmount], 0) + ISNULL(BGD.[BillNow], 0) THEN 0 ELSE 1 END) AS AnyIncompleteItems, CASE WHEN ISNULL(MIN(BGD.IncludeInBill), 1) <> 2 THEN 1 ELSE 2 END AS [IncludeInBill], COUNT(1) AS [NumberOfDetailItems] FROM [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD LEFT OUTER JOIN [dbo].[TimeEntry] TIE ON BGD.[Type] = ''F'' AND TIE.[RECORDID] = BGD.[OriginalID] LEFT OUTER JOIN [dbo].[MatterLedger] MAL ON BGD.[Type] = ''O'' AND MAL.[LREF] = BGD.[OriginalID] ON BGD.[BGGroupID] = BGG.[ID] ON BGG.[BGControlID] = BGC.[ID] WHERE BGC.[ID] = @ControlID GROUP BY BGG.[BGControlID], BGG.[SeqNo], BGG.[ID]) SUMM INNER JOIN [dbo].[BGGroups] BGG2 ON BGG2.[ID] = SUMM.[ID] LEFT OUTER JOIN [dbo].[OutlayCode] OLC ON OLC.[CODE] = SUMM.[OUTLAYCODE] LEFT OUTER JOIN [dbo].[HANDLERS] HAN LEFT OUTER JOIN [dbo].[HANDLERS] TEA ON TEA.[CODE] = HAN.[TEAM] ON HAN.[CODE] = SUMM.[FEEEARN] ' END GO /****** Object: UserDefinedFunction [dbo].[ky_BGListGroupDrillEntries] Script Date: 10/01/2014 16:18:58 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGListGroupDrillEntries]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' create function [dbo].[ky_BGListGroupDrillEntries] (@GroupIDText VARCHAR(38)) RETURNS TABLE AS RETURN SELECT CASE WHEN BGD.[IncludeInBill] = 2 THEN ''Exclude'' WHEN BGD.[BillNow] = 0 THEN ''Don''''t Bill'' WHEN ISNULL(BGD.[BillNow], 0) <> (ISNULL(BGD.[CHARGE], 0) - ISNULL(BGD.[BilledAmount], 0)) THEN ''Bill Partially'' ELSE ''Bill in Full'' END AS [IncludeInBill], RTRIM(ISNULL(BGD.[Type], '''')) AS [Type], RTRIM(ISNULL(BGD.[MATTER], '''')) AS [MATTER], RTRIM(ISNULL(BGD.[FEEEARN], '''')) AS [FEEEARN], RTRIM(ISNULL(BGD.[OUTLAYCODE], '''')) AS [OUTLAYCODE], RTRIM(ISNULL(OLC.[Description], '''')) AS [OUTLAYDESCRIPTION], RTRIM(ISNULL(HAN.[NAME], '''')) AS [HANDLERNAME], RTRIM(ISNULL(TEA.[NAME], '''')) AS [TEAMNAME], ISNULL(convert(VARCHAR, BGD.[DATE], 106), '''') AS [DATE], RTRIM(ISNULL(BGD.[Narrative], '''')) AS [COMMENT], BGD.[InvoiceNo], BGD.[CHARGE], CASE WHEN BGD.[Type] = ''F'' THEN IsNull(TIE.[CHARGE], 0) ELSE convert(decimal(19,2), IsNull(MAL.[VALUEO], 0)) END AS [ORIGINALCHARGE], BGD.[BilledAmount], BGD.[CHARGE] - BGD.[BilledAmount] AS [LeftToBill], BGD.[BillNow], BGD.[SeqNo], convert(VARCHAR(38), BGD.[ID]) AS [ItemID], BGD.[OriginalID] FROM [dbo].[BGDetail] BGD LEFT OUTER JOIN [dbo].[OutlayCode] OLC ON OLC.[CODE] = BGD.[OUTLAYCODE] LEFT OUTER JOIN [dbo].[HANDLERS] HAN LEFT OUTER JOIN [dbo].[HANDLERS] TEA ON TEA.[CODE] = HAN.[TEAM] ON HAN.[CODE] = BGD.[FEEEARN] LEFT OUTER JOIN [dbo].[TimeEntry] TIE ON BGD.[Type] = ''F'' AND TIE.[RECORDID] = BGD.[OriginalID] LEFT OUTER JOIN [dbo].[MatterLedger] MAL ON BGD.[Type] = ''O'' AND MAL.[LREF] = BGD.[OriginalID] WHERE BGD.[BGGroupID] = Convert(uniqueidentifier, @GroupIDText) ' END GO /****** Object: View [dbo].[Solicitors] Script Date: 10/01/2014 16:20:06 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[Solicitors]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[Solicitors] AS SELECT CODE, TEAM, TEAMCODE, Type, NAME, RATE, BUDGET1, BUDGET2, BUDGET3, BUDGET4, BUDGET5, BUDGET6, BUDGET7, BUDGET8, BUDGET9, BUDGET10, BUDGET11, BUDGET12, ACTUAL1, ACTUAL2, ACTUAL3, ACTUAL4, ACTUAL5, ACTUAL6, ACTUAL7, ACTUAL8, ACTUAL9, ACTUAL10, ACTUAL11, ACTUAL12, TEMPCALC, LOGON, MAILADDRESS, TIMECOSTER, TEAMLEADER, NORECENTMATTERS, DEFAULTTASK, EXCHANGEALIAS, RATE1, RATE2, RATE3, RATE4, RATE5, SIGNATURE, EMAIL, RETIRED, DELEGATE FROM dbo.Handlers WHERE (Type = ''L'') ' GO /****** Object: View [dbo].[Partners] Script Date: 10/01/2014 16:20:04 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[Partners]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[Partners] AS SELECT CODE, TEAM, TEAMCODE, Type, NAME, RATE, BUDGET1, BUDGET2, BUDGET3, BUDGET4, BUDGET5, BUDGET6, BUDGET7, BUDGET8, BUDGET9, BUDGET10, BUDGET11, BUDGET12, ACTUAL1, ACTUAL2, ACTUAL3, ACTUAL4, ACTUAL5, ACTUAL6, ACTUAL7, ACTUAL8, ACTUAL9, ACTUAL10, ACTUAL11, ACTUAL12, TEMPCALC, LOGON, MAILADDRESS, TIMECOSTER, TEAMLEADER, NORECENTMATTERS, DEFAULTTASK, EXCHANGEALIAS, RATE1, RATE2, RATE3, RATE4, RATE5, SIGNATURE, EMAIL, RETIRED, DELEGATE FROM dbo.Handlers WHERE (Type = ''P'') ' GO /****** Object: StoredProcedure [dbo].[ky_UpdateRecentMatterList] Script Date: 10/01/2014 16:17:41 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_UpdateRecentMatterList]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_UpdateRecentMatterList * * This included in Build 78 * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_UpdateRecentMatterList] (@FEE varchar(5), @Matter varchar(17)) AS BEGIN DECLARE @LastDate datetime DECLARE @Now datetime DECLARE @RMLCount int DECLARE @RMLMax int SET @Now = getDate() select @RMLMax = HAN.[NORECENTMATTERS] from [dbo].[Handlers] HAN WHERE HAN.[code] = @FEE SET @RMLMax = IsNull(@RMLMax, 30) IF (@RMLMax = 0) SET @RMLMax = 30 select TOP 1 @LastDate = [DateField] from [dbo].[RecentMatterList] RML where RML.[FEE] = @FEE and RML.[DateField] IS NOT NULL ORDER BY [DateField] ASC UPDATE RML SET @LastDate = DateAdd(s, -1, @LastDate), RML.[DateField] = @LastDate FROM [dbo].[RecentMatterList] RML WHERE RML.[FEE] = @FEE AND RML.[DateField] IS NULL DELETE RML FROM [dbo].[RecentMatterList] RML WHERE RML.[FEE] = @FEE AND RML.[MATTER] = @MATTER INSERT INTO [dbo].[RecentMatterList] ([FEE], [MATTER], [DateField]) VALUES(@FEE, @MATTER, @NOW) SELECT @RMLCount = count(1) FROM [dbo].[RecentMatterList] RML WHERE RML.[FEE] = @FEE WHILE @RMLCount > @RMLMax BEGIN select TOP 1 @LastDate = [DateField] from [dbo].[RecentMatterList] RML where RML.[FEE] = @FEE and RML.[DateField] IS NOT NULL ORDER BY [DateField] ASC DELETE RML FROM [dbo].[RecentMatterList] RML WHERE RML.[FEE] = @FEE AND RML.[DateField] = @LastDate SELECT @RMLCount = count(1) FROM [dbo].[RecentMatterList] RML WHERE RML.[FEE] = @FEE END END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDTimeEntryByRecordID] Script Date: 10/01/2014 16:19:49 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTimeEntryByRecordID]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[ky_WDTimeEntryByRecordID] (@RecordID int) RETURNS @WDT TABLE ([MATTER] varchar(20), [FEEEARN] varchar(10), [FEEEARNNAME] varchar(100), [DATE] datetime, [TIME] int, [UNITS] decimal(11, 2), [Comment] varchar(1000), [TimeOrCharge] varchar(1), [Rate] decimal(10, 2), [ChargeValue] decimal(10, 2), [Task] varchar(10), [REC_IRR] varchar(1), [InvoiceNo] varchar(10), [RecordID] int, [WriteOffDate] varchar(20), [WriteOffID] int) AS BEGIN INSERT INTO @WDT ([MATTER], [FEEEARN], [FEEEARNNAME], [DATE], [TIME], [UNITS], [Comment], [TimeOrCharge], [Rate], [ChargeValue], [Task], [REC_IRR], [InvoiceNo], [RecordID], [WriteOffDate], [WriteOffID]) SELECT RTRIM(IsNull(TEN.[MATTER], '''')) AS [MATTER], RTRIM(IsNull(TEN.[FEEEARN], '''')) AS [FEEEARN], RTRIM(IsNull(HAN.[NAME], '''')) AS [FEEEARNNAME], TEN.[DATE], TEN.[TIME], TEN.[TIME], RTRIM(IsNull(TEN.[COMMENT], '''')) AS [COMMENT], RTRIM(IsNull(TEN.[TIMEORCHARGE], '''')) AS [TIMEORCHARGE], RTRIM(IsNull(TEN.[Rate], 0)) AS [Rate], IsNull(TEN.[CHARGE], 0) AS [CHARGEVALUE], RTRIM(IsNull(TEN.[TASK], '''')) AS [TASK], RTRIM(IsNull(TEN.[REC_IRR], '''')) AS [REC_IRR], CASE WHEN TEN.[WriteOffDT] IS NOT NULL THEN ''w/o'' WHEN IsNull(TEN.[INVOICENO], 0) = 0 THEN ''unbilled'' ELSE Convert(varchar(10), TEN.[INVOICENO]) END AS [InvoiceNo], IsNull(TEN.[RECORDID], 0) AS [RecordID], IsNull(CONVERT(varchar(20), TEN.[WriteOffDT], 106), '''') AS [WriteOffDate], IsNull(TEN.[WriteOffID], 0) AS [WriteOffID] FROM [dbo].[TimeEntry] TEN LEFT OUTER JOIN [dbo].[Handlers] HAN ON HAN.[CODE] = TEN.[FEEEARN] WHERE TEN.[RECORDID] = @RECORDID RETURN END' END GO /****** Object: StoredProcedure [dbo].[spGetHandlersLookupList] Script Date: 10/01/2014 16:18:49 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spGetHandlersLookupList]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[spGetHandlersLookupList] AS 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], CASE WHEN RTRIM(ISNULL(HAN.[RETIRED], ''N'')) = ''Y'' THEN ''Y'' ELSE ''N'' END AS [RETIRED] FROM [dbo].[Handlers] HAN WHERE RTRIM(ISNULL(HAN.[RETIRED], ''N'')) <> ''Y'' ORDER BY RTRIM(ISNULL(HAN.[NAME], '''')) END ' END GO /****** Object: View [dbo].[SupportStaff] Script Date: 10/01/2014 16:20:06 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[SupportStaff]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[SupportStaff] AS SELECT CODE, TEAM, TEAMCODE, Type, NAME, RATE, BUDGET1, BUDGET2, BUDGET3, BUDGET4, BUDGET5, BUDGET6, BUDGET7, BUDGET8, BUDGET9, BUDGET10, BUDGET11, BUDGET12, ACTUAL1, ACTUAL2, ACTUAL3, ACTUAL4, ACTUAL5, ACTUAL6, ACTUAL7, ACTUAL8, ACTUAL9, ACTUAL10, ACTUAL11, ACTUAL12, TEMPCALC, LOGON, MAILADDRESS, TIMECOSTER, TEAMLEADER, NORECENTMATTERS, DEFAULTTASK, EXCHANGEALIAS, RATE1, RATE2, RATE3, RATE4, RATE5, SIGNATURE, EMAIL, RETIRED, DELEGATE FROM dbo.Handlers WHERE (Type = ''S'') ' GO /****** Object: UserDefinedFunction [dbo].[ky_HeuristicMultiPhoneNo] Script Date: 10/01/2014 16:19:03 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_HeuristicMultiPhoneNo]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' CREATE FUNCTION [dbo].[ky_HeuristicMultiPhoneNo] (@Address VARCHAR(500), @PhoneNo VARCHAR(50)) RETURNS VARCHAR(100) AS /***************************************************************************** ky_HeuristicMultiPhoneNo Tries to make sense of free-form Phone Numbers entered into the system. *****************************************************************************/ BEGIN DECLARE @Phone2 VARCHAR(50) DECLARE @Work VARCHAR(MAX) SET @PhoneNo = Replace(@PhoneNo, '' /'', ''/'') SET @PhoneNo = Replace(@PhoneNo, ''/ '', ''/'') SET @PhoneNo = Replace(@PhoneNo, '' or '', ''/'') SET @Work = '''' WHILE (CHARINDEX(''/'', @PhoneNo) > 0) BEGIN SET @Phone2 = SUBSTRING(@PhoneNo, 1, CHARINDEX(''/'', @PhoneNo) - 1) IF (@Work <> '''') BEGIN SET @Work = @Work + '' / '' END SET @Work = @Work + [dbo].[ky_HeuristicPhoneNumber](@Address, @Phone2) SET @PhoneNo = SUBSTRING(@PhoneNo, CHARINDEX(''/'', @PhoneNo) + 1, LEN(@PhoneNo) - CHARINDEX(''/'', @PhoneNo)) END IF (@Work <> '''') BEGIN SET @Work = @Work + '' / '' END SET @Work = @Work + [dbo].[ky_HeuristicPhoneNumber](@Address, @PhoneNo) RETURN @Work END ' END GO /****** Object: StoredProcedure [dbo].[KHCCaseAccessed] Script Date: 10/01/2014 16:16:56 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[KHCCaseAccessed]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * Case Access - updates the user''s Recent Cases list and logs access to the case in * KHCUserLog * **************************************************************************************/ CREATE PROCEDURE [dbo].[KHCCaseAccessed] (@UserID int, @MatterCode varchar(20), @RMCount int) AS BEGIN DECLARE @AccessDate datetime SET @AccessDate = GETDATE() DECLARE @Top TABLE ([MatterCode] varchar(20)) INSERT INTO @Top ([MatterCode]) SELECT TOP (@RMCount - 1) RM.[KHCMatterCode] FROM [dbo].[KHCUserRecentMatters] RM WHERE RM.[KHCUserId] = @Userid AND RM.[KHCMatterCode] <> @MatterCode ORDER BY RM.[Accessed] DESC DELETE RM FROM [dbo].[KHCUserRecentMatters] RM LEFT OUTER JOIN @Top T ON T.[MatterCode] = RM.[KHCMatterCode] WHERE RM.[KHCUserId] = @UserID AND T.[MatterCode] IS NULL INSERT INTO [dbo].[KHCUserRecentMatters] ([KHCUserId], [KHCMatterCode], [Accessed]) VALUES(@UserID, @MatterCode, @AccessDate) INSERT INTO [dbo].[KHCUserLog] ([Date], [KHCUserID], [Log], [MatterCode]) VALUES(@AccessDate, @UserID, ''Case Access'', @MatterCode) END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDBriefSectionList] Script Date: 10/01/2014 16:19:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDBriefSectionList]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************************************* * * ky_WDBriefSectionList - creates the top level "treeview" for the Brief * *************************************************************************************************************/ Create Function [dbo].[ky_WDBriefSectionList] (@CurrBrief int) RETURNS @SECTIONS TABLE ([BriefID] int, [BriefName] varchar(200), [BriefSectionID] int, [BriefSectionName] varchar(100), [BriefSectionSequence] int, [BriefSectionCoverPage] int) AS BEGIN INSERT INTO @SECTIONS ([BriefID], [BriefName], [BriefSectionID], [BriefSectionName], [BriefSectionSequence], [BriefSectionCoverPage]) SELECT BRI.[ID] AS [BriefID], BRI.[Title] AS [BriefName], BRS.[ID] AS [BriefSectionID], RTRIM(ISNULL(BRS.[Section], '''')) AS [BriefSectionName], BRS.[Sequence] AS [BriefSectionSequence], convert(int, BRS.[CoverPage]) AS [BriefSectionCoverPage] FROM [dbo].[Brief] BRI INNER JOIN [dbo].[BriefSections] BRS ON BRS.[BriefID] = BRI.[ID] WHERE BRI.[ID] = @CurrBrief INSERT INTO @SECTIONS ([BriefID], [BriefName], [BriefSectionID], [BriefSectionName], [BriefSectionSequence], [BriefSectionCoverPage]) SELECT BRI.[ID] AS [BriefID], BRI.[Title] AS [BriefName], 0 AS [BriefSectionID], ''Not included in this Brief'' AS [BriefSectionName], 999999 AS [BriefSectionSequence], 2 AS [BriefSectionCoverPage] FROM [dbo].[Brief] BRI WHERE BRI.[ID] = @CurrBrief RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_briefsectionadd] Script Date: 10/01/2014 16:17:04 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_briefsectionadd]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_briefsectionadd] (@BriefID int, @Section varchar(100), @CoverPage bit) AS Declare @DocClass varchar(40) Declare @SectionID int Declare @SortOrder int SET @Section = RTrim(LTrim(@Section)) If @Section = '''' BEGIN SET @Section = NULL END select @SortOrder = max(sequence) from [dbo].[BriefSections] where [BriefID] = @BriefID Set @SortOrder = IsNull(@SortOrder, 0) + 1 INSERT INTO [dbo].[BriefSections] ([BriefID], [Sequence], [CoverPage], [Section]) Select BR.[ID] As [BriefID], @SortOrder AS [Sequence], IsNull(@CoverPage, 0) As [CoverPage], IsNull(@Section, ''Section '' + convert(varchar, @SortOrder)) As [Section] from [dbo].[Brief] BR LEFT OUTER JOIN [dbo].[BriefSections] BS ON BS.[BriefID] = BR.[ID] AND BS.[Section] = IsNull(@Section, ''Section '' + convert(varchar, @SortOrder)) where BR.[ID] = @BriefID and BS.[ID] IS NULL --Avoid duplication update BS set BS.[khsorter] = convert(varchar, 1 - BS.[CoverPage]) + right(convert(varchar, 10000 + BS.[Sequence]), 4) + right(convert(varchar, 10000000 + BS.[ID]), 7) from [dbo].[BriefSections] BS WHERE [ID] = SCOPE_IDENTITY() ' END GO /****** Object: View [dbo].[CaseDocsBriefsView] Script Date: 10/01/2014 16:19:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[CaseDocsBriefsView]')) EXEC dbo.sp_executesql @statement = N'/********************************************************************** * * Recreate Views * **********************************************************************/ Create View [dbo].[CaseDocsBriefsView] AS select DA.[CaseCode] As MatterCode, DA.[TrackReference], BR.[ID] AS BriefID, case when bd.[recordid] is null then 0 else 1 end as DocInBrief, DA.[Type], DA.[DateEntered], DA.[Document], DA.[Source], DA.[LastAccessDate], DA.[EnteredBy], DA.[LastAccessBy], DA.[Name], DA.[FilePath], DA.[DiaryID], DA.[DocClass] from [dbo].[DiaryAttachments] DA INNER JOIN [dbo].[Brief] BR ON BR.[MatterCode] = DA.[CaseCode] INNER JOIN [dbo].[BriefDocuments] BD ON BD.[BriefID] = BR.[ID] AND BD.[TrackReference] = DA.[TrackReference] ' GO /****** Object: View [dbo].[BriefContent] Script Date: 10/01/2014 16:19:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[BriefContent]')) EXEC dbo.sp_executesql @statement = N'Create View [dbo].[BriefContent] with SchemaBinding As select BR.ID As BriefID, Convert(varchar, 1 - BS.CoverPage) + Substring(Convert(varchar, 10000 + BS.Sequence), 2, 4) + Substring(Convert(varchar, 10000 + BD.SortOrder), 2, 4) + Substring(Convert(varchar, 10000000 + BD.recordid), 2, 7) As KHSorter, BR.MatterCode, BR.Title, BR.Author, BR.Location, BS.CoverPage, BS.Sequence, BS.Section, BD.DocumentName, BD.TrackReference, BD.FileLocation, BD.FileDate, BS.ID, BD.SortOrder, BD.RecordId, BD.DocumentType, ( SELECT MAX(BDLAST.sortorder) FROM dbo.BriefDocuments BDLAST WHERE BDLAST.BriefID = BD.BriefID AND BDLAST.SectionID = BD.SectionID) As LastSO, CASE WHEN BS.CoverPage = 1 THEN '''' ELSE Char(65 + BS.Sequence - (SELECT MIN(BSW.[SEQUENCE]) FROM [dbo].[BriefSections] BSW WHERE BSW.[BriefID] = BR.[ID] AND BSW.CoverPage = 0)) END AS SectionLetter from dbo.brief BR INNER JOIN dbo.BriefSections BS ON BS.BriefID = BR.ID INNER JOIN dbo.BriefDocuments BD ON BD.BriefID = BR.ID AND BD.SectionID = BS.ID ' GO /****** Object: StoredProcedure [dbo].[ky_FinaliseBrief] Script Date: 10/01/2014 16:17:13 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_FinaliseBrief]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_FinaliseBrief] (@ID int, @Finalise int) AS IF (@Finalise = 1) BEGIN UPDATE [dbo].[brief] SET [Finalised] = 1 WHERE [ID] = @ID END ELSE BEGIN UPDATE [dbo].[brief] SET [Finalised] = 0 WHERE [ID] = @ID END ' END GO /****** Object: StoredProcedure [dbo].[ky_DeleteBrief] Script Date: 10/01/2014 16:17:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_DeleteBrief]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_DeleteBrief] (@BriefID int) AS DELETE FROM [dbo].[briefdocuments] WHERE [BriefID] = @BriefID DELETE FROM [dbo].[briefsections] WHERE [BriefID] = @BriefID DELETE FROM [dbo].[brief] WHERE [ID] = @BriefID ' END GO /****** Object: StoredProcedure [dbo].[ky_ReorderBriefSections] Script Date: 10/01/2014 16:17:32 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_ReorderBriefSections]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_ReorderBriefSections] (@BriefID Integer) AS /************************************************************** * * * ky_ReorderBriefSections * * * * Rearranges the sections in a brief so they * * get consecutive sequence numbers starting with 1 * * * * Parameters: BriefID, for which brief to re-order sections * * * **************************************************************/ DECLARE @counter integer DECLARE @CurRecID Integer DECLARE @MaxSeq integer SELECT @MaxSeq = max(sequence) FROM [dbo].[BriefSections] Where [BriefID] = @BriefID /* To avoid unique key constraint problems, we get the maximum sequence number (M) used in this brief, and we start by re-numbering them M+1, M+2, M+3, etc... At the end we subtract M from all sequence numbers, reverting them back to 1, 2, 3, 4 again */ Set @MaxSeq = IsNull(@MaxSeq, 0) DECLARE CURREORDER CURSOR FOR SELECT BS.[id] FROM [dbo].[BriefSections] BS WHERE BS.[BriefID] = @BriefID ORDER BY BS.[CoverPage] Desc, BS.[Sequence] Asc, BS.[id] Asc OPEN CURREORDER /* To avoid unique key constraint problems, we get the maximum sequence number (M) used in this brief, and we start by re-numbering them M+1, M+2, M+3, etc... At the end we subtract M from all sequence numbers, reverting them back to 1, 2, 3, 4 again */ SET @Counter = @MaxSeq FETCH NEXT FROM CURREORDER INTO @CurRecID WHILE @@FETCH_STATUS = 0 BEGIN SET @Counter = @Counter + 1 UPDATE BS SET BS.[sequence] = @Counter FROM [dbo].[BriefSections] BS WHERE BS.[id] = @CurRecID FETCH NEXT FROM CURREORDER INTO @CurRecID END CLOSE CURREORDER DEALLOCATE CURREORDER /* To avoid unique key constraint problems, we get the maximum sequence number (M) used in this brief, and we start by re-numbering them M+1, M+2, M+3, etc... At the end we subtract M from all sequence numbers, reverting them back to 1, 2, 3, 4 again */ UPDATE BS SET BS.[Sequence] = BS.[Sequence] - @MaxSeq, BS.[khsorter] = convert(varchar, 1 - BS.[coverpage]) + right(convert(varchar, 10000 + BS.[Sequence] - @MaxSeq), 4) + right(convert(varchar, 10000000 + BS.[ID]), 7) FROM [dbo].[BriefSections] BS WHERE BS.[BriefID] = @BriefID ' END GO /****** Object: StoredProcedure [dbo].[ky_WDRemoveBriefDocuments] Script Date: 10/01/2014 16:18:13 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDRemoveBriefDocuments]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************************************* * * ky_WDRemoveBriefDocuments - Removes documents from a brief section. * *************************************************************************************************************/ create procedure [dbo].[ky_WDRemoveBriefDocuments] (@FromSection int, @doclist varchar(max)) AS BEGIN DECLARE @idoc int DECLARE @continue int DECLARE @SO TABLE ([SO] int identity(1, 1), [recordid] int) DECLARE @OSO TABLE ([SO] int identity(1, 1), [recordid] int) BEGIN TRANSACTION SET @continue = 0 BEGIN TRY BEGIN EXEC sp_xml_preparedocument @idoc OUTPUT, @doclist IF (@continue = 0) BEGIN DELETE BRD from OPENXML(@idoc, ''docs/doc'', 2) WITH([recordid] int ''.'') DCS INNER JOIN [dbo].[BriefDocuments] BRD ON BRD.[recordId] = DCS.[recordid] AND BRD.[SectionID] = @FromSection INNER JOIN [dbo].[BriefSections] BRS ON BRS.[ID] = BRD.[SectionID] END IF (@@ERROR <> 0) SET @continue = 1 IF (@continue = 0) BEGIN INSERT INTO @OSO ([recordid]) SELECT BRD.[recordId] FROM [dbo].[BriefDocuments] BRD WHERE BRD.[SectionID] = @FromSection ORDER BY BRD.[SortOrder] END IF (@@ERROR <> 0) SET @continue = 1 IF (@continue = 0) BEGIN UPDATE BRD SET BRD.[SortOrder] = SO.[SO] FROM @OSO SO INNER JOIN [dbo].[BriefDocuments] BRD ON BRD.[recordId] = SO.[recordid] END EXEC sp_xml_removedocument @idoc END END TRY BEGIN CATCH BEGIN set @continue = 1 END END CATCH IF (@continue = 0) BEGIN COMMIT END ELSE BEGIN ROLLBACK END END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDMoveBriefDocuments] Script Date: 10/01/2014 16:18:08 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDMoveBriefDocuments]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************************************* * * ky_WDMoveBriefDocuments - Move documents from one Brief section to the other * *************************************************************************************************************/ create procedure [dbo].[ky_WDMoveBriefDocuments] (@FromSection int, @ToSection int, @doclist varchar(max)) AS BEGIN DECLARE @idoc int DECLARE @continue int DECLARE @SO TABLE ([SO] int identity(1, 1), [recordid] int) DECLARE @OSO TABLE ([SO] int identity(1, 1), [recordid] int) BEGIN TRANSACTION SET @continue = 0 BEGIN TRY BEGIN EXEC sp_xml_preparedocument @idoc OUTPUT, @doclist INSERT INTO @SO ([recordid]) SELECT BRD.[recordid] FROM [dbo].[BriefDocuments] BRD WHERE BRD.[SectionID] = @ToSection ORDER BY BRD.[SortOrder] IF (@@ERROR <> 0) SET @continue = 1 IF (@continue = 0) BEGIN INSERT INTO @SO ([recordid]) SELECT BRD.[recordid] from OPENXML(@idoc, ''docs/doc'', 2) WITH([recordid] int ''.'') DCS INNER JOIN [dbo].[BriefDocuments] BRD ON BRD.[recordId] = DCS.[recordid] AND BRD.[SectionID] = @FromSection INNER JOIN [dbo].[BriefSections] BRS ON BRS.[ID] = BRD.[SectionID] INNER JOIN [dbo].[BriefSections] SSS ON SSS.[BriefID] = BRS.[BriefID] AND SSS.[ID] = @ToSection END IF (@@ERROR <> 0) SET @continue = 1 IF (@continue = 0) BEGIN UPDATE BRD SET BRD.[SortOrder] = SO.[SO], BRD.[SectionID] = @ToSection FROM @SO SO INNER JOIN [dbo].[BriefDocuments] BRD ON BRD.[recordId] = SO.[recordid] END IF (@@ERROR <> 0) SET @continue = 1 IF (@continue = 0) BEGIN INSERT INTO @OSO ([recordid]) SELECT BRD.[recordId] FROM [dbo].[BriefDocuments] BRD WHERE BRD.[SectionID] = @FromSection ORDER BY BRD.[SortOrder] END IF (@@ERROR <> 0) SET @continue = 1 IF (@continue = 0) BEGIN UPDATE BRD SET BRD.[SortOrder] = SO.[SO] FROM @OSO SO INNER JOIN [dbo].[BriefDocuments] BRD ON BRD.[recordId] = SO.[recordid] END EXEC sp_xml_removedocument @idoc END END TRY BEGIN CATCH BEGIN set @continue = 1 END END CATCH IF (@continue = 0) BEGIN COMMIT END ELSE BEGIN ROLLBACK END END ' END GO /****** Object: StoredProcedure [dbo].[ky_ReorderAllBriefDocuments] Script Date: 10/01/2014 16:17:29 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_ReorderAllBriefDocuments]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_ReorderAllBriefDocuments] (@BriefID int) AS BEGIN DECLARE @recordID INT DECLARE @sectionID INT DECLARE @LastSectionID INT DECLARE @sortOrder INT DECLARE DOCLISTCSR CURSOR FOR select BD.recordID, BD.sectionID from [dbo].[BriefSections] BS inner join [dbo].[BriefDocuments] BD on BD.[BriefId] = BS.[BriefId] and BD.[SectionID] = BS.[Id] where BS.[BriefId] = @BriefID order by 1 - BS.CoverPage, BS.Sequence, BD.FileDate SET @LastSectionID = 0 OPEN DOCLISTCSR FETCH NEXT FROM DOCLISTCSR INTO @recordID, @sectionID WHILE @@FETCH_STATUS = 0 BEGIN IF @LastSectionID <> @sectionID BEGIN SET @LastSectionID = @sectionID SET @sortOrder = 0 END set @sortOrder = @sortOrder + 1 EXEC(''update [dbo].[BriefDocuments] set SortOrder = '' + @SortOrder + '' where recordID = '' + @recordID) FETCH NEXT FROM DOCLISTCSR INTO @recordID, @sectionID END CLOSE DOCLISTCSR DEALLOCATE DOCLISTCSR END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDBriefReorderAllDocs] Script Date: 10/01/2014 16:19:11 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDBriefReorderAllDocs]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' create function [dbo].[ky_WDBriefReorderAllDocs] (@BriefID int) RETURNS @TableInOrder TABLE (recordid int, sectionid int, sortorder int, newsortorder int) AS /******************************************************************************* WinDEV function to assist in re-ordering documents in a brief in Date order. *******************************************************************************/ BEGIN DECLARE @newsortorder int DECLARE @lastsectionid int SET @newsortorder = 0 INSERT INTO @TableInOrder select BRD.[recordid], BRS.[ID] as [sectionid], BRD.[sortorder] int, 0 from [dbo].[BriefSections] BRS INNER JOIN [dbo].[BriefDocuments] BRD ON BRD.[SectionID] = BRS.[ID] WHERE BRS.[BriefID] = @BriefID ORDER BY BRS.[ID], BRD.[Filedate], BRD.[TrackReference] UPDATE BRD SET @newsortorder = CASE WHEN BRD.[sectionid] = @lastsectionid THEN @newsortorder + 1 ELSE 1 END, @lastsectionid = BRD.[sectionid], BRD.[newsortorder] = @newsortorder FROM @TableInOrder BRD RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_ReorderBriefDocSection2] Script Date: 10/01/2014 16:17:31 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_ReorderBriefDocSection2]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_ReorderBriefDocSection2] (@SectionID Integer) AS /************************************************************** * * * ky_ReorderBriefDocSection2 * * * * Rearranges the documents in a brief section so they * * get consecutive sort order numbers starting with 1 * * * * Parameters: SectionID, reorder docs in this section * * * **************************************************************/ DECLARE @counter integer DECLARE @CurRecID Integer DECLARE @CurSO Integer DECLARE CURREORDER CURSOR FOR SELECT BD2.recordid, BD2.sortorder FROM BriefSections BS INNER JOIN BriefDocuments BD2 ON BD2.BriefID = BS.BriefID AND BD2.SectionID = BS.[ID] WHERE BS.[ID] = @SectionID ORDER BY BD2.sortorder, BD2.recordid OPEN CURREORDER SET @Counter = 0 FETCH NEXT FROM CURREORDER INTO @CurRecID, @CurSO WHILE @@FETCH_STATUS = 0 BEGIN SET @Counter = @Counter + 1 UPDATE BriefDocuments SET sortorder = @Counter WHERE recordid = @CurRecID FETCH NEXT FROM CURREORDER INTO @CurRecID, @CurSO END CLOSE CURREORDER DEALLOCATE CURREORDER ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDBriefReorderSections] Script Date: 10/01/2014 16:19:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDBriefReorderSections]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' create function [dbo].[ky_WDBriefReorderSections] (@BriefID int) RETURNS @TableInOrder TABLE (sectionid int, coverpage int, newsortorder int, newkhsorter varchar(12)) AS /******************************************************************************* WinDEV function to assist in re-ordering a brief. *******************************************************************************/ BEGIN DECLARE @newsortorder int SET @newsortorder = 0 INSERT INTO @TableInOrder (sectionid, coverpage, newsortorder, newkhsorter) SELECT BRS.[ID], BRS.[coverpage], 0, '''' from [dbo].[BriefSections] BRS WHERE BRS.[BriefID] = @BriefID ORDER BY BRS.[coverpage] DESC, BRS.[sequence] ASC, BRS.[ID] ASC UPDATE BRD SET @newsortorder = @newsortorder + 1, BRD.[newsortorder] = @newsortorder, BRD.[newkhsorter] = convert(varchar(1), 1 - BRD.[coverpage]) + right(convert(varchar(5), 10000 + @newsortorder), 4) + right(convert(varchar(8), 10000000 + BRD.[sectionid]), 7) FROM @TableInOrder BRD RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDTimeEntry] Script Date: 10/01/2014 16:19:49 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTimeEntry]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'CREATE FUNCTION [dbo].[ky_WDTimeEntry] (@Matter varchar(20), @FromDateP varchar(8), @ToDateP varchar(8)) RETURNS @WDT TABLE ([MATTER] varchar(20), [FEEEARN] varchar(10), [DATE] datetime, [TIME] int, [UNITS] decimal(11, 2), [Comment] varchar(1000), [TimeOrCharge] varchar(1), [ChargeValue] decimal(10, 2), [Task] varchar(10), [REC_IRR] varchar(1), [InvoiceNo] varchar(10), [RecordID] int, [WriteOffDate] varchar(20), [WriteOffID] int) AS BEGIN DECLARE @FromDate datetime DECLARE @ToDate datetime SET @FromDate = @FromDateP SET @ToDate = @ToDateP INSERT INTO @WDT ([MATTER], [FEEEARN], [DATE], [TIME], [UNITS], [Comment], [TimeOrCharge], [ChargeValue], [Task], [REC_IRR], [InvoiceNo], [RecordID], [WriteOffDate], [WriteOffID]) SELECT RTRIM(IsNull(TEN.[MATTER], '''')) AS [MATTER], RTRIM(IsNull(TEN.[FEEEARN], '''')) AS [FEEEARN], TEN.[DATE], TEN.[TIME], TEN.[TIME], RTRIM(IsNull(TEN.[COMMENT], '''')) AS [COMMENT], RTRIM(IsNull(TEN.[TIMEORCHARGE], '''')) AS [TIMEORCHARGE], IsNull(TEN.[CHARGE], 0) AS [CHARGEVALUE], RTRIM(IsNull(TEN.[TASK], '''')) AS [TASK], RTRIM(IsNull(TEN.[REC_IRR], '''')) AS [REC_IRR], CASE WHEN TEN.[WriteOffDT] IS NOT NULL THEN ''w/o'' WHEN IsNull(TEN.[INVOICENO], 0) = 0 THEN ''unbilled'' ELSE Convert(varchar(10), TEN.[INVOICENO]) END AS [InvoiceNo], IsNull(TEN.[RECORDID], 0) AS [RecordID], IsNull(CONVERT(varchar(20), TEN.[WriteOffDT], 106), '''') AS [WriteOffDate], IsNull(TEN.[WriteOffID], 0) AS [WriteOffID] FROM [dbo].[TimeEntry] TEN WHERE TEN.[MATTER] = @MATTER AND TEN.[DATE] >= @FromDate AND TEN.[DATE] < DateAdd(dd, 1, @ToDate) RETURN END' END GO /****** Object: View [dbo].[FeesImportTimeEntry] Script Date: 10/01/2014 16:19:56 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FeesImportTimeEntry]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[FeesImportTimeEntry] AS SELECT dbo.TimeEntry.* FROM dbo.TimeEntry WHERE (AxleNumber = 1) AND (TRACKREF <> 0) AND (CHARGE <> 0) AND (RATE <> 0) AND (TIME = 1) ' GO IF NOT EXISTS (SELECT * FROM ::fn_listextendedproperty(N'MS_DiagramPane1' , N'SCHEMA',N'dbo', N'VIEW',N'FeesImportTimeEntry', NULL,NULL)) EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00] Begin DesignProperties = Begin PaneConfigurations = Begin PaneConfiguration = 0 NumPanes = 4 Configuration = "(H (1[40] 4[20] 2[20] 3) )" End Begin PaneConfiguration = 1 NumPanes = 3 Configuration = "(H (1 [50] 4 [25] 3))" End Begin PaneConfiguration = 2 NumPanes = 3 Configuration = "(H (1 [50] 2 [25] 3))" End Begin PaneConfiguration = 3 NumPanes = 3 Configuration = "(H (4 [30] 2 [40] 3))" End Begin PaneConfiguration = 4 NumPanes = 2 Configuration = "(H (1 [56] 3))" End Begin PaneConfiguration = 5 NumPanes = 2 Configuration = "(H (2 [66] 3))" End Begin PaneConfiguration = 6 NumPanes = 2 Configuration = "(H (4 [50] 3))" End Begin PaneConfiguration = 7 NumPanes = 1 Configuration = "(V (3))" End Begin PaneConfiguration = 8 NumPanes = 3 Configuration = "(H (1[56] 4[18] 2) )" End Begin PaneConfiguration = 9 NumPanes = 2 Configuration = "(H (1 [75] 4))" End Begin PaneConfiguration = 10 NumPanes = 2 Configuration = "(H (1[66] 2) )" End Begin PaneConfiguration = 11 NumPanes = 2 Configuration = "(H (4 [60] 2))" End Begin PaneConfiguration = 12 NumPanes = 1 Configuration = "(H (1) )" End Begin PaneConfiguration = 13 NumPanes = 1 Configuration = "(V (4))" End Begin PaneConfiguration = 14 NumPanes = 1 Configuration = "(V (2))" End ActivePaneConfig = 0 End Begin DiagramPane = Begin Origin = Top = 0 Left = 0 End Begin Tables = Begin Table = "TimeEntry" Begin Extent = Top = 6 Left = 38 Bottom = 270 Right = 198 End DisplayFlags = 280 TopColumn = 0 End End End Begin SQLPane = End Begin DataPane = Begin ParameterDefaults = "" End Begin ColumnWidths = 10 Width = 284 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 End End Begin CriteriaPane = Begin ColumnWidths = 11 Column = 1440 Alias = 900 Table = 1170 Output = 720 Append = 1400 NewValue = 1170 SortType = 1350 SortOrder = 1410 GroupBy = 1350 Filter = 1350 Or = 1350 Or = 1350 Or = 1350 End End End ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'FeesImportTimeEntry' GO IF NOT EXISTS (SELECT * FROM ::fn_listextendedproperty(N'MS_DiagramPaneCount' , N'SCHEMA',N'dbo', N'VIEW',N'FeesImportTimeEntry', NULL,NULL)) EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'FeesImportTimeEntry' GO /****** Object: View [dbo].[TimeLastBilled] Script Date: 10/01/2014 16:20:07 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[TimeLastBilled]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[TimeLastBilled] AS SELECT TOP 100 PERCENT MATTER, MAX([DATE]) AS LastBillDate, MAX(RECORDID) AS RecordID FROM dbo.TimeEntry GROUP BY MATTER, TIMEORCHARGE HAVING (TIMEORCHARGE = ''B'') ORDER BY TIMEORCHARGE ' GO /****** Object: View [dbo].[TimeEntryLastDate] Script Date: 10/01/2014 16:20:07 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[TimeEntryLastDate]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[TimeEntryLastDate] AS SELECT DISTINCT TOP 100 PERCENT MATTER, MAX(DATE) AS LastDate FROM dbo.TimeEntry WHERE (REC_IRR <> ''N'') AND (TIMEORCHARGE <> ''B'') AND (INVOICENO = 0) AND (MATTER <> ''~'') GROUP BY MATTER ' GO /****** Object: StoredProcedure [dbo].[ky_SetGlobalOutlookSettings] Script Date: 10/01/2014 16:17:38 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_SetGlobalOutlookSettings]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_SetGlobalOutlookSettings] (@PStoreCaseCode VARCHAR(1), @PStoreClientName VARCHAR(1), @PStoreCaseDescription VARCHAR(1), @PAllowOverride VARCHAR(1)) AS BEGIN DECLARE @StoreCaseCode bit DECLARE @StoreClientName bit DECLARE @StoreCaseDescription bit DECLARE @AllowOverride bit IF @PStoreCaseCode = ''0'' BEGIN SET @StoreCaseCode = 0 END ELSE BEGIN SET @StoreCaseCode = 1 END IF @PStoreClientName = ''0'' BEGIN SET @StoreClientName = 0 END ELSE BEGIN SET @StoreClientName = 1 END IF @PStoreCaseDescription = ''0'' BEGIN SET @StoreCaseDescription = 0 END ELSE BEGIN SET @StoreCaseDescription = 1 END IF @PAllowOverride = ''0'' BEGIN SET @AllowOverride = 0 END ELSE BEGIN SET @AllowOverride = 1 END DELETE GlobalOutlookSettings INSERT INTO GlobalOutlookSettings ([AllowOverride], [StoreCaseCode], [StoreCaseDescription], [StoreClientName]) VALUES(@AllowOverride, @StoreCaseCode, @StoreCaseDescription, @StoreClientName) END ' END GO /****** Object: StoredProcedure [dbo].[ky_IMMoveBriefDocumentWithinSection] Script Date: 10/01/2014 16:17:22 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_IMMoveBriefDocumentWithinSection]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_IMMoveBriefDocumentWithinSection] (@MoveID INT, @DIRECTION INT, @MOVESIZE INT) AS /************************************************************************************************************* * * ky_IMMoveBriefDocumentWithinSection - Move documents up or down within a Section * * @MoveID - the recordid of the Brief Document that is being moved * @DIRECTION - 0 is up, 1 is Down * @MOVESIZE - 0: Move the document only one item up or down * 1 (not 0): Move the document to the top c.q. bottom of the section * *************************************************************************************************************/ BEGIN DECLARE @SectionID INT DECLARE @SortOrder INT BEGIN TRANSACTION BEGIN TRY IF (@MOVESIZE = 0) BEGIN SET @MOVESIZE = 1 END ELSE BEGIN SET @MOVESIZE = 1000000 END SELECT @SECTIONID = BRD.[SectionID], @SortOrder = BRD.[SortOrder] FROM [dbo].[BriefDocuments] BRD WHERE BRD.[recordId] = @MoveID ORDER BY BRD.[SectionID], BRD.[SortOrder] DECLARE @Reor TABLE ([recordid] INT, [SortOrder] INT identity(1, 1)) IF (@DIRECTION = 0) BEGIN INSERT INTO @Reor ([recordid]) SELECT BRD.[recordid] FROM [dbo].[BriefDocuments] BRD WHERE BRD.[SectionID] = @SectionID AND BRD.[SortOrder] < @SortOrder - @MOVESIZE ORDER BY BRD.[SortOrder] END ELSE BEGIN INSERT INTO @Reor ([recordid]) SELECT BRD.[recordid] FROM [dbo].[BriefDocuments] BRD WHERE BRD.[SectionID] = @SectionID AND BRD.[SortOrder] <= @SortOrder + @MOVESIZE AND BRD.[recordId] <> @MoveID ORDER BY BRD.[SortOrder] END INSERT INTO @Reor ([recordid]) VALUES(@MoveID) IF (@DIRECTION = 0) BEGIN INSERT INTO @Reor ([recordid]) SELECT BRD.[recordid] FROM [dbo].[BriefDocuments] BRD WHERE BRD.[SectionID] = @SectionID AND BRD.[SortOrder] >= @SortOrder - @MOVESIZE AND BRD.[recordId] <> @MoveID ORDER BY BRD.[SortOrder] END ELSE BEGIN INSERT INTO @Reor ([recordid]) SELECT BRD.[recordid] FROM [dbo].[BriefDocuments] BRD WHERE BRD.[SectionID] = @SectionID AND BRD.[SortOrder] > @SortOrder + @MOVESIZE ORDER BY BRD.[SortOrder] END UPDATE BRD SET BRD.[SortOrder] = REO.[SortOrder] FROM @Reor REO INNER JOIN [dbo].[BriefDocuments] BRD ON BRD.[recordId] = REO.[recordid] SELECT [recordId] ,[BriefId] ,[DocumentName] ,[TrackReference] ,[FileLocation] ,[Filedate] ,[DocumentType] ,[DocumentClass] ,[SortOrder] ,[SectionID] ,[IMDOCID] FROM [dbo].[BriefDocuments] BRD WHERE BRD.[SectionID] = @SectionID ORDER BY BRD.[SortOrder] COMMIT END TRY BEGIN CATCH ROLLBACK END CATCH END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDBriefSectionDocs] Script Date: 10/01/2014 16:19:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDBriefSectionDocs]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' create function [dbo].[ky_WDBriefSectionDocs] (@SectionID int) RETURNS @TableInOrder TABLE (recordid int, sortorder int, newsortorder int) AS /******************************************************************************* WinDEV function to assist in re-ordering a brief. *******************************************************************************/ BEGIN DECLARE @newsortorder int SET @newsortorder = 0 INSERT INTO @TableInOrder SELECT BRD.[recordid], BRD.[sortorder], 0 FROM [dbo].[BriefDocuments] BRD WHERE BRD.[SectionID] = @SectionID ORDER BY BRD.[sortorder], BRD.[Filedate] DESC, BRD.[TrackReference] DESC UPDATE BRD SET @newsortorder = @newsortorder + 1, BRD.[newsortorder] = @newsortorder FROM @TableInOrder BRD RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_ReorderBriefDocSection] Script Date: 10/01/2014 16:17:30 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_ReorderBriefDocSection]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_ReorderBriefDocSection] (@RecID Integer) AS /************************************************************** * * * ky_ReorderBriefDocSection * * * * Rearranges the documents in a brief section so they * * get consecutive sort order numbers starting with 1 * * * * Parameters: RecID, the recordid column of the document * * * **************************************************************/ DECLARE @counter integer DECLARE @CurRecID Integer DECLARE @CurSO Integer DECLARE CURREORDER CURSOR FOR SELECT BD2.recordid, BD2.sortorder FROM BriefDocuments BD INNER JOIN BriefDocuments BD2 ON BD2.BriefID = BD.BriefID AND BD2.SectionID = BD.SectionID WHERE BD.recordid = @RecID ORDER BY BD2.sortorder, BD2.recordid OPEN CURREORDER SET @Counter = 0 FETCH NEXT FROM CURREORDER INTO @CurRecID, @CurSO WHILE @@FETCH_STATUS = 0 BEGIN SET @Counter = @Counter + 1 UPDATE BriefDocuments SET sortorder = @Counter WHERE recordid = @CurRecID FETCH NEXT FROM CURREORDER INTO @CurRecID, @CurSO END CLOSE CURREORDER DEALLOCATE CURREORDER ' END GO /****** Object: StoredProcedure [dbo].[ky_BGDelete] Script Date: 10/01/2014 16:17:00 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGDelete]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_BGDelete] (@DraftNo int, @BatchNo int) AS BEGIN DELETE BGD from [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] ON BGG.[BGControlID] = BGC.[Id] WHERE ( (IsNull(@DraftNo, 0) <> 0) AND (BGC.[DraftNo] = IsNull(@DraftNo, 0))) OR ( (IsNull(@DraftNo, 0) = 0) AND (IsNull(@BatchNo, 0) <> 0) AND (BGC.[BatchNo] = @BatchNo)) DELETE BGG from [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG ON BGG.[BGControlID] = BGC.[Id] WHERE ( (IsNull(@DraftNo, 0) <> 0) AND (BGC.[DraftNo] = IsNull(@DraftNo, 0))) OR ( (IsNull(@DraftNo, 0) = 0) AND (IsNull(@BatchNo, 0) <> 0) AND (BGC.[BatchNo] = @BatchNo)) DELETE BGC from [dbo].[BGControl] BGC WHERE ( (IsNull(@DraftNo, 0) <> 0) AND (BGC.[DraftNo] = IsNull(@DraftNo, 0))) OR ( (IsNull(@DraftNo, 0) = 0) AND (IsNull(@BatchNo, 0) <> 0) AND (BGC.[BatchNo] = @BatchNo)) END ' END GO /****** Object: StoredProcedure [dbo].[ky_BGResetCR] Script Date: 10/01/2014 16:17:02 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGResetCR]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_BGResetCR] (@BatchNo int) AS BEGIN IF IsNull(@BatchNo, 0) <> 0 BEGIN UPDATE BGD SET BGD.[BillNow] = 0 FROM [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] ON BGG.[BGControlID] = BGC.[ID] WHERE BGC.[BatchNO] = @BatchNo END END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_BGListTotals] Script Date: 10/01/2014 16:18:58 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGListTotals]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N'create function [dbo].[ky_BGListTotals] (@ControlID int) RETURNS TABLE AS RETURN select SUM(case when BGD.[Type] = ''F'' THEN IsNull(BGD.[BillNow], 0) else 0 END) AS [TotalFees], SUM(case when BGD.[Type] = ''O'' THEN IsNull(BGD.[BillNow], 0) else 0 END) AS [TotalOutlay], SUM(IsNull(BGD.[BillNow], 0)) AS [GrandTotal] from [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] ON BGG.[BGControlID] = BGC.[ID] WHERE BGC.[ID] = @ControlID ' END GO /****** Object: StoredProcedure [dbo].[ky_MoveGroupBG] Script Date: 10/01/2014 16:17:26 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_MoveGroupBG]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_MoveGroupBG] (@ControlID int, @NewGroupID varchar(38), @OldGroupID varchar(38)) AS /*************************************************************************** * * ky_MoveGroupBG * Rewritten 2014-09-12 to improve efficiency and prevent deadlocks * Moves all Billing Guide Detail lines from the old group to the new one * ***************************************************************************/ BEGIN DECLARE @MaxSeqNo int DECLARE @reorder TABLE ([seqno] int identity(1, 1), [ID] uniqueidentifier) SELECT @MaxSeqNo = IsNull(Max(BGDMAX.[SeqNo]), 0) FROM [dbo].[BGDetail] BGDMAX WHERE BGDMAX.[BGGroupID] = convert(uniqueidentifier, @NewGroupID) UPDATE BGD SET BGD.[BGGroupID] = convert(uniqueidentifier, @NewGroupID), BGD.[SeqNo] = @MaxSeqNo + BGD.SeqNo FROM [dbo].[BGDetail] BGD WHERE BGD.[BGGroupID] = convert(uniqueidentifier, @OldGroupID) /* Remove orphaned groups */ DELETE BGG FROM [dbo].[BGGroups] BGG LEFT OUTER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] WHERE BGG.[BGControlID] = @ControlID AND BGD.[ID] IS NULL INSERT INTO @reorder ([ID]) SELECT [ID] FROM [dbo].[BGGroups] WHERE [BGControlID] = @ControlID ORDER BY [SeqNo] UPDATE BGG SET BGG.[SeqNo] = RGB.[seqno] FROM @reorder RGB INNER JOIN [dbo].[BGGroups] BGG ON BGG.[ID] = RGB.[ID] DELETE @reorder INSERT INTO @reorder ([ID]) SELECT [ID] FROM [dbo].[BGDetail] WHERE [BGGroupID] = convert(uniqueidentifier, @NewGroupID) ORDER BY [Type], RTRIM(IsNull([Matter], '''')), IsNull(convert(varchar, [Date], 121), ''''), Narrative, OriginalID UPDATE BGD SET BGD.[SeqNo] = RGB.[seqno] FROM @reorder RGB INNER JOIN [dbo].[BGDetail] BGD ON BGD.[ID] = RGB.[ID] END ' END GO /****** Object: StoredProcedure [dbo].[ky_ReorderGroupBG] Script Date: 10/01/2014 16:17:33 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_ReorderGroupBG]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_ReorderGroupBG] (@ControlID int) AS /*************************************************************************** * * ky_ReorderGroupBG * Rewritten 2014-09-12 to improve efficiency and prevent deadlocks * re-numbers the sequence numbers in a Billing Guide Group so that they * are contiguously numbered 1, 2, 3, etc. * ***************************************************************************/ BEGIN DECLARE @reseq TABLE ([ID] uniqueidentifier, [newseq] int identity(1, 1)) INSERT INTO @reseq ([ID]) SELECT [ID] FROM [dbo].[BGGroups] WHERE [BGControlID] = @ControlID ORDER BY [SeqNo] UPDATE BGG SET BGG.[SeqNo] = RSQ.[newseq] FROM @reseq RSQ INNER JOIN [dbo].[BGGroups] BGG ON BGG.[ID] = RSQ.[ID] END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDCreateTranscription] Script Date: 10/01/2014 16:18:01 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCreateTranscription]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_WDCreateTranscription] (@TrackReference int, @extension varchar(10)) AS BEGIN DECLARE @FilePath varchar(255) DECLARE @slashpos int DECLARE @lastslash int DECLARE @dotpos int DECLARE @lastdot int SELECT @FilePath = RTRIM(ISNULL(DAT.[FilePath], '''')) FROM [dbo].[DiaryAttachments] DAT WHERE DAT.[TRACKREFERENCE] = @TrackReference SET @lastslash = 0 SET @slashpos = CHARINDEX(''\'', @FilePath, 1) WHILE (@slashpos > 0) BEGIN SET @lastslash = @slashpos SET @slashpos = CHARINDEX(''\'', @FilePath, @slashpos + 1) END SET @lastdot = 0 SET @dotpos = CHARINDEX(''.'', @FilePath, @lastdot + 1) WHILE (@dotpos > 0) BEGIN SET @lastdot = @dotpos SET @dotpos = CHARINDEX(''.'', @FilePath, @dotpos + 1) END IF (@lastdot > 0) SET @FilePath = LEFT(@FilePath, @lastdot - 1) INSERT INTO [dbo].[DiaryAttachments] ([DIARYID], [TRACKREFERENCE], [CASECODE], [NAME], [DOCUMENT], [FILEPATH], [TYPE], [DOCCLASS], [DATEENTERED], [ENTEREDBY], [LASTACCESSDATE], [LASTACCESSBY], [SYSTEM], [DICTATIONFILE], [Source]) SELECT DAT.[DIARYID], NTR.[TrackReference], DAT.[CASECODE], DAT.[NAME], DAT.[DOCUMENT], @FilePath + ''_'' + CONVERT(varchar(12), NTR.[TrackReference]) + ''.'' + @extension, UPPER(LEFT(@extension, 3)) AS [TYPE], DAT.[DOCCLASS], GETDATE(), DAT.[ENTEREDBY], GETDATE(), DAT.[LASTACCESSBY], ''N'' As [SYSTEM], ''N'' AS [DictationFile], ''Transcriptions'' AS [Source] FROM (SELECT ISNULL(Max(MTR.[TrackReference]), 0) + 1 AS [TrackReference] FROM [dbo].[DiaryAttachments] MTR) NTR INNER JOIN [dbo].[DiaryAttachments] DAT ON DAT.[TRACKREFERENCE] = @TrackReference END ' END GO /****** Object: StoredProcedure [dbo].[spGetNextTrackReferenceInDiaryAttachments] Script Date: 10/01/2014 16:18:50 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[spGetNextTrackReferenceInDiaryAttachments]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[spGetNextTrackReferenceInDiaryAttachments] AS BEGIN SELECT ISNULL(MAX(TRACKREFERENCE), 0)+1 AS TRACKREFERENCE FROM dbo.DiaryAttachments --ORDER BY TRACKREFERENCE DESC END ' END GO /****** Object: StoredProcedure [dbo].[ky_BGPayItem] Script Date: 10/01/2014 16:17:01 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGPayItem]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[ky_BGPayItem] (@ID varchar(38), @Unpaid int, @Fullypaid int, @value decimal(19,2)) AS BEGIN UPDATE BGD SET BGD.[PaidNow] = Case WHEN @Unpaid = 1 THEN 0 WHEN @Fullypaid = 1 THEN BGD.[BillNow] WHEN (BGD.[BillNow] < 0) AND (@value < BGD.[BillNow]) THEN BGD.[BillNow] WHEN (BGD.[BillNow] < 0) AND (@value > 0) THEN 0 WHEN (BGD.[BillNow] < 0) THEN @value WHEN (@value > BGD.[BillNow]) THEN BGD.[BillNow] WHEN (@value < 0) THEN 0 ELSE @value END FROM [dbo].[BGDetail] BGD WHERE BGD.[ID] = convert(uniqueidentifier, @ID) END ' END GO /****** Object: UserDefinedFunction [dbo].[ContactAddresses] Script Date: 10/01/2014 16:18:56 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ContactAddresses]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' create function [dbo].[ContactAddresses] () Returns @ContactAddresses Table ([Code] varchar(8) not null, [Name] varchar(60) null, [AddrLine1] varchar(120) null, [AddrLine2] varchar(120) null, [AddrLine3] varchar(120) null, [AddrLine4] varchar(120) null, [AddrLine5] varchar(120) null, [RestOfAddress] varchar(120) null) As BEGIN INSERT INTO @ContactAddresses ([Code], [Name], [AddrLine1], [AddrLine2], [AddrLine3], [AddrLine4], [AddrLine5], [RestOfAddress]) SELECT [Code], [Name], Null, Null, Null, Null, Null, [Address] FROM [dbo].[Contacts] UPDATE CA SET CA.AddrLine1 = RTrim(substring(CA.[RestOfAddress], 1, patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) - 1)), CA.RestOfAddress = LTrim(substring(CA.[RestOfAddress], patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) + 2, len(CA.[RestOfAddress]) - patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) - 1)) FROM @ContactAddresses CA WHERE patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) > 0 UPDATE CA SET CA.AddrLine2 = CA.RestOfAddress, CA.RestOfAddress = NULL FROM @ContactAddresses CA WHERE patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) = 0 UPDATE CA SET CA.AddrLine2 = RTrim(substring(CA.[RestOfAddress], 1, patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) - 1)), CA.RestOfAddress = LTrim(substring(CA.[RestOfAddress], patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) + 2, len(CA.[RestOfAddress]) - patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) - 1)) FROM @ContactAddresses CA WHERE patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) > 0 UPDATE CA SET CA.AddrLine3 = CA.RestOfAddress, CA.RestOfAddress = NULL FROM @ContactAddresses CA WHERE patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) = 0 UPDATE CA SET CA.AddrLine3 = RTrim(substring(CA.[RestOfAddress], 1, patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) - 1)), CA.RestOfAddress = LTrim(substring(CA.[RestOfAddress], patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) + 2, len(CA.[RestOfAddress]) - patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) - 1)) FROM @ContactAddresses CA WHERE patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) > 0 UPDATE CA SET CA.AddrLine4 = CA.RestOfAddress, CA.RestOfAddress = NULL FROM @ContactAddresses CA WHERE patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) = 0 UPDATE CA SET CA.AddrLine5 = RTrim(substring(CA.[RestOfAddress], 1, patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) - 1)), CA.RestOfAddress = LTrim(substring(CA.[RestOfAddress], patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) + 2, len(CA.[RestOfAddress]) - patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) - 1)) FROM @ContactAddresses CA WHERE patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) > 0 UPDATE CA SET CA.AddrLine5 = CA.RestOfAddress, CA.RestOfAddress = NULL FROM @ContactAddresses CA WHERE patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) = 0 UPDATE CA SET CA.AddrLine5 = RTrim(substring(CA.[RestOfAddress], 1, patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) - 1)), CA.RestOfAddress = LTrim(substring(CA.[RestOfAddress], patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) + 2, len(CA.[RestOfAddress]) - patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) - 1)) FROM @ContactAddresses CA WHERE patindex(''%'' + char(13) + char(10) + ''%'', CA.[RestOfAddress]) > 0 RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_FetchAddProfessionalLoadData] Script Date: 10/01/2014 16:17:13 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_FetchAddProfessionalLoadData]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_FetchAddProfessionalLoadData] AS /***************************************************************************** Stored Procedure Name: [ky_FetchAddProfessionalLoadData] Description: This procedure is used load the data for add professional page. 1. CaseAssociate grid. 2. Case Associate type list box *****************************************************************************/ BEGIN SET NOCOUNT ON SELECT A.CODE, A.DESCRIPTION FROM dbo.AssociateTypes A WHERE ( A.CODE >= ''a'' ) ORDER BY A.CODE ASC SET NOCOUNT OFF END ' END GO /****** Object: View [dbo].[MatterTransactionsBalances] Script Date: 10/01/2014 16:20:00 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[MatterTransactionsBalances]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[MatterTransactionsBalances] AS SELECT SUM(VALUED) AS DebtorsBalance, SUM(VALUEO) AS OutlayBalance, SUM(VALUEC) AS ClientBalance, SUM(VALUECC) AS ClientCCBalance, SUM(VALUECD) AS ClientCDBalance FROM dbo.MatterLedger ' GO /****** Object: StoredProcedure [dbo].[ky_SetActionAutoAlarm] Script Date: 10/01/2014 16:17:33 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_SetActionAutoAlarm]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' create procedure [dbo].[ky_SetActionAutoAlarm] (@LinkID varchar(50)) AS /*********************************************************************************** * * ky_SetActionAutoAlarm * This procedure didn''t need to be changed to cater for the new DisplayText column * ***********************************************************************************/ BEGIN DECLARE @MatterRef varchar(17) DECLARE @AlarmDateString varchar(23) 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 varchar(255) DECLARE @Message varchar(8000) DECLARE @UPDATEFIELD char(30) select @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 = 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 = RTrim(substring(DIA.[Text1], 1, 8000)), @UPDATEFIELD = RTrim(TAC.[UPDATEFIELD]) from [dbo].[diary] DIA INNER JOIN [dbo].[templateactions] TAC on TAC.[ACTIONCODE] = DIA.[ACTIONCODE] where DIA.[ActionID] = convert(decimal(15,0), @LinkID) IF @UPDATEFIELD = ''Y'' BEGIN 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 = left(convert(varchar, @Date, 120), 11) + 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 EXEC ky_SetAlarm2 '''', @MatterRef, @LinkID, @AlarmDateString, @Title, @Message, ''Action'' END END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDActionComplete3] Script Date: 10/01/2014 16:17:41 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDActionComplete3]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_WDActionComplete3] (@ActionID int, @CurFee varchar(10), @CurTeam varchar(10), @NextActionsXML varchar(4000), @TakeOwnership int) AS /************************************************************************************** * * ky_WDActionComplete3 * * Completes / Returns an Action - depending on whether this SP is invoked by the owner * or a delegate. Also allows for taking ownership * **************************************************************************************/ BEGIN 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 @NA TABLE ([ID] int identity(1, 1), [ActionID] int, [Code] varchar(5)) DECLARE @AlarmType int DECLARE @DisabledAlarmStatusID int DECLARE @ActionTypeID int SELECT @AlarmType = ISNULL(ALT1.[TypeID], ALT2.[TypeID]) FROM AlarmTypes ALT2 LEFT OUTER JOIN 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(nvarchar(500), ''Actioned'') WHERE ALS1.[Description] = N''Disabled'' Select @ActionTypeID = ALT1.[TypeID] from [dbo].[AlarmTypes] ALT1 WHERE ALT1.[Description] = N''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) /* if not authorised, do not do anything else */ SET @Continue = @IsAuthorisedToComplete 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 */ SET @Continue = @CountFailedDependentActions 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 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))) 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],'''') <> ''A'' -- IN (''T'', ''E'', ''N'', ''P'') 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], '''') = ''A'' --NOT IN (''T'', ''E'', ''N'', ''P'') 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 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 Y Do not YYY N Do 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'') 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'') 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, 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'') 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 */ SELECT @MaxActionID = IsNull(MAX(DIA.[ActionID]), 0) FROM [dbo].[Diary] DIA 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]) SELECT @MaxActionID, BLCH.[Code] from OPENXML(@idoc, ''NA/NextAction'', 2) WITH(Process varchar(1) ''Process'', Decision varchar(10) ''Decision'', Code varchar(5) ''Code'') 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]) SELECT NA.[ActionID], DIA.[CASECODE] AS [CASECODE], [dbo].[ky_WDGetDate](@Now, TNA.[WHENTYPE], TNA.[WHEN]) 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].[ky_RemoveSpuriousWhitespace2](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], 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] 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) 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 RTRIM(substring(DIA.[TEXT1], 1, 255)) WHEN DIA.[ProcessType] = ''I'' THEN RTRIM(substring( ''Email From:'' + RTrim([dbo].[ky_GetNameFromEmailAddress](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 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 */ 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 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], DEL.[DATE], DEL.[TIME], '''' 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], DEL.[DATE], @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], DEL.[TIME], @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 COMMIT END ELSE -- ELSE (IF (@Continue = 0)) BEGIN ROLLBACK END -- END IF (@Continue = 0) END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDActionComplete] Script Date: 10/01/2014 16:17:41 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDActionComplete]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_WDActionComplete] (@ActionID int, @CurFee varchar(10), @NextActionsXML varchar(4000)) AS /************************************************************************************** * * ky_WDActionComplete * * Completes / Returns an Action - depending on whether this SP is invoked by the owner * or a delegate. * **************************************************************************************/ BEGIN DECLARE @Now datetime DECLARE @NowDateOnly datetime DECLARE @NowClarionTime 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 @NA TABLE ([ID] int identity(1, 1), [ActionID] int, [Code] varchar(5)) DECLARE @AlarmType int DECLARE @DisabledAlarmStatusID int DECLARE @ActionTypeID int SELECT @AlarmType = ISNULL(ALT1.[TypeID], ALT2.[TypeID]) FROM AlarmTypes ALT2 LEFT OUTER JOIN 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(nvarchar(500), ''Actioned'') WHERE ALS1.[Description] = N''Disabled'' Select @ActionTypeID = ALT1.[TypeID] from [dbo].[AlarmTypes] ALT1 WHERE ALT1.[Description] = N''Action'' /* 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 FROM [dbo].[Diary] DIA WHERE DIA.[ACTIONID] = @ActionID /* 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) /* if not authorised, do not do anything else */ SET @Continue = @IsAuthorisedToComplete 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 */ SET @Continue = @CountFailedDependentActions 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 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)) 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 FROM [dbo].[Diary] DIA WHERE DIA.[ACTIONID] = @ActionID AND DIA.[ACTIONTYPE] IN (''T'', ''E'') 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 isn''t a phone or e-mail, update some date information too */ UPDATE DIA SET DIA.[STATUS] = 1, DIA.[PROCESSSTATUS] = 0, DIA.[DATE] = @Now, DIA.[DYSTARTTIME] = @NowClarionTime FROM [dbo].[Diary] DIA WHERE DIA.[ACTIONID] = @ActionID AND IsNull(DIA.[ACTIONTYPE], '''') NOT IN (''T'', ''E'') 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 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 Y Do not YYY N Do 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'') 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'') 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, 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'') 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 */ SELECT @MaxActionID = IsNull(MAX(DIA.[ActionID]), 0) FROM [dbo].[Diary] DIA 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]) SELECT @MaxActionID, BLCH.[Code] from OPENXML(@idoc, ''NA/NextAction'', 2) WITH(Process varchar(1) ''Process'', Decision varchar(10) ''Decision'', Code varchar(5) ''Code'') 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]) SELECT NA.[ActionID], DIA.[CASECODE] AS [CASECODE], [dbo].[ky_WDGetDate](@Now, TNA.[WHENTYPE], TNA.[WHEN]) 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].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), TAC.[DESC]), ''''), 200) As [DisplayText], @NowClarionTime AS [DYStartTime], @NowClarionTime AS [DYEndTime], [dbo].[ky_WDGetDate](@NowDateOnly, TNA.[WHENTYPE], TNA.[WHEN]) 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] 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) 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], DIA.[FNCODE] AS [HANDLER], DIA.[TEAMCODE] 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 RTRIM(substring(DIA.[TEXT1], 1, 255)) WHEN DIA.[ProcessType] = ''I'' THEN RTRIM(substring( ''Email From:'' + RTrim([dbo].[ky_GetNameFromEmailAddress](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 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 */ 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 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 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) */ 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], DEL.[DATE], @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], DEL.[TIME], @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 COMMIT END ELSE -- ELSE (IF (@Continue = 0)) BEGIN ROLLBACK END -- END IF (@Continue = 0) END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDNextActionMissingCasePartner] Script Date: 10/01/2014 16:18:08 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDNextActionMissingCasePartner]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDNextActionMissingCasePartner * * Check that no "Next Actions" would require being assigned to a matter''s missing Partner. * This check can be performed BEFORE any database changes are in progress, so that we can * ignore this eventuality in procedures that make actual database changes. * * It checks the TemplateAction''s column AssignActionTo, and if this contains a ''P'', i.e. * "assign the Action to the Partner associated with this Case", it goes and checks * whether the Partner column in the matter has been set. * * It returns the number of rows that failed this test, so * the desired result is to receive 0 in the TOTAL column. * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDNextActionMissingCasePartner] (@ActionID int, @CurFee varchar(10), @NextActionsXML varchar(4000)) AS BEGIN DECLARE @Owner int DECLARE @IsAuthorisedToComplete int DECLARE @CountFailedDependentActions int DECLARE @idoc int /* This is irrelevant if the current fee earner isn''t the owner. */ SELECT @Owner = CASE DIA.[FNCODE] WHEN @CurFee THEN 1 ELSE 0 END FROM [dbo].[Diary] DIA WHERE DIA.[ACTIONID] = @ActionID /* 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) /* 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) /* Example of @NextActionsXML: Y Do XXX Y Do not YYY N Do ZZZ */ EXEC sp_xml_preparedocument @idoc OUTPUT, @NextActionsXML SELECT COUNT(1) As [TOTAL] from OPENXML(@idoc, ''NA/NextAction'', 2) WITH(Process varchar(1) ''Process'', Decision varchar(10) ''Decision'', Code varchar(5) ''Code'') 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'' AND @Owner = 1 AND @CountFailedDependentActions = 0 AND @IsAuthorisedToComplete = 0 EXEC sp_xml_removedocument @idoc END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDSearchAllContacts3] Script Date: 10/01/2014 16:18:16 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchAllContacts3]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDSearchAllContacts3 * * Returns a list of Matter Contacts matching a search criterion * on matter description or user defined fields * * Includes functionality to exclude matters to which the fee earner has not been authorised * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDSearchAllContacts3] (@fe varchar(10), @search varchar(50), @mattersearch varchar(50), @includeCA int, @includeCC int, @includeCO int, @includeMC int, @expand int, @clientcode varchar(10), @namecode varchar(10), @bycase int, @IncludePhone int, @IncludeEmails int) AS BEGIN SET @IncludePhone = Case When ISNULL(@IncludePhone, 0) = 1 THEN 1 ELSE 0 END IF (@expand = 0) BEGIN SELECT NR.[Name], NR.[Address], NR.[Phone], NR.[Mobile], NR.[Fax], NR.[Email], NR.[ClientCode], NR.[NameCode], COUNT(1) AS [Cases], '''' As [CaseCode], '''' As [ClientName], '''' As [CaseDescription] FROM ( SELECT RES.[Name], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], RES.[Case], Max(RES.[ClientCode]) AS [ClientCode], Max(RES.[NameCode]) As [NameCode] FROM (SELECT * from [ky_WDSearchCaseAssociates3](@fe, @search, @mattersearch, @includeCA, 1, @clientcode, @namecode, @IncludePhone, @IncludeEmails) UNION SELECT * from [ky_WDSearchClientContacts3](@fe, @search, @mattersearch, @includeCC, 1, @clientcode, @namecode, @IncludePhone, @IncludeEmails) UNION SELECT * from [ky_WDSearchContacts3](@fe, @search, @mattersearch, @includeCO, 1, @clientcode, @namecode, @IncludePhone, @IncludeEmails) UNION SELECT * from [ky_WDSearchMatterContacts3](@fe, @search, @mattersearch, @includeMC, 1, @clientcode, @namecode, @IncludePhone, @IncludeEmails)) RES GROUP BY RES.[Name], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], RES.[Case]) NR GROUP BY NR.[Name], NR.[Address], NR.[Phone], NR.[Mobile], NR.[Fax], NR.[Email], NR.[ClientCode], NR.[NameCode] END if (@expand = 1) AND (@bycase = 1) BEGIN SELECT NR.[Name], NR.[Address], NR.[Phone], NR.[Mobile], NR.[Fax], NR.[Email], NR.[ClientCode], NR.[NameCode], 1 As [Cases], NR.[Case] As [CaseCode], RTrim(IsNull(CON.[Name], '''')) As [ClientName], RTrim(IsNull(MAT.[Description], '''')) As [CaseDescription] FROM ( SELECT '''' As [Name], '''' As [Address], '''' As [Phone], '''' As [Mobile], '''' As [Fax], '''' As [Email], @clientcode AS [ClientCode], @namecode AS [NameCode], RES.[Case] FROM (SELECT * from [ky_WDSearchCaseAssociates3](@fe, @search, @mattersearch, @includeCA, 1, @clientcode, @namecode, @IncludePhone, @IncludeEmails) UNION SELECT * from [ky_WDSearchClientContacts3](@fe, @search, @mattersearch, @includeCC, 1, @clientcode, @namecode, @IncludePhone, @IncludeEmails) UNION SELECT * from [ky_WDSearchContacts3](@fe, @search, @mattersearch, @includeCO, 1, @clientcode, @namecode, @IncludePhone, @IncludeEmails) UNION SELECT * from [ky_WDSearchMatterContacts3](@fe, @search, @mattersearch, @includeMC, 1, @clientcode, @namecode, @IncludePhone, @IncludeEmails)) RES GROUP BY RES.[Case]) NR INNER JOIN [dbo].[Matters] MAT INNER JOIN [dbo].[contacts] CON ON CON.[Code] = MAT.[ClientCode] ON MAT.[CODE] = NR.[Case] END if (@expand = 1) AND (@bycase = 0) BEGIN SELECT NR.[Name], NR.[Address], NR.[Phone], NR.[Mobile], NR.[Fax], NR.[Email], NR.[ClientCode], NR.[NameCode], 1 As [Cases], NR.[Case] As [CaseCode], RTrim(IsNull(CON.[Name], '''')) As [ClientName], RTrim(IsNull(MAT.[Description], '''')) As [CaseDescription] FROM ( SELECT RES.[Name], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], @clientcode AS [ClientCode], @namecode AS [NameCode], RES.[Case] FROM (SELECT * from [ky_WDSearchCaseAssociates3](@fe, @search, @mattersearch, @includeCA, 1, @clientcode, @namecode, @IncludePhone, @IncludeEmails) UNION SELECT * from [ky_WDSearchClientContacts3](@fe, @search, @mattersearch, @includeCC, 1, @clientcode, @namecode, @IncludePhone, @IncludeEmails) UNION SELECT * from [ky_WDSearchContacts3](@fe, @search, @mattersearch, @includeCO, 1, @clientcode, @namecode, @IncludePhone, @IncludeEmails) UNION SELECT * from [ky_WDSearchMatterContacts3](@fe, @search, @mattersearch, @includeMC, 1, @clientcode, @namecode, @IncludePhone, @IncludeEmails)) RES GROUP BY RES.[Name], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], RES.[Case]) NR INNER JOIN [dbo].[Matters] MAT INNER JOIN [dbo].[contacts] CON ON CON.[Code] = MAT.[ClientCode] ON MAT.[CODE] = NR.[Case] END END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDContactSearch] Script Date: 10/01/2014 16:19:20 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDContactSearch]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' CREATE FUNCTION [dbo].[ky_WDContactSearch] (@fe varchar(10), @search varchar(50), @mattersearch varchar(50), @includeCA int, @includeCC int, @includeCO int, @includeMC int, @clientcode varchar(10), @namecode varchar(10), @IncludePhone int, @IncludeEmails int, @expand int, @bycase int, @start int, @pagesize int) RETURNS @SR2 TABLE ([ID] int identity(1, 1), [Name] varchar(200), [Address] varchar(200), [Phone] varchar(30), [Mobile] varchar(30), [Fax] varchar(30), [Email] varchar(100), [Case] varchar(20), [Clientcode] varchar(10), [Namecode] varchar(10), [Cases] int, [CaseCode] varchar(20), [ClientName] varchar(300), [CaseDescription] varchar(300)) AS BEGIN DECLARE @SR TABLE ([Name] varchar(200), [Address] varchar(200), [Phone] varchar(30), [Mobile] varchar(30), [Fax] varchar(30), [Email] varchar(100), [Case] varchar(20), [Clientcode] varchar(10), [Namecode] varchar(10)) INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [Namecode]) SELECT [Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [Namecode] from [dbo].[ky_WDSearchCaseAssociates3] (@fe, @search, @mattersearch, @includeCA, 1, @clientcode, @namecode, @IncludePhone, @IncludeEmails) INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [Namecode]) SELECT [Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [Namecode] from [dbo].[ky_WDSearchClientContacts3] (@fe, @search, @mattersearch, @includeCC, 1, @clientcode, @namecode, @IncludePhone, @IncludeEmails) INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [Namecode]) SELECT [Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [Namecode] from [dbo].[ky_WDSearchContacts3] (@fe, @search, @mattersearch, @includeCO, 1, @clientcode, @namecode, @IncludePhone, @IncludeEmails) INSERT INTO @SR ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [Namecode]) SELECT [Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [Namecode] from [dbo].[ky_WDSearchMatterContacts3] (@fe, @search, @mattersearch, @includeMC, 1, @clientcode, @namecode, @IncludePhone, @IncludeEmails) IF @expand = 0 BEGIN INSERT INTO @SR2 ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [Namecode], [Cases], [CaseCode], [ClientName], [CaseDescription]) SELECT RES.[Name], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], Max(RES.[Case]) AS [Case], Max(RES.[ClientCode]) AS [ClientCode], Max(RES.[NameCode]) As [NameCode], COUNT(DISTINCT RES.[Case]) AS [Cases], '''' AS [CaseCode], '''' As [ClientName], '''' As [CaseDescription] FROM @SR RES GROUP BY RES.[Name], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email] ORDER BY RES.[Name], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email] END IF (@expand = 1) AND (@bycase = 1) BEGIN INSERT INTO @SR2 ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [Namecode], [Cases], [CaseCode], [ClientName], [CaseDescription]) SELECT '''' AS [Name], '''' AS [Address], '''' AS [Phone], '''' AS [Mobile], '''' AS [Fax], '''' AS [Email], '''' AS [Case], @clientcode AS [ClientCode], @namecode As [NameCode], 1 AS [Cases], RES.[Case] AS [CaseCode], '''' As [ClientName], '''' As [CaseDescription] FROM @SR RES GROUP BY RES.[Case] ORDER BY RES.[Case] UPDATE RES SET RES.[CaseDescription] = MS.[Description], RES.[ClientName] = MS.[Name] FROM @SR2 RES CROSS APPLY (SELECT MAT.[DESCRIPTION], CON.[Name] FROM [dbo].[matters] MAT INNER JOIN [dbo].[Contacts] CON ON CON.[Code] = MAT.[ClientCode] WHERE MAT.[Code] = RES.[CaseCode]) MS END IF (@expand = 1) AND (@bycase = 0) BEGIN INSERT INTO @SR2 ([Name], [Address], [Phone], [Mobile], [Fax], [Email], [Case], [ClientCode], [Namecode], [Cases], [CaseCode], [ClientName], [CaseDescription]) SELECT RES.[Name], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], Max(RES.[Case]) AS [Case], Max(RES.[ClientCode]) AS [ClientCode], Max(RES.[NameCode]) As [NameCode], 1 AS [Cases], '''' AS [CaseCode], '''' As [ClientName], '''' As [CaseDescription] FROM @SR RES GROUP BY RES.[Name], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], RES.[Case] ORDER BY RES.[Name], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], RES.[Case] END DELETE SR FROM @SR2 SR WHERE SR.[ID] < @start DELETE SR FROM @SR2 SR WHERE SR.[ID] >= @start + @pagesize RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_BGReverseTransfer] Script Date: 10/01/2014 16:17:02 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGReverseTransfer]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_BGReverseTransfer] (@BatchNo int) AS BEGIN DECLARE @CRBatchNo int DECLARE @NewBatchNo int DECLARE @LastBatchHPREF int DECLARE @LastBatchDPREF int DECLARE @OUTLAY char(10) DECLARE @OVAT char(1) DECLARE @BASECUR char(1) DECLARE @IECONVERT decimal(9, 6) DECLARE @DETVALUE decimal(17, 2) DECLARE @DETMATTER char(11) DECLARE @DETNo int DECLARE @DETTotal int DECLARE @INVOICENO int DECLARE @DETs TABLE ([seqno] int identity(1, 1), [DETVALUE] decimal(17, 2), [DETMATTER] VARCHAR(20)) SELECT @CRBatchNo = BHC.[CreditInvoiceNo] FROM [dbo].[BATCHH] BHC WHERE BHC.[BATCHNO] = @BatchNo SELECT @INVOICENO = CASE WHEN IsNumeric(BAH.[REF]) = 1 THEN convert(int, BAH.[REF]) ELSE 0 END FROM [dbo].[BATCHH] BAH WHERE BAH.[BATCHNO] = @BATCHNO UPDATE CON SET @NewBatchNo = IsNull(CON.[LASTBATCH], 0) + 1, CON.[LASTBATCH] = IsNull(CON.[LASTBATCH], 0) + 1, @LastBatchHPREF = IsNull(CON.[LASTPREF], 0) + 1, CON.[LASTPREF] = IsNull(CON.[LASTPREF], 0) + 1 FROM [dbo].[control] CON INSERT INTO [dbo].[BATCHH] ([BATCHNO], [POSTFWD], [TYPE], [CODE], [BRANCH], [PREF], [REF], [DATE], [FEE], [MATTER], [SUPP], [NARR], [VALUE], [SUBTOT], [POSTED], [CLIENTAC], [PERNO], [YEAR], [PAYEE], [OUTLAYTOT], [VATTOT], [FEETOT], [INVCR], [THIRDPARTY], [USERCODE], [ENTRYDATE], [CURRENCY], [CURRENCYVALUE], [CUROUTLAYTOT], [CURVATTOT], [CURFEETOT], [RECNO], [SINGLELINE], [TEMPLATE], [CHEQUEREQNO], [WRITEDOWN], [WRITEBACKHOURS], [WRITEBACKVALUE], [CORRECTCOPY]) select @NewBatchNo As [BATCHNO], BAH.[POSTFWD] AS [POSTFWD], convert(char(1), ''J'') AS [TYPE], convert(char(10), '''') AS [CODE], convert(char(1), '''') AS [BRANCH], @LastBatchHPREF AS [PREF], convert(char(10), ''xCompBill'') AS [REF], BCN.[DATE] AS [DATE], BAH.[FEE] AS [FEE], BAH.[MATTER] AS [MATTER], convert(char(10), '''') AS [SUPP], convert(char(150), ''Composite Bill Outlay Transfer'') AS [NARR], convert(decimal(17,2), 0) As [VALUE], convert(decimal(17,2), 0) As [SUBTOT], convert(char(1), ''Y'') AS [POSTED], convert(char(1), ''N'') AS [CLIENTAC], BAH.[PERNO] AS [PERNO], BAH.[YEAR] AS [YEAR], convert(char(60), '''') AS [PAYEE], convert(decimal(17,2), 0) AS [OUTLAYTOT], convert(decimal(17,2), 0) AS [VATTOT], convert(decimal(17,2), 0) AS [FEETOT], convert(char(1), ''I'') AS [INVCR], convert(char(1), ''N'') AS [THIRDPARTY], BAH.[USERCODE] AS [USERCODE], convert(datetime, convert(varchar, getDate(), 106)) AS [ENTRYDATE], BAH.[CURRENCY] AS [CURRENCY], convert(decimal(17,2), 0) AS [CURRENCYVALUE], convert(decimal(17,2), 0) AS [CUROUTLAYTOT], convert(decimal(17,2), 0) AS [CURVATTOT], convert(decimal(17,2), 0) AS [CURFEETOT], convert(int, 0) AS [RECNO], convert(char(1), '''') AS [SINGLELINE], convert(char(10), '''') AS [TEMPLATE], convert(int, 0) AS [CHEQUEREQNO], convert(datetime, NULL) AS [WRITEDOWN], convert(decimal(7,2), 0) AS [WRITEBACKHOURS], convert(decimal(13,2), 0) AS [WRITEBACKVALUE], convert(char(1), 0) AS [CORRECTCOPY] FROM [dbo].[BatchH] BAH INNER JOIN [dbo].[BatchH] BCN ON BCN.[BATCHNO] = @CRBatchNo WHERE BAH.[BATCHNO] = @BatchNo INSERT INTO @DETs ([DETMATTER], [DETVALUE]) SELECT BGM.[MATTER], -SUM(BGD.[BillNow]) AS [BILLNOW] FROM [dbo].[ky_CompBillMatterByBatch](@CRBatchNo) BGM INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGM.[ID] AND BGD.[Matter] = BGM.[Matter] GROUP BY BGM.[Matter] SELECT @DETTotal = COUNT(1) FROM @DETs SET @DETNo = 1 WHILE @DETNo <= @DETTotal BEGIN SELECT @DETMATTER = DET.[DETMATTER], @DETVALUE = DET.[DETVALUE] FROM @DETs DET WHERE DET.[seqno] = @DETNo UPDATE CON SET @LastBatchDPREF = IsNull(CON.[LASTPREF], 0) + 1, CON.[LASTPREF] = IsNull(CON.[LASTPREF], 0) + 1, @OUTLAY = CON.[OUTLAY], @OVAT = CON.[VATEXCLUDE], @BASECUR = CON.[BASECURRENCY], @IECONVERT = CON.[IECONVERT] FROM [dbo].[control] CON INSERT INTO [dbo].[BatchDetails] ([BATCHNO], [TYPE], [CODE], [PREF], [REF], [DATE], [FEE], [BRANCH], [SUPP], [NARR], [MATTER], [VALUE], [VATCODE], [VATVAL], [CLIENTYN], [OUTLAY], [PENDING], [YEAR], [PERNO], [ENTRYCURRENCY], [CURRENCYVALUE], [CURRENCYVAT], [OUTLAYCODE], [THIRDPARTY], [PAYEE], [HEADPREF], [HEADBATCH], [ALLOCBATCH], [ALLOCPREF], [ALLOCREF], [ALLOCVALUE], [ALLOCWRITEOFF], [PSUPP], [UNDETAKING]) SELECT @NewBatchNo As [BATCHNO], convert(char(1), ''J'') AS [TYPE], @OUTLAY AS [CODE], @LastBatchDPREF AS [PREF], convert(char(10), ''xCompTFer'') AS [REF], BAH.[DATE] AS [DATE], convert(char(3), '''') AS FEE, convert(char(1), '''') AS BRANCH, convert(char(10), '''') AS [SUPP], convert(char(150), ''COMP: CREDIT Outlay Transfer from '' + BAH.[MATTER]) AS [NARR], convert(char(11), @DETMATTER) AS [MATTER], -@DETVALUE As [VALUE], @OVAT AS [VATCODE], convert(decimal(17,2), 0) As [VATVAL], convert(char(1), ''N'') AS [CLIENTYN], convert(char(1), ''O'') AS [OUTLAY], convert(char(1), '''') AS [PENDING], BAH.[YEAR] AS [YEAR], BAH.[PERNO] AS [PERNO], @BASECUR AS [ENTRYCURRENCY], convert(decimal(17, 2), round((-@DETVALUE) * @IECONVERT, 2)) AS [CURRENCYVALUE], convert(decimal(17,2), 0) As [CURRENCYVAT], convert(char(4), '''') AS [OUTLAYCODE], convert(char(1), '''') AS [THIRDPARTY], convert(char(60), '''') AS [PAYEE], convert(int, 0) AS [HEADPREF], convert(int, 0) AS [HEADBATCH], convert(int, 0) AS [ALLOCBATCH], convert(int, 0) AS [ALLOCPREF], convert(char(10), '''') AS [ALLOCREF], convert(decimal(17, 2), 0) AS [ALLOCVALUE], convert(char(1), '''') AS [ALLOCWRITEOFF], convert(char(10), '''') AS [PSUPP], convert(smallint, 0) AS [UNDETAKING] FROM [dbo].[BATCHH] BAH WHERE BAH.[PREF] = @LastBatchHPRef --UPDATE CON -- SET @LastBatchDPREF = IsNull(CON.[LASTPREF], 0) + 1, -- CON.[LASTPREF] = IsNull(CON.[LASTPREF], 0) + 1 -- FROM [dbo].[control] CON 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]) SELECT convert(char(11), @DETMATTER) AS [MATTER], @NewBatchNo As [BATCHNO], @LastBatchDPREF AS [PREF], BAH.[DATE] AS [DATE], convert(char(10), ''xCompTFer'') AS [REF], convert(char(80), ''COMP: CREDIT Outlay Transfer from '' + BAH.[MATTER]) AS [NARR], convert(decimal(17, 2), 0) AS [VALUED], convert(decimal(17, 2), -@DETVALUE) AS [VALUEO], convert(decimal(17, 2), 0) AS [VALUEC], convert(char(3), '''') AS FEE, BAH.[PERNO] AS [PER], BAH.[YEAR] AS [YEAR], BAH.[DATE] AS [ENTRYDATE], MAT.[CLIENTCODE] AS [CLIENT], convert(decimal(17, 2), 0) AS [VALUECC], convert(decimal(17, 2), 0) AS [VALUECD], convert(char(4), '''') AS [DEPOSITTYPE], convert(decimal(17, 2), 0) AS [CURVALUED], convert(decimal(17, 2), round((-@DETVALUE) * @IECONVERT, 2)) AS [CURVALUEO], convert(decimal(17, 2), 0) AS [CURVALUED], convert(decimal(17, 2), 0) AS [CURVALUECC], convert(decimal(17, 2), 0) AS [CURVALUECD], convert(char(1), '''') AS [BILLED], BAH.[YEAR] AS [BILLINGYEAR], BAH.[PERNO] AS [BILLINGPERIOD], BAH.[DATE] AS [BILLINGDATE], convert(decimal(17, 2), -@DETVALUE) AS [BILLEDOUTLAYVALUE], @INVOICENO AS [Invoiceno], convert(int, 2) AS [IncludeInBill] FROM [dbo].[BATCHH] BAH INNER JOIN [dbo].[MATTERS] MAT ON MAT.[CODE] = @DETMATTER WHERE BAH.[PREF] = @LastBatchHPRef --UPDATE CON -- SET @LastBatchDPREF = IsNull(CON.[LASTPREF], 0) + 1, -- CON.[LASTPREF] = IsNull(CON.[LASTPREF], 0) + 1 -- FROM [dbo].[control] CON INSERT INTO [dbo].[NominalLedger] ([CODE], [BRANCH], [BATCHNO], [PREF], [DATE], [REF], [NARR], [MATTER], [SUPP], [FEE], [VALUE], [CURRENCYVALUE], [PER], [YEAR], [ENTRYDATE], [RECNO]) SELECT @OUTLAY AS [CODE], convert(char(1), '''') AS [BRANCH], @NewBatchNo As [BATCHNO], @LastBatchDPREF AS [PREF], BAH.[DATE] AS [DATE], convert(char(10), ''xCompTFer'') AS [REF], convert(char(100), ''COMP: CREDIT Outlay Transfer from '' + BAH.[MATTER]) AS [NARR], convert(char(11), @DETMATTER) AS [MATTER], convert(char(10), '''') AS [SUPP], convert(char(3), '''') AS FEE, convert(decimal(17, 2), -@DETVALUE) AS [VALUE], convert(decimal(17, 2), round((-@DETVALUE) * @IECONVERT, 2)) AS [CURRENCYVALUE], BAH.[PERNO] AS [PER], BAH.[YEAR] AS [YEAR], BAH.[DATE] AS [ENTRYDATE], convert(int, 0) AS [RECNO] FROM [dbo].[BATCHH] BAH INNER JOIN [dbo].[MATTERS] MAT ON MAT.[CODE] = @DETMATTER WHERE BAH.[PREF] = @LastBatchHPRef UPDATE MAT SET MAT.[OutlayBal] = MAT.[OutlayBal] - @DETVALUE, MAT.[CurOutlayBal] = round((MAT.[OutlayBal] - @DETVALUE) * @IECONVERT, 2), MAT.[OutlayBalFwd] = MAT.[OutlayBalFwd] - @DETVALUE, MAT.[CurOutlayBalFwd] = round((MAT.[OutlayBalFwd] - @DETVALUE) * @IECONVERT, 2) FROM [dbo].[matters] MAT WHERE MAT.[CODE] = @DETMATTER SET @DETNo = @DETNo + 1 END UPDATE CON SET @LastBatchDPREF = IsNull(CON.[LASTPREF], 0) + 1, CON.[LASTPREF] = IsNull(CON.[LASTPREF], 0) + 1, @OUTLAY = CON.[OUTLAY], @OVAT = CON.[VATEXCLUDE], @BASECUR = CON.[BASECURRENCY], @IECONVERT = CON.[IECONVERT] FROM [dbo].[control] CON INSERT INTO [dbo].[BatchDetails] ([BATCHNO], [TYPE], [CODE], [PREF], [REF], [DATE], [FEE], [BRANCH], [SUPP], [NARR], [MATTER], [VALUE], [VATCODE], [VATVAL], [CLIENTYN], [OUTLAY], [PENDING], [YEAR], [PERNO], [ENTRYCURRENCY], [CURRENCYVALUE], [CURRENCYVAT], [OUTLAYCODE], [THIRDPARTY], [PAYEE], [HEADPREF], [HEADBATCH], [ALLOCBATCH], [ALLOCPREF], [ALLOCREF], [ALLOCVALUE], [ALLOCWRITEOFF], [PSUPP], [UNDETAKING]) SELECT @NewBatchNo As [BATCHNO], convert(char(1), ''J'') AS [TYPE], @OUTLAY AS [CODE], @LastBatchDPREF AS [PREF], convert(char(10), ''xCompTFer'') AS [REF], BAH.[DATE] AS [DATE], convert(char(3), '''') AS FEE, convert(char(1), '''') AS BRANCH, convert(char(10), '''') AS [SUPP], convert(char(150), ''Composite Billing'') AS [NARR], BAH.[MATTER] AS [MATTER], TOT.[BILLNOW] As [VALUE], @OVAT AS [VATCODE], convert(decimal(17,2), 0) As [VATVAL], convert(char(1), ''N'') AS [CLIENTYN], convert(char(1), ''O'') AS [OUTLAY], convert(char(1), '''') AS [PENDING], BAH.[YEAR] AS [YEAR], BAH.[PERNO] AS [PERNO], @BASECUR AS [ENTRYCURRENCY], convert(decimal(17, 2), round((TOT.[BILLNOW]) * @IECONVERT, 2)) AS [CURRENCYVALUE], convert(decimal(17,2), 0) As [CURRENCYVAT], convert(char(4), '''') AS [OUTLAYCODE], convert(char(1), '''') AS [THIRDPARTY], convert(char(60), '''') AS [PAYEE], convert(int, 0) AS [HEADPREF], convert(int, 0) AS [HEADBATCH], convert(int, 0) AS [ALLOCBATCH], convert(int, 0) AS [ALLOCPREF], convert(char(10), '''') AS [ALLOCREF], convert(decimal(17, 2), 0) AS [ALLOCVALUE], convert(char(1), '''') AS [ALLOCWRITEOFF], convert(char(10), '''') AS [PSUPP], convert(smallint, 0) AS [UNDETAKING] FROM [dbo].[BATCHH] BAH CROSS JOIN( SELECT -SUM(BGD.[BillNow]) AS [BILLNOW] FROM [dbo].[ky_CompBillMatterByBatch](@CRBatchNo) BGM INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGM.[ID] AND BGD.[Matter] = BGM.[Matter]) TOT WHERE BAH.[PREF] = @LastBatchHPRef --UPDATE CON -- SET @LastBatchDPREF = IsNull(CON.[LASTPREF], 0) + 1, -- CON.[LASTPREF] = IsNull(CON.[LASTPREF], 0) + 1 -- FROM [dbo].[control] CON 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]) SELECT convert(char(11), BAH.[MATTER]) AS [MATTER], @NewBatchNo As [BATCHNO], @LastBatchDPREF AS [PREF], BAH.[DATE] AS [DATE], convert(char(10), ''xCompTFer'') AS [REF], convert(char(80), ''Composite Billing'') AS [NARR], convert(decimal(17, 2), 0) AS [VALUED], convert(decimal(17, 2), ISNULL(TOT.[BILLNOW], 0)) AS [VALUEO], convert(decimal(17, 2), 0) AS [VALUEC], convert(char(3), '''') AS FEE, BAH.[PERNO] AS [PER], BAH.[YEAR] AS [YEAR], BAH.[DATE] AS [ENTRYDATE], MAT.[CLIENTCODE] AS [CLIENT], convert(decimal(17, 2), 0) AS [VALUECC], convert(decimal(17, 2), 0) AS [VALUECD], convert(char(4), '''') AS [DEPOSITTYPE], convert(decimal(17, 2), 0) AS [CURVALUED], convert(decimal(17, 2), round((TOT.[BILLNOW]) * @IECONVERT, 2)) AS [CURVALUEO], convert(decimal(17, 2), 0) AS [CURVALUED], convert(decimal(17, 2), 0) AS [CURVALUECC], convert(decimal(17, 2), 0) AS [CURVALUECD], convert(char(1), '''') AS [BILLED], BAH.[YEAR] AS [BILLINGYEAR], BAH.[PERNO] AS [BILLINGPERIOD], BAH.[DATE] AS [BILLINGDATE], convert(decimal(17, 2), TOT.[BILLNOW]) AS [BILLEDOUTLAYVALUE], @INVOICENO AS [Invoiceno], convert(int, 2) AS [IncludeInBill] FROM [dbo].[BATCHH] BAH INNER JOIN [dbo].[MATTERS] MAT ON MAT.[CODE] = BAH.[MATTER] CROSS JOIN( SELECT -ISNULL(SUM(ISNULL(BGD.[BillNow], 0)), 0) AS [BILLNOW] FROM [dbo].[ky_CompBillMatterByBatch](@CRBatchNo) BGM INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGM.[ID] AND BGD.[Matter] = BGM.[Matter]) TOT WHERE BAH.[PREF] = @LastBatchHPRef -- UPDATE CON -- SET @LastBatchDPREF = IsNull(CON.[LASTPREF], 0) + 1, -- CON.[LASTPREF] = IsNull(CON.[LASTPREF], 0) + 1 -- FROM [dbo].[control] CON INSERT INTO [dbo].[NominalLedger] ([CODE], [BRANCH], [BATCHNO], [PREF], [DATE], [REF], [NARR], [MATTER], [SUPP], [FEE], [VALUE], [CURRENCYVALUE], [PER], [YEAR], [ENTRYDATE], [RECNO]) SELECT @OUTLAY AS [CODE], convert(char(1), '''') AS [BRANCH], @NewBatchNo As [BATCHNO], @LastBatchDPREF AS [PREF], BAH.[DATE] AS [DATE], convert(char(10), ''xCompTFer'') AS [REF], convert(char(100), ''Composite Billing'') AS [NARR], convert(char(11), BAH.[MATTER]) AS [MATTER], convert(char(10), '''') AS [SUPP], convert(char(3), '''') AS FEE, convert(decimal(17, 2), TOT.[BILLNOW]) AS [VALUE], convert(decimal(17, 2), round((TOT.[BILLNOW]) * @IECONVERT, 2)) AS [CURRENCYVALUE], BAH.[PERNO] AS [PER], BAH.[YEAR] AS [YEAR], BAH.[DATE] AS [ENTRYDATE], convert(int, 0) AS [RECNO] FROM [dbo].[BATCHH] BAH INNER JOIN [dbo].[MATTERS] MAT ON MAT.[CODE] = BAH.MATTER CROSS JOIN( SELECT -SUM(BGD.[BillNow]) AS [BILLNOW] FROM [dbo].[ky_CompBillMatterByBatch](@CRBatchNo) BGM INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGM.[ID] AND BGD.[Matter] = BGM.[Matter]) TOT WHERE BAH.[PREF] = @LastBatchHPRef UPDATE MAT SET MAT.[OutlayBal] = MAT.[OutlayBal] + ISNULL(TOT.[BILLNOW], 0), MAT.[CurOutlayBal] = round((MAT.[OutlayBal] + TOT.[BILLNOW]) * @IECONVERT, 2), MAT.[OutlayBalFwd] = MAT.[OutlayBalFwd] + TOT.[BILLNOW], MAT.[CurOutlayBalFwd] = round((MAT.[OutlayBalFwd] + TOT.[BILLNOW]) * @IECONVERT, 2) FROM [dbo].[BATCHH] BAH INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = BAH.[MATTER] CROSS JOIN( SELECT -ISNULL(SUM(ISNULL(BGD.[BillNow], 0)), 0) AS [BILLNOW] FROM [dbo].[ky_CompBillMatterByBatch](@CRBatchNo) BGM INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGM.[ID] AND BGD.[Matter] = BGM.[Matter]) TOT WHERE BAH.[PREF] = @LastBatchHPRef END ' END GO /****** Object: StoredProcedure [dbo].[ky_BGTransfer] Script Date: 10/01/2014 16:17:02 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGTransfer]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_BGTransfer] (@BatchNo int) AS BEGIN DECLARE @NewBatchNo int DECLARE @LastBatchHPREF int DECLARE @LastBatchDPREF int DECLARE @OUTLAY char(10) DECLARE @OVAT char(1) DECLARE @BASECUR char(1) DECLARE @IECONVERT decimal(9, 6) DECLARE @DETVALUE decimal(17, 2) DECLARE @DETMATTER VARCHAR(20) DECLARE @DETNo int DECLARE @DETTotal int DECLARE @INVOICENO int DECLARE @DETs TABLE ([seqno] int identity(1, 1), [DETVALUE] decimal(17, 2), [DETMATTER] VARCHAR(20)) SELECT @INVOICENO = CASE WHEN IsNumeric(BAH.[REF]) = 1 THEN convert(int, BAH.[REF]) ELSE 0 END FROM [dbo].[BATCHH] BAH WHERE BAH.[BATCHNO] = @BATCHNO UPDATE CON SET @NewBatchNo = IsNull(CON.[LASTBATCH], 0) + 1, CON.[LASTBATCH] = IsNull(CON.[LASTBATCH], 0) + 1, @LastBatchHPREF = IsNull(CON.[LASTPREF], 0) + 1, CON.[LASTPREF] = IsNull(CON.[LASTPREF], 0) + 1 FROM [dbo].[control] CON INSERT INTO [dbo].[BATCHH] ([BATCHNO], [POSTFWD], [TYPE], [CODE], [BRANCH], [PREF], [REF], [DATE], [FEE], [MATTER], [SUPP], [NARR], [VALUE], [SUBTOT], [POSTED], [CLIENTAC], [PERNO], [YEAR], [PAYEE], [OUTLAYTOT], [VATTOT], [FEETOT], [INVCR], [THIRDPARTY], [USERCODE], [ENTRYDATE], [CURRENCY], [CURRENCYVALUE], [CUROUTLAYTOT], [CURVATTOT], [CURFEETOT], [RECNO], [SINGLELINE], [TEMPLATE], [CHEQUEREQNO], [WRITEDOWN], [WRITEBACKHOURS], [WRITEBACKVALUE], [CORRECTCOPY]) select @NewBatchNo As [BATCHNO], BAH.[POSTFWD] AS [POSTFWD], convert(char(1), ''J'') AS [TYPE], convert(char(10), '''') AS [CODE], convert(char(1), '''') AS [BRANCH], @LastBatchHPREF AS [PREF], convert(char(10), ''xCompBill'') AS [REF], BAH.[DATE] AS [DATE], BAH.[FEE] AS [FEE], BAH.[MATTER] AS [MATTER], convert(char(10), '''') AS [SUPP], convert(char(150), ''Composite Bill Outlay Transfer'') AS [NARR], convert(decimal(17,2), 0) As [VALUE], convert(decimal(17,2), 0) As [SUBTOT], convert(char(1), ''Y'') AS [POSTED], convert(char(1), ''N'') AS [CLIENTAC], BAH.[PERNO] AS [PERNO], BAH.[YEAR] AS [YEAR], convert(char(60), '''') AS [PAYEE], convert(decimal(17,2), 0) AS [OUTLAYTOT], convert(decimal(17,2), 0) AS [VATTOT], convert(decimal(17,2), 0) AS [FEETOT], convert(char(1), ''I'') AS [INVCR], convert(char(1), ''N'') AS [THIRDPARTY], BAH.[USERCODE] AS [USERCODE], convert(datetime, convert(varchar, getDate(), 106)) AS [ENTRYDATE], BAH.[CURRENCY] AS [CURRENCY], convert(decimal(17,2), 0) AS [CURRENCYVALUE], convert(decimal(17,2), 0) AS [CUROUTLAYTOT], convert(decimal(17,2), 0) AS [CURVATTOT], convert(decimal(17,2), 0) AS [CURFEETOT], convert(int, 0) AS [RECNO], convert(char(1), '''') AS [SINGLELINE], convert(char(10), '''') AS [TEMPLATE], convert(int, 0) AS [CHEQUEREQNO], convert(datetime, NULL) AS [WRITEDOWN], convert(decimal(7,2), 0) AS [WRITEBACKHOURS], convert(decimal(13,2), 0) AS [WRITEBACKVALUE], convert(char(1), 0) AS [CORRECTCOPY] FROM [dbo].[BatchH] BAH WHERE [BATCHNO] = @BatchNo INSERT INTO @DETs ([DETMATTER], [DETVALUE]) SELECT BGM.[MATTER], SUM(BGD.[BillNow]) AS [BILLNOW] FROM [dbo].[ky_CompBillMatterByBatch](@BatchNo) BGM INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGM.[ID] AND BGD.[Matter] = BGM.[Matter] GROUP BY BGM.[Matter] SELECT @DETTotal = COUNT(1) FROM @DETs SET @DETNo = 1 WHILE @DETNo <= @DETTotal BEGIN SELECT @DETMATTER = DET.[DETMATTER], @DETVALUE = DET.[DETVALUE] FROM @DETs DET WHERE DET.[seqno] = @DETNo UPDATE CON SET @LastBatchDPREF = IsNull(CON.[LASTPREF], 0) + 1, CON.[LASTPREF] = IsNull(CON.[LASTPREF], 0) + 1, @OUTLAY = CON.[OUTLAY], @OVAT = CON.[VATEXCLUDE], @BASECUR = CON.[BASECURRENCY], @IECONVERT = CON.[IECONVERT] FROM [dbo].[control] CON INSERT INTO [dbo].[BatchDetails] ([BATCHNO], [TYPE], [CODE], [PREF], [REF], [DATE], [FEE], [BRANCH], [SUPP], [NARR], [MATTER], [VALUE], [VATCODE], [VATVAL], [CLIENTYN], [OUTLAY], [PENDING], [YEAR], [PERNO], [ENTRYCURRENCY], [CURRENCYVALUE], [CURRENCYVAT], [OUTLAYCODE], [THIRDPARTY], [PAYEE], [HEADPREF], [HEADBATCH], [ALLOCBATCH], [ALLOCPREF], [ALLOCREF], [ALLOCVALUE], [ALLOCWRITEOFF], [PSUPP], [UNDETAKING]) SELECT @NewBatchNo As [BATCHNO], convert(char(1), ''J'') AS [TYPE], @OUTLAY AS [CODE], @LastBatchDPREF AS [PREF], convert(char(10), ''xCompTFer'') AS [REF], BAH.[DATE] AS [DATE], convert(char(3), '''') AS FEE, convert(char(1), '''') AS BRANCH, convert(char(10), '''') AS [SUPP], convert(char(150), ''COMP: Outlay Transfer to '' + BAH.[MATTER]) AS [NARR], convert(char(11), @DETMATTER) AS [MATTER], -@DETVALUE As [VALUE], @OVAT AS [VATCODE], convert(decimal(17,2), 0) As [VATVAL], convert(char(1), ''N'') AS [CLIENTYN], convert(char(1), ''O'') AS [OUTLAY], convert(char(1), '''') AS [PENDING], BAH.[YEAR] AS [YEAR], BAH.[PERNO] AS [PERNO], @BASECUR AS [ENTRYCURRENCY], convert(decimal(17, 2), round((-@DETVALUE) * @IECONVERT, 2)) AS [CURRENCYVALUE], convert(decimal(17,2), 0) As [CURRENCYVAT], convert(char(4), '''') AS [OUTLAYCODE], convert(char(1), '''') AS [THIRDPARTY], convert(char(60), '''') AS [PAYEE], convert(int, 0) AS [HEADPREF], convert(int, 0) AS [HEADBATCH], convert(int, 0) AS [ALLOCBATCH], convert(int, 0) AS [ALLOCPREF], convert(char(10), '''') AS [ALLOCREF], convert(decimal(17, 2), 0) AS [ALLOCVALUE], convert(char(1), '''') AS [ALLOCWRITEOFF], convert(char(10), '''') AS [PSUPP], convert(smallint, 0) AS [UNDETAKING] FROM [dbo].[BATCHH] BAH WHERE BAH.[PREF] = @LastBatchHPRef --UPDATE CON -- SET @LastBatchDPREF = IsNull(CON.[LASTPREF], 0) + 1, -- CON.[LASTPREF] = IsNull(CON.[LASTPREF], 0) + 1 -- FROM [dbo].[control] CON 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]) SELECT convert(char(11), @DETMATTER) AS [MATTER], @NewBatchNo As [BATCHNO], @LastBatchDPREF AS [PREF], BAH.[DATE] AS [DATE], convert(char(10), ''xCompTFer'') AS [REF], convert(char(80), ''COMP: Outlay Transfer to '' + BAH.[MATTER]) AS [NARR], convert(decimal(17, 2), 0) AS [VALUED], convert(decimal(17, 2), -@DETVALUE) AS [VALUEO], convert(decimal(17, 2), 0) AS [VALUEC], convert(char(3), '''') AS FEE, BAH.[PERNO] AS [PER], BAH.[YEAR] AS [YEAR], BAH.[DATE] AS [ENTRYDATE], MAT.[CLIENTCODE] AS [CLIENT], convert(decimal(17, 2), 0) AS [VALUECC], convert(decimal(17, 2), 0) AS [VALUECD], convert(char(4), '''') AS [DEPOSITTYPE], convert(decimal(17, 2), 0) AS [CURVALUED], convert(decimal(17, 2), round((-@DETVALUE) * @IECONVERT, 2)) AS [CURVALUEO], convert(decimal(17, 2), 0) AS [CURVALUED], convert(decimal(17, 2), 0) AS [CURVALUECC], convert(decimal(17, 2), 0) AS [CURVALUECD], convert(char(1), '''') AS [BILLED], BAH.[YEAR] AS [BILLINGYEAR], BAH.[PERNO] AS [BILLINGPERIOD], BAH.[DATE] AS [BILLINGDATE], convert(decimal(17, 2), -@DETVALUE) AS [BILLEDOUTLAYVALUE], @INVOICENO AS [Invoiceno], convert(int, 2) AS [IncludeInBill] FROM [dbo].[BATCHH] BAH INNER JOIN [dbo].[MATTERS] MAT ON MAT.[CODE] = @DETMATTER WHERE BAH.[PREF] = @LastBatchHPRef --UPDATE CON -- SET @LastBatchDPREF = IsNull(CON.[LASTPREF], 0) + 1, -- CON.[LASTPREF] = IsNull(CON.[LASTPREF], 0) + 1 -- FROM [dbo].[control] CON INSERT INTO [dbo].[NominalLedger] ([CODE], [BRANCH], [BATCHNO], [PREF], [DATE], [REF], [NARR], [MATTER], [SUPP], [FEE], [VALUE], [CURRENCYVALUE], [PER], [YEAR], [ENTRYDATE], [RECNO]) SELECT @OUTLAY AS [CODE], convert(char(1), '''') AS [BRANCH], @NewBatchNo As [BATCHNO], @LastBatchDPREF AS [PREF], BAH.[DATE] AS [DATE], convert(char(10), ''xCompTFer'') AS [REF], convert(char(100), ''COMP: Outlay Transfer to '' + BAH.[MATTER]) AS [NARR], convert(char(11), @DETMATTER) AS [MATTER], convert(char(10), '''') AS [SUPP], convert(char(3), '''') AS FEE, convert(decimal(17, 2), -@DETVALUE) AS [VALUE], convert(decimal(17, 2), round((-@DETVALUE) * @IECONVERT, 2)) AS [CURRENCYVALUE], BAH.[PERNO] AS [PER], BAH.[YEAR] AS [YEAR], BAH.[DATE] AS [ENTRYDATE], convert(int, 0) AS [RECNO] FROM [dbo].[BATCHH] BAH INNER JOIN [dbo].[MATTERS] MAT ON MAT.[CODE] = @DETMATTER WHERE BAH.[PREF] = @LastBatchHPRef UPDATE MAT SET MAT.[OutlayBal] = MAT.[OutlayBal] - @DETVALUE, MAT.[CurOutlayBal] = round((MAT.[OutlayBal] - @DETVALUE) * @IECONVERT, 2), MAT.[OutlayBalFwd] = MAT.[OutlayBalFwd] - @DETVALUE, MAT.[CurOutlayBalFwd] = round((MAT.[OutlayBalFwd] - @DETVALUE) * @IECONVERT, 2) FROM [dbo].[matters] MAT WHERE MAT.[CODE] = @DETMATTER SET @DETNo = @DETNo + 1 END UPDATE CON SET @LastBatchDPREF = IsNull(CON.[LASTPREF], 0) + 1, CON.[LASTPREF] = IsNull(CON.[LASTPREF], 0) + 1, @OUTLAY = CON.[OUTLAY], @OVAT = CON.[VATEXCLUDE], @BASECUR = CON.[BASECURRENCY], @IECONVERT = CON.[IECONVERT] FROM [dbo].[control] CON INSERT INTO [dbo].[BatchDetails] ([BATCHNO], [TYPE], [CODE], [PREF], [REF], [DATE], [FEE], [BRANCH], [SUPP], [NARR], [MATTER], [VALUE], [VATCODE], [VATVAL], [CLIENTYN], [OUTLAY], [PENDING], [YEAR], [PERNO], [ENTRYCURRENCY], [CURRENCYVALUE], [CURRENCYVAT], [OUTLAYCODE], [THIRDPARTY], [PAYEE], [HEADPREF], [HEADBATCH], [ALLOCBATCH], [ALLOCPREF], [ALLOCREF], [ALLOCVALUE], [ALLOCWRITEOFF], [PSUPP], [UNDETAKING]) SELECT @NewBatchNo As [BATCHNO], convert(char(1), ''J'') AS [TYPE], @OUTLAY AS [CODE], @LastBatchDPREF AS [PREF], convert(char(10), ''xCompTFer'') AS [REF], BAH.[DATE] AS [DATE], convert(char(3), '''') AS FEE, convert(char(1), '''') AS BRANCH, convert(char(10), '''') AS [SUPP], convert(char(150), ''Composite Billing'') AS [NARR], BAH.[MATTER] AS [MATTER], TOT.[BILLNOW] As [VALUE], @OVAT AS [VATCODE], convert(decimal(17,2), 0) As [VATVAL], convert(char(1), ''N'') AS [CLIENTYN], convert(char(1), ''O'') AS [OUTLAY], convert(char(1), '''') AS [PENDING], BAH.[YEAR] AS [YEAR], BAH.[PERNO] AS [PERNO], @BASECUR AS [ENTRYCURRENCY], convert(decimal(17, 2), round((TOT.[BILLNOW]) * @IECONVERT, 2)) AS [CURRENCYVALUE], convert(decimal(17,2), 0) As [CURRENCYVAT], convert(char(4), '''') AS [OUTLAYCODE], convert(char(1), '''') AS [THIRDPARTY], convert(char(60), '''') AS [PAYEE], convert(int, 0) AS [HEADPREF], convert(int, 0) AS [HEADBATCH], convert(int, 0) AS [ALLOCBATCH], convert(int, 0) AS [ALLOCPREF], convert(char(10), '''') AS [ALLOCREF], convert(decimal(17, 2), 0) AS [ALLOCVALUE], convert(char(1), '''') AS [ALLOCWRITEOFF], convert(char(10), '''') AS [PSUPP], convert(smallint, 0) AS [UNDETAKING] FROM [dbo].[BATCHH] BAH CROSS JOIN( SELECT SUM(BGD.[BillNow]) AS [BILLNOW] FROM [dbo].[ky_CompBillMatterByBatch](@BatchNo) BGM INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGM.[ID] AND BGD.[Matter] = BGM.[Matter]) TOT WHERE BAH.[PREF] = @LastBatchHPRef --UPDATE CON -- SET @LastBatchDPREF = IsNull(CON.[LASTPREF], 0) + 1, -- CON.[LASTPREF] = IsNull(CON.[LASTPREF], 0) + 1 -- FROM [dbo].[control] CON 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]) SELECT convert(char(11), BAH.[MATTER]) AS [MATTER], @NewBatchNo As [BATCHNO], @LastBatchDPREF AS [PREF], BAH.[DATE] AS [DATE], convert(char(10), ''xCompTFer'') AS [REF], convert(char(80), ''Composite Billing'') AS [NARR], convert(decimal(17, 2), 0) AS [VALUED], convert(decimal(17, 2), TOT.[BILLNOW]) AS [VALUEO], convert(decimal(17, 2), 0) AS [VALUEC], convert(char(3), '''') AS FEE, BAH.[PERNO] AS [PER], BAH.[YEAR] AS [YEAR], BAH.[DATE] AS [ENTRYDATE], MAT.[CLIENTCODE] AS [CLIENT], convert(decimal(17, 2), 0) AS [VALUECC], convert(decimal(17, 2), 0) AS [VALUECD], convert(char(4), '''') AS [DEPOSITTYPE], convert(decimal(17, 2), 0) AS [CURVALUED], convert(decimal(17, 2), round((TOT.[BILLNOW]) * @IECONVERT, 2)) AS [CURVALUEO], convert(decimal(17, 2), 0) AS [CURVALUED], convert(decimal(17, 2), 0) AS [CURVALUECC], convert(decimal(17, 2), 0) AS [CURVALUECD], convert(char(1), '''') AS [BILLED], BAH.[YEAR] AS [BILLINGYEAR], BAH.[PERNO] AS [BILLINGPERIOD], BAH.[DATE] AS [BILLINGDATE], convert(decimal(17, 2), TOT.[BILLNOW]) AS [BILLEDOUTLAYVALUE], @INVOICENO AS [Invoiceno], convert(int, 2) AS [IncludeInBill] FROM [dbo].[BATCHH] BAH INNER JOIN [dbo].[MATTERS] MAT ON MAT.[CODE] = BAH.[MATTER] CROSS JOIN( SELECT SUM(BGD.[BillNow]) AS [BILLNOW] FROM [dbo].[ky_CompBillMatterByBatch](@BatchNo) BGM INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGM.[ID] AND BGD.[Matter] = BGM.[Matter]) TOT WHERE BAH.[PREF] = @LastBatchHPRef -- UPDATE CON -- SET @LastBatchDPREF = IsNull(CON.[LASTPREF], 0) + 1, -- CON.[LASTPREF] = IsNull(CON.[LASTPREF], 0) + 1 -- FROM [dbo].[control] CON INSERT INTO [dbo].[NominalLedger] ([CODE], [BRANCH], [BATCHNO], [PREF], [DATE], [REF], [NARR], [MATTER], [SUPP], [FEE], [VALUE], [CURRENCYVALUE], [PER], [YEAR], [ENTRYDATE], [RECNO]) SELECT @OUTLAY AS [CODE], convert(char(1), '''') AS [BRANCH], @NewBatchNo As [BATCHNO], @LastBatchDPREF AS [PREF], BAH.[DATE] AS [DATE], convert(char(10), ''xCompTFer'') AS [REF], convert(char(100), ''Composite Billing'') AS [NARR], convert(char(11), BAH.[MATTER]) AS [MATTER], convert(char(10), '''') AS [SUPP], convert(char(3), '''') AS FEE, convert(decimal(17, 2), TOT.[BILLNOW]) AS [VALUE], convert(decimal(17, 2), round((TOT.[BILLNOW]) * @IECONVERT, 2)) AS [CURRENCYVALUE], BAH.[PERNO] AS [PER], BAH.[YEAR] AS [YEAR], BAH.[DATE] AS [ENTRYDATE], convert(int, 0) AS [RECNO] FROM [dbo].[BATCHH] BAH INNER JOIN [dbo].[MATTERS] MAT ON MAT.[CODE] = BAH.MATTER CROSS JOIN( SELECT ISNULL(SUM(ISNULL(BGD.[BillNow], 0)), 0) AS [BILLNOW] FROM [dbo].[ky_CompBillMatterByBatch](@BatchNo) BGM INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGM.[ID] AND BGD.[Matter] = BGM.[Matter]) TOT WHERE BAH.[PREF] = @LastBatchHPRef UPDATE MAT SET MAT.[OutlayBal] = MAT.[OutlayBal] + ISNULL(TOT.[BILLNOW], 0), MAT.[CurOutlayBal] = round((MAT.[OutlayBal] + TOT.[BILLNOW]) * @IECONVERT, 2), MAT.[OutlayBalFwd] = MAT.[OutlayBalFwd] + TOT.[BILLNOW], MAT.[CurOutlayBalFwd] = round((MAT.[OutlayBalFwd] + TOT.[BILLNOW]) * @IECONVERT, 2) FROM [dbo].[BATCHH] BAH INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = BAH.[MATTER] CROSS JOIN( SELECT ISNULL(SUM(ISNULL(BGD.[BillNow], 0)), 0) AS [BILLNOW] FROM [dbo].[ky_CompBillMatterByBatch](@BatchNo) BGM INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGM.[ID] AND BGD.[Matter] = BGM.[Matter]) TOT WHERE BAH.[PREF] = @LastBatchHPRef END ' END GO /****** Object: StoredProcedure [dbo].[ky_BGProcess] Script Date: 10/01/2014 16:17:01 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGProcess]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[ky_BGProcess] (@BatchNo int) AS BEGIN DECLARE @ControlID int DECLARE @DefaultBilldate datetime DECLARE @AdHocBillingGuide int DECLARE @DraftNo int UPDATE BGC SET @ControlID = [ID], @DraftNo = IsNull(BIH.[DRAFTNO], BGC.[DraftNo]), BGC.[DraftNo] = IsNull(BIH.[DRAFTNO], BGC.[DraftNo]), BGC.[BatchNo] = IsNull(BIH.[BATCHNO], BGC.[BatchNo]) FROM [dbo].[BillHeader] BIH INNER JOIN [dbo].[BGControl] BGC ON BGC.[DraftNo] = BIH.[DraftNo] WHERE BIH.[BATCHNO] = @BatchNo SET @AdHocBillingGuide = 0 IF (@ControlID is NULL) BEGIN -- Create an ungrouped Billing Guide for the writedown date, then process it as normal. -- This Billing Guide will be flagged as "ad hoc", as it was not generated and configured -- by the user. If the billing is subsequently reversed, this ad hoc billing guide will -- be deleted. Billing Guides that were generated and configured by the user will not be -- deleted when billing is reversed, and they can be used again. SET @AdHocBillingGuide = 1 SELECT @DefaultBillDate = convert(datetime, [WRITEDOWN]) FROM [dbo].[BatchH] WHERE [BATCHNO] = @BatchNo EXEC ky_InitialiseBG @DraftNo, @BatchNo, @DefaultBillDate, @DefaultBillDate, NULL, NULL UPDATE BGC SET IsAdHoc = 1, @ControlID = [ID] FROM [dbo].[BGControl] BGC WHERE [BATCHNO] = @BatchNo END UPDATE TEN SET TEN.[InvoiceNo] = Case When isnumeric(IsNull(BAH.[REF], '''')) <> 1 Then 0 When convert(char(10), convert(decimal(10,0), IsNull(BAH.[REF], ''''))) <> IsNull(BAH.[REF], '''') Then 0 ELSE convert(int, convert(decimal(10,0), IsNull(BAH.[REF], ''''))) END, TEN.[BILLINGDATE] = BAH.[DATE], TEN.[BILLINGYEAR] = BAH.[YEAR], TEN.[BILLINGPERIOD] = BAH.[PERNO], TEN.[IncludeInBill] = CASE WHEN IsNull(BGD.[IncludeInBill], 1) <> 2 THEN 1 ELSE 2 END, TEN.[BilledAmount] = IsNull(TEN.[BilledAmount], 0) + IsNull(BGD.[BillNow], 0) FROM [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD INNER JOIN [dbo].[TimeEntry] TEN ON TEN.[RECORDID] = BGD.[OriginalID] ON BGD.[BGGroupID] = BGG.[ID] AND BGD.[Type] = ''F'' ON BGG.[BGControlID] = BGC.[ID] INNER JOIN [dbo].[BATCHH] BAH ON BAH.[BatchNo] = BGC.[BatchNo] WHERE BGC.[BatchNO] = @BatchNo --AND IsNull(TEN.[INVOICENO], 0) <> 0 AND BGD.[BillNow] <> 0 AND IsNull(BGD.[IncludeInBill], 1) <> 2 UPDATE TEN SET TEN.[IncludeInBill] = 2 FROM [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD INNER JOIN [dbo].[TimeEntry] TEN ON TEN.[RECORDID] = BGD.[OriginalID] ON BGD.[BGGroupID] = BGG.[ID] AND BGD.[Type] = ''F'' ON BGG.[BGControlID] = BGC.[ID] INNER JOIN [dbo].[BATCHH] BAH ON BAH.[BatchNo] = BGC.[BatchNo] WHERE BGC.[BatchNO] = @BatchNo AND IsNull(BGD.[IncludeInBill], 1) = 2 UPDATE MAL SET MAL.[InvoiceNo] = Case When isnumeric(IsNull(BAH.[REF], '''')) <> 1 Then 0 When convert(char(10), convert(decimal(10,0), IsNull(BAH.[REF], ''''))) <> IsNull(BAH.[REF], '''') Then 0 ELSE convert(int, convert(decimal(10,0), IsNull(BAH.[REF], ''''))) END, MAL.[BILLINGDATE] = BAH.[DATE], MAL.[BILLINGYEAR] = BAH.[YEAR], MAL.[BILLINGPERIOD] = BAH.[PERNO], MAL.[IncludeInBill] = CASE WHEN IsNull(BGD.[IncludeInBill], 1) <> 2 THEN 1 ELSE 2 END, MAL.[BilledOutlayValue] = IsNull(MAL.[BilledOutlayValue], 0) + IsNull(BGD.[BillNow], 0) FROM [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD INNER JOIN [dbo].[MatterLedger] MAL ON MAL.[LREF] = BGD.[OriginalID] ON BGD.[BGGroupID] = BGG.[ID] AND BGD.[Type] = ''O'' ON BGG.[BGControlID] = BGC.[ID] INNER JOIN [dbo].[BATCHH] BAH ON BAH.[BatchNo] = BGC.[BatchNo] WHERE BGC.[BATCHNO] = @BatchNo --AND IsNull(MAL.[INVOICENO], 0) <> 0 AND BGD.[BillNow] <> 0 AND IsNull(BGD.[IncludeInBill], 1) <> 2 UPDATE MAL SET MAL.[IncludeInBill] = 2 FROM [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD INNER JOIN [dbo].[MatterLedger] MAL ON MAL.[LREF] = BGD.[OriginalID] ON BGD.[BGGroupID] = BGG.[ID] AND BGD.[Type] = ''O'' ON BGG.[BGControlID] = BGC.[ID] INNER JOIN [dbo].[BATCHH] BAH ON BAH.[BatchNo] = BGC.[BatchNo] WHERE BGC.[BATCHNO] = @BatchNo AND IsNull(BGD.[IncludeInBill], 1) = 2 UPDATE MAT SET MAT.[CHARGEBAL] = GTOT.[BALAMOUNT], MAT.[TimeBal] = GTOT.[BALTIME] FROM ( SELECT GMAT.[code], IsNull(SUM( IsNull(TIE.[CHARGE], 0) - IsNull(TIE.[BILLEDAMOUNT], 0)), 0) AS [BALAMOUNT], IsNull(SUM(CASE WHEN IsNull(TIE.[CHARGE], 0) <> IsNull(TIE.[BILLEDAMOUNT], 0) THEN IsNull(TIE.[Time], 0) ELSE 0 END), 0) AS [BALTIME] FROM [dbo].[BatchH] BAH INNER JOIN [dbo].[Matters] GMAT LEFT OUTER JOIN [dbo].[TimeEntry] TIE ON TIE.[Matter] = GMAT.[code] AND TIE.[Charge] <> TIE.[BilledAmount] AND TIE.[Timeorcharge] IN (''T'', ''C'') AND TIE.[REC_IRR] <> ''N'' AND IsNull(TIE.[IncludeInBill], 1) <> 2 ON GMAT.[code] = BAH.[MATTER] OR GMAT.[CompBillingMatter] = BAH.[MATTER] WHERE BAH.[BATCHNO] = @BatchNo GROUP BY GMAT.[code]) GTOT INNER JOIN [dbo].[Matters] MAT ON MAT.[code] = GTOT.[code] 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]) SELECT MLTOT.[MATTER], 0 AS BATCHNO, 0 AS PREF, convert(datetime, convert(varchar, getDate(), 106)) AS [DATE], LTrim(RTrim(IsNull(BAH.[REF], ''''))), Substring( ''Invoice No: '' + LTrim(RTrim(IsNull(BAH.[REF], ''''))) + '' Fee: '' + convert(varchar(20), MLTOT.[TOTALFEES]) + '' Outlay: '' + convert(varchar(20), MLTOT.[TOTALOUTLAY]) + '' See Matter: '' + LTrim(RTrim(MLTOT.[CompBillingMatter])), 1, 80) As [NARR], 0 As [VALUED], 0 As [VALUEO], 0 As [VALUEC], '''' AS [FEE], 0 As [PER], 0 As [YEAR], convert(datetime, NULL) AS [ENTRYDATE], MLTOT.[CLIENTCODE] AS [CLIENT], 0 As [VALUECC], 0 As [VALUECD], '''' AS [DEPOSITTYPE], 0 As [CURVALUED], 0 As [CURVALUEO], 0 As [CURVALUEC], 0 As [CURVALUECC], 0 As [CURVALUECD], '''' AS [BILLED], NULL AS [BILLINGYEAR], NULL AS [BILLINGPERIOD], convert(datetime, NULL) AS [BILLINGDATE], 0 AS [BilledOutlayValue], NULL AS [InvoiceNo], 2 AS [IncludeInBill] FROM ( SELECT ML.[MATTER], MAT.[ClientCode], MAT.[CompBillingMatter], IsNull(SUM(CASE WHEN BGD.[Type] = ''F'' THEN IsNull(BGD.[BillNow], 0) ELSE 0 END), 0) As TOTALFEES, IsNull(SUM(CASE WHEN BGD.[Type] = ''O'' THEN IsNull(BGD.[BillNow], 0) ELSE 0 END), 0) As TOTALOutlay FROM ( SELECT DISTINCT BGDML.[MATTER], BGCML.[ID] FROM [dbo].[BGControl] BGCML INNER JOIN [dbo].[BGGroups] BGGML INNER JOIN [dbo].[BGDetail] BGDML ON BGDML.[BGGroupID] = BGGML.[ID] ON BGGML.[BGControlID] = BGCML.[ID] WHERE BGCML.[BatchNO] = @BatchNo AND BGDML.[BillNow] <> 0 AND IsNull(BGDML.[IncludeInBill], 1) <> 2 AND BGDML.[MATTER] <> BGCML.[MATTER]) ML INNER JOIN [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] AND BGD.[BillNow] <> 0 AND IsNull(BGD.[IncludeInBill], 1) <> 2 ON BGG.[BGControlID] = ML.[ID] AND BGD.[matter] = ML.[MATTER] INNER JOIN [dbo].[MATTERS] MAT ON MAT.[Code] = ML.[MATTER] GROUP BY ML.[Matter], MAT.[ClientCode], MAT.[CompBillingMatter]) MLTOT INNER JOIN [dbo].[BATCHH] BAH ON BAH.[BATCHNO] = @BatchNo END ' END GO /****** Object: StoredProcedure [dbo].[ky_BGReset] Script Date: 10/01/2014 16:17:01 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGReset]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[ky_BGReset] (@BatchNo int) AS BEGIN IF IsNull(@BatchNo, 0) <> 0 BEGIN UPDATE TEN SET TEN.[InvoiceNo] = BGD.[ORGInvoiceNo], TEN.[BILLINGDATE] = BGD.[ORGBILLINGDATE], TEN.[BILLINGYEAR] = BGD.[ORGBILLINGYEAR], TEN.[BILLINGPERIOD] = BGD.[ORGBILLINGPERIOD], TEN.[IncludeInBill] = BGD.[ORGIncludeInBill], TEN.[BilledAmount] = TEN.[BilledAmount] - BGD.[BillNow] FROM [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD INNER JOIN [dbo].[TimeEntry] TEN ON TEN.[RECORDID] = BGD.[OriginalID] ON BGD.[BGGroupID] = BGG.[ID] AND BGD.[Type] = ''F'' ON BGG.[BGControlID] = BGC.[ID] WHERE BGC.[BatchNO] = @BatchNo UPDATE MAL SET MAL.[InvoiceNo] = BGD.[ORGInvoiceNo], MAL.[BILLINGDATE] = BGD.[ORGBILLINGDATE], MAL.[BILLINGYEAR] = BGD.[ORGBILLINGYEAR], MAL.[BILLINGPERIOD] = BGD.[ORGBILLINGPERIOD], MAL.[IncludeInBill] = BGD.[ORGIncludeInBill], MAL.[BilledOutlayValue] = MAL.[BilledOutlayValue] - BGD.[BillNow] FROM [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD INNER JOIN [dbo].[MatterLedger] MAL ON MAL.[LREF] = BGD.[OriginalID] ON BGD.[BGGroupID] = BGG.[ID] AND BGD.[Type] = ''O'' ON BGG.[BGControlID] = BGC.[ID] WHERE BGC.[BATCHNO] = @BatchNo -- If these items were billed without a billing guide, the Billing Guide that was -- generated was an Ad Hoc billing guide that wasn''t configured by the user. In that -- case, delete it now. DELETE BGD from [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] ON BGG.[BGControlID] = BGC.[Id] WHERE BGC.[BatchNo] = @BatchNo AND BGC.[IsAdhoc] = 1 DELETE BGG from [dbo].[BGControl] BGC INNER JOIN [dbo].[BGGroups] BGG ON BGG.[BGControlID] = BGC.[Id] WHERE BGC.[BatchNo] = @BatchNo AND BGC.[IsAdhoc] = 1 DELETE BGC from [dbo].[BGControl] BGC WHERE BGC.[BatchNo] = @BatchNo AND BGC.[IsAdhoc] = 1 UPDATE MAT SET MAT.[CHARGEBAL] = GTOT.[BALAMOUNT], MAT.[TimeBal] = GTOT.[BALTIME] FROM ( SELECT GMAT.[code], IsNull(SUM( IsNull(TIE.[CHARGE], 0) - IsNull(TIE.[BILLEDAMOUNT], 0)), 0) AS [BALAMOUNT], IsNull(SUM(CASE WHEN IsNull(TIE.[CHARGE], 0) <> IsNull(TIE.[BILLEDAMOUNT], 0) THEN IsNull(TIE.[Time], 0) ELSE 0 END), 0) AS [BALTIME] FROM [dbo].[BatchH] BAH INNER JOIN [dbo].[Matters] GMAT LEFT OUTER JOIN [dbo].[TimeEntry] TIE ON TIE.[Matter] = GMAT.[code] AND TIE.[Charge] <> TIE.[BilledAmount] AND TIE.[Timeorcharge] IN (''T'', ''C'') AND TIE.[REC_IRR] <> ''N'' AND IsNull(TIE.[IncludeInBill], 1) <> 2 ON GMAT.[code] = BAH.[MATTER] OR GMAT.[CompBillingMatter] = BAH.[MATTER] WHERE BAH.[BATCHNO] = @BatchNo GROUP BY GMAT.[code]) GTOT INNER JOIN [dbo].[Matters] MAT ON MAT.[code] = GTOT.[code] EXEC [dbo].[ky_BGPaid] NULL, @BatchNo, 0, 0, 0 END END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDSearchAllContacts2] Script Date: 10/01/2014 16:18:15 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchAllContacts2]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDSearchAllContacts2 * * Returns a list of Matter Contacts matching a search criterion * on matter description or user defined fields * * Includes functionality to exclude matters to which the fee earner has not been authorised * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDSearchAllContacts2] (@fe varchar(10), @search varchar(50), @mattersearch varchar(50), @includeCA int, @includeCC int, @includeCO int, @includeMC int, @expand int, @clientcode varchar(10), @namecode varchar(10), @bycase int, @IncludePhone int) AS BEGIN SET @IncludePhone = Case When ISNULL(@IncludePhone, 0) = 1 THEN 1 ELSE 0 END IF (@expand = 0) BEGIN SELECT NR.[Name], NR.[Address], NR.[Phone], NR.[Mobile], NR.[Fax], NR.[Email], NR.[ClientCode], NR.[NameCode], COUNT(1) AS [Cases], '''' As [CaseCode], '''' As [ClientName], '''' As [CaseDescription] FROM ( SELECT RES.[Name], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], RES.[Case], Max(RES.[ClientCode]) AS [ClientCode], Max(RES.[NameCode]) As [NameCode] FROM (SELECT * from [ky_WDSearchCaseAssociates2](@fe, @search, @mattersearch, @includeCA, 1, @clientcode, @namecode, @IncludePhone) UNION SELECT * from [ky_WDSearchClientContacts2](@fe, @search, @mattersearch, @includeCC, 1, @clientcode, @namecode, @IncludePhone) UNION SELECT * from [ky_WDSearchContacts2](@fe, @search, @mattersearch, @includeCO, 1, @clientcode, @namecode, @IncludePhone) UNION SELECT * from [ky_WDSearchMatterContacts2](@fe, @search, @mattersearch, @includeMC, 1, @clientcode, @namecode, @IncludePhone)) RES GROUP BY RES.[Name], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], RES.[Case]) NR GROUP BY NR.[Name], NR.[Address], NR.[Phone], NR.[Mobile], NR.[Fax], NR.[Email], NR.[ClientCode], NR.[NameCode] END if (@expand = 1) AND (@bycase = 1) BEGIN SELECT NR.[Name], NR.[Address], NR.[Phone], NR.[Mobile], NR.[Fax], NR.[Email], NR.[ClientCode], NR.[NameCode], 1 As [Cases], NR.[Case] As [CaseCode], RTrim(IsNull(CON.[Name], '''')) As [ClientName], RTrim(IsNull(MAT.[Description], '''')) As [CaseDescription] FROM ( SELECT '''' As [Name], '''' As [Address], '''' As [Phone], '''' As [Mobile], '''' As [Fax], '''' As [Email], @clientcode AS [ClientCode], @namecode AS [NameCode], RES.[Case] FROM (SELECT * from [ky_WDSearchCaseAssociates2](@fe, @search, @mattersearch, @includeCA, 1, @clientcode, @namecode, @IncludePhone) UNION SELECT * from [ky_WDSearchClientContacts2](@fe, @search, @mattersearch, @includeCC, 1, @clientcode, @namecode, @IncludePhone) UNION SELECT * from [ky_WDSearchContacts2](@fe, @search, @mattersearch, @includeCO, 1, @clientcode, @namecode, @IncludePhone) UNION SELECT * from [ky_WDSearchMatterContacts2](@fe, @search, @mattersearch, @includeMC, 1, @clientcode, @namecode, @IncludePhone)) RES GROUP BY RES.[Case]) NR INNER JOIN [dbo].[Matters] MAT INNER JOIN [dbo].[contacts] CON ON CON.[Code] = MAT.[ClientCode] ON MAT.[CODE] = NR.[Case] END if (@expand = 1) AND (@bycase = 0) BEGIN SELECT NR.[Name], NR.[Address], NR.[Phone], NR.[Mobile], NR.[Fax], NR.[Email], NR.[ClientCode], NR.[NameCode], 1 As [Cases], NR.[Case] As [CaseCode], RTrim(IsNull(CON.[Name], '''')) As [ClientName], RTrim(IsNull(MAT.[Description], '''')) As [CaseDescription] FROM ( SELECT RES.[Name], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], @clientcode AS [ClientCode], @namecode AS [NameCode], RES.[Case] FROM (SELECT * from [ky_WDSearchCaseAssociates2](@fe, @search, @mattersearch, @includeCA, 1, @clientcode, @namecode, @IncludePhone) UNION SELECT * from [ky_WDSearchClientContacts2](@fe, @search, @mattersearch, @includeCC, 1, @clientcode, @namecode, @IncludePhone) UNION SELECT * from [ky_WDSearchContacts2](@fe, @search, @mattersearch, @includeCO, 1, @clientcode, @namecode, @IncludePhone) UNION SELECT * from [ky_WDSearchMatterContacts2](@fe, @search, @mattersearch, @includeMC, 1, @clientcode, @namecode, @IncludePhone)) RES GROUP BY RES.[Name], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], RES.[Case]) NR INNER JOIN [dbo].[Matters] MAT INNER JOIN [dbo].[contacts] CON ON CON.[Code] = MAT.[ClientCode] ON MAT.[CODE] = NR.[Case] END END ' END GO /****** Object: StoredProcedure [dbo].[ky_BGAddToInvoice] Script Date: 10/01/2014 16:16:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGAddToInvoice]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_BGAddToInvoice] (@DraftNo int) AS BEGIN DECLARE @LINENO smallint DECLARE @TOTVALUE decimal(11, 2) --FOR Bill Header totals and VAT Rates DECLARE @VATCODE char(1) DECLARE @VATENTRY int DECLARE @RATE1 decimal(17, 2) DECLARE @NETRATE1 decimal(17, 2) DECLARE @VATRATE1 decimal(17, 2) DECLARE @RATE2 decimal(17, 2) DECLARE @NETRATE2 decimal(17, 2) DECLARE @VATRATE2 decimal(17, 2) SELECT @LINENO = IsNull(Max([LINENO]), 0) FROM [dbo].[BillDetails] WHERE [DRAFTNO] = @DraftNo DECLARE @linestoadd TABLE ([LINENO] INT identity(1, 1), [MATTER] VARCHAR(20), [DRAFTNO] int, [BILLNO] int, [TYPE] VARCHAR(1), [FEEEARNER] VARCHAR(10), [NOMINAL] VARCHAR(10), [NARRATIVE] VARCHAR(6999), [NET] DECIMAL(13, 2), [VATCODE] VARCHAR(1), [VATRATE] DECIMAL(5, 2), [VATVALUE] DECIMAL(13, 2)) INSERT INTO @linestoadd ([MATTER], [DRAFTNO], [BILLNO], [TYPE], [FEEEARNER], [NOMINAL], [NARRATIVE], [NET], [VATCODE], [VATRATE], [VATVALUE]) SELECT MAT.[Code] As [MATTER], BGC.[DraftNo] As [DRAFTNO], BIH.[BILLNO] As [BILLNO], SUMM.[Type] As [TYPE], IsNull(SUMM.[FEEEARN], MAT.[FECODE]) As [FEEEARNER], CASE WHEN SUMM.[Type] = ''F'' THEN IsNull(FEC.[NOMINAL], '''') ELSE CON.[Outlay] END As [NOMINAL], convert(varchar(6999), BGG.[Narrative]) As [NARRATIVE], Convert(decimal(13, 2), SUMM.[BillNow]) As [NET], CASE WHEN SUMM.[Type] = ''F'' THEN CON.[DEFAULTVAT] ELSE CON.[VATEXCLUDE] END As [VATCODE], IsNull(VAC.[RATE], 0) As [VATRATE], convert(decimal(13, 2), Round( SUMM.[BillNow] * ( IsNull(VAC.[RATE], 0) / 100), 2)) As [VATVALUE] FROM ( SELECT BGCSUMM.[ID] As [BGControlID], BGGSUMM.[ID], BGGSUMM.[SeqNo], CASE WHEN COUNT(DISTINCT BGDSUMM.[Type]) = 1 THEN ISNULL(MAX(BGDSUMM.[Type]), '''') ELSE convert(varchar, NULL) END AS [Type], CASE WHEN COUNT(DISTINCT BGDSUMM.[MATTER]) = 1 THEN ISNULL(MAX(BGDSUMM.[MATTER]), '''') ELSE convert(varchar(17), NULL) END AS [MATTER], CASE WHEN COUNT(DISTINCT BGDSUMM.[FEEEARN]) = 1 THEN ISNULL(MAX(BGDSUMM.[FEEEARN]), '''') ELSE convert(varchar(5), NULL) END AS [FEEEARN], SUM(ISNULL(BGDSUMM.[BillNow], 0)) AS [BillNow], CASE WHEN ISNULL(MIN(BGDSUMM.[IncludeInBill]), 1) <> 2 THEN 1 ELSE 2 END AS [IncludeInBill], COUNT(1) AS [NumberOfDetailItems] FROM [dbo].[BGControl] BGCSUMM INNER JOIN [dbo].[BGGroups] BGGSUMM INNER JOIN [dbo].[BGDetail] BGDSUMM ON BGDSUMM.[BGGroupID] = BGGSUMM.[ID] ON BGGSUMM.[BGControlID] = BGCSUMM.[ID] WHERE BGCSUMM.[DraftNo] = @DraftNo GROUP BY BGCSUMM.[ID], BGGSUMM.[SeqNo], BGGSUMM.[ID]) SUMM INNER JOIN [dbo].[BGControl] BGC ON BGC.[ID] = SUMM.[BGControlID] INNER JOIN [dbo].[BGGroups] BGG ON BGG.[ID] = SUMM.[ID] INNER JOIN [dbo].[BillHeader] BIH ON BIH.[DRAFTNO] = BGC.[DraftNo] -- -- If multiple matters are linked to this line, use the Composite Billing Matter INNER JOIN [dbo].[Matters] MAT ON MAT.[Code] = BGC.[Matter] -- -- If multiple Fee Earners are linked to this line, use the Matter''s Fee Earner Code LEFT OUTER JOIN [dbo].[FeeEarnerCodes] FEC ON FEC.[Code] = IsNull(SUMM.[FEEEARN], MAT.[FECODE]) -- CROSS JOIN [dbo].[Control] CON -- -- Vat Rate depending on whether it''s a Fee or an Outlay LEFT OUTER JOIN [dbo].[vatcodes] VAC ON VAC.[CODE] = CASE WHEN SUMM.[Type] = ''F'' THEN CON.[DEFAULTVAT] ELSE CON.[VATEXCLUDE] END WHERE SUMM.[BillNow] <> 0 ORDER BY CASE WHEN SUMM.[Type] = ''F'' THEN 1 ELSE 2 END, SUMM.[SeqNo] INSERT INTO [dbo].[BillDetails] ([Matter], [DRAFTNO], [BILLNO], [TYPE], [FEEEARNER], [NOMINAL], [NARRATIVE], [NET], [VATCODE], [VATRATE], [VATVALUE], [LINENO]) select LTA.[MATTER], LTA.[DRAFTNO], LTA.[BILLNO], LTA.[TYPE], LTA.[FEEEARNER], LTA.[NOMINAL], LTA.[NARRATIVE], LTA.[NET], LTA.[VATCODE], LTA.[VATRATE], LTA.[VATVALUE], @LINENO + LTA.[LINENO] from @linestoadd LTA UPDATE BFB SET BFB.[VALUE] = BFB.[VALUE] + NBFB.[VALUE], BFB.[VATAMT] = BFB.[VATAMT] + NBFB.[VATAMT] FROM [dbo].[BillFeeBreakDown] BFB INNER JOIN ky_BGNewBillFeeBreakdown(@DraftNo) NBFB ON NBFB.[FECODE] = BFB.[FECODE] WHERE BFB.[DRAFTNO] = @DraftNo INSERT INTO [dbo].[BillFeeBreakdown] ([MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT]) SELECT NBFB.[MATTER], NBFB.[DRAFTNO], NBFB.[BILLNO], NBFB.[FECODE], NBFB.[TYPE], NBFB.[PERCENT], NBFB.[CALCULATION], NBFB.[VALUE], NBFB.[VATCODE], NBFB.[VATAMT] FROM ky_BGNewBillFeeBreakdown(@DraftNo) NBFB LEFT OUTER JOIN [dbo].[BillFeeBreakdown] BFB ON BFB.[DRAFTNO] = NBFB.[DRAFTNO] AND BFB.[FECODE] = NBFB.[FECODE] WHERE BFB.[RECORDID] IS NULL select @TOTVALUE = IsNull(SUM(BFB.[VALUE]), 0) from [dbo].[BILLFEeBREAKDOWN] BFB where BFB.[DRAFTNO] = @DraftNo IF (@TOTVALUE = 0) BEGIN UPDATE [dbo].[BILLFeeBreakdown] SET [PERCENT] = 0, [CALCULATION] = 0 WHERE [DRAFTNO] = @DraftNo END ELSE BEGIN UPDATE [dbo].[BILLFeeBreakdown] SET [PERCENT] = convert(decimal(5, 2), Round(100 * ([VALUE] / @TOTVALUE), 2)), [CALCULATION] = convert(decimal(9, 5), Round(100 * ([VALUE] / @TOTVALUE), 5)) WHERE [DRAFTNO] = @DraftNo END --Calculate the Bill Header totals and VAT Rates 1 and 2 SET @VATENTRY = 0 SET @RATE1 = 0 SET @NETRATE1 = 0 SET @VATRATE1 = 0 SET @RATE2 = 0 SET @NETRATE2 = 0 SET @VATRATE2 = 0 SELECT @VATCODE = [DEFAULTVAT] FROM [dbo].[Control] DECLARE @VATs TABLE ([VATENTRY] int identity(1, 1), [RATE] decimal(17, 2)) -- This should really only return a maximum of two rows, but just in case -- it doesn''t, we''ll order them from highest VAT Rate down. INSERT INTO @VATs ([RATE]) select DISTINCT BID.[VATRATE] from [dbo].[BillHeader] BIH inner join [dbo].[BillDetails] BID ON BID.[DRAFTNO] = BIH.[DRAFTNO] AND BID.[TYPE] = ''F'' where BIH.[DRAFTNO] = @DRAFTNO ORDER BY BID.VATRATE DESC IF EXISTS (SELECT * FROM @VATs WHERE [VATENTRY] = 1) BEGIN select @RATE1 = [RATE] from @VATs WHERE [VATENTRY] = 1 select @NETRATE1 = SUM(BID.[NET]) from [dbo].[BillHeader] BIH inner join [dbo].[BillDetails] BID ON BID.[DRAFTNO] = BIH.[DRAFTNO] AND BID.[TYPE] = ''F'' where BIH.[DRAFTNO] = @DRAFTNO and BID.[VATRATE] = @RATE1 SET @VATRATE1 = Round(((@NETRATE1 * @RATE1) / 100), 2) END IF EXISTS (SELECT * FROM @VATs WHERE [VATENTRY] = 2) BEGIN select @RATE2 = [RATE] from @VATs WHERE [VATENTRY] = 2 select @NETRATE2 = SUM(BID.[NET]) from [dbo].[BillHeader] BIH inner join [dbo].[BillDetails] BID ON BID.[DRAFTNO] = BIH.[DRAFTNO] AND BID.[TYPE] = ''F'' where BIH.[DRAFTNO] = @DRAFTNO and BID.[VATRATE] = @RATE2 SET @VATRATE2 = Round(((@NETRATE2 * @RATE2) / 100), 2) END UPDATE BIH SET BIH.[TOTAL] = BIHU.[TOTAL], BIH.[FEES] = BIHU.[FEES], BIH.[OUTLAY] = BIHU.[OUTLAY], BIH.[TOTALVAT] = BIHU.[TOTALVAT], BIH.[RATE1] = BIHU.[RATE1], BIH.[NETRATE1] = BIHU.[NETRATE1], BIH.[VATRATE1] = BIHU.[VATRATE1], BIH.[RATE2] = BIHU.[RATE2], BIH.[NETRATE2] = BIHU.[NETRATE2], BIH.[VATRATE2] = BIHU.[VATRATE2], BIH.[FEEVATCODE] = @VATCODE FROM ( select BIHO.[DRAFTNO], @VATCODE AS [VATCODE], @RATE1 AS [RATE1], @NETRATE1 AS [NETRATE1], @VATRATE1 AS [VATRATE1], @RATE2 AS [RATE2], @NETRATE2 AS [NETRATE2], @VATRATE2 AS [VATRATE2], SUM(IsNull(BID.[NET], 0) + ((IsNull(BID.[NET], 0) * IsNull(BID.[VATRATE], 0)) / 100)) AS [TOTAL], SUM(((IsNull(BID.[NET], 0) * IsNull(BID.[VATRATE], 0)) / 100)) AS [TOTALVAT], SUM(CASE WHEN BID.[TYPE] = ''F'' THEN IsNull(BID.[NET], 0) ELSE 0 END) AS [FEES], SUM(CASE WHEN BID.[TYPE] = ''O'' THEN IsNull(BID.[NET], 0) ELSE 0 END) AS [OUTLAY] from [dbo].[BillHeader] BIHO inner join [dbo].[BillDetails] BID ON BID.[DraftNo] = BIHO.[DraftNo] WHERE BIHO.[DRAFTNO] = @DraftNo GROUP BY BIHO.[DRAFTNO]) BIHU INNER JOIN [dbo].[BillHeader] BIH ON BIH.[DRAFTNO] = BIHU.[DRAFTNO] END ' END GO /****** Object: StoredProcedure [dbo].[ky_AdvancedMatterSearch] Script Date: 10/01/2014 16:16:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_AdvancedMatterSearch]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_AdvancedMatterSearch] (@HANDLER VARCHAR(20), @SearchWhat INT, @MaxResult INT, @SEARCH VARCHAR(100), @SearchMatterDescription INT, @SearchClientName INT, @SearchClientAddress INT, @SearchOldRef INT, @SearchUser1 INT, @SearchUser2 INT, @SearchUser3 INT, @AndOrClientName INT, @AndOrSearchClientName VARCHAR(100), @AndOrMatterDescription INT, @AndOrSearchMatterDescription VARCHAR(100), @AndOrClientAddress INT, @AndOrSearchClientAddress VARCHAR(100), @AndOrMatterCode INT, @AndOrSearchMatterCode VARCHAR(100), @AndOrMatterOldRef INT, @AndOrSearchMatterOldREf VARCHAR(100), @AndOrMatterYourRef INT, @AndOrSearchMatterYourRef VARCHAR(100), @AndOrMatterUser1 INT, @AndOrSearchMatterUser1 VARCHAR(100), @AndOrMatterUser2 INT, @AndOrSearchMatterUser2 VARCHAR(100), @AndOrMatterUser3 INT, @AndOrSearchMatterUser3 VARCHAR(100), @AndOrMatterFECode INT, @AndOrSearchMatterFECode VARCHAR(100), @AndOrMatterDept INT, @AndOrSearchMatterDept VARCHAR(100), @AndOrMatterWType INT, @AndOrSearchMatterWType VARCHAR(100)) AS /************************************************************************ * * ky_AdvancedMatterSearch * *************************************************************************/ BEGIN DECLARE @WCMatterDescription VARCHAR(200) DECLARE @WCClientName VARCHAR(200) DECLARE @WCClientAddress VARCHAR(200) DECLARE @WCOldRef VARCHAR(200) DECLARE @WCUser1 VARCHAR(200) DECLARE @WCUser2 VARCHAR(200) DECLARE @WCUser3 VARCHAR(200) DECLARE @NetVersion INT DECLARE @BitWiseID BIGINT DECLARE @HasClosed INT IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = ''Closed'' AND SO.[type] = ''U'') BEGIN DECLARE @sqlCommand nvarchar(1000) SET @sqlCommand = ''SELECT @cnt=CASE WHEN COUNT(1) = 0 THEN 0 ELSE 1 END FROM closed'' EXECUTE sp_executesql @sqlCommand, N''@cnt int OUTPUT'', @cnt=@HasClosed OUTPUT END ELSE BEGIN SET @HasClosed = 0 END SET @NetVersion = 0 IF EXISTS (SELECT TOP 1 1 FROM SYS.[objects] SO WHERE SO.[name] = ''MatterNetPrivileges'' AND SO.[type] = ''U'') BEGIN SET @NetVersion = 1 END IF (@NetVersion = 1) BEGIN SELECT @BitWiseID = HNG.[BitWiseID] FROM HandlerNETGroupMembership HNG WHERE HNG.[HANDLER] = @HANDLER END SET @BitWiseID = ISNULL(@BitWiseID, [dbo].[ky_NETFNGetOldPermissions](RTRIM(ISNULL(@HANDLER, '''')))) IF (@HANDLER = ''ADM'') BEGIN SET @BitWiseID = CONVERT(BIGINT, -1) END /* SET @HANDLER = ''{pHandler}'' SET @SEARCH = ''{pSearch}'' SET @SearchMatterDescription = 1 SET @SearchClientName = 1 SET @SearchClientAddress = 1 SET @SearchOldRef = 1 SET @SearchUser1 = 1 SET @SearchUser2 = 1 SET @SearchUser3 = 1 SET @AndOrClientName = 0 SET @AndOrSearchClientName = '''' SET @AndOrMatterDescription = 1 SET @AndOrSearchMatterDescription = '''' SET @AndOrClientAddress = 0 SET @AndOrSearchClientAddress = '''' SET @AndOrMatterCode = 1 SET @AndOrSearchMatterCode = '''' SET @AndOrMatterOldRef = 1 SET @AndOrSearchMatterOldRef = '''' SET @AndOrMatterYourRef = 1 SET @AndOrSearchMatterYourRef = '''' SET @AndOrMatterYourRef = 1 SET @AndOrSearchMatterYourRef = '''' SET @AndOrMatterUser1 = 1 SET @AndOrSearchMatterUser1 = '''' SET @AndOrMatterUser2 = 1 SET @AndOrSearchMatterUser2 = '''' SET @AndOrMatterUser3 = 1 SET @AndOrSearchMatterUser3 = '''' SET @AndOrMatterFECode = 1 SET @AndOrSearchMatterFECode = '''' SET @AndOrMatterDept = 1 SET @AndOrSearchMatterDept = '''' SET @AndOrMatterWType = 1 SET @AndOrSearchMatterWType = '''' SET @HANDLER = ''GC'' SET @Search = '''' */ DECLARE @COMMAND VARCHAR(max) DECLARE @ANDLIST VARCHAR(max) DECLARE @ORLIST VARCHAR(max) DECLARE @ORLISTLEN INT SET @ANDLIST = '''' SET @ORLIST = '''' SET @ORLISTLEN = 0 SET @MaxResult = ISNULL(@MaxResult, 100) IF (@MaxResult < 1) BEGIN SET @MaxResult = 100 END SET @SEARCH = REPLACE(REPLACE(''%'' + RTRIM(ISNULL(@Search, '''')) + ''%'', ''%%'', ''%''), ''%%'', ''%'') SET @WCMatterDescription = '''' IF (@SearchMatterDescription = 1) BEGIN SET @WCMatterDescription = '' OR MAT.[Description] LIKE '''''' + REPLACE(@Search, '''''''', '''''''''''') + '''''''' END SET @WCClientName = '''' IF (@SearchClientName = 1) BEGIN SET @WCClientName = '' OR CON.[Name] LIKE '''''' + REPLACE(@Search, '''''''', '''''''''''') + '''''''' END SET @WCClientAddress = '''' IF (@SearchClientAddress = 1) BEGIN SET @WCClientAddress = '' OR CON.[Address] LIKE '''''' + REPLACE(@Search, '''''''', '''''''''''') + '''''''' END SET @WCOldRef = '''' IF (@SearchOldRef = 1) BEGIN SET @WCOldRef = '' OR MAT.[OldRef] LIKE '''''' + REPLACE(@Search, '''''''', '''''''''''') + '''''''' END SET @WCUser1 = '''' IF (@SearchUser1 = 1) BEGIN SET @WCUser1 = '' OR MAT.[User1] LIKE '''''' + REPLACE(@Search, '''''''', '''''''''''') + '''''''' END SET @WCUser2 = '''' IF (@SearchUser2 = 1) BEGIN SET @WCUser2 = '' OR MAT.[User2] LIKE '''''' + REPLACE(@Search, '''''''', '''''''''''') + '''''''' END SET @WCUser3 = '''' IF (@SearchUser3 = 1) BEGIN SET @WCUser3 = '' OR MAT.[User3] LIKE '''''' + REPLACE(@Search, '''''''', '''''''''''') + '''''''' END SET @AndOrSearchClientName = REPLACE(REPLACE(''%'' + RTRIM(ISNULL(@AndOrSearchClientName, '''')) + ''%'', ''%%'', ''%''), ''%%'', ''%'') IF (@AndOrSearchClientName <> ''%'') BEGIN IF (@AndOrClientName = 0) --OR BEGIN IF (@ORLIST = '''') BEGIN SET @ORLIST = '' AND ( '' END ELSE BEGIN SET @ORLIST = @ORLIST + '' OR '' END SET @ORLISTLEN = @ORLISTLEN + 1 SET @ORLIST = @ORLIST + ''(CON.[NAME] LIKE '''''' + REPLACE(@AndOrSearchClientName, '''''''', '''''''''''') + '''''')'' END ELSE --AND BEGIN IF (@ANDLIST = '''') BEGIN SET @ANDLIST = '' AND ( '' END ELSE BEGIN SET @ANDLIST = @ANDLIST + '' AND '' END SET @ANDLIST = @ANDLIST + ''(CON.[NAME] LIKE '''''' + REPLACE(@AndOrSearchClientName, '''''''', '''''''''''') + '''''')'' END END SET @AndOrSearchMatterDescription = REPLACE(REPLACE(''%'' + RTRIM(ISNULL(@AndOrSearchMatterDescription, '''')) + ''%'', ''%%'', ''%''), ''%%'', ''%'') IF (@AndOrSearchMatterDescription <> ''%'') BEGIN IF (@AndOrMatterDescription = 0) --OR BEGIN IF (@ORLIST = '''') BEGIN SET @ORLIST = '' AND ( '' END ELSE BEGIN SET @ORLIST = @ORLIST + '' OR '' END SET @ORLISTLEN = @ORLISTLEN + 1 SET @ORLIST = @ORLIST + ''(MAT.[Description] LIKE '''''' + REPLACE(@AndOrSearchMatterDescription, '''''''', '''''''''''') + '''''')'' END ELSE --AND BEGIN IF (@ANDLIST = '''') BEGIN SET @ANDLIST = '' AND ( '' END ELSE BEGIN SET @ANDLIST = @ANDLIST + '' AND '' END SET @ANDLIST = @ANDLIST + ''(MAT.[Description] LIKE '''''' + REPLACE(@AndOrSearchMatterDescription, '''''''', '''''''''''') + '''''')'' END END SET @AndOrSearchClientAddress = REPLACE(REPLACE(''%'' + RTRIM(ISNULL(@AndOrSearchClientAddress, '''')) + ''%'', ''%%'', ''%''), ''%%'', ''%'') IF (@AndOrSearchClientAddress <> ''%'') BEGIN IF (@AndOrClientAddress = 0) --OR BEGIN IF (@ORLIST = '''') BEGIN SET @ORLIST = '' AND ( '' END ELSE BEGIN SET @ORLIST = @ORLIST + '' OR '' END SET @ORLISTLEN = @ORLISTLEN + 1 SET @ORLIST = @ORLIST + ''(CON.[Address] LIKE '''''' + REPLACE(@AndOrSearchClientAddress, '''''''', '''''''''''') + '''''')'' END ELSE --AND BEGIN IF (@ANDLIST = '''') BEGIN SET @ANDLIST = '' AND ( '' END ELSE BEGIN SET @ANDLIST = @ANDLIST + '' AND '' END SET @ANDLIST = @ANDLIST + ''(CON.[Address] LIKE '''''' + REPLACE(@AndOrSearchClientAddress, '''''''', '''''''''''') + '''''')'' END END SET @AndOrSearchMatterCode = REPLACE(REPLACE(''%'' + RTRIM(ISNULL(@AndOrSearchMatterCode, '''')) + ''%'', ''%%'', ''%''), ''%%'', ''%'') IF (@AndOrSearchMatterCode <> ''%'') BEGIN IF (@AndOrMatterCode = 0) --OR BEGIN IF (@ORLIST = '''') BEGIN SET @ORLIST = '' AND ( '' END ELSE BEGIN SET @ORLIST = @ORLIST + '' OR '' END SET @ORLISTLEN = @ORLISTLEN + 1 SET @ORLIST = @ORLIST + ''(MAT.[Code] LIKE '''''' + REPLACE(@AndOrSearchMatterCode, '''''''', '''''''''''') + '''''')'' END ELSE --AND BEGIN IF (@ANDLIST = '''') BEGIN SET @ANDLIST = '' AND ( '' END ELSE BEGIN SET @ANDLIST = @ANDLIST + '' AND '' END SET @ANDLIST = @ANDLIST + ''(MAT.[Code] LIKE '''''' + REPLACE(@AndOrSearchMatterCode, '''''''', '''''''''''') + '''''')'' END END SET @AndOrSearchMatterOldRef = REPLACE(REPLACE(''%'' + RTRIM(ISNULL(@AndOrSearchMatterOldRef, '''')) + ''%'', ''%%'', ''%''), ''%%'', ''%'') IF (@AndOrSearchMatterOldRef <> ''%'') BEGIN IF (@AndOrMatterOldRef = 0) --OR BEGIN IF (@ORLIST = '''') BEGIN SET @ORLIST = '' AND ( '' END ELSE BEGIN SET @ORLIST = @ORLIST + '' OR '' END SET @ORLISTLEN = @ORLISTLEN + 1 SET @ORLIST = @ORLIST + ''(MAT.[OldRef] LIKE '''''' + REPLACE(@AndOrSearchMatterOldRef, '''''''', '''''''''''') + '''''')'' END ELSE --AND BEGIN IF (@ANDLIST = '''') BEGIN SET @ANDLIST = '' AND ( '' END ELSE BEGIN SET @ANDLIST = @ANDLIST + '' AND '' END SET @ANDLIST = @ANDLIST + ''(MAT.[OldRef] LIKE '''''' + REPLACE(@AndOrSearchMatterOldRef, '''''''', '''''''''''') + '''''')'' END END SET @AndOrSearchMatterYourRef = REPLACE(REPLACE(''%'' + RTRIM(ISNULL(@AndOrSearchMatterYourRef, '''')) + ''%'', ''%%'', ''%''), ''%%'', ''%'') IF (@AndOrSearchMatterYourRef <> ''%'') BEGIN IF (@AndOrMatterYourRef = 0) --OR BEGIN IF (@ORLIST = '''') BEGIN SET @ORLIST = '' AND ( '' END ELSE BEGIN SET @ORLIST = @ORLIST + '' OR '' END SET @ORLISTLEN = @ORLISTLEN + 1 SET @ORLIST = @ORLIST + ''(MAT.[YourRef] LIKE '''''' + REPLACE(@AndOrSearchMatterYourRef, '''''''', '''''''''''') + '''''')'' END ELSE --AND BEGIN IF (@ANDLIST = '''') BEGIN SET @ANDLIST = '' AND ( '' END ELSE BEGIN SET @ANDLIST = @ANDLIST + '' AND '' END SET @ANDLIST = @ANDLIST + ''(MAT.[YourRef] LIKE '''''' + REPLACE(@AndOrSearchMatterYourRef, '''''''', '''''''''''') + '''''')'' END END SET @AndOrSearchMatterUser1 = REPLACE(REPLACE(''%'' + RTRIM(ISNULL(@AndOrSearchMatterUser1, '''')) + ''%'', ''%%'', ''%''), ''%%'', ''%'') IF (@AndOrSearchMatterUser1 <> ''%'') BEGIN IF (@AndOrMatterUser1 = 0) --OR BEGIN IF (@ORLIST = '''') BEGIN SET @ORLIST = '' AND ( '' END ELSE BEGIN SET @ORLIST = @ORLIST + '' OR '' END SET @ORLISTLEN = @ORLISTLEN + 1 SET @ORLIST = @ORLIST + ''(MAT.[User1] LIKE '''''' + REPLACE(@AndOrSearchMatterUser1, '''''''', '''''''''''') + '''''')'' END ELSE --AND BEGIN IF (@ANDLIST = '''') BEGIN SET @ANDLIST = '' AND ( '' END ELSE BEGIN SET @ANDLIST = @ANDLIST + '' AND '' END SET @ANDLIST = @ANDLIST + ''(MAT.[User1] LIKE '''''' + REPLACE(@AndOrSearchMatterUser1, '''''''', '''''''''''') + '''''')'' END END SET @AndOrSearchMatterUser2 = REPLACE(REPLACE(''%'' + RTRIM(ISNULL(@AndOrSearchMatterUser2, '''')) + ''%'', ''%%'', ''%''), ''%%'', ''%'') IF (@AndOrSearchMatterUser2 <> ''%'') BEGIN IF (@AndOrMatterUser2 = 0) --OR BEGIN IF (@ORLIST = '''') BEGIN SET @ORLIST = '' AND ( '' END ELSE BEGIN SET @ORLIST = @ORLIST + '' OR '' END SET @ORLISTLEN = @ORLISTLEN + 1 SET @ORLIST = @ORLIST + ''(MAT.[User2] LIKE '''''' + REPLACE(@AndOrSearchMatterUser2, '''''''', '''''''''''') + '''''')'' END ELSE --AND BEGIN IF (@ANDLIST = '''') BEGIN SET @ANDLIST = '' AND ( '' END ELSE BEGIN SET @ANDLIST = @ANDLIST + '' AND '' END SET @ANDLIST = @ANDLIST + ''(MAT.[User2] LIKE '''''' + REPLACE(@AndOrSearchMatterUser2, '''''''', '''''''''''') + '''''')'' END END SET @AndOrSearchMatterUser3 = REPLACE(REPLACE(''%'' + RTRIM(ISNULL(@AndOrSearchMatterUser3, '''')) + ''%'', ''%%'', ''%''), ''%%'', ''%'') IF (@AndOrSearchMatterUser3 <> ''%'') BEGIN IF (@AndOrMatterUser3 = 0) --OR BEGIN IF (@ORLIST = '''') BEGIN SET @ORLIST = '' AND ( '' END ELSE BEGIN SET @ORLIST = @ORLIST + '' OR '' END SET @ORLISTLEN = @ORLISTLEN + 1 SET @ORLIST = @ORLIST + ''(MAT.[User3] LIKE '''''' + REPLACE(@AndOrSearchMatterUser3, '''''''', '''''''''''') + '''''')'' END ELSE --AND BEGIN IF (@ANDLIST = '''') BEGIN SET @ANDLIST = '' AND ( '' END ELSE BEGIN SET @ANDLIST = @ANDLIST + '' AND '' END SET @ANDLIST = @ANDLIST + ''(MAT.[User3] LIKE '''''' + REPLACE(@AndOrSearchMatterUser3, '''''''', '''''''''''') + '''''')'' END END SET @AndOrSearchMatterFECode = REPLACE(REPLACE(''%'' + RTRIM(ISNULL(@AndOrSearchMatterFECode, '''')) + ''%'', ''%%'', ''%''), ''%%'', ''%'') IF (@AndOrSearchMatterFECode <> ''%'') BEGIN IF (@AndOrMatterFECode = 0) --OR BEGIN IF (@ORLIST = '''') BEGIN SET @ORLIST = '' AND ( '' END ELSE BEGIN SET @ORLIST = @ORLIST + '' OR '' END SET @ORLISTLEN = @ORLISTLEN + 1 SET @ORLIST = @ORLIST + ''(MAT.[FECode] LIKE '''''' + REPLACE(@AndOrSearchMatterFECode, '''''''', '''''''''''') + '''''')'' END ELSE --AND BEGIN IF (@ANDLIST = '''') BEGIN SET @ANDLIST = '' AND ( '' END ELSE BEGIN SET @ANDLIST = @ANDLIST + '' AND '' END SET @ANDLIST = @ANDLIST + ''(MAT.[FECode] LIKE '''''' + REPLACE(@AndOrSearchMatterFECode, '''''''', '''''''''''') + '''''')'' END END SET @AndOrSearchMatterDept = REPLACE(REPLACE(''%'' + RTRIM(ISNULL(@AndOrSearchMatterDept, '''')) + ''%'', ''%%'', ''%''), ''%%'', ''%'') IF (@AndOrSearchMatterDept <> ''%'') BEGIN IF (@AndOrMatterDept = 0) --OR BEGIN IF (@ORLIST = '''') BEGIN SET @ORLIST = '' AND ( '' END ELSE BEGIN SET @ORLIST = @ORLIST + '' OR '' END SET @ORLISTLEN = @ORLISTLEN + 1 SET @ORLIST = @ORLIST + ''(MAT.[Dept] LIKE '''''' + REPLACE(@AndOrSearchMatterDept, '''''''', '''''''''''') + '''''')'' END ELSE --AND BEGIN IF (@ANDLIST = '''') BEGIN SET @ANDLIST = '' AND ( '' END ELSE BEGIN SET @ANDLIST = @ANDLIST + '' AND '' END SET @ANDLIST = @ANDLIST + ''(MAT.[Dept] LIKE '''''' + REPLACE(@AndOrSearchMatterDept, '''''''', '''''''''''') + '''''')'' END END SET @AndOrSearchMatterWType = REPLACE(REPLACE(''%'' + RTRIM(ISNULL(@AndOrSearchMatterWType, '''')) + ''%'', ''%%'', ''%''), ''%%'', ''%'') IF (@AndOrSearchMatterWType <> ''%'') BEGIN IF (@AndOrMatterWType = 0) --OR BEGIN IF (@ORLIST = '''') BEGIN SET @ORLIST = '' AND ( '' END ELSE BEGIN SET @ORLIST = @ORLIST + '' OR '' END SET @ORLISTLEN = @ORLISTLEN + 1 SET @ORLIST = @ORLIST + ''(MAT.[WType] LIKE '''''' + REPLACE(@AndOrSearchMatterWType, '''''''', '''''''''''') + '''''')'' END ELSE --AND BEGIN IF (@ANDLIST = '''') BEGIN SET @ANDLIST = '' AND ( '' END ELSE BEGIN SET @ANDLIST = @ANDLIST + '' AND '' END SET @ANDLIST = @ANDLIST + ''(MAT.[WType] LIKE '''''' + REPLACE(@AndOrSearchMatterWType, '''''''', '''''''''''') + '''''')'' END END IF (@ORLIST <> '''') BEGIN SET @ORLIST = @ORLIST + '')'' END IF (@ANDLIST <> '''') BEGIN SET @ANDLIST = @ANDLIST + '')'' END SET @COMMAND = '' SELECT TOP ('' + CONVERT(VARCHAR(10), @MaxResult) + '') MAT.[Code] AS [MatterCode], CON.[Code] AS [ClientCode], MAT.[Matter] AS [Matter], RTRIM(ISNULL(CON.[Name], '''''''')) AS [ClientName], REPLACE(REPLACE(REPLACE(RTRIM(ISNULL(CON.[Address], '''''''')), CHAR(13) + CHAR(10), '''' ''''), CHAR(13), '''' ''''), CHAR(10), '''' '''') AS [ClientAddress], RTRIM(ISNULL(MAT.[Description], '''''''')) AS [MatterDescription], RTRIM(ISNULL(MAT.[FECode], '''''''')) AS [FeeEarnerCode], RTRIM(ISNULL(HAN.[Name], '''''''')) AS [FeeEarner], RTRIM(ISNULL(HAN.[Team], '''''''')) AS [FeeEarnerTeam], RTRIM(ISNULL(TEA.[Name], '''''''')) AS [TeamName], RTRIM(ISNULL(MAT.[Dept], '''''''')) AS [DepartmentCode], RTRIM(ISNULL(DEP.[DESC], '''''''')) AS [Department], RTRIM(ISNULL(MAT.[OldRef], '''''''')) AS [OldRef], RTRIM(ISNULL(MAT.[YourRef], '''''''')) AS [YourRef], RTRIM(ISNULL(MAT.[User1], '''''''')) AS [User1], RTRIM(ISNULL(MAT.[User2], '''''''')) AS [User2], RTRIM(ISNULL(MAT.[User3], '''''''')) AS [User3], RTRIM(ISNULL(MAT.[WType], '''''''')) AS [WorkTypeCode], RTRIM(ISNULL(WKT.[DESC], '''''''')) AS [WorkTypeDescription], MAT.[Started], RTRIM(ISNULL(FCL.[COLOURDESC], '''''''')) AS [FileColourDescription], ISNULL(FCL.[RGBColour], -1) AS [FileColourRGB]'' IF (@SearchWhat = 0) BEGIN SET @COMMAND = @COMMAND + '' FROM [dbo].[ky_WDRecentMatterList]('''''' + REPLACE(@HANDLER, '''''''', '''''''''''') + '''''') RM INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = RM.[Code]'' END ELSE IF (@SearchWhat = 1) BEGIN SET @COMMAND = @COMMAND + '' FROM [dbo].[matters] MAT'' END ELSE BEGIN IF (@HasClosed = 0) BEGIN SET @COMMAND = @COMMAND + '' FROM [dbo].[matters] MAT'' END ELSE BEGIN SET @COMMAND = @COMMAND + '' FROM [dbo].[closed] MAT'' END END SET @COMMAND = @COMMAND + '' INNER JOIN [dbo].[CONTACTS] CON ON CON.[CODE] = MAT.[CLIENTCODE] INNER JOIN [dbo].[Handlers] HAN LEFT OUTER JOIN [dbo].[Handlers] TEA ON TEA.[Code] = HAN.[Team] ON HAN.[Code] = MAT.[FECode] LEFT OUTER JOIN [dbo].[FileColours] FCL ON FCL.[COLOURCODE] = MAT.[FileColour] LEFT OUTER JOIN [dbo].[Departments] DEP ON DEP.[Code] = MAT.[Dept] LEFT OUTER JOIN [dbo].[WorkTypes] WKT ON WKT.[Code] = MAT.[WType]'' IF (@NetVersion = 1) BEGIN SET @COMMAND = @Command + '' LEFT OUTER JOIN [dbo].[MatterNetPrivileges] MNP ON MNP.[MATTER] = MAT.[Code]'' END SET @COMMAND = @COMMAND + '' WHERE ( MAT.[Code] LIKE '''''' + REPLACE(@Search, '''''''', '''''''''''') + '''''''' + @WCMatterDescription + @WCClientName + @WCClientAddress + @WCOldRef + @WCUser1 + @WCUser2 + @WCUser3 + '')'' + @ORLIST + @ANDLIST SET @COMMAND = @COMMAND + '' AND ( MNP.[Privileges] IS NULL OR ISNULL(MNP.[Privileges], CONVERT(BIGINT, -1)) & CONVERT(BIGINT, '' + CONVERT(VARCHAR(20), @BitWiseID) + '') <> 0)'' IF (@SearchWhat = 0) BEGIN SET @COMMAND = @COMMAND + '' AND MAT.[Closed] = ''''N'''''' END ELSE IF (@SearchWhat = 1) BEGIN SET @COMMAND = @COMMAND + '' AND MAT.[Closed] = ''''N'''''' END ELSE BEGIN IF (@HasClosed = 0) BEGIN SET @COMMAND = @COMMAND + '' AND MAT.[Closed] <> ''''N'''''' END END --SELECT @COMMAND EXEC (@COMMAND) END ' END GO /****** Object: View [dbo].[KPIClientStats] Script Date: 10/01/2014 16:19:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[KPIClientStats]')) EXEC dbo.sp_executesql @statement = N' CREATE VIEW [dbo].[KPIClientStats] AS SELECT Code, (SELECT COUNT(Code) AS Expr1 FROM dbo.matters WHERE (ClientCode = dbo.Contacts.Code)) + (SELECT COUNT(Code) AS Expr1 FROM dbo.closed WHERE (ClientCode = dbo.Contacts.Code)) AS NoMattersTot, (SELECT COUNT(Code) AS Expr1 FROM dbo.matters WHERE (ClientCode = dbo.Contacts.Code)) AS NoActiveMattersTot, (SELECT COUNT(Code) AS Expr1 FROM dbo.closed WHERE (ClientCode = dbo.Contacts.Code)) AS NoClosedMattersTot, (SELECT COUNT(Code) AS Expr1 FROM dbo.matters WHERE (ClientCode = dbo.Contacts.Code) AND (Started >= (SELECT FromDate FROM dbo.KPIClientParameters)) AND (Started <= (SELECT ToDate FROM dbo.KPIClientParameters AS KPIClientParameters_1))) AS NoActiveMatters, (SELECT COUNT(CODE) AS Expr1 FROM dbo.Closed WHERE (CLIENTCODE = dbo.Contacts.Code) AND (STARTED >= (SELECT FromDate FROM dbo.KPIClientParameters AS KPIClientParameters_3)) AND (STARTED <= (SELECT ToDate FROM dbo.KPIClientParameters AS KPIClientParameters_2))) AS NoClosedMatters, ISNULL ((SELECT SUM(BatchDValue) AS Expr1 FROM dbo.ReportInvoices WHERE (OUTLAY = ''F'') AND (Client = dbo.Contacts.Code) AND (DATE >= (SELECT FromDate FROM dbo.KPIClientParameters AS KPIClientParameters_2)) AND (DATE <= (SELECT ToDate FROM dbo.KPIClientParameters AS KPIClientParameters_2))), 0) AS FeesIssued, ISNULL ((SELECT SUM(ChargeBal) AS Expr1 FROM dbo.matters AS matters_1 WHERE (ClientCode = dbo.Contacts.Code)), 0) AS WIP, ISNULL((SELECT SUM(TIME) AS TotalRecordedTime FROM dbo.TimeEntry AS TimeEntry_1 WHERE (TimeEntry_1.matter like dbo.contacts.code+''/%'' ) and (DATE >= (SELECT FromDate FROM dbo.KPIClientParameters)) AND (DATE <= (SELECT ToDate FROM dbo.KPIClientParameters AS KPIClientParameters_1)) AND (TASK <> ''BILLED'') AND (TASK <> ''CREDIT'') AND (TASK <> ''WRI'') AND (MATTER <> ''~'')), 0) AS TimeRec, ISNULL ((SELECT SUM(DebtBal) AS Expr1 FROM dbo.matters AS matters_1 WHERE (ClientCode = dbo.Contacts.Code)), 0) AS Debtors, --SELECT DATEDIFF(day, getdate(), debtorsledger_1.date) AS Days -- FROM dbo.debtorsledger AS debtorsledger_1 -- where (matter like ''ava001/%'') AS ttt -- --AS DebtorsDays, ISNULL ((SELECT SUM(OutlayBal) AS Expr1 FROM dbo.matters AS matters_1 WHERE (ClientCode = dbo.Contacts.Code)), 0) AS OutlayBalance, ISNULL ((SELECT SUM(ClientBal) AS Expr1 FROM dbo.matters AS matters_1 WHERE (ClientCode = dbo.Contacts.Code)), 0) AS ClientAcBalance, isnull((SELECT count(CaseCode) AS Expr1 FROM dbo.diary AS diary_1 where diary_1.casecode like dbo.contacts.code+''/%'' ), 0) AS ClientDiaryTot, isnull((SELECT count(CaseCode) AS Expr1 FROM dbo.diary AS diary_1 where diary_1.casecode like dbo.contacts.code+''/%'' and (DATE >= (SELECT FromDate FROM dbo.KPIClientParameters)) AND (DATE <= (SELECT ToDate FROM dbo.KPIClientParameters AS KPIClientParameters_1)) ), 0) AS ClientDiary, isnull((SELECT count(CaseCode) AS Expr1 FROM dbo.diary AS diary_1 where diary_1.casecode like dbo.contacts.code+''/%'' and diary_1.status = 0), 0) AS ClientDiaryOSTot, isnull((SELECT count(CaseCode) AS Expr1 FROM dbo.diary AS diary_1 where diary_1.casecode like dbo.contacts.code+''/%'' and (DATE >= (SELECT FromDate FROM dbo.KPIClientParameters)) AND (DATE <= (SELECT ToDate FROM dbo.KPIClientParameters AS KPIClientParameters_1)) and diary_1.status = 0), 0) AS ClientDiaryOS, ISNULL((SELECT COUNT(StatuteLimits) AS Expr1 FROM dbo.matters AS matters_1 WHERE (ClientCode = dbo.Contacts.Code) and (StatuteLimits IS NOT NULL)), 0) AS ClientStatuteLimitTot, ISNULL((SELECT COUNT(StatuteLimits) AS Expr1 FROM dbo.matters AS matters_1 WHERE (ClientCode = dbo.Contacts.Code) and (StatuteLimits IS NOT NULL) and (StatuteLimits >= (SELECT FromDate FROM dbo.KPIClientParameters)) AND (StatuteLimits <= (SELECT ToDate FROM dbo.KPIClientParameters AS KPIClientParameters_1)) ), 0) AS ClientStatuteLimit, ISNULL((SELECT COUNT(MATTER) AS Expr1 FROM dbo.Undertakings AS undertakings_1 WHERE undertakings_1.matter like dbo.contacts.code+''/%'' and (DISCHARGEDATE = 0)), 0) AS Undertakings FROM dbo.Contacts ' GO /****** Object: StoredProcedure [dbo].[ky_ListCasesForPhoneNumber] Script Date: 10/01/2014 16:17:23 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_ListCasesForPhoneNumber]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /******************************************************************************************* * * * List Cases for Phone Number * * Checks Clients, Contacts, Case Associates and Case Associate Contacts that match the * * phone number that is passed in, and returns a list of associated Cases, in the order * * of most recent case for the passed in Handler / Fee Earner first. * * * *******************************************************************************************/ CREATE PROCEDURE [dbo].[ky_ListCasesForPhoneNumber] (@CountryCode VARCHAR(5), @AreaCode VARCHAR(5), @PhoneNumber VARCHAR(20), @CurrentHandler VARCHAR(10), @Search VARCHAR(50)) AS BEGIN DECLARE @clients TABLE ([CODE] VARCHAR(20), [name] VARCHAR(200), [capacity] VARCHAR(50)) DECLARE @matters TABLE ([CODE] VARCHAR(20), [name] VARCHAR(200), [capacity] VARCHAR(50), [sequence] int) INSERT INTO @clients ([CODE], [name], [capacity]) SELECT CLT.[CODE], CLT.[Name], ''Client'' FROM [dbo].[contacts] CLT WHERE ( REPLACE(REPLACE(CLT.[Tel], '' '', ''''), ''-'', '''') LIKE ''%'' + @CountryCode + ''%'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[Tel], '' '', ''''), ''-'', '''') LIKE ''0'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[Tel], '' '', ''''), ''-'', '''') = @PhoneNumber) INSERT INTO @clients ([CODE], [name], [capacity]) SELECT CLT.[CLCODE], CLT.[CLNAME], ''Client'' FROM [dbo].[client] CLT LEFT OUTER JOIN @clients CF ON CF.[CODE] = CLT.[CLCODE] WHERE CF.[CODE] IS NULL AND ( REPLACE(REPLACE(CLT.[CLTEL], '' '', ''''), ''-'', '''') LIKE ''%'' + @CountryCode + ''%'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[CLTEL], '' '', ''''), ''-'', '''') LIKE ''0'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[CLTEL], '' '', ''''), ''-'', '''') = @PhoneNumber OR REPLACE(REPLACE(CLT.[CLMOBNO], '' '', ''''), ''-'', '''') LIKE ''%'' + @CountryCode + ''%'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[CLMOBNO], '' '', ''''), ''-'', '''') LIKE ''0'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[CLMOBNO], '' '', ''''), ''-'', '''') = @PhoneNumber) INSERT INTO @matters ([CODE], [name], [capacity], [sequence]) SELECT MAT.[CODE], CF.[name], CF.[capacity], 0 FROM @clients CF INNER JOIN [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[client] CL1 ON CL1.[CLCODE] = MAT.[ClientCode] LEFT OUTER JOIN [dbo].[contacts] CL2 ON CL2.[CODE] = MAT.[ClientCode] ON MAT.[Clientcode] = CF.[code] WHERE ( RTRIM(ISNULL(@Search, '''')) = '''' OR CL1.[CLNAME] LIKE ''%'' + @Search + ''%'' OR CL2.[NAME] LIKE ''%'' + @Search + ''%'' OR MAT.[Description] LIKE ''%'' + @Search + ''%'') DELETE @clients INSERT INTO @clients ([CODE], [name], [capacity]) SELECT CLT.[CLCODE], CASE WHEN (RTRIM(ISNULL(CLT.[CLNAMECON], '''')) <> '''') AND (RTRIM(ISNULL(CLT.[CLSALUTE], '''')) <> '''') THEN RTRIM(ISNULL(CLT.[CLNAMECON], '''')) + '' ('' + RTRIM(ISNULL(CLT.[CLSALUTE], '''')) + '')'' WHEN RTRIM(ISNULL(CLT.[CLNAMECON], '''')) <> '''' THEN RTRIM(ISNULL(CLT.[CLNAMECON], '''')) ELSE RTRIM(ISNULL(CLT.[CLSALUTE], '''')) END, ''Client Contact'' FROM [dbo].[ClientContacts] CLT WHERE ( REPLACE(REPLACE(CLT.[HomePhone], '' '', ''''), ''-'', '''') LIKE ''%'' + @CountryCode + ''%'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[HomePhone], '' '', ''''), ''-'', '''') LIKE ''0'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[HomePhone], '' '', ''''), ''-'', '''') = @PhoneNumber OR REPLACE(REPLACE(CLT.[WorkPhone], '' '', ''''), ''-'', '''') LIKE ''%'' + @CountryCode + ''%'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[WorkPhone], '' '', ''''), ''-'', '''') LIKE ''0'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[WorkPhone], '' '', ''''), ''-'', '''') = @PhoneNumber OR REPLACE(REPLACE(CLT.[Mobile], '' '', ''''), ''-'', '''') LIKE ''%'' + @CountryCode + ''%'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[Mobile], '' '', ''''), ''-'', '''') LIKE ''0'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[Mobile], '' '', ''''), ''-'', '''') = @PhoneNumber) INSERT INTO @matters ([CODE], [name], [capacity], [sequence]) SELECT MAT.[CODE], CF.[name], CF.[capacity], 0 FROM @clients CF INNER JOIN [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[client] CL1 ON CL1.[CLCODE] = MAT.[ClientCode] LEFT OUTER JOIN [dbo].[contacts] CL2 ON CL2.[CODE] = MAT.[ClientCode] ON MAT.[Clientcode] = CF.[code] WHERE ( RTRIM(ISNULL(@Search, '''')) = '''' OR CL1.[CLNAME] LIKE ''%'' + @Search + ''%'' OR CL2.[NAME] LIKE ''%'' + @Search + ''%'' OR MAT.[Description] LIKE ''%'' + @Search + ''%'') DELETE @clients INSERT INTO @clients ([CODE], [name], [capacity]) SELECT CLT.[CODE], CASE WHEN (RTRIM(ISNULL(CLT.[NAME], '''')) <> '''') AND (RTRIM(ISNULL(CLT.[SALUTATION], '''')) <> '''') THEN RTRIM(ISNULL(CLT.[NAME], '''')) + '' ('' + RTRIM(ISNULL(CLT.[SALUTATION], '''')) + '')'' WHEN RTRIM(ISNULL(CLT.[NAME], '''')) <> '''' THEN RTRIM(ISNULL(CLT.[NAME], '''')) WHEN (RTRIM(ISNULL(CLT.[COMPANY], '''')) <> '''') AND (RTRIM(ISNULL(CLT.[SALUTATION], '''')) <> '''') THEN RTRIM(ISNULL(CLT.[COMPANY], '''')) + '' ('' + RTRIM(ISNULL(CLT.[SALUTATION], '''')) + '')'' WHEN RTRIM(ISNULL(CLT.[COMPANY], '''')) <> '''' THEN RTRIM(ISNULL(CLT.[COMPANY], '''')) ELSE RTRIM(ISNULL(CLT.[SALUTATION], '''')) END, CASE WHEN RTRIM(ISNULL(AT1.[Description], '''')) = '''' THEN ''Case Associate'' ELSE RTRIM(ISNULL(AT1.[Description], '''')) END AS [CAPACITY] FROM [dbo].[caseassociatesnames] CLT LEFT OUTER JOIN [dbo].[AssociateTypes] AT1 ON AT1.[CODE] = CLT.[Type] WHERE REPLACE(REPLACE(CLT.[PHONENO], '' '', ''''), ''-'', '''') LIKE ''%'' + @CountryCode + ''%'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[PHONENO], '' '', ''''), ''-'', '''') LIKE ''0'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[PHONENO], '' '', ''''), ''-'', '''') = @PhoneNumber OR REPLACE(REPLACE(CLT.[HOME], '' '', ''''), ''-'', '''') LIKE ''%'' + @CountryCode + ''%'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[HOME], '' '', ''''), ''-'', '''') LIKE ''0'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[HOME], '' '', ''''), ''-'', '''') = @PhoneNumber OR REPLACE(REPLACE(CLT.[MOBILENO], '' '', ''''), ''-'', '''') LIKE ''%'' + @CountryCode + ''%'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[MOBILENO], '' '', ''''), ''-'', '''') LIKE ''0'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[MOBILENO], '' '', ''''), ''-'', '''') = @PhoneNumber INSERT INTO @matters ([CODE], [name], [capacity], [sequence]) SELECT CC.[CASECODE], CL.[name], CASE WHEN RTRIM(ISNULL(AT1.[Description], '''')) = '''' THEN CL.[capacity] WHEN RTRIM(ISNULL(AT1.[Description], '''')) <> RTRIM(ISNULL(CL.[capacity],'''')) THEN RTRIM(ISNULL(AT1.[Description], '''')) ELSE CL.[capacity] END, 1 FROM @clients CL INNER JOIN [dbo].[CaseAssociatesNames] CLT ON CLT.[CODE] = CL.[CODE] INNER JOIN [dbo].[CaseContacts] CC LEFT OUTER JOIN [dbo].[AssociateTypes] AT1 ON AT1.[CODE] = CC.[CONTYPE] ON CC.[NameCode] = CL.[CODE] INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = CC.[CASECODE] LEFT OUTER JOIN @matters MF ON MF.[CODE] = CC.[CASECODE] AND MF.[name] = CL.[name] AND MF.[capacity] = CASE WHEN RTRIM(ISNULL(AT1.[Description], '''')) = '''' THEN CL.[capacity] WHEN RTRIM(ISNULL(AT1.[Description], '''')) <> RTRIM(ISNULL(CL.[capacity],'''')) THEN RTRIM(ISNULL(AT1.[Description], '''')) ELSE CL.[capacity] END WHERE MF.[CODE] IS NULL AND ( RTRIM(ISNULL(@Search, '''')) = '''' OR CLT.[NAME] LIKE ''%'' + @Search + ''%'' OR MAT.[Description] LIKE ''%'' + @Search + ''%'') DELETE @clients INSERT INTO @clients ([CODE], [name], [capacity]) SELECT CLT.[NAMECODE], CASE WHEN (RTRIM(ISNULL(CLT.[NAME], '''')) <> '''') AND (RTRIM(ISNULL(CLT.[SALUTATION], '''')) <> '''') THEN RTRIM(ISNULL(CLT.[NAME], '''')) + '' ('' + RTRIM(ISNULL(CLT.[SALUTATION], '''')) + '')'' WHEN RTRIM(ISNULL(CLT.[NAME], '''')) <> '''' THEN RTRIM(ISNULL(CLT.[NAME], '''')) ELSE RTRIM(ISNULL(CLT.[SALUTATION], '''')) END, ''Associate Contact'' FROM [dbo].[caseassociatescontacts] CLT WHERE ( RTRIM(ISNULL(@Search, '''')) = '''' OR CLT.[NAME] LIKE ''%'' + @Search + ''%'') AND ( REPLACE(REPLACE(CLT.[PHONE], '' '', ''''), ''-'', '''') LIKE ''%'' + @CountryCode + ''%'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[PHONE], '' '', ''''), ''-'', '''') LIKE ''0'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[PHONE], '' '', ''''), ''-'', '''') = @PhoneNumber OR REPLACE(REPLACE(CLT.[MOBILE], '' '', ''''), ''-'', '''') LIKE ''%'' + @CountryCode + ''%'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[MOBILE], '' '', ''''), ''-'', '''') LIKE ''0'' + @AreaCode + ''%'' + @PhoneNumber OR REPLACE(REPLACE(CLT.[MOBILE], '' '', ''''), ''-'', '''') = @PhoneNumber) INSERT INTO @matters ([CODE], [name], [capacity], [sequence]) SELECT CC.[CASECODE], CL.[name], CL.[capacity], 3 FROM @clients CL INNER JOIN [dbo].[CaseContacts] CC ON CC.[NameCode] = CL.[CODE] INNER JOIN [dbo].[matters] MAT ON MAT.[Code] = CC.[CASECODE] LEFT OUTER JOIN @matters MF ON MF.[CODE] = CC.[CASECODE] AND MF.[name] = CL.[name] AND MF.[capacity] = CL.[capacity] WHERE MF.[CODE] IS NULL AND ( RTRIM(ISNULL(@Search, '''')) = '''' OR MAT.[Description] LIKE ''%'' + @Search + ''%'') INSERT INTO @matters ([CODE], [name], [capacity], [sequence]) select RML.[MATTER], CL.[CLNAME], ''your recent matters'', 4 from RecentMatterList RML INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[client] CL ON CL.[CLCODE] = MAT.[ClientCode] ON MAT.[Code] = RML.[MATTER] LEFT OUTER JOIN @matters MF ON MF.[CODE] = RML.[MATTER] WHERE RML.[FEE] = @CurrentHandler AND MF.[CODE] IS NULL AND ( RTRIM(ISNULL(@Search, '''')) = '''' OR CL.[CLNAME] LIKE ''%'' + @Search + ''%'' OR MAT.[Description] LIKE ''%'' + @Search + ''%'') ORDER BY RML.[DateField] DESC SELECT RTRIM(ISNULL(MF.[name], '''')) AS [ContactName], RTRIM(ISNULL(MF.[Capacity], '''')) AS [Capacity], RML.[DateField] AS [RecentMatterDate], MAT.[Started] AS [MatterStartDate], RTRIM(ISNULL(MAT.[CODE], '''')) AS [MatterCode], RTRIM(ISNULL(CT.[Name], '''')) AS [ClientName], RTRIM(ISNULL(MAT.[Description], '''')) AS [Description], PTA.[ACTIONCODE], PTA.[WKTCODE] FROM @matters MF INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CT ON CT.[CODE] = MAT.[ClientCode] ON MAT.[CODE] = MF.[CODE] CROSS APPLY (SELECT TOP 1 * FROM [dbo].[ky_WDGetPhoneTAs](MAT.[CODE])) PTA LEFT OUTER JOIN [dbo].[recentmatterlist] RML ON RML.[FEE] = @CurrentHandler AND RML.[MATTER] = MF.[CODE] ORDER BY MF.[sequence], RML.[DateField] DESC, MAT.[Started] DESC, MF.[CODE] END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDiary3] Script Date: 10/01/2014 16:19:14 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDiary3]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDCaseDiary3 * * Case Diary view with support for paging * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDCaseDiary3] (@casecode varchar(20), @start int, @pagesize int, @search varchar(100), @ActionType varchar(1), @highlighted varchar(1), @priority varchar(1)) RETURNS @DV TABLE ([DIPID] int, [CaseCode] varchar(20), [WKCode] varchar(10), [Action] varchar(255), [Status] int, [ActionType] varchar(1), [Priority] varchar(1), [DelegateStatus] int, [ImageNo] int, [Handler] varchar(10), [Team] varchar(10), [FromHandler] varchar(10), [ActionID] int, [DiaryStatus] int, [Highlighted] varchar(1), [Attachments] varchar(1), [DiaryDate] varchar(11), [DiaryTime] varchar(5), [FNCode] varchar(10), [TeamCode] varchar(10), [WorkProcess] int, [DelegationStatus] int, [ActionCode] varchar(30), [Duration] varchar(30), [DelegatedDateTime] datetime, [AssignNo] int) AS BEGIN INSERT INTO @DV ([DIPID], [CaseCode], [WKCode], [Action], [Status], [ActionType], [Priority], [DelegateStatus], [ImageNo], [Handler], [Team], [FromHandler], [ActionID], [DiaryStatus], [Highlighted], [Attachments], [DiaryDate], [DiaryTime], [FNCode], [TeamCode], [WorkProcess], [DelegationStatus], [ActionCode], [Duration], [DelegatedDateTime], [AssignNo]) SELECT DIP.[ID], RTrim(IsNull(DIA.[CaseCode], '''')) As [CaseCode], CM.[CSWKTCODE], CASE WHEN DIA.[ActionType] = ''E'' THEN SUBSTRING(''Email from: '' + Rtrim(IsNull([dbo].[ky_GetNameFromEmailAddress](DIA.[EmailAddress]), '''')) + '' - '' + RTrim(IsNull(convert(varchar(2000), DIA.[Subject]), '''')), 1, 120) ELSE SUBSTRING(DIA.[TEXT1], 1, 120) END As [Action], DEL.[Status], IsNull(DIA.[ActionType], '''') As [ActionType], IsNull(DIA.[Priority], '''') As [Priority], IsNull(DEL.[DELEGATESTATUS], 0) As [DelegateStatus], DIA.[ImageNo], IsNull(DEL.[Handler], '''') As [Handler], IsNull(DEL.[Team], '''') As [Team], IsNull(DEL.[FromHandler], '''') As [FromHandler], DIA.[ActionID] As [ActionID], IsNull(DIA.[Status], 0) As [DiaryStatus], IsNull(DIA.[Highlighted], '''') As [Highlighted], IsNull(DIA.[Attachments], '''') As [Attachments], Convert(varchar, DIA.[DATE], 106) As [DiaryDate], SUBSTRING(Convert(varchar, [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DIA.[DATE], DIA.[DYSTARTTIME]), 108), 1, 5) AS [DiaryTime], RTrim(IsNull(DIA.[FNCode], '''')) AS [FNCode], IsNull(DIA.[TeamCode], '''') AS [TeamCode], IsNull(DIA.[WorkProcess], 0) AS [WorkProcess], Convert(int, IsNull(DIA.[DelegationStatus], 0)) AS [DelegationStatus], RTrim(IsNull(DIA.[ACTIONCODE], '''')) AS [ActionCode], CASE WHEN DIA.[ACTIONTYPE] = ''D'' AND DIA.[IMAGENO] > 0 THEN ''Length: '' + Convert(varchar, [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DIA.[DATE], DIA.[IMAGENO]), 108) ELSE '''' END AS [DURATION], [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DEL.[DATE], DEL.[TIME]) AS [DelegatedDateTime], DEL.[AssignNo] As [AssignNo] FROM [dbo].[ky_wdcasediarypage3](@CASECODE, @start, @pagesize, @search, @ActionType, @highlighted, @priority) DIP INNER JOIN [dbo].[Diary] DIA ON DIA.[ACTIONID] = DIP.[ACTIONID] CROSS APPLY ( SELECT TOP 1 DELX.[STATUS], DELX.[DELEGATESTATUS], DELX.[HANDLER], DELX.[TEAM], DELX.[FROMHANDLER], DELX.[DATE], DELX.[TIME], DELX.[ASSIGNNO] FROM [dbo].[DiaryDelegations] DELX WHERE DELX.[ActionID] = DIA.[ActionID] AND DELX.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') ORDER BY DELX.[AssignNo] DESC) DEL INNER JOIN [dbo].[CaseMaster] CM ON CM.[CSCODE] = DIA.[CASECODE] ORDER BY DIP.[ID] UPDATE DV SET DV.[Action] = [dbo].[ky_removespuriouswhitespace](DV.[Action], 80) FROM @DV DV INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DV.[ActionID] RETURN END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDiary2] Script Date: 10/01/2014 16:19:13 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDiary2]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDCaseDiary2 * * Case Diary view with support for paging * **************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDCaseDiary2] (@casecode varchar(20), @start int, @pagesize int) RETURNS @DV TABLE ([CaseCode] varchar(20), [WKCode] varchar(10), [Action] varchar(255), [Status] int, [ActionType] varchar(1), [Priority] varchar(1), [DelegateStatus] int, [ImageNo] int, [Handler] varchar(10), [Team] varchar(10), [FromHandler] varchar(10), [ActionID] int, [DiaryStatus] int, [Highlighted] varchar(1), [Attachments] varchar(1), [DiaryDate] varchar(11), [DiaryTime] varchar(5), [FNCode] varchar(10), [TeamCode] varchar(10), [WorkProcess] int, [DelegationStatus] int, [ActionCode] varchar(30), [Duration] varchar(30), [DelegatedDateTime] datetime, [AssignNo] int) AS BEGIN INSERT INTO @DV ([CaseCode], [WKCode], [Action], [Status], [ActionType], [Priority], [DelegateStatus], [ImageNo], [Handler], [Team], [FromHandler], [ActionID], [DiaryStatus], [Highlighted], [Attachments], [DiaryDate], [DiaryTime], [FNCode], [TeamCode], [WorkProcess], [DelegationStatus], [ActionCode], [Duration], [DelegatedDateTime], [AssignNo]) SELECT RTrim(IsNull(DIA.[CaseCode], '''')) As [CaseCode], CM.[CSWKTCODE], CASE WHEN DIA.[ActionType] = ''E'' THEN SUBSTRING(''Email from: '' + Rtrim(IsNull([dbo].[ky_GetNameFromEmailAddress](DIA.[EmailAddress]), '''')) + '' - '' + RTrim(IsNull(convert(varchar(2000), DIA.[Subject]), '''')), 1, 120) ELSE SUBSTRING(DIA.[TEXT1], 1, 120) END As [Action], DEL.[Status], IsNull(DIA.[ActionType], '''') As [ActionType], IsNull(DIA.[Priority], '''') As [Priority], IsNull(DEL.[DELEGATESTATUS], 0) As [DelegateStatus], DIA.[ImageNo], IsNull(DEL.[Handler], '''') As [Handler], IsNull(DEL.[Team], '''') As [Team], IsNull(DEL.[FromHandler], '''') As [FromHandler], DIA.[ActionID] As [ActionID], IsNull(DIA.[Status], 0) As [DiaryStatus], IsNull(DIA.[Highlighted], '''') As [Highlighted], IsNull(DIA.[Attachments], '''') As [Attachments], Convert(varchar, DIA.[DATE], 106) As [DiaryDate], SUBSTRING(Convert(varchar, [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DIA.[DATE], DIA.[DYSTARTTIME]), 108), 1, 5) AS [DiaryTime], RTrim(IsNull(DIA.[FNCode], '''')) AS [FNCode], IsNull(DIA.[TeamCode], '''') AS [TeamCode], IsNull(DIA.[WorkProcess], 0) AS [WorkProcess], Convert(int, IsNull(DIA.[DelegationStatus], 0)) AS [DelegationStatus], RTrim(IsNull(DIA.[ACTIONCODE], '''')) AS [ActionCode], CASE WHEN DIA.[ACTIONTYPE] = ''D'' AND DIA.[IMAGENO] > 0 THEN ''Length: '' + Convert(varchar, [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DIA.[DATE], DIA.[IMAGENO]), 108) ELSE '''' END AS [DURATION], [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DEL.[DATE], DEL.[TIME]) AS [DelegatedDateTime], DEL.[AssignNo] As [AssignNo] FROM [dbo].[ky_wdcasediarypage](@CASECODE, @start, @pagesize) DIP INNER JOIN [dbo].[Diary] DIA ON DIA.[ACTIONID] = DIP.[ACTIONID] CROSS APPLY ( SELECT TOP 1 DELX.[STATUS], DELX.[DELEGATESTATUS], DELX.[HANDLER], DELX.[TEAM], DELX.[FROMHANDLER], DELX.[DATE], DELX.[TIME], DELX.[ASSIGNNO] FROM [dbo].[DiaryDelegations] DELX WHERE DELX.[ActionID] = DIA.[ActionID] AND DELX.[DelType] NOT IN (''Completed'', ''Processed'', ''Returned'') ORDER BY DELX.[AssignNo] DESC) DEL INNER JOIN [dbo].[CaseMaster] CM ON CM.[CSCODE] = DIA.[CASECODE] UPDATE DV SET DV.[Action] = [dbo].[ky_removespuriouswhitespace](DV.[Action], 80) FROM @DV DV INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DV.[ActionID] RETURN END ' END GO /****** Object: StoredProcedure [dbo].[ky_MoveBriefSection] Script Date: 10/01/2014 16:17:25 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_MoveBriefSection]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_MoveBriefSection] (@RecID Integer, @Direction Integer) AS /************************************************************** * * * ky_MoveBriefSection * * * * Moves a section up or down within a brief * * * * Parameters: RecID, the ID column of the section * * Direction, the direction to move * * 1 = Down * * 2 = Up * * 3 = Beginning * * 4 = End * * * **************************************************************/ DECLARE @BriefID int DECLARE @CoverPage int DECLARE @MinSeq int DECLARE @MaxSeq int DECLARE @CurSeq int SELECT @BriefID = [BriefID], @CoverPage = [CoverPage] FROM [dbo].[BriefSections] WHERE [ID] = @RecID IF @BriefID IS NULL BEGIN RETURN END /* To make sure we don''t get any nasty surprises, we first ensure that the sections are neatly numbered 1, 2, 3, 4... */ EXEC dbo.ky_ReorderBriefSections @BriefID SELECT @MinSeq = Min(BS2.[Sequence]), @MaxSeq = Max(BS2.[Sequence]), @CurSeq = BS1.[Sequence] FROM [dbo].[BriefSections] BS1 INNER JOIN [dbo].[BriefSections] BS2 ON BS2.[BriefID] = @BriefID AND BS2.[CoverPage] = @CoverPage WHERE BS1.[ID] = @RecID GROUP BY BS1.[Sequence] IF @Direction = 1 IF @CurSeq < @MaxSeq BEGIN UPDATE [dbo].[BriefSections] SET [Sequence] = 0 WHERE [BriefID] = @BriefID AND [Sequence] = @CurSeq UPDATE [dbo].[BriefSections] SET [Sequence] = @CurSeq WHERE [BriefID] = @BriefID AND [Sequence] = @CurSeq + 1 UPDATE [dbo].[BriefSections] SET [Sequence] = @CurSeq + 1 WHERE [BriefID] = @BriefID AND [Sequence] = 0 END IF @Direction = 2 IF @CurSeq > @MinSeq BEGIN UPDATE [dbo].[BriefSections] SET [Sequence] = 0 WHERE [BriefID] = @BriefID AND [Sequence] = @CurSeq UPDATE [dbo].[BriefSections] SET [Sequence] = @CurSeq WHERE [BriefID] = @BriefID AND [Sequence] = @CurSeq - 1 UPDATE [dbo].[BriefSections] SET [Sequence] = @CurSeq - 1 WHERE [BriefID] = @BriefID AND [Sequence] = 0 END IF @Direction = 3 IF @CurSeq > @MinSeq BEGIN UPDATE [dbo].[BriefSections] SET [Sequence] = 0 WHERE [BriefID] = @BriefID AND [Sequence] = @CurSeq END IF @Direction = 4 IF @CurSeq < @MaxSeq BEGIN UPDATE [dbo].[BriefSections] SET [Sequence] = @MaxSeq + 1 WHERE [BriefID] = @BriefID AND [Sequence] = @CurSeq END EXEC dbo.ky_ReorderBriefSections @BriefID ' END GO /****** Object: StoredProcedure [dbo].[ky_briefsectionupdate] Script Date: 10/01/2014 16:17:04 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_briefsectionupdate]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_briefsectionupdate] (@ID int, @Section varchar(100), @CoverPage bit) AS DECLARE @BriefID int SELECT @BriefID = BS.[BriefID] FROM [dbo].[BriefSections] BS WHERE BS.[ID] = @ID update BS set BS.[CoverPage] = @CoverPage, BS.[Section] = @Section, BS.[khsorter] = convert(varchar, 1 - @CoverPage) + right(convert(varchar, 10000 + BS.[Sequence]), 4) + right(convert(varchar, 10000000 + BS.[ID]), 7) from [dbo].[BriefSections] BS WHERE BS.[ID] = @ID EXEC dbo.ky_ReorderBriefSections @BriefID ' END GO /****** Object: View [dbo].[New_FeMatterWIP_View] Script Date: 10/01/2014 16:20:00 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[New_FeMatterWIP_View]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[New_FeMatterWIP_View] AS SELECT TOP 100 PERCENT dbo.TimeEntry.FEEEARN, dbo.TimeEntry.MATTER, SUM(dbo.TimeEntry.CHARGE - coalesce(dbo.TimeEntry.BilledAmount,0)) AS WIP, dbo.MatterLastBillDate.BillDate, dbo.Contacts.Name, dbo.matters.Description, dbo.matters.FECode, dbo.matters.Dept, dbo.matters.WType, dbo.matters.DebtBal AS DebtorsBalance, dbo.matters.OutlayBal AS OutlayBalance, dbo.matters.ClientBal AS ClientTotalBalance, dbo.matters.ClientCurBal AS ClientDepositeBalance, dbo.matters.ClientDepBal AS ClientBalance, dbo.TimeEntry.TIMEORCHARGE AS TimeOrChange FROM dbo.MatterLastBillDate RIGHT OUTER JOIN dbo.TimeEntry ON dbo.MatterLastBillDate.MatterCode = dbo.TimeEntry.MATTER LEFT OUTER JOIN dbo.Contacts RIGHT OUTER JOIN dbo.matters ON dbo.Contacts.Code = dbo.matters.ClientCode ON dbo.TimeEntry.MATTER = dbo.matters.Code GROUP BY dbo.TimeEntry.FEEEARN, dbo.TimeEntry.MATTER, dbo.MatterLastBillDate.BillDate, dbo.Contacts.Name, dbo.matters.Description, dbo.matters.FECode, dbo.matters.Dept, dbo.matters.WType, dbo.matters.DebtBal, dbo.matters.OutlayBal, dbo.matters.ClientBal, dbo.matters.ClientCurBal, dbo.matters.ClientDepBal, dbo.TimeEntry.TIMEORCHARGE HAVING (dbo.TimeEntry.MATTER <> ''~'') AND (dbo.TimeEntry.TIMEORCHARGE <> ''B'') ORDER BY dbo.TimeEntry.FEEEARN, dbo.TimeEntry.MATTER ' GO /****** Object: View [dbo].[FeMatterWIP] Script Date: 10/01/2014 16:19:56 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FeMatterWIP]')) EXEC dbo.sp_executesql @statement = N' CREATE VIEW [dbo].[FeMatterWIP] AS SELECT TOP (100) PERCENT TimeEntry.FEEEARN, TimeEntry.MATTER, SUM(TimeEntry.CHARGE) AS Charged, SUM(ISNULL(TimeEntry.BilledAmount, 0)) AS BilledAmount, SUM(TimeEntry.CHARGE - ISNULL(TimeEntry.BilledAmount, 0)) AS WIP, MatterLastBillDate.BillDate, Contacts.Name, matters.Description, matters.FECode, matters.Dept, matters.WType, matters.DebtBal AS DebtorsBalance, matters.OutlayBal AS OutlayBalance, matters.ClientBal AS ClientTotalBalance, matters.ClientCurBal AS ClientDepositeBalance, matters.ClientDepBal AS ClientBalance, TimeEntry.REC_IRR FROM MatterLastBillDate WITH (nolock) RIGHT OUTER JOIN TimeEntry WITH (nolock) ON MatterLastBillDate.MatterCode = TimeEntry.MATTER LEFT OUTER JOIN Contacts WITH (nolock) RIGHT OUTER JOIN matters WITH (nolock) ON Contacts.Code = matters.ClientCode ON TimeEntry.MATTER = matters.Code WHERE (TimeEntry.REC_IRR <> ''N'') AND (TimeEntry.TIMEORCHARGE <> ''B'') GROUP BY TimeEntry.FEEEARN, TimeEntry.MATTER, MatterLastBillDate.BillDate, Contacts.Name, matters.Description, matters.FECode, matters.Dept, matters.WType, matters.DebtBal, matters.OutlayBal, matters.ClientBal, matters.ClientCurBal, matters.ClientDepBal, TimeEntry.REC_IRR HAVING (TimeEntry.MATTER <> ''~'') ORDER BY TimeEntry.FEEEARN, TimeEntry.MATTER ' GO /****** Object: View [dbo].[FeMatterWIPold] Script Date: 10/01/2014 16:19:57 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FeMatterWIPold]')) EXEC dbo.sp_executesql @statement = N' CREATE VIEW [dbo].[FeMatterWIPold] AS SELECT TOP (100) PERCENT TimeEntry.FEEEARN, TimeEntry.MATTER, SUM(TimeEntry.CHARGE) AS Charged, SUM(ISNULL(TimeEntry.BilledAmount, 0)) AS BilledAmount, SUM(TimeEntry.CHARGE - ISNULL(TimeEntry.BilledAmount, 0)) AS WIP, MatterLastBillDate.BillDate, Contacts.Name, matters.Description, matters.FECode, matters.Dept, matters.WType, matters.DebtBal AS DebtorsBalance, matters.OutlayBal AS OutlayBalance, matters.ClientBal AS ClientTotalBalance, matters.ClientCurBal AS ClientDepositeBalance, matters.ClientDepBal AS ClientBalance, TimeEntry.TIMEORCHARGE AS TimeOrChange, TimeEntry.INVOICENO, TimeEntry.REC_IRR FROM MatterLastBillDate RIGHT OUTER JOIN TimeEntry ON MatterLastBillDate.MatterCode = TimeEntry.MATTER LEFT OUTER JOIN Contacts RIGHT OUTER JOIN matters ON Contacts.Code = matters.ClientCode ON TimeEntry.MATTER = matters.Code WHERE (TimeEntry.REC_IRR <> ''N'') GROUP BY TimeEntry.FEEEARN, TimeEntry.MATTER, MatterLastBillDate.BillDate, Contacts.Name, matters.Description, matters.FECode, matters.Dept, matters.WType, matters.DebtBal, matters.OutlayBal, matters.ClientBal, matters.ClientCurBal, matters.ClientDepBal, TimeEntry.TIMEORCHARGE, TimeEntry.INVOICENO, TimeEntry.REC_IRR HAVING (TimeEntry.MATTER <> ''~'') AND (TimeEntry.TIMEORCHARGE <> ''B'') ORDER BY TimeEntry.FEEEARN, TimeEntry.MATTER ' GO /****** Object: StoredProcedure [dbo].[ky_KHC_getbasicmatterlist] Script Date: 10/01/2014 16:17:23 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_KHC_getbasicmatterlist]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_KHC_getbasicmatterlist * * Get the basic Matter List for display in the Keyhouse Connect application * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_KHC_getbasicmatterlist] (@UserID int, @Supervisor int, @AtMost int, @Search VARCHAR(100), @UDFList VARCHAR(MAX)) AS BEGIN SELECT MAT.[Code], RM.[Accessed] AS [RecentAccessed], MAT.[Started] AS [MatterStarted], RTRIM(ISNULL(MAT.[ClientCode], '''')) AS [ClientCode], RTRIM(ISNULL(CLT.[CLNAME], '''')) AS [ClientName], RTRIM(ISNULL(MAT.[Description], '''')) AS [Description], Convert(VARCHAR, MAT.[Started], 106) AS [Started], RTRIM(ISNULL(MAT.[COMMENT], '''')) AS [COMMENT], MAT.[LastAct], RTRIM(ISNULL(MAT.[OldRef], '''')) AS [OldRef], RTRIM(ISNULL(MAT.[YourRef], '''')) AS [YourRef], RTRIM(ISNULL(MAT.[User1], '''')) AS [User1], RTRIM(ISNULL(MAT.[User2], '''')) AS [User2], RTRIM(ISNULL(MAT.[User3], '''')) AS [User3], RTRIM(ISNULL(HAN.[Name], '''')) AS [HandlerName], RTRIM(ISNULL(SC.[DESCRIPTION], '''')) AS [Status], CASE WHEN RM.[Accessed] IS NULL THEN ''Never'' ELSE Convert(VARCHAR, RM.[Accessed], 106) END AS [Accessed], LSA.[DATE] AS [LastAction], RTRIM(ISNULL(LSA.[Text1], '''')) AS [LastActionText], LSH.[DATE] AS [LastMilestone], RTRIM(ISNULL(LSH.[Text1], '''')) AS [LastMilestoneText], NSA.[DATE] AS [NextAction], RTRIM(ISNULL(NSA.[Text1], '''')) AS [NextActionText] FROM [dbo].[KHCQuickSearch](@UserID, @Supervisor, @SEARCH, @UDFList, @AtMost) RES LEFT OUTER JOIN [dbo].[KHCUserRecentMatters] RM ON RM.[KHCUserId] = @UserID AND RM.[KHCMatterCode] = RES.[MatterCode] LEFT OUTER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[client] CLT ON CLT.[CLCODE] = MAT.[ClientCode] LEFT OUTER JOIN [dbo].[Handlers] HAN ON HAN.[code] = MAT.[FECode] LEFT OUTER JOIN [dbo].[StatusCodes] SC ON SC.[code] = MAT.[Status] ON MAT.[code] = RES.[mattercode] OUTER APPLY [dbo].[ky_KHC_GetLastAction](RES.[MatterCode]) LSA OUTER APPLY [dbo].[ky_KHC_GetLastMilestone](RES.[MatterCode]) LSH OUTER APPLY [dbo].[ky_KHC_GetNextAction](RES.[MatterCode]) NSA ORDER BY CASE WHEN RM.[Accessed] IS NULL THEN 1 ELSE 0 END, RM.[Accessed] DESC, MAT.[Started] DESC END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDCompleteTranscription] Script Date: 10/01/2014 16:17:50 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCompleteTranscription]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_WDCompleteTranscription] (@TrackReference int) AS BEGIN DECLARE @DiaryID int DECLARE @Handler varchar(10) DECLARE @status int UPDATE DIA SET DIA.[TxmDate] = GETDATE() FROM [dbo].[DiaryAttachments] DAT INNER JOIN [dbo].[diary] DIA ON DIA.[ACTIONID] = DAT.[DIARYID] WHERE DAT.[TRACKREFERENCE] = @TrackReference SELECT @DiaryID = DAT.[DiaryID], @Handler = CASE WHEN RTRIM(ISNULL(DIA.[DELEGATEDFNR], '''')) <> '''' THEN DIA.[DELEGATEDFNR] ELSE DIA.[FNCODE] END, @status = DIA.[STATUS] FROM [dbo].[DiaryAttachments] DAT INNER JOIN [dbo].[Diary] DIA ON DIA.[ACTIONID] = DAT.[DIARYID] WHERE DAT.[TRACKREFERENCE] = @TrackReference IF (@status = 0) BEGIN EXEC [dbo].[ky_WDActionComplete2] @DiaryId, @Handler, '''', 0 END END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskList] Script Date: 10/01/2014 16:18:18 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskList]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskList * * Returns the Task List to be displayed in WinDev/WebDev versions of the software * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDTaskList] (@Handler varchar(10), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int) AS BEGIN DECLARE @startdate datetime DECLARE @enddate datetime IF (IsNull(@startdateT, '''') = '''') BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END ELSE BEGIN IF (isdate(@startdateT) = 1) BEGIN set @startdate = convert(datetime, replace(convert(varchar(10), convert(datetime, @startdateT), 121), ''-'', '''')) END ELSE BEGIN SET @startdate = convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', '''')) END END IF (IsNull(@enddateT, '''') = '''') BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END ELSE BEGIN IF (isdate(@enddateT) = 1) BEGIN set @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), convert(datetime, @enddateT), 121), ''-'', ''''))) END ELSE BEGIN SET @enddate = dateadd(d, 1, convert(datetime, replace(convert(varchar(10), getDate(), 121), ''-'', ''''))) END END IF (RTrim(IsNull(@Handler, '''')) <> '''') BEGIN SET @Team = '''' IF (IsNull(@outstanding, 1) = 0) BEGIN SELECT TSK.[CaseCode], TSK.[Action], RTrim(IsNull(CTC.[Name], '''')) AS [ClientName], RTrim(IsNull(MAT.[Description], '''')) AS [MatterDescription], Convert(varchar, TSK.[DelegatedDateTime], 106) As [DATE], Convert(varchar, TSK.[DelegatedDateTime], 108) As [TIME], TSK.[Status], TSK.[ActionType], TSK.[Priority], TSK.[DelegateStatus], TSK.[ImageNo], TSK.[Handler], TSK.[Team], TSK.[FromHandler], TSK.[ActionID], TSK.[DiaryStatus], TSK.[Highlighted], TSK.[Attachments], TSK.[DiaryDate], TSK.[FNCode], TSK.[TeamCode], TSK.[WorkProcess], TSK.[DelegationStatus], TSK.[ActionCode], TSK.[DURATION], TSK.[DELEGATEDDATETIME] FROM [dbo].[ky_WDDelView](@Handler, @startdate, @enddate, @outstanding) TSK INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CTC ON CTC.[CODE] = MAT.[CLIENTCODE] ON MAT.[Code] = TSK.[CASECODE] ORDER BY TSK.[DelegatedDateTime], TSK.[ActionID] END ELSE BEGIN SELECT TSK.[CaseCode], TSK.[Action], RTrim(IsNull(CTC.[Name], '''')) AS [ClientName], RTrim(IsNull(MAT.[Description], '''')) AS [MatterDescription], Convert(varchar, TSK.[DelegatedDateTime], 106) As [DATE], Convert(varchar, TSK.[DelegatedDateTime], 108) As [TIME], TSK.[Status], TSK.[ActionType], TSK.[Priority], TSK.[DelegateStatus], TSK.[ImageNo], TSK.[Handler], TSK.[Team], TSK.[FromHandler], TSK.[ActionID], TSK.[DiaryStatus], TSK.[Highlighted], TSK.[Attachments], TSK.[DiaryDate], TSK.[FNCode], TSK.[TeamCode], TSK.[WorkProcess], TSK.[DelegationStatus], TSK.[ActionCode], TSK.[DURATION], TSK.[DELEGATEDDATETIME] FROM [dbo].[ky_WDDelView](@Handler, @startdate, @enddate, @outstanding) TSK INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CTC ON CTC.[CODE] = MAT.[CLIENTCODE] ON MAT.[Code] = TSK.[CASECODE] WHERE TSK.[Status] = 0 ORDER BY TSK.[DelegatedDateTime], TSK.[ActionID] END END IF (RTrim(IsNull(@Team, '''')) <> '''') BEGIN IF (IsNull(@outstanding, 1) = 0) BEGIN SELECT TSK.[CaseCode], TSK.[Action], RTrim(IsNull(CTC.[Name], '''')) AS [ClientName], RTrim(IsNull(MAT.[Description], '''')) AS [MatterDescription], Convert(varchar, TSK.[DelegatedDateTime], 106) As [DATE], Convert(varchar, TSK.[DelegatedDateTime], 108) As [TIME], TSK.[Status], TSK.[ActionType], TSK.[Priority], TSK.[DelegateStatus], TSK.[ImageNo], TSK.[Handler], TSK.[Team], TSK.[FromHandler], TSK.[ActionID], TSK.[DiaryStatus], TSK.[Highlighted], TSK.[Attachments], TSK.[DiaryDate], TSK.[FNCode], TSK.[TeamCode], TSK.[WorkProcess], TSK.[DelegationStatus], TSK.[ActionCode], TSK.[DURATION], TSK.[DELEGATEDDATETIME] FROM [dbo].[ky_WDDelTeamView](@Team, @startdate, @enddate, @outstanding) TSK INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CTC ON CTC.[CODE] = MAT.[CLIENTCODE] ON MAT.[Code] = TSK.[CASECODE] ORDER BY TSK.[DelegatedDateTime], TSK.[ActionID] END ELSE BEGIN SELECT TSK.[CaseCode], TSK.[Action], RTrim(IsNull(CTC.[Name], '''')) AS [ClientName], RTrim(IsNull(MAT.[Description], '''')) AS [MatterDescription], Convert(varchar, TSK.[DelegatedDateTime], 106) As [DATE], Convert(varchar, TSK.[DelegatedDateTime], 108) As [TIME], TSK.[Status], TSK.[ActionType], TSK.[Priority], TSK.[DelegateStatus], TSK.[ImageNo], TSK.[Handler], TSK.[Team], TSK.[FromHandler], TSK.[ActionID], TSK.[DiaryStatus], TSK.[Highlighted], TSK.[Attachments], TSK.[DiaryDate], TSK.[FNCode], TSK.[TeamCode], TSK.[WorkProcess], TSK.[DelegationStatus], TSK.[ActionCode], TSK.[DURATION], TSK.[DELEGATEDDATETIME] FROM [dbo].[ky_WDDelTeamView](@Team, @startdate, @enddate, @outstanding) TSK INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CTC ON CTC.[CODE] = MAT.[CLIENTCODE] ON MAT.[Code] = TSK.[CASECODE] WHERE TSK.[Status] = 0 ORDER BY TSK.[DelegatedDateTime], TSK.[ActionID] END END END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDActionDocumentsPub] Script Date: 10/01/2014 16:17:41 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDActionDocumentsPub]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * [dbo].[ky_WDActionDocumentsPub] * * Lists case documents (expanded list). With support for Paging. Only Published ones. * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDActionDocumentsPub] (@casecode varchar(20), @search varchar(50), @startno int, @count int, @classes varchar(max), @noimg int, @noeml int, @nomed int, @types varchar(max), @ActionID int) AS BEGIN IF (RTRIM(ISNULL(@classes, '''')) = '''') BEGIN set @classes = NULL END IF (RTRIM(ISNULL(@types, '''')) = '''') BEGIN set @types = NULL END SELECT Convert(VARCHAR, DIA.[DATE], 106) AS [DocumentDate], DAT.[DOCCLASS] AS [DocumentClass], UPPER(RTRIM(ISNULL(DAT.[TYPE], ''''))) AS [TYPE], RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '''')) AS [DocumentClassDescription], RTRIM(ISNULL(DAT.[Source], '''')) AS [DocumentSource], RTRIM(ISNULL(DIA.[EMAILADDRESS], '''')) AS [EmailAddress], KYD.[AddressTo] AS [AddressTo], KYD.[SUBJECT] AS [SUBJECT], RTRIM(ISNULL(DAT.[ENTEREDBY], '''')) AS [ENTEREDBY], ISNULL(Convert(VARCHAR, DAT.[DateEntered], 106), '''') AS [DATEENTERED], RTRIM(ISNULL(DAT.[LASTACCESSBY], '''')) AS [LASTACCESSBY], ISNULL(Convert(VARCHAR, DAT.[LASTACCESSDATE], 106), '''') AS [LASTACCESSDATE], CASE WHEN ISNULL(DIA.[EMAIL], '''') = ''Y'' THEN ''Y'' WHEN (OMS.[TYPE] = ''MSG'') THEN ''Y'' ELSE ''N'' END AS [EMAIL], RTRIM(ISNULL(DAT.[Document], '''')) AS [OriginalDocumentName], CASE WHEN (ISNULL(DIA.[EMAIL], '''') = ''Y'') OR (OMS.[TYPE] = ''MSG'') THEN ''E-mail from '' + CASE WHEN RTRIM(ISNULL([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS]), '''')) = '''' THEN ''[undisclosed]'' ELSE RTRIM([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS])) END + '' to '' + CASE WHEN KYD.[AddressTo] = '''' THEN ''[undisclosed]'' ELSE KYD.[AddressTo] END ELSE RTRIM(ISNULL(DAT.[Document],'''')) END AS [ShortDocument], CASE WHEN ( ( (ISNULL(DIA.[EMAIL], '''') = ''Y'') OR (OMS.[TYPE] = ''MSG'')) AND (DAT.TrackReference = OMS.TrackReference)) THEN ''E-mail from '' + CASE WHEN RTRIM(ISNULL([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS]), '''')) = '''' THEN ''[undisclosed]'' ELSE RTRIM([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS])) END + '' to '' + CASE WHEN KYD.[AddressTo] = '''' THEN ''[undisclosed]'' ELSE KYD.[AddressTo] END + '': '' + CASE UPPER(KYD.[SUBJECT]) WHEN '''' THEN ''[no subject]'' WHEN ''FW:'' THEN ''FW: [no subject]'' WHEN ''RE:'' THEN ''RE: [no subject]'' ELSE KYD.[SUBJECT] END ELSE RTRIM(ISNULL(DAT.[Document],'''')) END AS [Document], CASE WHEN ( ISNULL(DIA.[EMAIL], '''') = ''Y'' AND DAT.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' WHEN ( ISNULL(DAT.TYPE, '''') = ''MSG'' AND DAT.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' ELSE ''N'' END AS [MainMailFile], DAT.[TrackReference], RTRIM(ISNULL(DAT.[NAME], '''')) AS [NAME], CASE WHEN UNC.[DRIVE] = NULL THEN RTRIM(ISNULL(DAT.[FILEPATH], '''')) ELSE UNC.[UNC] + RIGHT(RTRIM(ISNULL(DAT.[FILEPATH], '''')), LEN(RTRIM(ISNULL(DAT.[FILEPATH], ''''))) - 2) END AS [FILEPATH], RTRIM(ISNULL(DIA.[PROCESSTYPE], '''')) AS [PROCESSTYPE], RTRIM(ISNULL(DIA.[ACTIONTYPE], '''')) AS [ACTIONTYPE], DIA.[ActionID] FROM [dbo].[ky_WDActionDocListPub](@casecode, @search, @startno, @count, @classes, @noimg, @noeml, @nomed, @types, @ActionID) CDLP INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = CDLP.[DiaryID] INNER JOIN [dbo].[DiaryAttachments] DAT LEFT OUTER JOIN [dbo].[DocumentClasses] DCL ON DCL.[CLASSCODE] = DAT.[DOCCLASS] ON DAT.[TrackReference] = CDLP.[TrackReference] CROSS APPLY (SELECT RTRIM(ISNULL(CONVERT(VARCHAR(255), SUBSTRING(DIAX.[AddressTo], 1, 255)), '''')) As [AddressTo], RTRIM(ISNULL(CONVERT(VARCHAR(255), SUBSTRING(DIAX.[Subject], 1, 255)), '''')) As [Subject] FROM [dbo].[Diary] DIAX WHERE DIAX.[ActionID] = DIA.[ActionID]) KYD OUTER APPLY ( SELECT TOP 1 MST.[TrackReference] AS [TrackReference], MST.[Type] AS [Type] FROM [dbo].[diaryattachments] MST WHERE MST.[diaryid] = DIA.[ActionID] ORDER BY CASE WHEN MST.TYPE = ''MSG'' THEN 0 WHEN MST.TYPE = ''HTM'' THEN 1 ELSE 2 END, MST.[TrackReference]) OMS LEFT OUTER JOIN [dbo].[UNCAlias] UNC ON UNC.[Drive] + '':'' = LEFT(DAT.[FILEPATH], 2) ORDER BY CDLP.[docid] END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListByActionTypePage] Script Date: 10/01/2014 16:18:19 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByActionTypePage]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListByActionTypePage * * Returns the Task List to be displayed in WinDev/WebDev versions of the software * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDTaskListByActionTypePage] (@Handler varchar(10), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @startno int, @count int, @ActionType varchar(1), @Search varchar(100)) AS BEGIN SELECT TSK.[CaseCode], TSK.[Action], TSK.[Subject], RTrim(IsNull(CTC.[Name], '''')) AS [ClientName], RTrim(IsNull(MAT.[Description], '''')) AS [MatterDescription], Convert(varchar, TSK.[DelegatedDateTime], 106) As [DATE], Convert(varchar, TSK.[DelegatedDateTime], 108) As [TIME], TSK.[Status], TSK.[ActionType], TSK.[Priority], TSK.[DelegateStatus], TSK.[ImageNo], TSK.[Handler], TSK.[Team], TSK.[FromHandler], TSK.[ActionID], TSK.[DiaryStatus], TSK.[Highlighted], TSK.[Attachments], TSK.[DiaryDate], TSK.[FNCode], TSK.[TeamCode], TSK.[WorkProcess], TSK.[DelegationStatus], TSK.[ActionCode], TSK.[DURATION], TSK.[DELEGATEDDATETIME], TSK.[AssignNo] FROM ( SELECT RTrim(IsNull(DIA.[CaseCode], '''')) As [CaseCode], [dbo].[ky_removespuriouswhitespace](substring(DIA.[DisplayText], 1, 120), 80) As [Action], [dbo].[ky_removespuriouswhitespace](substring(DIA.[SUBJECT], 1, 150), 80) As [Subject], DEL.[Status], IsNull(DIA.[ActionType], '''') As [ActionType], IsNull(DIA.[Priority], '''') As [Priority], IsNull(DEL.[DELEGATESTATUS], 0) As [DelegateStatus], DIA.[ImageNo], IsNull(DEL.[Handler], '''') As [Handler], IsNull(DEL.[Team], '''') As [Team], IsNull(DEL.[FromHandler], '''') As [FromHandler], DIA.[ActionID] As [ActionID], IsNull(DIA.[Status], 0) As [DiaryStatus], IsNull(DIA.[Highlighted], '''') As [Highlighted], IsNull(DIA.[Attachments], '''') As [Attachments], Convert(varchar, DIA.[DATE], 106) As [DiaryDate], RTrim(IsNull(DIA.[FNCode], '''')) AS [FNCode], IsNull(DIA.[TeamCode], '''') AS [TeamCode], IsNull(DIA.[WorkProcess], 0) AS [WorkProcess], Convert(int, IsNull(DIA.[DelegationStatus], 0)) AS [DelegationStatus], RTrim(IsNull(DIA.[ACTIONCODE], '''')) AS [ActionCode], CASE WHEN DIA.[ACTIONTYPE] = ''D'' AND DIA.[IMAGENO] > 0 THEN ''Length: '' + Convert(varchar, [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DIA.[DATE], DIA.[IMAGENO]), 108) ELSE '''' END AS [DURATION], [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DEL.[DATE], DEL.[TIME]) AS [DelegatedDateTime], DEL.[AssignNo] FROM [dbo].[ky_WDTaskListByActionTypeSet] (@Handler, @Team, @startdateT, @enddateT, @outstanding, @startno, @count, @ActionType, @Search) TLS INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = TLS.[ActionID] AND DIA.[ActionType] = @ActionType AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) INNER JOIN [dbo].[DiaryDelegations] DEL ON DEL.[AssignNo] = TLS.[AssignNo]) TSK INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CTC ON CTC.[CODE] = MAT.[CLIENTCODE] ON MAT.[Code] = TSK.[CASECODE] AND MAT.[Closed] = ''N'' ORDER BY TSK.[DelegatedDateTime] END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListByHighlightPage] Script Date: 10/01/2014 16:18:21 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByHighlightPage]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListByHighlightPage * * Returns the Task List to be displayed in WinDev/WebDev versions of the software * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDTaskListByHighlightPage] (@Handler varchar(10), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @startno int, @count int, @ActionType varchar(1), @Highlighted varchar(1), @Priority varchar(1), @Search varchar(100)) AS BEGIN SELECT TSK.[CaseCode], TSK.[Action], TSK.[Subject], RTrim(IsNull(CTC.[Name], '''')) AS [ClientName], RTrim(IsNull(MAT.[Description], '''')) AS [MatterDescription], Convert(varchar, TSK.[DelegatedDateTime], 106) As [DATE], Convert(varchar, TSK.[DelegatedDateTime], 108) As [TIME], TSK.[Status], TSK.[ActionType], TSK.[Priority], TSK.[DelegateStatus], TSK.[ImageNo], TSK.[Handler], TSK.[Team], TSK.[FromHandler], TSK.[ActionID], TSK.[DiaryStatus], TSK.[Highlighted], TSK.[Attachments], TSK.[DiaryDate], TSK.[FNCode], TSK.[TeamCode], TSK.[WorkProcess], TSK.[DelegationStatus], TSK.[ActionCode], TSK.[DURATION], TSK.[DELEGATEDDATETIME], TSK.[AssignNo] FROM ( SELECT RTrim(IsNull(DIA.[CaseCode], '''')) As [CaseCode], [dbo].[ky_removespuriouswhitespace](substring(DIA.[DisplayText], 1, 120), 80) As [Action], [dbo].[ky_removespuriouswhitespace](substring(DIA.[SUBJECT], 1, 150), 80) As [Subject], DEL.[Status], IsNull(DIA.[ActionType], '''') As [ActionType], IsNull(DIA.[Priority], '''') As [Priority], IsNull(DEL.[DELEGATESTATUS], 0) As [DelegateStatus], DIA.[ImageNo], IsNull(DEL.[Handler], '''') As [Handler], IsNull(DEL.[Team], '''') As [Team], IsNull(DEL.[FromHandler], '''') As [FromHandler], DIA.[ActionID] As [ActionID], IsNull(DIA.[Status], 0) As [DiaryStatus], IsNull(DIA.[Highlighted], '''') As [Highlighted], IsNull(DIA.[Attachments], '''') As [Attachments], Convert(varchar, DIA.[DATE], 106) As [DiaryDate], RTrim(IsNull(DIA.[FNCode], '''')) AS [FNCode], IsNull(DIA.[TeamCode], '''') AS [TeamCode], IsNull(DIA.[WorkProcess], 0) AS [WorkProcess], Convert(int, IsNull(DIA.[DelegationStatus], 0)) AS [DelegationStatus], RTrim(IsNull(DIA.[ACTIONCODE], '''')) AS [ActionCode], CASE WHEN DIA.[ACTIONTYPE] = ''D'' AND DIA.[IMAGENO] > 0 THEN ''Length: '' + Convert(varchar, [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DIA.[DATE], DIA.[IMAGENO]), 108) ELSE '''' END AS [DURATION], [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DEL.[DATE], DEL.[TIME]) AS [DelegatedDateTime], DEL.[AssignNo] FROM [dbo].[ky_WDTaskListByHighlightSet] (@Handler, @Team, @startdateT, @enddateT, @outstanding, @startno, @count, @ActionType, @Highlighted, @Priority, @Search) TLS INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = TLS.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) INNER JOIN [dbo].[DiaryDelegations] DEL ON DEL.[AssignNo] = TLS.[AssignNo]) TSK INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CTC ON CTC.[CODE] = MAT.[CLIENTCODE] ON MAT.[Code] = TSK.[CASECODE] AND MAT.[Closed] = ''N'' ORDER BY TSK.[DelegatedDateTime] END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDPostDayBook] Script Date: 10/01/2014 16:18:09 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDPostDayBook]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDPostDayBook * * Posts all valid entries from the Time Day Book into the Time Entry * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDPostDayBook] (@Handler varchar(10), @HSEClientGroup varchar(20)) AS BEGIN DECLARE @MAXID int DECLARE @Continue int DECLARE @COMMAND int DECLARE @AxleErrors int DECLARE @NTEID TABLE ([ID] int identity(1, 1), [NEWID] int, [RECORDID] int) DECLARE @PDMAT TABLE ([ID] int identity(1, 1), [CODE] varchar(20)) BEGIN TRANSACTION SET @Continue = 0 BEGIN TRY BEGIN SELECT @AxleErrors = COUNT(1) FROM [dbo].[ky_WDTimeDayBookWithAxleErrors] (@HSEClientGroup, @Handler) AXER WHERE AXER.[IsAxleError] = ''Y'' IF (@@Error <> 0) SET @Continue = 1 IF (@AxleErrors > 0) SET @Continue = 1 END END TRY BEGIN CATCH SET @Continue = 1 END CATCH IF (@Continue = 0) BEGIN BEGIN TRY BEGIN SELECT @MAXID = ISNULL(MAX(TIE.[RECORDID]), 0) FROM [dbo].[TimeEntry] TIE IF (@@Error <> 0) SET @Continue = 1 END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END IF (@Continue = 0) BEGIN BEGIN TRY BEGIN INSERT INTO @NTEID ([NEWID], [RECORDID]) SELECT @MAXID, TDB.[RECORDID] from TimeDayBook TDB WHERE TDB.[FEEEARN] = @Handler IF (@@ERROR <> 0) SET @Continue = 1 END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END IF (@Continue = 0) BEGIN BEGIN TRY BEGIN INSERT INTO @PDMAT ([CODE]) SELECT DISTINCT TDB.[MATTER] from TimeDayBook TDB WHERE TDB.[FEEEARN] = @Handler IF (@@ERROR <> 0) SET @Continue = 1 END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END IF (@Continue = 0) BEGIN BEGIN TRY BEGIN UPDATE NTEID SET NTEID.[NEWID] = NTEID.[ID] + NTEID.[NEWID] FROM @NTEID NTEID IF (@@ERROR <> 0) SET @Continue = 1 END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END SET IDENTITY_INSERT [dbo].[TimeEntry] ON IF (@Continue = 0) BEGIN BEGIN TRY BEGIN INSERT INTO [dbo].[TimeEntry] ([MATTER], [FEEEARN], [DATE], [TIME], [RATE], [TASK], [TIMEORCHARGE], [COMMENT], [NCCODE], [DOCKET], [TEAM], [TRACKREF], [REC_IRR], [PERIOD], [YEAR], [ACTIONID], [StageCode], [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 '''' 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], TDB.[PERIOD], TDB.[YEAR], TDB.[ACTIONID], TDB.[StageCode], NTEID.[NEWID] from @NTEID NTEID INNER JOIN [dbo].[TimeDayBook] TDB ON TDB.[RECORDID] = NTEID.[RECORDID] IF (@@ERROR <> 0) SET @Continue = 1 END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END SET IDENTITY_INSERT [dbo].[TimeEntry] OFF IF (@Continue = 0) BEGIN BEGIN TRY BEGIN SELECT @MAXID = ISNULL(MAX(TIE.[RECORDID]), 0) FROM [dbo].[TimeEntry] TIE DBCC CHECKIDENT([TimeEntry], RESEED, @MAXID) IF (@@Error <> 0) SET @Continue = 1 END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END IF (@Continue = 0) BEGIN BEGIN TRY BEGIN DELETE [dbo].[WDNTEID] WHERE [handler] = @Handler INSERT INTO [dbo].[WDNTEID] ([Handler], [id], [NewId], [RECORDID]) SELECT @Handler, [ID], [NEWID], [RECORDID] FROM @NTEID END END TRY BEGIN CATCH BEGIN SET @Continue = 1 END END CATCH END IF (@Continue = 0) BEGIN BEGIN TRY BEGIN EXEC [dbo].[ky_WDUpdateTimeEntryFromDayBook] @HANDLER IF (@@ERROR <> 0) SET @Continue = 1 END END TRY BEGIN CATCH BEGIN SET @Continue = 1 END END CATCH END IF (@Continue = 0) BEGIN BEGIN TRY BEGIN EXEC [dbo].[ky_WDCheckUnpostableEntries] @HANDLER IF (@@ERROR <> 0) SET @Continue = 1 END END TRY BEGIN CATCH BEGIN SET @Continue = 1 END END CATCH END IF (@Continue = 0) BEGIN BEGIN TRY BEGIN 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 IF (@@ERROR <> 0) SET @Continue = 1 END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END IF (@Continue = 0) BEGIN BEGIN TRY BEGIN UPDATE MAT SET MAT.[ChargeBal] = RKT.[ChargeValue], MAT.[TimeBal] = RKT.[TIME] FROM @PDMAT PDM INNER JOIN [dbo].[Matters] MAT ON MAT.[Code] = PDM.[CODE] CROSS APPLY (SELECT IsNull(SUM(KTE.[TIME]), 0) AS [TIME], IsNull(SUM(KTE.[ChargeValue]), 0) AS [ChargeValue] FROM [dbo].[ky_wdTimeEntry](PDM.[code], ''19000101'', ''21000101'') KTE) RKT WHERE MAT.[Code] IS NOT NULL IF (@@ERROR <> 0) SET @Continue = 1 END END TRY BEGIN CATCH SET @Continue = 1 END CATCH END SELECT @Continue IF (@Continue = 0) COMMIT ELSE ROLLBACK END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDSearchAllContacts] Script Date: 10/01/2014 16:18:14 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDSearchAllContacts]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDSearchAllContacts * * Returns a list of Matter Contacts matching a search criterion * on matter description or user defined fields * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDSearchAllContacts] (@search varchar(50), @mattersearch varchar(50), @includeCA int, @includeCC int, @includeCO int, @includeMC int, @expand int, @clientcode varchar(10), @namecode varchar(10), @bycase int, @IncludePhone int) AS BEGIN SET @IncludePhone = Case When ISNULL(@IncludePhone, 0) = 1 THEN 1 ELSE 0 END IF (@expand = 0) BEGIN SELECT NR.[Name], NR.[Address], NR.[Phone], NR.[Mobile], NR.[Fax], NR.[Email], NR.[ClientCode], NR.[NameCode], COUNT(1) AS [Cases], '''' As [CaseCode], '''' As [ClientName], '''' As [CaseDescription] FROM ( SELECT RES.[Name], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], RES.[Case], Max(RES.[ClientCode]) AS [ClientCode], Max(RES.[NameCode]) As [NameCode] FROM (SELECT * from [ky_WDSearchCaseAssociates](@search, @mattersearch, @includeCA, 1, @clientcode, @namecode, @IncludePhone) UNION SELECT * from [ky_WDSearchClientContacts](@search, @mattersearch, @includeCC, 1, @clientcode, @namecode, @IncludePhone) UNION SELECT * from [ky_WDSearchContacts](@search, @mattersearch, @includeCO, 1, @clientcode, @namecode, @IncludePhone) UNION SELECT * from [ky_WDSearchMatterContacts](@search, @mattersearch, @includeMC, 1, @clientcode, @namecode, @IncludePhone)) RES GROUP BY RES.[Name], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], RES.[Case]) NR GROUP BY NR.[Name], NR.[Address], NR.[Phone], NR.[Mobile], NR.[Fax], NR.[Email], NR.[ClientCode], NR.[NameCode] END if (@expand = 1) AND (@bycase = 1) BEGIN SELECT NR.[Name], NR.[Address], NR.[Phone], NR.[Mobile], NR.[Fax], NR.[Email], NR.[ClientCode], NR.[NameCode], 1 As [Cases], NR.[Case] As [CaseCode], RTrim(IsNull(CON.[Name], '''')) As [ClientName], RTrim(IsNull(MAT.[Description], '''')) As [CaseDescription] FROM ( SELECT '''' As [Name], '''' As [Address], '''' As [Phone], '''' As [Mobile], '''' As [Fax], '''' As [Email], @clientcode AS [ClientCode], @namecode AS [NameCode], RES.[Case] FROM (SELECT * from [ky_WDSearchCaseAssociates](@search, @mattersearch, @includeCA, 1, @clientcode, @namecode, @IncludePhone) UNION SELECT * from [ky_WDSearchClientContacts](@search, @mattersearch, @includeCC, 1, @clientcode, @namecode, @IncludePhone) UNION SELECT * from [ky_WDSearchContacts](@search, @mattersearch, @includeCO, 1, @clientcode, @namecode, @IncludePhone) UNION SELECT * from [ky_WDSearchMatterContacts](@search, @mattersearch, @includeMC, 1, @clientcode, @namecode, @IncludePhone)) RES GROUP BY RES.[Case]) NR INNER JOIN [dbo].[Matters] MAT INNER JOIN [dbo].[contacts] CON ON CON.[Code] = MAT.[ClientCode] ON MAT.[CODE] = NR.[Case] END if (@expand = 1) AND (@bycase = 0) BEGIN SELECT NR.[Name], NR.[Address], NR.[Phone], NR.[Mobile], NR.[Fax], NR.[Email], NR.[ClientCode], NR.[NameCode], 1 As [Cases], NR.[Case] As [CaseCode], RTrim(IsNull(CON.[Name], '''')) As [ClientName], RTrim(IsNull(MAT.[Description], '''')) As [CaseDescription] FROM ( SELECT RES.[Name], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], @clientcode AS [ClientCode], @namecode AS [NameCode], RES.[Case] FROM (SELECT * from [ky_WDSearchCaseAssociates](@search, @mattersearch, @includeCA, 1, @clientcode, @namecode, @IncludePhone) UNION SELECT * from [ky_WDSearchClientContacts](@search, @mattersearch, @includeCC, 1, @clientcode, @namecode, @IncludePhone) UNION SELECT * from [ky_WDSearchContacts](@search, @mattersearch, @includeCO, 1, @clientcode, @namecode, @IncludePhone) UNION SELECT * from [ky_WDSearchMatterContacts](@search, @mattersearch, @includeMC, 1, @clientcode, @namecode, @IncludePhone)) RES GROUP BY RES.[Name], RES.[Address], RES.[Phone], RES.[Mobile], RES.[Fax], RES.[Email], RES.[Case]) NR INNER JOIN [dbo].[Matters] MAT INNER JOIN [dbo].[contacts] CON ON CON.[Code] = MAT.[ClientCode] ON MAT.[CODE] = NR.[Case] END END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListPage2] Script Date: 10/01/2014 16:18:29 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListPage2]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListPage2 * * Returns the Task List to be displayed in WinDev/WebDev versions of the software * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDTaskListPage2] (@Handler varchar(10), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @startno int, @count int, @Search varchar(100)) AS BEGIN SELECT TSK.[CaseCode], TSK.[Action], TSK.[Subject], RTrim(IsNull(CTC.[Name], '''')) AS [ClientName], RTrim(IsNull(MAT.[Description], '''')) AS [MatterDescription], Convert(varchar, TSK.[DelegatedDateTime], 106) As [DATE], Convert(varchar, TSK.[DelegatedDateTime], 108) As [TIME], TSK.[Status], TSK.[ActionType], TSK.[Priority], TSK.[DelegateStatus], TSK.[ImageNo], TSK.[Handler], TSK.[Team], TSK.[FromHandler], TSK.[ActionID], TSK.[DiaryStatus], TSK.[Highlighted], TSK.[Attachments], TSK.[DiaryDate], TSK.[DiaryDDate], TSK.[FNCode], TSK.[TeamCode], TSK.[WorkProcess], TSK.[DelegationStatus], TSK.[ActionCode], TSK.[DURATION], TSK.[CVDuration], TSK.[DELEGATEDDATETIME], TSK.[AssignNo] FROM ( SELECT RTrim(IsNull(DIA.[CaseCode], '''')) As [CaseCode], DIA.[DisplayText] As [Action], RTrim([dbo].[ky_removespuriouswhitespace](substring(DIA.[SUBJECT], 1, 150), 150)) As [Subject], DEL.[Status], IsNull(DIA.[ActionType], '''') As [ActionType], IsNull(DIA.[Priority], '''') As [Priority], IsNull(DEL.[DELEGATESTATUS], 0) As [DelegateStatus], DIA.[ImageNo], RTRIM(IsNull(DEL.[Handler], '''')) As [Handler], RTRIM(IsNull(DEL.[Team], '''')) As [Team], RTRIM(IsNull(DEL.[FromHandler], '''')) As [FromHandler], DIA.[ActionID] As [ActionID], IsNull(DIA.[Status], 0) As [DiaryStatus], IsNull(DIA.[Highlighted], '''') As [Highlighted], IsNull(DIA.[Attachments], '''') As [Attachments], Convert(varchar, DIA.[DATE], 106) As [DiaryDate], DIA.[DATE] As [DiaryDDate], RTrim(IsNull(DIA.[FNCode], '''')) AS [FNCode], IsNull(DIA.[TeamCode], '''') AS [TeamCode], IsNull(DIA.[WorkProcess], 0) AS [WorkProcess], Convert(int, IsNull(DIA.[DelegationStatus], 0)) AS [DelegationStatus], RTrim(IsNull(DIA.[ACTIONCODE], '''')) AS [ActionCode], CASE WHEN DIA.[ACTIONTYPE] = ''D'' AND DIA.[IMAGENO] > 0 THEN ''Length: '' + Convert(varchar, [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DIA.[DATE], DIA.[IMAGENO]), 108) ELSE '''' END AS [DURATION], [dbo].[ky_getDuration](DIA.[DYSTARTTIME], DIA.[DYENDTIME], 30) AS [CVDuration], [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DEL.[DATE], DEL.[TIME]) AS [DelegatedDateTime], DEL.[AssignNo] FROM [dbo].[ky_WDTaskListSet2] (@Handler, @Team, @startdateT, @enddateT, @outstanding, @startno, @count, @Search) TLS INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = TLS.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) INNER JOIN [dbo].[DiaryDelegations] DEL ON DEL.[AssignNo] = TLS.[AssignNo]) TSK INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CTC ON CTC.[CODE] = MAT.[CLIENTCODE] ON MAT.[Code] = TSK.[CASECODE] AND MAT.[Closed] = ''N'' ORDER BY TSK.[DelegatedDateTime] END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListPage2Rev] Script Date: 10/01/2014 16:18:30 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListPage2Rev]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListPage2Rev * * Returns the Task List to be displayed in WinDev/WebDev versions of the software * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDTaskListPage2Rev] (@Handler varchar(10), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @startno int, @count int, @Search varchar(100)) AS BEGIN SELECT TSK.[CaseCode], TSK.[Action], TSK.[Subject], RTrim(IsNull(CTC.[Name], '''')) AS [ClientName], RTrim(IsNull(MAT.[Description], '''')) AS [MatterDescription], Convert(varchar, TSK.[DelegatedDateTime], 106) As [DATE], Convert(varchar, TSK.[DelegatedDateTime], 108) As [TIME], TSK.[Status], TSK.[ActionType], TSK.[Priority], TSK.[DelegateStatus], TSK.[ImageNo], TSK.[Handler], TSK.[Team], TSK.[FromHandler], TSK.[ActionID], TSK.[DiaryStatus], TSK.[Highlighted], TSK.[Attachments], TSK.[DiaryDate], TSK.[DiaryDDate], TSK.[FNCode], TSK.[TeamCode], TSK.[WorkProcess], TSK.[DelegationStatus], TSK.[ActionCode], TSK.[DURATION], TSK.[CVDuration], TSK.[DELEGATEDDATETIME], TSK.[AssignNo] FROM ( SELECT RTrim(IsNull(DIA.[CaseCode], '''')) As [CaseCode], DIA.[DisplayText] As [Action], RTrim([dbo].[ky_removespuriouswhitespace](substring(DIA.[SUBJECT], 1, 150), 150)) As [Subject], DEL.[Status], IsNull(DIA.[ActionType], '''') As [ActionType], IsNull(DIA.[Priority], '''') As [Priority], IsNull(DEL.[DELEGATESTATUS], 0) As [DelegateStatus], DIA.[ImageNo], RTRIM(IsNull(DEL.[Handler], '''')) As [Handler], RTRIM(IsNull(DEL.[Team], '''')) As [Team], RTRIM(IsNull(DEL.[FromHandler], '''')) As [FromHandler], DIA.[ActionID] As [ActionID], IsNull(DIA.[Status], 0) As [DiaryStatus], IsNull(DIA.[Highlighted], '''') As [Highlighted], IsNull(DIA.[Attachments], '''') As [Attachments], Convert(varchar, DIA.[DATE], 106) As [DiaryDate], DIA.[DATE] As [DiaryDDate], RTrim(IsNull(DIA.[FNCode], '''')) AS [FNCode], IsNull(DIA.[TeamCode], '''') AS [TeamCode], IsNull(DIA.[WorkProcess], 0) AS [WorkProcess], Convert(int, IsNull(DIA.[DelegationStatus], 0)) AS [DelegationStatus], RTrim(IsNull(DIA.[ACTIONCODE], '''')) AS [ActionCode], CASE WHEN DIA.[ACTIONTYPE] = ''D'' AND DIA.[IMAGENO] > 0 THEN ''Length: '' + Convert(varchar, [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DIA.[DATE], DIA.[IMAGENO]), 108) ELSE '''' END AS [DURATION], [dbo].[ky_getDuration](DIA.[DYSTARTTIME], DIA.[DYENDTIME], 30) AS [CVDuration], [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DEL.[DATE], DEL.[TIME]) AS [DelegatedDateTime], DEL.[AssignNo] FROM [dbo].[ky_WDTaskListSet2Rev] (@Handler, @Team, @startdateT, @enddateT, @outstanding, @startno, @count, @Search) TLS INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = TLS.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) INNER JOIN [dbo].[DiaryDelegations] DEL ON DEL.[AssignNo] = TLS.[AssignNo]) TSK INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CTC ON CTC.[CODE] = MAT.[CLIENTCODE] ON MAT.[Code] = TSK.[CASECODE] AND MAT.[Closed] = ''N'' ORDER BY TSK.[DelegatedDateTime] DESC END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListByHighlightPage2Rev] Script Date: 10/01/2014 16:18:23 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByHighlightPage2Rev]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListByHighlightPage2Rev * * Returns the Task List to be displayed in WinDev/WebDev versions of the software * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDTaskListByHighlightPage2Rev] (@Handler varchar(10), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @startno int, @count int, @ActionType varchar(500), @Highlighted varchar(1), @Priority varchar(1), @Search varchar(100)) AS BEGIN SELECT TSK.[CaseCode], TSK.[Action], TSK.[Subject], RTrim(IsNull(CTC.[Name], '''')) AS [ClientName], RTrim(IsNull(MAT.[Description], '''')) AS [MatterDescription], Convert(varchar, TSK.[DelegatedDateTime], 106) As [DATE], Convert(varchar, TSK.[DelegatedDateTime], 108) As [TIME], TSK.[Status], TSK.[ActionType], TSK.[Priority], TSK.[DelegateStatus], TSK.[ImageNo], TSK.[Handler], TSK.[Team], TSK.[FromHandler], TSK.[ActionID], TSK.[DiaryStatus], TSK.[Highlighted], TSK.[Attachments], TSK.[DiaryDate], TSK.[DiaryDDate], TSK.[FNCode], TSK.[TeamCode], TSK.[WorkProcess], TSK.[DelegationStatus], TSK.[ActionCode], TSK.[DURATION], TSK.[CVDuration], TSK.[DELEGATEDDATETIME], TSK.[AssignNo] FROM ( SELECT RTrim(IsNull(DIA.[CaseCode], '''')) As [CaseCode], DIA.[DisplayText] As [Action], RTrim([dbo].[ky_removespuriouswhitespace](substring(DIA.[SUBJECT], 1, 150), 150)) As [Subject], DEL.[Status], IsNull(DIA.[ActionType], '''') As [ActionType], IsNull(DIA.[Priority], '''') As [Priority], IsNull(DEL.[DELEGATESTATUS], 0) As [DelegateStatus], DIA.[ImageNo], RTRIM(IsNull(DEL.[Handler], '''')) As [Handler], RTRIM(IsNull(DEL.[Team], '''')) As [Team], RTRIM(IsNull(DEL.[FromHandler], '''')) As [FromHandler], DIA.[ActionID] As [ActionID], IsNull(DIA.[Status], 0) As [DiaryStatus], IsNull(DIA.[Highlighted], '''') As [Highlighted], IsNull(DIA.[Attachments], '''') As [Attachments], Convert(varchar, DIA.[DATE], 106) As [DiaryDate], DIA.[DATE] As [DiaryDDate], RTrim(IsNull(DIA.[FNCode], '''')) AS [FNCode], IsNull(DIA.[TeamCode], '''') AS [TeamCode], IsNull(DIA.[WorkProcess], 0) AS [WorkProcess], Convert(int, IsNull(DIA.[DelegationStatus], 0)) AS [DelegationStatus], RTrim(IsNull(DIA.[ACTIONCODE], '''')) AS [ActionCode], CASE WHEN DIA.[ACTIONTYPE] = ''D'' AND DIA.[IMAGENO] > 0 THEN ''Length: '' + Convert(varchar, [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DIA.[DATE], DIA.[IMAGENO]), 108) ELSE '''' END AS [DURATION], [dbo].[ky_getDuration](DIA.[DYSTARTTIME], DIA.[DYENDTIME], 30) AS [CVDuration], [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DEL.[DATE], DEL.[TIME]) AS [DelegatedDateTime], DEL.[AssignNo] FROM [dbo].[ky_WDTaskListByHighlightSet2Rev] (@Handler, @Team, @startdateT, @enddateT, @outstanding, @startno, @count, @ActionType, @Highlighted, @Priority, @Search) TLS INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = TLS.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) INNER JOIN [dbo].[DiaryDelegations] DEL ON DEL.[AssignNo] = TLS.[AssignNo]) TSK INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CTC ON CTC.[CODE] = MAT.[CLIENTCODE] ON MAT.[Code] = TSK.[CASECODE] AND MAT.[Closed] = ''N'' ORDER BY TSK.[DelegatedDateTime] DESC END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListPage] Script Date: 10/01/2014 16:18:28 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListPage]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListPage * * Returns the Task List to be displayed in WinDev/WebDev versions of the software * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDTaskListPage] (@Handler varchar(10), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @startno int, @count int, @Search varchar(100)) AS BEGIN SELECT TSK.[CaseCode], TSK.[Action], TSK.[Subject], RTrim(IsNull(CTC.[Name], '''')) AS [ClientName], RTrim(IsNull(MAT.[Description], '''')) AS [MatterDescription], Convert(varchar, TSK.[DelegatedDateTime], 106) As [DATE], Convert(varchar, TSK.[DelegatedDateTime], 108) As [TIME], TSK.[Status], TSK.[ActionType], TSK.[Priority], TSK.[DelegateStatus], TSK.[ImageNo], TSK.[Handler], TSK.[Team], TSK.[FromHandler], TSK.[ActionID], TSK.[DiaryStatus], TSK.[Highlighted], TSK.[Attachments], TSK.[DiaryDate], TSK.[DiaryDDate], TSK.[FNCode], TSK.[TeamCode], TSK.[WorkProcess], TSK.[DelegationStatus], TSK.[ActionCode], TSK.[DURATION], TSK.[CVDuration], TSK.[DELEGATEDDATETIME], TSK.[AssignNo] FROM ( SELECT RTrim(IsNull(DIA.[CaseCode], '''')) As [CaseCode], RTrim([dbo].[ky_removespuriouswhitespace](substring(DIA.[DisplayText], 1, 120), 80)) As [Action], RTRIM([dbo].[ky_removespuriouswhitespace](substring(DIA.[SUBJECT], 1, 150), 80)) As [Subject], DEL.[Status], IsNull(DIA.[ActionType], '''') As [ActionType], IsNull(DIA.[Priority], '''') As [Priority], IsNull(DEL.[DELEGATESTATUS], 0) As [DelegateStatus], DIA.[ImageNo], RTRIM(IsNull(DEL.[Handler], '''')) As [Handler], RTRIM(IsNull(DEL.[Team], '''')) As [Team], RTRIM(IsNull(DEL.[FromHandler], '''')) As [FromHandler], DIA.[ActionID] As [ActionID], IsNull(DIA.[Status], 0) As [DiaryStatus], IsNull(DIA.[Highlighted], '''') As [Highlighted], IsNull(DIA.[Attachments], '''') As [Attachments], Convert(varchar, DIA.[DATE], 106) As [DiaryDate], DIA.[DATE] As [DiaryDDate], RTrim(IsNull(DIA.[FNCode], '''')) AS [FNCode], IsNull(DIA.[TeamCode], '''') AS [TeamCode], IsNull(DIA.[WorkProcess], 0) AS [WorkProcess], Convert(int, IsNull(DIA.[DelegationStatus], 0)) AS [DelegationStatus], RTrim(IsNull(DIA.[ACTIONCODE], '''')) AS [ActionCode], CASE WHEN DIA.[ACTIONTYPE] = ''D'' AND DIA.[IMAGENO] > 0 THEN ''Length: '' + Convert(varchar, [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DIA.[DATE], DIA.[IMAGENO]), 108) ELSE '''' END AS [DURATION], [dbo].[ky_getDuration](DIA.[DYSTARTTIME], DIA.[DYENDTIME], 30) AS [CVDuration], [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DEL.[DATE], DEL.[TIME]) AS [DelegatedDateTime], DEL.[AssignNo] FROM [dbo].[ky_WDTaskListSet] (@Handler, @Team, @startdateT, @enddateT, @outstanding, @startno, @count, @Search) TLS INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = TLS.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) INNER JOIN [dbo].[DiaryDelegations] DEL ON DEL.[AssignNo] = TLS.[AssignNo]) TSK INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CTC ON CTC.[CODE] = MAT.[CLIENTCODE] ON MAT.[Code] = TSK.[CASECODE] AND MAT.[Closed] = ''N'' ORDER BY TSK.[DelegatedDateTime] END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListByActionTypePage2] Script Date: 10/01/2014 16:18:19 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByActionTypePage2]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListByActionTypePage2 * * Returns the Task List to be displayed in WinDev/WebDev versions of the software * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDTaskListByActionTypePage2] (@Handler varchar(10), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @startno int, @count int, @ActionType varchar(500), @Search varchar(100)) AS BEGIN SELECT TSK.[CaseCode], TSK.[Action], TSK.[Subject], RTrim(IsNull(CTC.[Name], '''')) AS [ClientName], RTrim(IsNull(MAT.[Description], '''')) AS [MatterDescription], Convert(varchar, TSK.[DelegatedDateTime], 106) As [DATE], Convert(varchar, TSK.[DelegatedDateTime], 108) As [TIME], TSK.[Status], TSK.[ActionType], TSK.[Priority], TSK.[DelegateStatus], TSK.[ImageNo], TSK.[Handler], TSK.[Team], TSK.[FromHandler], TSK.[ActionID], TSK.[DiaryStatus], TSK.[Highlighted], TSK.[Attachments], TSK.[DiaryDate], TSK.[DiaryDDate], TSK.[FNCode], TSK.[TeamCode], TSK.[WorkProcess], TSK.[DelegationStatus], TSK.[ActionCode], TSK.[DURATION], TSK.[CVDuration], TSK.[DELEGATEDDATETIME], TSK.[AssignNo] FROM ( SELECT RTrim(IsNull(DIA.[CaseCode], '''')) As [CaseCode], DIA.[DisplayText] As [Action], RTrim([dbo].[ky_removespuriouswhitespace](substring(DIA.[SUBJECT], 1, 150), 150)) As [Subject], DEL.[Status], IsNull(DIA.[ActionType], '''') As [ActionType], IsNull(DIA.[Priority], '''') As [Priority], IsNull(DEL.[DELEGATESTATUS], 0) As [DelegateStatus], DIA.[ImageNo], RTRIM(IsNull(DEL.[Handler], '''')) As [Handler], RTRIM(IsNull(DEL.[Team], '''')) As [Team], RTRIM(IsNull(DEL.[FromHandler], '''')) As [FromHandler], DIA.[ActionID] As [ActionID], IsNull(DIA.[Status], 0) As [DiaryStatus], IsNull(DIA.[Highlighted], '''') As [Highlighted], IsNull(DIA.[Attachments], '''') As [Attachments], Convert(varchar, DIA.[DATE], 106) As [DiaryDate], DIA.[DATE] As [DiaryDDate], RTrim(IsNull(DIA.[FNCode], '''')) AS [FNCode], IsNull(DIA.[TeamCode], '''') AS [TeamCode], IsNull(DIA.[WorkProcess], 0) AS [WorkProcess], Convert(int, IsNull(DIA.[DelegationStatus], 0)) AS [DelegationStatus], RTrim(IsNull(DIA.[ACTIONCODE], '''')) AS [ActionCode], CASE WHEN DIA.[ACTIONTYPE] = ''D'' AND DIA.[IMAGENO] > 0 THEN ''Length: '' + Convert(varchar, [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DIA.[DATE], DIA.[IMAGENO]), 108) ELSE '''' END AS [DURATION], [dbo].[ky_getDuration](DIA.[DYSTARTTIME], DIA.[DYENDTIME], 30) AS [CVDuration], [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DEL.[DATE], DEL.[TIME]) AS [DelegatedDateTime], DEL.[AssignNo] FROM [dbo].[ky_WDTaskListByActionTypeSet2] (@Handler, @Team, @startdateT, @enddateT, @outstanding, @startno, @count, @ActionType, @Search) TLS INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = TLS.[ActionID] --AND DIA.[ActionType] = @ActionType AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) INNER JOIN [dbo].[DiaryDelegations] DEL ON DEL.[AssignNo] = TLS.[AssignNo]) TSK INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CTC ON CTC.[CODE] = MAT.[CLIENTCODE] ON MAT.[Code] = TSK.[CASECODE] AND MAT.[Closed] = ''N'' ORDER BY TSK.[DelegatedDateTime] END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListByHighlightPage2] Script Date: 10/01/2014 16:18:22 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByHighlightPage2]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListByHighlightPage2 * * Returns the Task List to be displayed in WinDev/WebDev versions of the software * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDTaskListByHighlightPage2] (@Handler varchar(10), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @startno int, @count int, @ActionType varchar(500), @Highlighted varchar(1), @Priority varchar(1), @Search varchar(100)) AS BEGIN SELECT TSK.[CaseCode], TSK.[Action], TSK.[Subject], RTrim(IsNull(CTC.[Name], '''')) AS [ClientName], RTrim(IsNull(MAT.[Description], '''')) AS [MatterDescription], Convert(varchar, TSK.[DelegatedDateTime], 106) As [DATE], Convert(varchar, TSK.[DelegatedDateTime], 108) As [TIME], TSK.[Status], TSK.[ActionType], TSK.[Priority], TSK.[DelegateStatus], TSK.[ImageNo], TSK.[Handler], TSK.[Team], TSK.[FromHandler], TSK.[ActionID], TSK.[DiaryStatus], TSK.[Highlighted], TSK.[Attachments], TSK.[DiaryDate], TSK.[DiaryDDate], TSK.[FNCode], TSK.[TeamCode], TSK.[WorkProcess], TSK.[DelegationStatus], TSK.[ActionCode], TSK.[DURATION], TSK.[CVDuration], TSK.[DELEGATEDDATETIME], TSK.[AssignNo] FROM ( SELECT RTrim(IsNull(DIA.[CaseCode], '''')) As [CaseCode], DIA.[DisplayText] As [Action], RTrim([dbo].[ky_removespuriouswhitespace](substring(DIA.[SUBJECT], 1, 150), 150)) As [Subject], DEL.[Status], IsNull(DIA.[ActionType], '''') As [ActionType], IsNull(DIA.[Priority], '''') As [Priority], IsNull(DEL.[DELEGATESTATUS], 0) As [DelegateStatus], DIA.[ImageNo], RTRIM(IsNull(DEL.[Handler], '''')) As [Handler], RTRIM(IsNull(DEL.[Team], '''')) As [Team], RTRIM(IsNull(DEL.[FromHandler], '''')) As [FromHandler], DIA.[ActionID] As [ActionID], IsNull(DIA.[Status], 0) As [DiaryStatus], IsNull(DIA.[Highlighted], '''') As [Highlighted], IsNull(DIA.[Attachments], '''') As [Attachments], Convert(varchar, DIA.[DATE], 106) As [DiaryDate], DIA.[DATE] As [DiaryDDate], RTrim(IsNull(DIA.[FNCode], '''')) AS [FNCode], IsNull(DIA.[TeamCode], '''') AS [TeamCode], IsNull(DIA.[WorkProcess], 0) AS [WorkProcess], Convert(int, IsNull(DIA.[DelegationStatus], 0)) AS [DelegationStatus], RTrim(IsNull(DIA.[ACTIONCODE], '''')) AS [ActionCode], CASE WHEN DIA.[ACTIONTYPE] = ''D'' AND DIA.[IMAGENO] > 0 THEN ''Length: '' + Convert(varchar, [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DIA.[DATE], DIA.[IMAGENO]), 108) ELSE '''' END AS [DURATION], [dbo].[ky_getDuration](DIA.[DYSTARTTIME], DIA.[DYENDTIME], 30) AS [CVDuration], [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DEL.[DATE], DEL.[TIME]) AS [DelegatedDateTime], DEL.[AssignNo] FROM [dbo].[ky_WDTaskListByHighlightSet2] (@Handler, @Team, @startdateT, @enddateT, @outstanding, @startno, @count, @ActionType, @Highlighted, @Priority, @Search) TLS INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = TLS.[ActionID] AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) INNER JOIN [dbo].[DiaryDelegations] DEL ON DEL.[AssignNo] = TLS.[AssignNo]) TSK INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CTC ON CTC.[CODE] = MAT.[CLIENTCODE] ON MAT.[Code] = TSK.[CASECODE] AND MAT.[Closed] = ''N'' ORDER BY TSK.[DelegatedDateTime] END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListByActionTypePage2Rev] Script Date: 10/01/2014 16:18:20 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDTaskListByActionTypePage2Rev]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDTaskListByActionTypePage2Rev * * Returns the Task List to be displayed in WinDev/WebDev versions of the software * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDTaskListByActionTypePage2Rev] (@Handler varchar(10), @Team varchar(10), @startdateT varchar(8), @enddateT varchar(8), @outstanding int, @startno int, @count int, @ActionType varchar(500), @Search varchar(100)) AS BEGIN SELECT TSK.[CaseCode], TSK.[Action], TSK.[Subject], RTrim(IsNull(CTC.[Name], '''')) AS [ClientName], RTrim(IsNull(MAT.[Description], '''')) AS [MatterDescription], Convert(varchar, TSK.[DelegatedDateTime], 106) As [DATE], Convert(varchar, TSK.[DelegatedDateTime], 108) As [TIME], TSK.[Status], TSK.[ActionType], TSK.[Priority], TSK.[DelegateStatus], TSK.[ImageNo], TSK.[Handler], TSK.[Team], TSK.[FromHandler], TSK.[ActionID], TSK.[DiaryStatus], TSK.[Highlighted], TSK.[Attachments], TSK.[DiaryDate], TSK.[DiaryDDate], TSK.[FNCode], TSK.[TeamCode], TSK.[WorkProcess], TSK.[DelegationStatus], TSK.[ActionCode], TSK.[DURATION], TSK.[CVDuration], TSK.[DELEGATEDDATETIME], TSK.[AssignNo] FROM ( SELECT RTrim(IsNull(DIA.[CaseCode], '''')) As [CaseCode], DIA.[DisplayText] As [Action], RTrim([dbo].[ky_removespuriouswhitespace](substring(DIA.[SUBJECT], 1, 150), 150)) As [Subject], DEL.[Status], IsNull(DIA.[ActionType], '''') As [ActionType], IsNull(DIA.[Priority], '''') As [Priority], IsNull(DEL.[DELEGATESTATUS], 0) As [DelegateStatus], DIA.[ImageNo], RTRIM(IsNull(DEL.[Handler], '''')) As [Handler], RTRIM(IsNull(DEL.[Team], '''')) As [Team], RTRIM(IsNull(DEL.[FromHandler], '''')) As [FromHandler], DIA.[ActionID] As [ActionID], IsNull(DIA.[Status], 0) As [DiaryStatus], IsNull(DIA.[Highlighted], '''') As [Highlighted], IsNull(DIA.[Attachments], '''') As [Attachments], Convert(varchar, DIA.[DATE], 106) As [DiaryDate], DIA.[DATE] As [DiaryDDate], RTrim(IsNull(DIA.[FNCode], '''')) AS [FNCode], IsNull(DIA.[TeamCode], '''') AS [TeamCode], IsNull(DIA.[WorkProcess], 0) AS [WorkProcess], Convert(int, IsNull(DIA.[DelegationStatus], 0)) AS [DelegationStatus], RTrim(IsNull(DIA.[ACTIONCODE], '''')) AS [ActionCode], CASE WHEN DIA.[ACTIONTYPE] = ''D'' AND DIA.[IMAGENO] > 0 THEN ''Length: '' + Convert(varchar, [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DIA.[DATE], DIA.[IMAGENO]), 108) ELSE '''' END AS [DURATION], [dbo].[ky_getDuration](DIA.[DYSTARTTIME], DIA.[DYENDTIME], 30) AS [CVDuration], [dbo].[ky_ConvertDateAndClarionTimeToDateTime](DEL.[DATE], DEL.[TIME]) AS [DelegatedDateTime], DEL.[AssignNo] FROM [dbo].[ky_WDTaskListByActionTypeSet2Rev] (@Handler, @Team, @startdateT, @enddateT, @outstanding, @startno, @count, @ActionType, @Search) TLS INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[matters] MS INNER JOIN [dbo].[contacts] CTS ON CTS.[CODE] = MS.[ClientCode] ON MS.[Code] = DIA.[CaseCode] AND MS.[Closed] = ''N'' ON DIA.[ActionID] = TLS.[ActionID] --AND DIA.[ActionType] = @ActionType AND ( CONVERT(varchar(5000), DIA.[SUBJECT]) LIKE @Search OR CONVERT(varchar(5000), DIA.[Text1]) LIKE @Search OR CONVERT(varchar(20), MS.[Code]) LIKE @Search OR CONVERT(varchar(5000), MS.[Description]) LIKE @Search OR CONVERT(varchar(5000), CTS.[Name]) LIKE @Search) INNER JOIN [dbo].[DiaryDelegations] DEL ON DEL.[AssignNo] = TLS.[AssignNo]) TSK INNER JOIN [dbo].[matters] MAT INNER JOIN [dbo].[contacts] CTC ON CTC.[CODE] = MAT.[CLIENTCODE] ON MAT.[Code] = TSK.[CASECODE] AND MAT.[Closed] = ''N'' ORDER BY TSK.[DelegatedDateTime] DESC END ' END GO /****** Object: StoredProcedure [dbo].[ky_BGFeeBreakDown] Script Date: 10/01/2014 16:17:00 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_BGFeeBreakDown]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_BGFeeBreakDown] (@DraftNo int) AS BEGIN DECLARE @TOTVALUE decimal(11, 2) INSERT INTO [dbo].[BillFeeBreakdown] ([MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT]) SELECT NBFB.[MATTER], NBFB.[DRAFTNO], NBFB.[BILLNO], NBFB.[FECODE], NBFB.[TYPE], NBFB.[PERCENT], NBFB.[CALCULATION], NBFB.[VALUE], NBFB.[VATCODE], NBFB.[VATAMT] FROM ky_BGNewBillFeeBreakdown(@DraftNo) NBFB LEFT OUTER JOIN [dbo].[BillFeeBreakdown] BFB ON BFB.[DRAFTNO] = NBFB.[DRAFTNO] AND BFB.[FECODE] = NBFB.[FECODE] WHERE BFB.[RECORDID] IS NULL select @TOTVALUE = IsNull(SUM(BFB.[VALUE]), 0) from [dbo].[BILLFEeBREAKDOWN] BFB where BFB.[DRAFTNO] = @DraftNo IF (@TOTVALUE = 0) BEGIN UPDATE [dbo].[BILLFeeBreakdown] SET [PERCENT] = 0, [CALCULATION] = 0 WHERE [DRAFTNO] = @DraftNo END ELSE BEGIN UPDATE [dbo].[BILLFeeBreakdown] SET [PERCENT] = convert(decimal(5, 2), Round(100 * ([VALUE] / @TOTVALUE), 2)), [CALCULATION] = convert(decimal(9, 5), Round(100 * ([VALUE] / @TOTVALUE), 5)) WHERE [DRAFTNO] = @DraftNo END END ' END GO /****** Object: StoredProcedure [dbo].[ky_CalculateFEBreakDown] Script Date: 10/01/2014 16:17:04 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CalculateFEBreakDown]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_CalculateFEBreakDown] (@DRAFTNO int) AS BEGIN DECLARE @TOTVALUE decimal(11, 2) DECLARE @TOTVAT decimal(15, 2) DELETE FROM [dbo].[BillFeeBreakDown] WHERE [DRAFTNO] = @DraftNo INSERT INTO [dbo].[BillFeeBreakdown] ([MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT], [VATCalculation]) SELECT NBFB.[MATTER], NBFB.[DRAFTNO], 0, NBFB.[FECODE], NBFB.[TYPE], NBFB.[PERCENT], NBFB.[CALCULATION], NBFB.[VALUE], NBFB.[VATCODE], NBFB.[VATAMT], NBFB.[VATCalculation] FROM ky_BGNewBillFeeBreakdown(@DraftNo) NBFB LEFT OUTER JOIN [dbo].[BillFeeBreakdown] BFB ON BFB.[DRAFTNO] = NBFB.[DRAFTNO] AND BFB.[FECODE] = NBFB.[FECODE] WHERE BFB.[RECORDID] IS NULL select @TOTVALUE = IsNull(SUM(BFB.[VALUE]), 0), @TOTVAT = ISNULL(SUM(BFB.[VATAMT]), 0) from [dbo].[BillFeeBreakDown] BFB where BFB.[DRAFTNO] = @DraftNo IF (@TOTVALUE = 0) BEGIN UPDATE BFB SET BFB.[PERCENT] = 0, BFB.[CALCULATION] = 0 FROM [dbo].[BILLFeeBreakdown] BFB WHERE BFB.[DRAFTNO] = @DraftNo END ELSE BEGIN UPDATE BFB SET BFB.[PERCENT] = convert(decimal(5, 2), Round(100 * (BFB.[VALUE] / @TOTVALUE), 2)), BFB.[CALCULATION] = convert(decimal(9, 5), Round(100 * (BFB.[VALUE] / @TOTVALUE), 5)), BFB.[VATAMT] = M1.[OVC] - M2.[OVC] FROM [dbo].[BILLFeeBreakdown] BFB CROSS APPLY (SELECT Convert(decimal(11, 2), Round(SUM(B2.[VATCalculation]), 2)) AS [OVC] FROM [dbo].[BillFeeBreakDown] B2 WHERE B2.[DRAFTNO] = @DraftNo AND B2.[RECORDID] <= BFB.[RECORDID]) M1 CROSS APPLY (SELECT Convert(decimal(11, 2), Round(IsNull(SUM(B2.[VATCalculation]), 0), 2)) AS [OVC] FROM [dbo].[BillFeeBreakDown] B2 WHERE B2.[DRAFTNO] = @DraftNo AND B2.[RECORDID] < BFB.[RECORDID]) M2 WHERE BFB.[DRAFTNO] = @DraftNo END END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDDelegateAction_DiaryDel81] Script Date: 10/01/2014 16:18:02 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDDelegateAction_DiaryDel81]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDDelegateAction_DiaryDel81 * * Delegate an action. This is performed in 4 steps: * 1) If requested, the action is released. * 2) The action is delegated * 3) The action is updated * 4) An alarm is set * * @DelDateType: 0 - Use Today''s Date as the delegation date * 1 - Keep the original date/time * 2 - Use the date passed in through @DelDate as the delegation date * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDDelegateAction_DiaryDel81] (@ActionID int, @AssignNo int, @DelDateType int, @DelDate varchar(17), @Handler varchar(10), @AssignTo varchar(10), @Release int) AS BEGIN DECLARE @AIDParm varchar(50) DECLARE @RESULT int DECLARE @RightNow datetime BEGIN TRANSACTION --Default to 0 - Use Today''s Date SET @DelDateType = ISNULL(@DelDateType, 0) SET @RightNow = GETDATE() BEGIN TRY -- Make sure that @DelDate is a valid date in "YYYYMMDD HH:MI:SS" format SET @RightNow = CONVERT(datetime, @DelDate) SET @DelDate = CONVERT(VARCHAR(8), @RightNow, 112) + '' '' + CONVERT(VARCHAR(8), @RightNow, 108) SET @RightNow = GETDATE() END TRY BEGIN CATCH -- If @DelDate doesn''t contain a valid date in "YYYYMMDD HH:MI:SS" format, -- revert to the default behaviour: use today''s date SET @DelDateType = 0 SET @RightNow = GETDATE() SET @DelDate = CONVERT(VARCHAR(8), @RightNow, 112) + '' '' + CONVERT(VARCHAR(8), @RightNow, 108) END CATCH BEGIN TRY -- Make sure @DelDateType contains a valid value, i.e. 0, 1 or 2. -- Anything outside that range is changed to the default, 0 SET @DelDateType = CASE WHEN @DelDateType = 1 THEN 1 WHEN @DelDateType = 2 THEN 2 ELSE 0 END -- 1: Keep the original date and time -- 2: Use the date that was passed in -- otherwise, default, 0: - Use today''s date SET @DelDate = CASE WHEN @DelDateType = 1 THEN CONVERT(varchar(17), null) WHEN @DelDateType = 2 THEN @DelDate ELSE CONVERT(VARCHAR(8), @RightNow, 112) + '' '' + CONVERT(VARCHAR(8), @RightNow, 108) END END TRY BEGIN CATCH -- Can''t think of a scenario in which the above could fail, but hey. If it DOES, -- revert back to default behaviour: Use Today''s Date. SET @DelDateType = 0 SET @RightNow = GETDATE() SET @DelDate = CONVERT(VARCHAR(8), @RightNow, 112) + '' '' + CONVERT(VARCHAR(8), @RightNow, 108) END CATCH SET @RESULT = 0 IF (@Release = 1) BEGIN BEGIN TRY BEGIN EXEC [dbo].[ky_WDReleaseAction_DiaryDel81] @ActionId, @Handler, @DelDateType, @DelDate, @RESULT OUTPUT IF (@@ERROR <> 0) BEGIN SET @RESULT = -1 END END END TRY BEGIN CATCH SET @RESULT = -1 END CATCH END IF (@RESULT = 0) BEGIN BEGIN TRY BEGIN EXEC [dbo].[ky_WDAssignAction_DiaryDel81] @ActionId, @AssignNo, @DelDateType, @DelDate, @Handler, @AssignTo, @Release, @RESULT OUTPUT IF (@@ERROR <> 0) BEGIN SET @RESULT = -1 END END END TRY BEGIN CATCH SET @RESULT = -1 END CATCH END IF (@RESULT = 0) BEGIN BEGIN TRY BEGIN EXEC [dbo].[ky_WDUpdateAction_DiaryDel81] @ActionId, @AssignNo, @DelDateType, @DelDate, @Handler, @AssignTo, @Release, @RESULT OUTPUT IF (@@ERROR <> 0) BEGIN SET @RESULT = -1 END END END TRY BEGIN CATCH SET @RESULT = -1 END CATCH END IF (@RESULT = 0) BEGIN BEGIN TRY BEGIN SET @AIDParm = convert(varchar(50), @ActionID) IF (@@ERROR <> 0) BEGIN SET @RESULT = -1 END EXEC [dbo].[ky_AddAlarmDelegate] @AIDParm, @AssignTo IF (@@ERROR <> 0) BEGIN SET @RESULT = -1 END END END TRY BEGIN CATCH SET @RESULT = -1 END CATCH END IF (@RESULT = 0) COMMIT ELSE ROLLBACK END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDCaseDocumentsPub] Script Date: 10/01/2014 16:17:49 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDocumentsPub]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDCaseDocumentsPub * * Lists case documents (expanded list). With support for Paging. Only Published ones. * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDCaseDocumentsPub] (@casecode varchar(20), @search varchar(50), @startno int, @count int, @classes varchar(max), @noimg int, @noeml int, @nomed int, @types varchar(max)) AS BEGIN IF (RTRIM(ISNULL(@classes, '''')) = '''') BEGIN set @classes = NULL END IF (RTRIM(ISNULL(@types, '''')) = '''') BEGIN set @types = NULL END SELECT Convert(VARCHAR, DIA.[DATE], 106) AS [DocumentDate], DAT.[DOCCLASS] AS [DocumentClass], UPPER(RTRIM(ISNULL(DAT.[TYPE], ''''))) AS [TYPE], RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '''')) AS [DocumentClassDescription], RTRIM(ISNULL(DAT.[Source], '''')) AS [DocumentSource], RTRIM(ISNULL(DIA.[EMAILADDRESS], '''')) AS [EmailAddress], KYD.[AddressTo] AS [AddressTo], KYD.[SUBJECT] AS [SUBJECT], RTRIM(ISNULL(DAT.[ENTEREDBY], '''')) AS [ENTEREDBY], ISNULL(Convert(VARCHAR, DAT.[DateEntered], 106), '''') AS [DATEENTERED], RTRIM(ISNULL(DAT.[LASTACCESSBY], '''')) AS [LASTACCESSBY], ISNULL(Convert(VARCHAR, DAT.[LASTACCESSDATE], 106), '''') AS [LASTACCESSDATE], CASE WHEN ISNULL(DIA.[EMAIL], '''') = ''Y'' THEN ''Y'' WHEN (OMS.[TYPE] = ''MSG'') THEN ''Y'' ELSE ''N'' END AS [EMAIL], RTRIM(ISNULL(DAT.[Document], '''')) AS [OriginalDocumentName], CASE WHEN (ISNULL(DIA.[EMAIL], '''') = ''Y'') OR (OMS.[TYPE] = ''MSG'') THEN ''E-mail from '' + CASE WHEN RTRIM(ISNULL([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS]), '''')) = '''' THEN ''[undisclosed]'' ELSE RTRIM([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS])) END + '' to '' + CASE WHEN KYD.[AddressTo] = '''' THEN ''[undisclosed]'' ELSE KYD.[AddressTo] END ELSE RTRIM(ISNULL(DAT.[Document],'''')) END AS [ShortDocument], CASE WHEN ( ( (ISNULL(DIA.[EMAIL], '''') = ''Y'') OR (OMS.[TYPE] = ''MSG'')) AND (DAT.TrackReference = OMS.TrackReference)) THEN ''E-mail from '' + CASE WHEN RTRIM(ISNULL([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS]), '''')) = '''' THEN ''[undisclosed]'' ELSE RTRIM([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS])) END + '' to '' + CASE WHEN KYD.[AddressTo] = '''' THEN ''[undisclosed]'' ELSE KYD.[AddressTo] END + '': '' + CASE UPPER(KYD.[SUBJECT]) WHEN '''' THEN ''[no subject]'' WHEN ''FW:'' THEN ''FW: [no subject]'' WHEN ''RE:'' THEN ''RE: [no subject]'' ELSE KYD.[SUBJECT] END ELSE RTRIM(ISNULL(DAT.[Document],'''')) END AS [Document], CASE WHEN ( ISNULL(DIA.[EMAIL], '''') = ''Y'' AND DAT.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' WHEN ( ISNULL(DAT.TYPE, '''') = ''MSG'' AND DAT.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' ELSE ''N'' END AS [MainMailFile], DAT.[TrackReference], RTRIM(ISNULL(DAT.[NAME], '''')) AS [NAME], CASE WHEN UNC.[DRIVE] = NULL THEN RTRIM(ISNULL(DAT.[FILEPATH], '''')) ELSE UNC.[UNC] + RIGHT(RTRIM(ISNULL(DAT.[FILEPATH], '''')), LEN(RTRIM(ISNULL(DAT.[FILEPATH], ''''))) - 2) END AS [FILEPATH], RTRIM(ISNULL(DIA.[PROCESSTYPE], '''')) AS [PROCESSTYPE], RTRIM(ISNULL(DIA.[ACTIONTYPE], '''')) AS [ACTIONTYPE], DIA.[ActionID] FROM [dbo].[ky_WDCaseDocListPub](@casecode, @search, @startno, @count, @classes, @noimg, @noeml, @nomed, @types) CDLP INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = CDLP.[DiaryID] INNER JOIN [dbo].[DiaryAttachments] DAT LEFT OUTER JOIN [dbo].[DocumentClasses] DCL ON DCL.[CLASSCODE] = DAT.[DOCCLASS] ON DAT.[TrackReference] = CDLP.[TrackReference] CROSS APPLY (SELECT RTRIM(ISNULL(CONVERT(VARCHAR(255), SUBSTRING(DIAX.[AddressTo], 1, 255)), '''')) As [AddressTo], RTRIM(ISNULL(CONVERT(VARCHAR(255), SUBSTRING(DIAX.[Subject], 1, 255)), '''')) As [Subject] FROM [dbo].[Diary] DIAX WHERE DIAX.[ActionID] = DIA.[ActionID]) KYD OUTER APPLY ( SELECT TOP 1 MST.[TrackReference] AS [TrackReference], MST.[Type] AS [Type] FROM [dbo].[diaryattachments] MST WHERE MST.[diaryid] = DIA.[ActionID] ORDER BY CASE WHEN MST.TYPE = ''MSG'' THEN 0 WHEN MST.TYPE = ''HTM'' THEN 1 ELSE 2 END, MST.[TrackReference]) OMS LEFT OUTER JOIN [dbo].[UNCAlias] UNC ON UNC.[Drive] + '':'' = LEFT(DAT.[FILEPATH], 2) ORDER BY CDLP.[docid] END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDCaseDocuments2] Script Date: 10/01/2014 16:17:45 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDocuments2]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDCaseDocuments2 * * Lists case documents (expanded list). With support for Paging. * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDCaseDocuments2] (@casecode varchar(20), @search varchar(50), @startno int, @count int, @classes varchar(max), @noimg int, @types varchar(max)) AS BEGIN IF (RTRIM(ISNULL(@classes, '''')) = '''') BEGIN set @classes = NULL END IF (RTRIM(ISNULL(@types, '''')) = '''') BEGIN set @types = NULL END SELECT Convert(VARCHAR, DIA.[DATE], 106) AS [DocumentDate], DAT.[DOCCLASS] AS [DocumentClass], UPPER(RTRIM(ISNULL(DAT.[TYPE], ''''))) AS [TYPE], RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '''')) AS [DocumentClassDescription], RTRIM(ISNULL(DAT.[Source], '''')) AS [DocumentSource], RTRIM(ISNULL(DIA.[EMAILADDRESS], '''')) AS [EmailAddress], KYD.[AddressTo] AS [AddressTo], KYD.[SUBJECT] AS [SUBJECT], RTRIM(ISNULL(DAT.[ENTEREDBY], '''')) AS [ENTEREDBY], ISNULL(Convert(VARCHAR, DAT.[DateEntered], 106), '''') AS [DATEENTERED], RTRIM(ISNULL(DAT.[LASTACCESSBY], '''')) AS [LASTACCESSBY], ISNULL(Convert(VARCHAR, DAT.[LASTACCESSDATE], 106), '''') AS [LASTACCESSDATE], CASE WHEN ISNULL(DIA.[EMAIL], '''') = ''Y'' THEN ''Y'' WHEN (OMS.[TYPE] = ''MSG'') THEN ''Y'' ELSE ''N'' END AS [EMAIL], RTRIM(ISNULL(DAT.[Document], '''')) AS [OriginalDocumentName], CASE WHEN (ISNULL(DIA.[EMAIL], '''') = ''Y'') OR (OMS.[TYPE] = ''MSG'') THEN ''E-mail from '' + CASE WHEN RTRIM(ISNULL([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS]), '''')) = '''' THEN ''[undisclosed]'' ELSE RTRIM([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS])) END + '' to '' + CASE WHEN KYD.[AddressTo] = '''' THEN ''[undisclosed]'' ELSE KYD.[AddressTo] END ELSE RTRIM(ISNULL(DAT.[Document],'''')) END AS [ShortDocument], CASE WHEN ( ( (ISNULL(DIA.[EMAIL], '''') = ''Y'') OR (OMS.[TYPE] = ''MSG'')) AND (DAT.TrackReference = OMS.TrackReference)) THEN ''E-mail from '' + CASE WHEN RTRIM(ISNULL([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS]), '''')) = '''' THEN ''[undisclosed]'' ELSE RTRIM([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS])) END + '' to '' + CASE WHEN KYD.[AddressTo] = '''' THEN ''[undisclosed]'' ELSE KYD.[AddressTo] END + '': '' + CASE UPPER(KYD.[SUBJECT]) WHEN '''' THEN ''[no subject]'' WHEN ''FW:'' THEN ''FW: [no subject]'' WHEN ''RE:'' THEN ''RE: [no subject]'' ELSE KYD.[SUBJECT] END ELSE RTRIM(ISNULL(DAT.[Document],'''')) END AS [Document], CASE WHEN ( ISNULL(DIA.[EMAIL], '''') = ''Y'' AND DAT.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' WHEN ( ISNULL(DAT.TYPE, '''') = ''MSG'' AND DAT.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' ELSE ''N'' END AS [MainMailFile], DAT.[TrackReference], RTRIM(ISNULL(DAT.[NAME], '''')) AS [NAME], RTRIM(ISNULL(DAT.[FILEPATH], '''')) AS [FILEPATH], RTRIM(ISNULL(DIA.[PROCESSTYPE], '''')) AS [PROCESSTYPE], RTRIM(ISNULL(DIA.[ACTIONTYPE], '''')) AS [ACTIONTYPE], DIA.[ActionID] FROM [dbo].[ky_WDCaseDocList2](@casecode, @search, @startno, @count, @classes, @noimg, @types) CDLP INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = CDLP.[DiaryID] INNER JOIN [dbo].[DiaryAttachments] DAT LEFT OUTER JOIN [dbo].[DocumentClasses] DCL ON DCL.[CLASSCODE] = DAT.[DOCCLASS] ON DAT.[TrackReference] = CDLP.[TrackReference] CROSS APPLY (SELECT RTRIM(ISNULL(CONVERT(VARCHAR(255), SUBSTRING(DIAX.[AddressTo], 1, 255)), '''')) As [AddressTo], RTRIM(ISNULL(CONVERT(VARCHAR(255), SUBSTRING(DIAX.[Subject], 1, 255)), '''')) As [Subject] FROM [dbo].[Diary] DIAX WHERE DIAX.[ActionID] = DIA.[ActionID]) KYD OUTER APPLY ( SELECT TOP 1 MST.[TrackReference] AS [TrackReference], MST.[Type] AS [Type] FROM [dbo].[diaryattachments] MST WHERE MST.[diaryid] = DIA.[ActionID] ORDER BY CASE WHEN MST.TYPE = ''MSG'' THEN 0 ELSE 1 END, MST.[TrackReference]) OMS ORDER BY CDLP.[docid] END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDCaseDocuments3] Script Date: 10/01/2014 16:17:46 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDocuments3]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDCaseDocuments3 * * Lists case documents (expanded list). With support for Paging. * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDCaseDocuments3] (@casecode varchar(20), @search varchar(50), @startno int, @count int, @classes varchar(max), @noimg int, @noeml int, @types varchar(max)) AS BEGIN IF (RTRIM(ISNULL(@classes, '''')) = '''') BEGIN set @classes = NULL END IF (RTRIM(ISNULL(@types, '''')) = '''') BEGIN set @types = NULL END SELECT Convert(VARCHAR, DIA.[DATE], 106) AS [DocumentDate], DAT.[DOCCLASS] AS [DocumentClass], UPPER(RTRIM(ISNULL(DAT.[TYPE], ''''))) AS [TYPE], RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '''')) AS [DocumentClassDescription], RTRIM(ISNULL(DAT.[Source], '''')) AS [DocumentSource], RTRIM(ISNULL(DIA.[EMAILADDRESS], '''')) AS [EmailAddress], KYD.[AddressTo] AS [AddressTo], KYD.[SUBJECT] AS [SUBJECT], RTRIM(ISNULL(DAT.[ENTEREDBY], '''')) AS [ENTEREDBY], ISNULL(Convert(VARCHAR, DAT.[DateEntered], 106), '''') AS [DATEENTERED], RTRIM(ISNULL(DAT.[LASTACCESSBY], '''')) AS [LASTACCESSBY], ISNULL(Convert(VARCHAR, DAT.[LASTACCESSDATE], 106), '''') AS [LASTACCESSDATE], CASE WHEN ISNULL(DIA.[EMAIL], '''') = ''Y'' THEN ''Y'' WHEN (OMS.[TYPE] = ''MSG'') THEN ''Y'' ELSE ''N'' END AS [EMAIL], RTRIM(ISNULL(DAT.[Document], '''')) AS [OriginalDocumentName], CASE WHEN (ISNULL(DIA.[EMAIL], '''') = ''Y'') OR (OMS.[TYPE] = ''MSG'') THEN ''E-mail from '' + CASE WHEN RTRIM(ISNULL([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS]), '''')) = '''' THEN ''[undisclosed]'' ELSE RTRIM([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS])) END + '' to '' + CASE WHEN KYD.[AddressTo] = '''' THEN ''[undisclosed]'' ELSE KYD.[AddressTo] END ELSE RTRIM(ISNULL(DAT.[Document],'''')) END AS [ShortDocument], CASE WHEN ( ( (ISNULL(DIA.[EMAIL], '''') = ''Y'') OR (OMS.[TYPE] = ''MSG'')) AND (DAT.TrackReference = OMS.TrackReference)) THEN ''E-mail from '' + CASE WHEN RTRIM(ISNULL([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS]), '''')) = '''' THEN ''[undisclosed]'' ELSE RTRIM([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS])) END + '' to '' + CASE WHEN KYD.[AddressTo] = '''' THEN ''[undisclosed]'' ELSE KYD.[AddressTo] END + '': '' + CASE UPPER(KYD.[SUBJECT]) WHEN '''' THEN ''[no subject]'' WHEN ''FW:'' THEN ''FW: [no subject]'' WHEN ''RE:'' THEN ''RE: [no subject]'' ELSE KYD.[SUBJECT] END ELSE RTRIM(ISNULL(DAT.[Document],'''')) END AS [Document], CASE WHEN ( ISNULL(DIA.[EMAIL], '''') = ''Y'' AND DAT.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' WHEN ( ISNULL(DAT.TYPE, '''') = ''MSG'' AND DAT.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' ELSE ''N'' END AS [MainMailFile], DAT.[TrackReference], RTRIM(ISNULL(DAT.[NAME], '''')) AS [NAME], RTRIM(ISNULL(DAT.[FILEPATH], '''')) AS [FILEPATH], RTRIM(ISNULL(DIA.[PROCESSTYPE], '''')) AS [PROCESSTYPE], RTRIM(ISNULL(DIA.[ACTIONTYPE], '''')) AS [ACTIONTYPE], DIA.[ActionID] FROM [dbo].[ky_WDCaseDocList3](@casecode, @search, @startno, @count, @classes, @noimg, @noeml, @types) CDLP INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = CDLP.[DiaryID] INNER JOIN [dbo].[DiaryAttachments] DAT LEFT OUTER JOIN [dbo].[DocumentClasses] DCL ON DCL.[CLASSCODE] = DAT.[DOCCLASS] ON DAT.[TrackReference] = CDLP.[TrackReference] CROSS APPLY (SELECT RTRIM(ISNULL(CONVERT(VARCHAR(255), SUBSTRING(DIAX.[AddressTo], 1, 255)), '''')) As [AddressTo], RTRIM(ISNULL(CONVERT(VARCHAR(255), SUBSTRING(DIAX.[Subject], 1, 255)), '''')) As [Subject] FROM [dbo].[Diary] DIAX WHERE DIAX.[ActionID] = DIA.[ActionID]) KYD OUTER APPLY ( SELECT TOP 1 MST.[TrackReference] AS [TrackReference], MST.[Type] AS [Type] FROM [dbo].[diaryattachments] MST WHERE MST.[diaryid] = DIA.[ActionID] ORDER BY CASE WHEN MST.TYPE = ''MSG'' THEN 0 WHEN MST.TYPE = ''HTM'' THEN 1 ELSE 2 END, MST.[TrackReference]) OMS ORDER BY CDLP.[docid] END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDCaseDocuments4] Script Date: 10/01/2014 16:17:48 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDocuments4]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDCaseDocuments4 * * Lists case documents (expanded list). With support for Paging. * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDCaseDocuments4] (@casecode varchar(20), @search varchar(50), @startno int, @count int, @classes varchar(max), @noimg int, @noeml int, @nomed int, @types varchar(max)) AS BEGIN IF (RTRIM(ISNULL(@classes, '''')) = '''') BEGIN set @classes = NULL END IF (RTRIM(ISNULL(@types, '''')) = '''') BEGIN set @types = NULL END SELECT Convert(VARCHAR, DIA.[DATE], 106) AS [DocumentDate], DAT.[DOCCLASS] AS [DocumentClass], UPPER(RTRIM(ISNULL(DAT.[TYPE], ''''))) AS [TYPE], RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '''')) AS [DocumentClassDescription], RTRIM(ISNULL(DAT.[Source], '''')) AS [DocumentSource], RTRIM(ISNULL(DIA.[EMAILADDRESS], '''')) AS [EmailAddress], KYD.[AddressTo] AS [AddressTo], KYD.[SUBJECT] AS [SUBJECT], RTRIM(ISNULL(DAT.[ENTEREDBY], '''')) AS [ENTEREDBY], ISNULL(Convert(VARCHAR, DAT.[DateEntered], 106), '''') AS [DATEENTERED], RTRIM(ISNULL(DAT.[LASTACCESSBY], '''')) AS [LASTACCESSBY], ISNULL(Convert(VARCHAR, DAT.[LASTACCESSDATE], 106), '''') AS [LASTACCESSDATE], CASE WHEN ISNULL(DIA.[EMAIL], '''') = ''Y'' THEN ''Y'' WHEN (OMS.[TYPE] = ''MSG'') THEN ''Y'' ELSE ''N'' END AS [EMAIL], RTRIM(ISNULL(DAT.[Document], '''')) AS [OriginalDocumentName], CASE WHEN (ISNULL(DIA.[EMAIL], '''') = ''Y'') OR (OMS.[TYPE] = ''MSG'') THEN ''E-mail from '' + CASE WHEN RTRIM(ISNULL([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS]), '''')) = '''' THEN ''[undisclosed]'' ELSE RTRIM([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS])) END + '' to '' + CASE WHEN KYD.[AddressTo] = '''' THEN ''[undisclosed]'' ELSE KYD.[AddressTo] END ELSE RTRIM(ISNULL(DAT.[Document],'''')) END AS [ShortDocument], CASE WHEN ( ( (ISNULL(DIA.[EMAIL], '''') = ''Y'') OR (OMS.[TYPE] = ''MSG'')) AND (DAT.TrackReference = OMS.TrackReference)) THEN ''E-mail from '' + CASE WHEN RTRIM(ISNULL([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS]), '''')) = '''' THEN ''[undisclosed]'' ELSE RTRIM([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS])) END + '' to '' + CASE WHEN KYD.[AddressTo] = '''' THEN ''[undisclosed]'' ELSE KYD.[AddressTo] END + '': '' + CASE UPPER(KYD.[SUBJECT]) WHEN '''' THEN ''[no subject]'' WHEN ''FW:'' THEN ''FW: [no subject]'' WHEN ''RE:'' THEN ''RE: [no subject]'' ELSE KYD.[SUBJECT] END ELSE RTRIM(ISNULL(DAT.[Document],'''')) END AS [Document], CASE WHEN ( ISNULL(DIA.[EMAIL], '''') = ''Y'' AND DAT.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' WHEN ( ISNULL(DAT.TYPE, '''') = ''MSG'' AND DAT.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' ELSE ''N'' END AS [MainMailFile], DAT.[TrackReference], RTRIM(ISNULL(DAT.[NAME], '''')) AS [NAME], RTRIM(ISNULL(DAT.[FILEPATH], '''')) AS [FILEPATH], RTRIM(ISNULL(DIA.[PROCESSTYPE], '''')) AS [PROCESSTYPE], RTRIM(ISNULL(DIA.[ACTIONTYPE], '''')) AS [ACTIONTYPE], DIA.[ActionID] FROM [dbo].[ky_WDCaseDocList4](@casecode, @search, @startno, @count, @classes, @noimg, @noeml, @nomed, @types) CDLP INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = CDLP.[DiaryID] INNER JOIN [dbo].[DiaryAttachments] DAT LEFT OUTER JOIN [dbo].[DocumentClasses] DCL ON DCL.[CLASSCODE] = DAT.[DOCCLASS] ON DAT.[TrackReference] = CDLP.[TrackReference] CROSS APPLY (SELECT RTRIM(ISNULL(CONVERT(VARCHAR(255), SUBSTRING(DIAX.[AddressTo], 1, 255)), '''')) As [AddressTo], RTRIM(ISNULL(CONVERT(VARCHAR(255), SUBSTRING(DIAX.[Subject], 1, 255)), '''')) As [Subject] FROM [dbo].[Diary] DIAX WHERE DIAX.[ActionID] = DIA.[ActionID]) KYD OUTER APPLY ( SELECT TOP 1 MST.[TrackReference] AS [TrackReference], MST.[Type] AS [Type] FROM [dbo].[diaryattachments] MST WHERE MST.[diaryid] = DIA.[ActionID] ORDER BY CASE WHEN MST.TYPE = ''MSG'' THEN 0 WHEN MST.TYPE = ''HTM'' THEN 1 ELSE 2 END, MST.[TrackReference]) OMS ORDER BY CDLP.[docid] END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDDiaryDocuments] Script Date: 10/01/2014 16:18:03 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDDiaryDocuments]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDDiaryDocuments * * Lists Diary documents (Diary Attachments) (expanded list). With support for Paging. * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDDiaryDocuments] (@actionID varchar(20), @search varchar(50), @startno int, @count int) AS BEGIN SELECT Convert(VARCHAR, DIA.[DATE], 106) AS [DocumentDate], DAT.[DOCCLASS] AS [DocumentClass], UPPER(RTRIM(ISNULL(DAT.[TYPE], ''''))) AS [TYPE], RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '''')) AS [DocumentClassDescription], RTRIM(ISNULL(DAT.[Source], '''')) AS [DocumentSource], RTRIM(ISNULL(DIA.[EMAILADDRESS], '''')) AS [EmailAddress], KYD.[AddressTo] AS [AddressTo], KYD.[SUBJECT] AS [SUBJECT], RTRIM(ISNULL(DAT.[ENTEREDBY], '''')) AS [ENTEREDBY], ISNULL(Convert(VARCHAR, DAT.[DateEntered], 106), '''') AS [DATEENTERED], RTRIM(ISNULL(DAT.[LASTACCESSBY], '''')) AS [LASTACCESSBY], ISNULL(Convert(VARCHAR, DAT.[LASTACCESSDATE], 106), '''') AS [LASTACCESSDATE], CASE WHEN ISNULL(DIA.[EMAIL], '''') = ''Y'' THEN ''Y'' WHEN (OMS.[TYPE] = ''MSG'') THEN ''Y'' ELSE ''N'' END AS [EMAIL], RTRIM(ISNULL(DAT.[Document], '''')) AS [OriginalDocumentName], CASE WHEN (ISNULL(DIA.[EMAIL], '''') = ''Y'') OR (OMS.[TYPE] = ''MSG'') THEN ''E-mail from '' + CASE WHEN RTRIM(ISNULL([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS]), '''')) = '''' THEN ''[undisclosed]'' ELSE RTRIM([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS])) END + '' to '' + CASE WHEN KYD.[AddressTo] = '''' THEN ''[undisclosed]'' ELSE KYD.[AddressTo] END ELSE RTRIM(ISNULL(DAT.[Document],'''')) END AS [ShortDocument], CASE WHEN ( ( (ISNULL(DIA.[EMAIL], '''') = ''Y'') OR (OMS.[TYPE] = ''MSG'')) AND (DAT.TrackReference = OMS.TrackReference)) THEN ''E-mail from '' + CASE WHEN RTRIM(ISNULL([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS]), '''')) = '''' THEN ''[undisclosed]'' ELSE RTRIM([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS])) END + '' to '' + CASE WHEN KYD.[AddressTo] = '''' THEN ''[undisclosed]'' ELSE KYD.[AddressTo] END + '': '' + CASE UPPER(KYD.[SUBJECT]) WHEN '''' THEN ''[no subject]'' WHEN ''FW:'' THEN ''FW: [no subject]'' WHEN ''RE:'' THEN ''RE: [no subject]'' ELSE KYD.[SUBJECT] END ELSE RTRIM(ISNULL(DAT.[Document],'''')) END AS [Document], CASE WHEN ( ISNULL(DIA.[EMAIL], '''') = ''Y'' AND DAT.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' WHEN ( ISNULL(DAT.TYPE, '''') = ''MSG'' AND DAT.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' ELSE ''N'' END AS [MainMailFile], DAT.[TrackReference], RTRIM(ISNULL(DAT.[NAME], '''')) AS [NAME], RTRIM(ISNULL(DAT.[FILEPATH], '''')) AS [FILEPATH], RTRIM(ISNULL(DIA.[PROCESSTYPE], '''')) AS [PROCESSTYPE], RTRIM(ISNULL(DIA.[ACTIONTYPE], '''')) AS [ACTIONTYPE], DIA.[ActionID] FROM [dbo].[ky_WDDiaryDocList](@actionID, @search, @startno, @count) CDLP INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = CDLP.[DiaryID] INNER JOIN [dbo].[DiaryAttachments] DAT LEFT OUTER JOIN [dbo].[DocumentClasses] DCL ON DCL.[CLASSCODE] = DAT.[DOCCLASS] ON DAT.[TrackReference] = CDLP.[TrackReference] CROSS APPLY (SELECT RTRIM(ISNULL(CONVERT(VARCHAR(255), SUBSTRING(DIAX.[AddressTo], 1, 255)), '''')) As [AddressTo], RTRIM(ISNULL(CONVERT(VARCHAR(255), SUBSTRING(DIAX.[Subject], 1, 255)), '''')) As [Subject] FROM [dbo].[Diary] DIAX WHERE DIAX.[ActionID] = DIA.[ActionID]) KYD OUTER APPLY ( SELECT TOP 1 MST.[TrackReference] AS [TrackReference], MST.[Type] AS [Type] FROM [dbo].[diaryattachments] MST WHERE MST.[diaryid] = DIA.[ActionID] ORDER BY CASE WHEN MST.TYPE = ''MSG'' THEN 0 ELSE 1 END, MST.[TrackReference]) OMS END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDCaseDocuments] Script Date: 10/01/2014 16:17:45 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCaseDocuments]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDCaseDocuments * * Lists case documents (expanded list). With support for Paging. * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDCaseDocuments] (@casecode varchar(20), @search varchar(50), @startno int, @count int) AS BEGIN SELECT Convert(VARCHAR, DIA.[DATE], 106) AS [DocumentDate], DAT.[DOCCLASS] AS [DocumentClass], UPPER(RTRIM(ISNULL(DAT.[TYPE], ''''))) AS [TYPE], RTRIM(ISNULL(DCL.[CLASSDESCRIPTION], '''')) AS [DocumentClassDescription], RTRIM(ISNULL(DAT.[Source], '''')) AS [DocumentSource], RTRIM(ISNULL(DIA.[EMAILADDRESS], '''')) AS [EmailAddress], KYD.[AddressTo] AS [AddressTo], KYD.[SUBJECT] AS [SUBJECT], RTRIM(ISNULL(DAT.[ENTEREDBY], '''')) AS [ENTEREDBY], ISNULL(Convert(VARCHAR, DAT.[DateEntered], 106), '''') AS [DATEENTERED], RTRIM(ISNULL(DAT.[LASTACCESSBY], '''')) AS [LASTACCESSBY], ISNULL(Convert(VARCHAR, DAT.[LASTACCESSDATE], 106), '''') AS [LASTACCESSDATE], CASE WHEN ISNULL(DIA.[EMAIL], '''') = ''Y'' THEN ''Y'' WHEN (OMS.[TYPE] = ''MSG'') THEN ''Y'' ELSE ''N'' END AS [EMAIL], RTRIM(ISNULL(DAT.[Document], '''')) AS [OriginalDocumentName], CASE WHEN (ISNULL(DIA.[EMAIL], '''') = ''Y'') OR (OMS.[TYPE] = ''MSG'') THEN ''E-mail from '' + CASE WHEN RTRIM(ISNULL([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS]), '''')) = '''' THEN ''[undisclosed]'' ELSE RTRIM([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS])) END + '' to '' + CASE WHEN KYD.[AddressTo] = '''' THEN ''[undisclosed]'' ELSE KYD.[AddressTo] END ELSE RTRIM(ISNULL(DAT.[Document],'''')) END AS [ShortDocument], CASE WHEN ( ( (ISNULL(DIA.[EMAIL], '''') = ''Y'') OR (OMS.[TYPE] = ''MSG'')) AND (DAT.TrackReference = OMS.TrackReference)) THEN ''E-mail from '' + CASE WHEN RTRIM(ISNULL([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS]), '''')) = '''' THEN ''[undisclosed]'' ELSE RTRIM([dbo].[ky_GetNameFromEmailAddress](DIA.[EMAILADDRESS])) END + '' to '' + CASE WHEN KYD.[AddressTo] = '''' THEN ''[undisclosed]'' ELSE KYD.[AddressTo] END + '': '' + CASE UPPER(KYD.[SUBJECT]) WHEN '''' THEN ''[no subject]'' WHEN ''FW:'' THEN ''FW: [no subject]'' WHEN ''RE:'' THEN ''RE: [no subject]'' ELSE KYD.[SUBJECT] END ELSE RTRIM(ISNULL(DAT.[Document],'''')) END AS [Document], CASE WHEN ( ISNULL(DIA.[EMAIL], '''') = ''Y'' AND DAT.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' WHEN ( ISNULL(DAT.TYPE, '''') = ''MSG'' AND DAT.[TrackReference] = OMS.[TrackReference]) THEN ''Y'' ELSE ''N'' END AS [MainMailFile], DAT.[TrackReference], RTRIM(ISNULL(DAT.[NAME], '''')) AS [NAME], RTRIM(ISNULL(DAT.[FILEPATH], '''')) AS [FILEPATH], RTRIM(ISNULL(DIA.[PROCESSTYPE], '''')) AS [PROCESSTYPE], RTRIM(ISNULL(DIA.[ACTIONTYPE], '''')) AS [ACTIONTYPE], DIA.[ActionID] FROM [dbo].[ky_WDCaseDocList](@casecode, @search, @startno, @count) CDLP INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = CDLP.[DiaryID] INNER JOIN [dbo].[DiaryAttachments] DAT LEFT OUTER JOIN [dbo].[DocumentClasses] DCL ON DCL.[CLASSCODE] = DAT.[DOCCLASS] ON DAT.[TrackReference] = CDLP.[TrackReference] CROSS APPLY (SELECT RTRIM(ISNULL(CONVERT(VARCHAR(255), SUBSTRING(DIAX.[AddressTo], 1, 255)), '''')) As [AddressTo], RTRIM(ISNULL(CONVERT(VARCHAR(255), SUBSTRING(DIAX.[Subject], 1, 255)), '''')) As [Subject] FROM [dbo].[Diary] DIAX WHERE DIAX.[ActionID] = DIA.[ActionID]) KYD OUTER APPLY ( SELECT TOP 1 MST.[TrackReference] AS [TrackReference], MST.[Type] AS [Type] FROM [dbo].[diaryattachments] MST WHERE MST.[diaryid] = DIA.[ActionID] ORDER BY CASE WHEN MST.TYPE = ''MSG'' THEN 0 ELSE 1 END, MST.[TrackReference]) OMS ORDER BY CDLP.[docid] END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDDayBook] Script Date: 10/01/2014 16:18:01 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDDayBook]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************ * * Day Book * *************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDDayBook] (@HANDLER VARCHAR(10), @RECORDID Int) AS BEGIN SELECT * from [dbo].[ky_WDPopDayBook](@HANDLER, @RECORDID) END ' END GO /****** Object: StoredProcedure [dbo].[ky_MoveBriefDocumentToSection] Script Date: 10/01/2014 16:17:25 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_MoveBriefDocumentToSection]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_MoveBriefDocumentToSection] (@RecID Integer, @Section Integer) AS /************************************************************** * * * ky_MoveBriefDocumentToSection * * * * Moves a document to another section of a brief * * * * Parameters: RecID, the recordid column of the document * * Section, the section to which to move the doc * * * **************************************************************/ Declare @OLDSection int SELECT @OLDSection = BD.SectionID FROM [dbo].BriefDocuments BD WHERE BD.[recordid] = @RecID UPDATE BD SET BD.SortOrder = 0, BD.SectionID = @Section FROM [dbo].[BriefDocuments] BD WHERE BD.[recordid] = @RecID EXEC dbo.ky_ReorderBriefDocSection @OLDSection EXEC dbo.ky_ReorderBriefDocSection @RecID ' END GO /****** Object: StoredProcedure [dbo].[ky_MoveBriefDocumentFromSection] Script Date: 10/01/2014 16:17:24 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_MoveBriefDocumentFromSection]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_MoveBriefDocumentFromSection] (@RecID Integer, @Direction Integer) AS /************************************************************** * * * ky_MoveBriefDocumentFromSection * * * * Moves a document up or down to another section of a brief * * * * Parameters: RecID, the recordid column of the document * * Direction, the direction to move * * 1 = Down * * 2 = Up * * * **************************************************************/ Declare @SecSeq Int Declare @BriefID Int Declare @SortOrder Int select @BriefID = BS.BriefID, @SecSeq = BS.Sequence from [dbo].[briefdocuments] BD inner join [dbo].[BriefSections] BS on BS.[ID] = BD.[SectionID] where BD.[recordid] = @RecID select @SecSeq = IsNull(BS2.[ID], BS1.[ID]), @SortOrder = CASE WHEN BS2.ID IS NULL THEN BD.SortOrder WHEN @Direction = 1 THEN 999999 ELSE 0 END from [dbo].[briefsections] BS1 INNER JOIN [dbo].[BriefDocuments] BD ON BD.recordid = @RecID left outer join [dbo].[briefsections] BS2 on BS2.[BriefID] = BS1.[BriefID] and BS2.[Sequence] = BS1.[Sequence] + CASE WHEN @Direction = 1 THEN -1 ELSE 1 END where BS1.[BriefID] = @BriefID and BS1.[Sequence] = @SecSeq UPDATE BD SET BD.SortOrder = @SortOrder, BD.SectionID = @SecSeq FROM [dbo].[BriefDocuments] BD WHERE BD.[recordid] = @RecID EXEC dbo.ky_ReorderBriefDocSection @RecID ' END GO /****** Object: View [dbo].[HandlersStatsFeByTeam] Script Date: 10/01/2014 16:19:58 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[HandlersStatsFeByTeam]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[HandlersStatsFeByTeam] AS SELECT COUNT(CASE WHEN IsNull(TimeRecorded, 0) = 0 THEN NULL ELSE 1 END) AS CountFePer, COUNT(CASE WHEN IsNull(TimeRecordedYTD, 0) = 0 THEN NULL ELSE 1 END) AS CountFEYTD, dbo.Handlers.CODE FROM dbo.HandlersStats INNER JOIN dbo.Handlers ON dbo.HandlersStats.TEAM = dbo.Handlers.CODE GROUP BY dbo.Handlers.CODE ' GO /****** Object: View [dbo].[HandlersStatsFeByDept] Script Date: 10/01/2014 16:19:58 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[HandlersStatsFeByDept]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[HandlersStatsFeByDept] AS SELECT COUNT(CASE WHEN IsNull(TimeRecorded, 0) = 0 THEN NULL ELSE 1 END) AS CountFePer, COUNT(CASE WHEN IsNull(TimeRecordedYTD, 0) = 0 THEN NULL ELSE 1 END) AS CountFEYTD, dbo.Departments.CODE FROM dbo.HandlersStats INNER JOIN dbo.Departments ON dbo.HandlersStats.Department = dbo.Departments.[DESC] GROUP BY dbo.Departments.CODE ' GO /****** Object: StoredProcedure [dbo].[ky_WDHandlerTimeBudgetDashboard] Script Date: 10/01/2014 16:18:06 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDHandlerTimeBudgetDashboard]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDHandlerTimeBudgetDashboard * * Returns Time Entry data for a handler and a particular date. * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDHandlerTimeBudgetDashboard] (@dateS varchar(8), @handler varchar(10), @width int) AS BEGIN DECLARE @date datetime DECLARE @startofmonth datetime DECLARE @endofmonth datetime SET @date = convert(datetime, @dateS) set @startofmonth = DateAdd(DD, -day(@date) + 1, @date) set @endofmonth = Dateadd(MM, 1, @startofmonth) set @date = dateadd(DD, 1, @date) SELECT TRX.[ChargeableWidth], TRX.[NonChargeableWidth], @width - TRX.[ChargeableWidth] - TRX.[NonChargeableWidth] AS [RemainingWidth], TRX.[Handler], TRX.[ChargeableTimeBudget], convert(varchar(3), convert(int, TRX.[ChargeableTimeBudget] / 60)) + '':'' + Right(convert(varchar(3), 100 + TRX.[ChargeableTimeBudget] - (60 * convert(int, TRX.[ChargeableTimeBudget] / 60))), 2) As [DisplayBudget], TRX.[TotalTime], convert(varchar(3), convert(int, TRX.[TotalTime] / 60)) + '':'' + Right(convert(varchar(3), 100 + TRX.[TotalTime] - (60 * convert(int, TRX.[TotalTime] / 60))), 2) As [DisplayTotalTime], TRX.[TotalChargeable], convert(varchar(3), convert(int, TRX.[TotalChargeable] / 60)) + '':'' + Right(convert(varchar(3), 100 + TRX.[TotalChargeable] - (60 * convert(int, TRX.[TotalChargeable] / 60))), 2) As [DisplayTotalChargeable], TRX.[TotalNonChargeable], convert(varchar(3), convert(int, TRX.[TotalNonChargeable] / 60)) + '':'' + Right(convert(varchar(3), 100 + TRX.[TotalNonChargeable] - (60 * convert(int, TRX.[TotalNonChargeable] / 60))), 2) As [DisplayTotalNonChargeable] FROM (SELECT CASE WHEN DB.[ChargeableTimeBudget] = 0 THEN @width ELSE convert(int, (DB.[TotalChargeable] / DB.[ChargeableTimeBudget]) * @width) END AS [ChargeableWidth], CASE WHEN DB.[ChargeableTimeBudget] = 0 THEN 0 ELSE convert(int, (DB.[TotalNonChargeable] / DB.[ChargeableTimeBudget]) * @width) END AS [NonChargeableWidth], DB.* FROM (SELECT @handler AS [Handler], CASE WHEN MB.[ChargeableTimeBudget] < TM.[TotalChargeable] THEN TM.[TotalChargeable] ELSE MB.[ChargeableTimeBudget] END AS [ChargeableTimeBudget], TM.[TotalTime], TM.[TotalChargeable], CASE WHEN MB.[ChargeableTimeBudget] < TM.[TotalChargeable] THEN 0 WHEN MB.[ChargeableTimeBudget] < TM.[TotalChargeable] + TM.[TotalNonChargeable] THEN MB.[ChargeableTimeBudget] - TM.[TotalChargeable] ELSE TM.[TotalNonChargeable] END AS [TotalNonChargeable] FROM (select 60 * IsNull(SUM(HB.[ChargableTimeBudget]), 0) As [ChargeableTimeBudget] from [dbo].[ky_WDHFBudgets](@handler, YEAR(@dateS), MONTH(@DateS)) HB) MB CROSS APPLY (SELECT IsNull(SUM(TR.[TIME]), 0) AS [TotalTime], IsNull(SUM(CASE WHEN TR.[REC_IRR] = ''N'' THEN 0 ELSE TR.[TIME] END), 0) AS [TotalChargeable], IsNull(SUM(CASE WHEN TR.[REC_IRR] = ''N'' THEN TR.[TIME] ELSE 0 END), 0) AS [TotalNonChargeable] FROM [dbo].[TimeEntry] TR WHERE TR.[FEEEARN] = @handler AND TR.[TIMEORCHARGE] = ''T'' AND TR.[DATE] >= @startofmonth AND TR.[DATE] < @date) TM) DB) TRX END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDPushTask3] Script Date: 10/01/2014 16:18:11 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDPushTask3]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_WDPushTask3] (@AssignNo int, @Date varchar(17), @Duration int, @DueDate varchar(8), @NewText varchar(MAX), @NewOtherNotes varchar(MAX), @NewSubject varchar(150), @Shuffle int, @Handler varchar(10), @NewActionCode varchar(30), @NewActionTYPE varchar(10), @NewActionSTS varchar(10), @NewActionPTY varchar(10), @NewActionPub varchar(10), @NewActionHigh varchar(10), @NewActionWP varchar(10), @NewActionBLB varchar(10), @NewActionLOC varchar(50), @NewActionHT varchar(20)) AS /************************************************************************************** * * ky_WDPushTask3 * * Push a task forward and/or change its text. - Now with support for Time information * **************************************************************************************/ BEGIN DECLARE @Continue int DECLARE @ActionID int DECLARE @Shuffled int DECLARE @ShortDate varchar(8) DECLARE @CLARIONTIME int DECLARE @CLARIONENDTIME int BEGIN TRANSACTION SET @Continue = 0 SET @Shuffled = 0 SET @ShortDate = LEFT(@Date, 8) BEGIN TRY SET @CLARIONTIME = (100 * DATEDIFF(ss, left(@date, 8), @date)) + 1 END TRY BEGIN CATCH SET @CLARIONTIME = 3240001 -- 9 AM END CATCH if (@Duration < 0) SET @Duration = 0 SET @CLARIONENDTIME = @CLARIONTIME + (6000 * @Duration) IF (@CLARIONENDTIME > 8640000) SET @CLARIONENDTIME = 8640000 If (RTRIM(ISNULL(@ShortDate, '''')) <> '''') BEGIN If (@Continue = 0) BEGIN BEGIN TRY SELECT @ActionID = DEL.[ActionID], @Shuffled = DateDiff(DD, DEL.[DATE], @ShortDate) FROM [dbo].[DiaryDelegations] DEL WHERE DEL.[AssignNo] = @AssignNo END TRY BEGIN CATCH SET @Continue = 1 END CATCH END END If (@Continue = 0) BEGIN BEGIN TRY UPDATE DEL SET DEL.[DATE] = CASE WHEN RTRIM(ISNULL(@ShortDate, '''')) = '''' THEN DEL.[DATE] ELSE CONVERT(datetime, @ShortDate) END, DEL.[TIME] = @CLARIONTIME, DEL.[DUEDATE] = CASE WHEN RTRIM(ISNULL(@DueDate, '''')) = '''' THEN DEL.[DUEDATE] ELSE CONVERT(datetime, @Duedate) END FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA ON DIA.[ACTIONID] = DEL.[ActionID] WHERE DEL.[AssignNo] = @AssignNo IF (@@ERROR <> 0) SET @Continue = 1 END TRY BEGIN CATCH SET @Continue = 1 END CATCH END If (@Continue = 0) BEGIN BEGIN TRY UPDATE DIA SET DIA.[DATE] = CASE WHEN RTRIM(ISNULL(@Date, '''')) = '''' THEN DIA.[DATE] ELSE CONVERT(datetime, @DATE) END, DIA.[DYSTARTTIME] = @CLARIONTIME, DIA.[DYENDTIME] = @CLARIONENDTIME, DIA.[DUEDATE] = CASE WHEN RTRIM(ISNULL(@DueDate, '''')) = '''' THEN DIA.[DUEDATE] ELSE CONVERT(datetime, @Duedate) END, DIA.[TEXT1] = @NewText, DIA.[DisplayText] = [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), @NewText), ''''), 200), DIA.[TEXT2] = CASE WHEN @NewOtherNotes = ''***ORG***'' THEN DIA.[TEXT2] ELSE @NewOtherNotes END, DIA.[SUBJECT] = @NewSubject, DIA.[ACTIONCODE] = CASE WHEN @NewActionCode = ''***ORG***'' THEN DIA.[ACTIONCODE] ELSE @NewActionCode END, DIA.[ACTIONTYPE] = CASE WHEN @NewActionTYPE = ''***ORG***'' THEN DIA.[ACTIONTYPE] ELSE @NewActionTYPE END, DIA.[ACTIONSTATUS] = CASE WHEN @NewActionSTS = ''***ORG***'' THEN DIA.[ACTIONSTATUS] ELSE @NewActionSTS END, DIA.[PRIORITY] = CASE WHEN @NewActionPTY = ''***ORG***'' THEN DIA.[PRIORITY] ELSE @NewActionPTY END, DIA.[PUBLISH] = CASE WHEN @NewActionPub = ''***ORG***'' THEN DIA.[PUBLISH] ELSE @NewActionPub END, DIA.[HIGHLIGHTED] = CASE WHEN @NewActionHigh = ''***ORG***'' THEN DIA.[HIGHLIGHTED] ELSE @NewActionHigh END, DIA.[WORKPROCESS] = CASE WHEN @NewActionWP = ''***ORG***'' THEN DIA.[WORKPROCESS] ELSE convert(int, @NewActionWP) END, DIA.[BILLABLE] = CASE WHEN @NewActionBLB = ''***ORG***'' THEN ISNULL(DIA.[BILLABLE], 0) ELSE convert(int, @NewActionBLB) END, DIA.[Location] = CASE WHEN @NewActionLOC = ''***ORG***'' THEN DIA.[Location] ELSE @NewActionLOC END, DIA.[HearingType] = CASE WHEN @NewActionHT = ''***ORG***'' THEN DIA.[HearingType] ELSE @NewActionHT END FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA ON DIA.[ACTIONID] = DEL.[ActionID] WHERE DEL.[AssignNo] = @AssignNo IF (@@ERROR <> 0) SET @Continue = 1 END TRY BEGIN CATCH SET @Continue = 1 END CATCH END If ((@Continue = 0) AND (@Shuffle = 1) AND (@Shuffled <> 0)) BEGIN BEGIN TRY UPDATE DIA SET DIA.[DATE] = CASE Convert(varchar(3), DATENAME(WEEKDAY, DATEADD(DD, @Shuffled, DIA.[DATE]))) WHEN ''Sat'' THEN DATEADD(DD, @Shuffled + 2, DIA.[DATE]) WHEN ''Sun'' THEN DATEADD(DD, @Shuffled + 1, DIA.[DATE]) ELSE DATEADD(DD, @Shuffled, DIA.[DATE]) END, DIA.[DUEDATE] = CASE Convert(varchar(3), DATENAME(WEEKDAY, DATEADD(DD, @Shuffled, DIA.[DUEDATE]))) WHEN ''Sat'' THEN DATEADD(DD, @Shuffled + 2, DIA.[DUEDATE]) WHEN ''Sun'' THEN DATEADD(DD, @Shuffled + 1, DIA.[DUEDATE]) ELSE DATEADD(DD, @Shuffled, DIA.[DUEDATE]) END FROM (SELECT DELS.[ActionID] AS [ActionID], DIAS.[CASECODE] FROM [dbo].[DiaryDelegations] DELS INNER JOIN [dbo].[Diary] DIAS ON DIAS.[ACTIONID] = DELS.[ACTIONID] WHERE DELS.[AssignNo] = @AssignNo AND @Shuffle = 1) SHUF INNER JOIN [dbo].[Diary] DIA CROSS APPLY [dbo].[ky_WDActionAuthorisedToComplete](DIA.[ActionID], @Handler) AUT ON DIA.[CASECODE] = SHUF.[CASECODE] AND DIA.[ACTIONTYPE] IN (''A'', ''R'') AND DIA.[STATUS] = 0 AND DIA.[ACTIONID] <> SHUF.[ACTIONID] AND AUT.[IsAuthorisedToComplete] = 0 END TRY BEGIN CATCH SET @Continue = 1 END CATCH END If ((@Continue = 0) AND (@Shuffle = 1) AND (@Shuffled <> 0)) BEGIN BEGIN TRY UPDATE DEL SET DEL.[DATE] = CASE Convert(varchar(3), DATENAME(WEEKDAY, DATEADD(DD, @Shuffled, DEL.[DATE]))) WHEN ''Sat'' THEN DATEADD(DD, @Shuffled + 2, DEL.[DATE]) WHEN ''Sun'' THEN DATEADD(DD, @Shuffled + 1, DEL.[DATE]) ELSE DATEADD(DD, @Shuffled, DEL.[DATE]) END, DEL.[DUEDATE] = CASE Convert(varchar(3), DATENAME(WEEKDAY, DATEADD(DD, @Shuffled, DEL.[DUEDATE]))) WHEN ''Sat'' THEN DATEADD(DD, @Shuffled + 2, DEL.[DUEDATE]) WHEN ''Sun'' THEN DATEADD(DD, @Shuffled + 1, DEL.[DUEDATE]) ELSE DATEADD(DD, @Shuffled, DEL.[DUEDATE]) END FROM (SELECT DELS.[ActionID] AS [ActionID], DIAS.[CASECODE] FROM [dbo].[DiaryDelegations] DELS INNER JOIN [dbo].[Diary] DIAS ON DIAS.[ACTIONID] = DELS.[ACTIONID] WHERE DELS.[AssignNo] = @AssignNo AND @Shuffle = 1) SHUF INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[DiaryDelegations] DEL ON DEL.[ACTIONID] = DIA.[ACTIONID] AND DEL.[STATUS] = 0 CROSS APPLY [dbo].[ky_WDActionAuthorisedToComplete](DIA.[ActionID], @Handler) AUT ON DIA.[CASECODE] = SHUF.[CASECODE] AND DIA.[ACTIONTYPE] IN (''A'', ''R'') AND DIA.[STATUS] = 0 AND DIA.[ACTIONID] <> SHUF.[ACTIONID] AND AUT.[IsAuthorisedToComplete] = 0 END TRY BEGIN CATCH SET @Continue = 1 END CATCH END IF (@Continue = 0) COMMIT ELSE ROLLBACK END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDPushTask2] Script Date: 10/01/2014 16:18:10 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDPushTask2]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_WDPushTask2] (@AssignNo int, @Date varchar(8), @DueDate varchar(8), @NewText varchar(MAX), @NewSubject varchar(150), @Shuffle int, @Handler varchar(10)) AS /************************************************************************************** * * ky_WDPushTask2 * * Push a task forward and/or change its text. * **************************************************************************************/ BEGIN DECLARE @Continue int DECLARE @ActionID int DECLARE @Shuffled int BEGIN TRANSACTION SET @Continue = 0 SET @Shuffled = 0 If (RTRIM(ISNULL(@Date, '''')) <> '''') BEGIN If (@Continue = 0) BEGIN BEGIN TRY SELECT @ActionID = DEL.[ActionID], @Shuffled = DateDiff(DD, DEL.[DATE], @Date) FROM [dbo].[DiaryDelegations] DEL WHERE DEL.[AssignNo] = @AssignNo END TRY BEGIN CATCH SET @Continue = 1 END CATCH END END If (@Continue = 0) BEGIN BEGIN TRY UPDATE DEL SET DEL.[DATE] = CASE WHEN RTRIM(ISNULL(@Date, '''')) = '''' THEN DEL.[DATE] ELSE CONVERT(datetime, @DATE) END, DEL.[DUEDATE] = CASE WHEN RTRIM(ISNULL(@DueDate, '''')) = '''' THEN DEL.[DUEDATE] ELSE CONVERT(datetime, @Duedate) END FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA ON DIA.[ACTIONID] = DEL.[ActionID] WHERE DEL.[AssignNo] = @AssignNo IF (@@ERROR <> 0) SET @Continue = 1 END TRY BEGIN CATCH SET @Continue = 1 END CATCH END If (@Continue = 0) BEGIN BEGIN TRY UPDATE DIA SET DIA.[DATE] = CASE WHEN RTRIM(ISNULL(@Date, '''')) = '''' THEN DIA.[DATE] ELSE CONVERT(datetime, @DATE) END, DIA.[DUEDATE] = CASE WHEN RTRIM(ISNULL(@DueDate, '''')) = '''' THEN DIA.[DUEDATE] ELSE CONVERT(datetime, @Duedate) END, DIA.[TEXT1] = @NewText, DIA.[DisplayText] = [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), @NewText), ''''), 200), DIA.[SUBJECT] = @NewSubject FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA ON DIA.[ACTIONID] = DEL.[ActionID] WHERE DEL.[AssignNo] = @AssignNo IF (@@ERROR <> 0) SET @Continue = 1 END TRY BEGIN CATCH SET @Continue = 1 END CATCH END If ((@Continue = 0) AND (@Shuffle = 1) AND (@Shuffled <> 0)) BEGIN BEGIN TRY UPDATE DIA SET DIA.[DATE] = CASE Convert(varchar(3), DATENAME(WEEKDAY, DATEADD(DD, @Shuffled, DIA.[DATE]))) WHEN ''Sat'' THEN DATEADD(DD, @Shuffled + 2, DIA.[DATE]) WHEN ''Sun'' THEN DATEADD(DD, @Shuffled + 1, DIA.[DATE]) ELSE DATEADD(DD, @Shuffled, DIA.[DATE]) END, DIA.[DUEDATE] = CASE Convert(varchar(3), DATENAME(WEEKDAY, DATEADD(DD, @Shuffled, DIA.[DUEDATE]))) WHEN ''Sat'' THEN DATEADD(DD, @Shuffled + 2, DIA.[DUEDATE]) WHEN ''Sun'' THEN DATEADD(DD, @Shuffled + 1, DIA.[DUEDATE]) ELSE DATEADD(DD, @Shuffled, DIA.[DUEDATE]) END FROM (SELECT DELS.[ActionID] AS [ActionID], DIAS.[CASECODE] FROM [dbo].[DiaryDelegations] DELS INNER JOIN [dbo].[Diary] DIAS ON DIAS.[ACTIONID] = DELS.[ACTIONID] WHERE DELS.[AssignNo] = @AssignNo AND @Shuffle = 1) SHUF INNER JOIN [dbo].[Diary] DIA CROSS APPLY [dbo].[ky_WDActionAuthorisedToComplete](DIA.[ActionID], @Handler) AUT ON DIA.[CASECODE] = SHUF.[CASECODE] AND DIA.[ACTIONTYPE] IN (''A'', ''R'') AND DIA.[STATUS] = 0 AND DIA.[ACTIONID] <> SHUF.[ACTIONID] AND AUT.[IsAuthorisedToComplete] = 0 END TRY BEGIN CATCH SET @Continue = 1 END CATCH END If ((@Continue = 0) AND (@Shuffle = 1) AND (@Shuffled <> 0)) BEGIN BEGIN TRY UPDATE DEL SET DEL.[DATE] = CASE Convert(varchar(3), DATENAME(WEEKDAY, DATEADD(DD, @Shuffled, DEL.[DATE]))) WHEN ''Sat'' THEN DATEADD(DD, @Shuffled + 2, DEL.[DATE]) WHEN ''Sun'' THEN DATEADD(DD, @Shuffled + 1, DEL.[DATE]) ELSE DATEADD(DD, @Shuffled, DEL.[DATE]) END, DEL.[DUEDATE] = CASE Convert(varchar(3), DATENAME(WEEKDAY, DATEADD(DD, @Shuffled, DEL.[DUEDATE]))) WHEN ''Sat'' THEN DATEADD(DD, @Shuffled + 2, DEL.[DUEDATE]) WHEN ''Sun'' THEN DATEADD(DD, @Shuffled + 1, DEL.[DUEDATE]) ELSE DATEADD(DD, @Shuffled, DEL.[DUEDATE]) END FROM (SELECT DELS.[ActionID] AS [ActionID], DIAS.[CASECODE] FROM [dbo].[DiaryDelegations] DELS INNER JOIN [dbo].[Diary] DIAS ON DIAS.[ACTIONID] = DELS.[ACTIONID] WHERE DELS.[AssignNo] = @AssignNo AND @Shuffle = 1) SHUF INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[DiaryDelegations] DEL ON DEL.[ACTIONID] = DIA.[ACTIONID] AND DEL.[STATUS] = 0 CROSS APPLY [dbo].[ky_WDActionAuthorisedToComplete](DIA.[ActionID], @Handler) AUT ON DIA.[CASECODE] = SHUF.[CASECODE] AND DIA.[ACTIONTYPE] IN (''A'', ''R'') AND DIA.[STATUS] = 0 AND DIA.[ACTIONID] <> SHUF.[ACTIONID] AND AUT.[IsAuthorisedToComplete] = 0 END TRY BEGIN CATCH SET @Continue = 1 END CATCH END IF (@Continue = 0) COMMIT ELSE ROLLBACK END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDPushTask] Script Date: 10/01/2014 16:18:09 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDPushTask]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_WDPushTask] (@AssignNo int, @Date varchar(8), @NewText varchar(MAX), @Shuffle int, @Handler varchar(10)) AS /************************************************************************************** * * ky_WDPushTask * * Push a task forward and/or change its text. * **************************************************************************************/ BEGIN DECLARE @Continue int DECLARE @ActionID int DECLARE @Shuffled int BEGIN TRANSACTION SET @Continue = 0 If (RTRIM(ISNULL(@Date, '''')) <> '''') BEGIN If (@Continue = 0) BEGIN BEGIN TRY SELECT @ActionID = DEL.[ActionID], @Shuffled = DateDiff(DD, DEL.[DATE], @Date) FROM [dbo].[DiaryDelegations] DEL WHERE DEL.[AssignNo] = @AssignNo END TRY BEGIN CATCH SET @Continue = 1 END CATCH END If (@Continue = 0) BEGIN BEGIN TRY UPDATE DEL SET DEL.[DATE] = CONVERT(datetime, @DATE) FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA ON DIA.[ACTIONID] = DEL.[ActionID] WHERE DEL.[AssignNo] = @AssignNo IF (@@ERROR <> 0) SET @Continue = 1 END TRY BEGIN CATCH SET @Continue = 1 END CATCH END If (@Continue = 0) BEGIN BEGIN TRY UPDATE DIA SET DIA.[DATE] = CONVERT(datetime, @DATE), DIA.[TEXT1] = @NewText, DIA.[DisplayText] = [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), @NewText), ''''), 200) FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA ON DIA.[ACTIONID] = DEL.[ActionID] WHERE DEL.[AssignNo] = @AssignNo IF (@@ERROR <> 0) SET @Continue = 1 END TRY BEGIN CATCH SET @Continue = 1 END CATCH END If ((@Continue = 0) AND (@Shuffle = 1) AND (@Shuffled <> 0)) BEGIN BEGIN TRY UPDATE DIA SET DIA.[DATE] = CASE Convert(varchar(3), DATENAME(WEEKDAY, DATEADD(DD, @Shuffled, DIA.[DATE]))) WHEN ''Sat'' THEN DATEADD(DD, @Shuffled + 2, DIA.[DATE]) WHEN ''Sun'' THEN DATEADD(DD, @Shuffled + 1, DIA.[DATE]) ELSE DATEADD(DD, @Shuffled, DIA.[DATE]) END, DIA.[DUEDATE] = CASE Convert(varchar(3), DATENAME(WEEKDAY, DATEADD(DD, @Shuffled, DIA.[DUEDATE]))) WHEN ''Sat'' THEN DATEADD(DD, @Shuffled + 2, DIA.[DUEDATE]) WHEN ''Sun'' THEN DATEADD(DD, @Shuffled + 1, DIA.[DUEDATE]) ELSE DATEADD(DD, @Shuffled, DIA.[DUEDATE]) END FROM (SELECT DELS.[ActionID] AS [ActionID], DIAS.[CASECODE] FROM [dbo].[DiaryDelegations] DELS INNER JOIN [dbo].[Diary] DIAS ON DIAS.[ACTIONID] = DELS.[ACTIONID] WHERE DELS.[AssignNo] = @AssignNo AND @Shuffle = 1) SHUF INNER JOIN [dbo].[Diary] DIA CROSS APPLY [dbo].[ky_WDActionAuthorisedToComplete](DIA.[ActionID], @Handler) AUT ON DIA.[CASECODE] = SHUF.[CASECODE] AND DIA.[ACTIONTYPE] IN (''A'', ''R'') AND DIA.[STATUS] = 0 AND DIA.[ACTIONID] <> SHUF.[ACTIONID] AND AUT.[IsAuthorisedToComplete] = 0 END TRY BEGIN CATCH SET @Continue = 1 END CATCH END If ((@Continue = 0) AND (@Shuffle = 1) AND (@Shuffled <> 0)) BEGIN BEGIN TRY UPDATE DEL SET DEL.[DATE] = CASE Convert(varchar(3), DATENAME(WEEKDAY, DATEADD(DD, @Shuffled, DEL.[DATE]))) WHEN ''Sat'' THEN DATEADD(DD, @Shuffled + 2, DEL.[DATE]) WHEN ''Sun'' THEN DATEADD(DD, @Shuffled + 1, DEL.[DATE]) ELSE DATEADD(DD, @Shuffled, DEL.[DATE]) END, DEL.[DUEDATE] = CASE Convert(varchar(3), DATENAME(WEEKDAY, DATEADD(DD, @Shuffled, DEL.[DUEDATE]))) WHEN ''Sat'' THEN DATEADD(DD, @Shuffled + 2, DEL.[DUEDATE]) WHEN ''Sun'' THEN DATEADD(DD, @Shuffled + 1, DEL.[DUEDATE]) ELSE DATEADD(DD, @Shuffled, DEL.[DUEDATE]) END FROM (SELECT DELS.[ActionID] AS [ActionID], DIAS.[CASECODE] FROM [dbo].[DiaryDelegations] DELS INNER JOIN [dbo].[Diary] DIAS ON DIAS.[ACTIONID] = DELS.[ACTIONID] WHERE DELS.[AssignNo] = @AssignNo AND @Shuffle = 1) SHUF INNER JOIN [dbo].[Diary] DIA INNER JOIN [dbo].[DiaryDelegations] DEL ON DEL.[ACTIONID] = DIA.[ACTIONID] AND DEL.[STATUS] = 0 CROSS APPLY [dbo].[ky_WDActionAuthorisedToComplete](DIA.[ActionID], @Handler) AUT ON DIA.[CASECODE] = SHUF.[CASECODE] AND DIA.[ACTIONTYPE] IN (''A'', ''R'') AND DIA.[STATUS] = 0 AND DIA.[ACTIONID] <> SHUF.[ACTIONID] AND AUT.[IsAuthorisedToComplete] = 0 END TRY BEGIN CATCH SET @Continue = 1 END CATCH END END ELSE BEGIN If (@Continue = 0) BEGIN BEGIN TRY UPDATE DIA SET DIA.[TEXT1] = @NewText, DIA.[DisplayText] = [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), @NewText), ''''), 200) FROM [dbo].[DiaryDelegations] DEL INNER JOIN [dbo].[Diary] DIA ON DIA.[ACTIONID] = DEL.[ActionID] WHERE DEL.[AssignNo] = @AssignNo IF (@@ERROR <> 0) SET @Continue = 1 END TRY BEGIN CATCH SET @Continue = 1 END CATCH END END IF (@Continue = 0) COMMIT ELSE ROLLBACK END ' END GO /****** Object: StoredProcedure [dbo].[ky_CalculateFEBreakDownBD] Script Date: 10/01/2014 16:17:05 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_CalculateFEBreakDownBD]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_CalculateFEBreakDownBD] (@DRAFTNO int) AS BEGIN DECLARE @TOTVALUE decimal(11, 2) DECLARE @TOTVAT decimal(15, 2) DELETE FROM [dbo].[BillFeeBreakDown] WHERE [DRAFTNO] = @DraftNo INSERT INTO [dbo].[BillFeeBreakdown] ([MATTER], [DRAFTNO], [BILLNO], [FECODE], [TYPE], [PERCENT], [CALCULATION], [VALUE], [VATCODE], [VATAMT], [VATCalculation]) SELECT NBFB.[MATTER], NBFB.[DRAFTNO], 0, NBFB.[FECODE], NBFB.[TYPE], NBFB.[PERCENT], NBFB.[CALCULATION], NBFB.[VALUE], NBFB.[VATCODE], NBFB.[VATAMT], NBFB.[VATCalculation] FROM ky_BGNewBillFeeBreakdownBD(@DraftNo) NBFB LEFT OUTER JOIN [dbo].[BillFeeBreakdown] BFB ON BFB.[DRAFTNO] = NBFB.[DRAFTNO] AND BFB.[FECODE] = NBFB.[FECODE] WHERE BFB.[RECORDID] IS NULL select @TOTVALUE = IsNull(SUM(BFB.[VALUE]), 0), @TOTVAT = ISNULL(SUM(BFB.[VATAMT]), 0) from [dbo].[BillFeeBreakDown] BFB where BFB.[DRAFTNO] = @DraftNo IF (@TOTVALUE = 0) BEGIN UPDATE BFB SET BFB.[PERCENT] = 0, BFB.[CALCULATION] = 0 FROM [dbo].[BILLFeeBreakdown] BFB WHERE BFB.[DRAFTNO] = @DraftNo END ELSE BEGIN UPDATE BFB SET BFB.[PERCENT] = convert(decimal(5, 2), Round(100 * (BFB.[VALUE] / @TOTVALUE), 2)), BFB.[CALCULATION] = convert(decimal(9, 5), Round(100 * (BFB.[VALUE] / @TOTVALUE), 5)), BFB.[VATAMT] = M1.[OVC] - M2.[OVC] FROM [dbo].[BILLFeeBreakdown] BFB CROSS APPLY (SELECT Convert(decimal(11, 2), Round(SUM(B2.[VATCalculation]), 2)) AS [OVC] FROM [dbo].[BillFeeBreakDown] B2 WHERE B2.[DRAFTNO] = @DraftNo AND B2.[RECORDID] <= BFB.[RECORDID]) M1 CROSS APPLY (SELECT Convert(decimal(11, 2), Round(IsNull(SUM(B2.[VATCalculation]), 0), 2)) AS [OVC] FROM [dbo].[BillFeeBreakDown] B2 WHERE B2.[DRAFTNO] = @DraftNo AND B2.[RECORDID] < BFB.[RECORDID]) M2 WHERE BFB.[DRAFTNO] = @DraftNo END END ' END GO /****** Object: StoredProcedure [dbo].[ky_UngroupGUIDBG] Script Date: 10/01/2014 16:17:40 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_UngroupGUIDBG]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_UngroupGUIDBG] (@ControlID int, @GroupIDString varchar(38)) AS /*************************************************************************** * * ky_UngroupGUIDBG * Rewritten 2014-09-12 to improve efficiency and prevent deadlocks * removes the Billing Guide Group with unique ID @GroupIDString * and creates an individual group for each Billing Guide Detail line that * used to be in that group * ***************************************************************************/ BEGIN DECLARE @GroupID uniqueidentifier DECLARE @SeqNo int DECLARE @newgroups TABLE ([seqno] int identity(1, 1), [ID] uniqueidentifier) SELECT @GroupID = [ID] FROM [dbo].[BGGroups] BGG WHERE [ID] = convert(uniqueidentifier, @GroupIDString) AND [BGControlID] = @ControlID IF (@GroupID IS NOT NULL) BEGIN /* Remove orphaned groups */ DELETE BGG FROM [dbo].[BGGroups] BGG LEFT OUTER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] WHERE BGG.[BGControlID] = @ControlID AND BGD.[ID] IS NULL /* Get the next available Sequence number for the new groups */ Select @SeqNo = IsNull(Max(BGG.Seqno), 0) from [dbo].[BGGroups] BGG where BGG.[BGControlID] = @ControlID /* Create new groups. One new group for each item to be ungrouped. This is why the IDs are GUIDs. We can now use the GUIDs of the original Detail items to create the IDs of the new Groups. Using GUIDs (virtually guaranteed to be unique) makes doing this much easier than it would have been using different types of ID fields. */ INSERT INTO @newgroups ([ID]) SELECT [ID] FROM [dbo].[BGDetail] WHERE [BGControlID] = @ControlID AND [BGGroupID] = @GroupID ORDER BY SeqNo INSERT INTO [dbo].[BGGroups] ([ID], [SeqNo], [BGControlID], [Narrative]) SELECT NGR.[ID], @SeqNo + NGR.[seqno], @ControlID, BGD.[Narrative] FROM @newgroups NGR INNER JOIN [dbo].[BGDetail] BGD ON BGD.[ID] = NGR.[ID] /* Now reassign the Detail lines so they are ungrouped and linked to each individual newly created group. Each Detail line gets a sequence number of 1. */ UPDATE BGD SET BGD.[BGGroupID] = BGD.[ID], SeqNo = 1 FROM [dbo].[BGDetail] BGD WHERE BGD.[BGControlID] = @ControlID AND BGD.[BGGroupID] = @GroupID /* Remove the group that was just "ungrouped". The best thing to do here is to repeat the removal of all orphaned groups as this will not only remove the group that has just been ungrouped but any other groups that may have become orphaned unexpectedly. */ DELETE BGG FROM [dbo].[BGGroups] BGG LEFT OUTER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] WHERE BGG.[BGControlID] = @ControlID AND BGD.[ID] IS NULL /* resequence the groups so that their sequence numbers remain contiguous: 1, 2, 3 ... */ EXEC [dbo].[ky_ReorderGroupBG] @ControlID END END ' END GO /****** Object: StoredProcedure [dbo].[ky_UngroupBG] Script Date: 10/01/2014 16:17:40 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_UngroupBG]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_UngroupBG] (@ControlID int, @GroupSeqNo int) AS /*************************************************************************** * * ky_UngroupBG * Rewritten 2014-09-12 to improve efficiency and prevent deadlocks * removes the Billing Guide Group with sequence number @GroupSeqNo * and creates an individual group for each Billing Guide Detail line that * used to be in that group * ***************************************************************************/ BEGIN DECLARE @GroupID uniqueidentifier DECLARE @SeqNo int DECLARE @newgroups TABLE ([seqno] int identity(1, 1), [ID] uniqueidentifier) SELECT @GroupID = [ID] FROM [dbo].[BGGroups] Where [BGControlID] = @ControlID AND [SEQNO] = @GroupSeqNo /* Remove orphaned groups */ DELETE BGG FROM [dbo].[BGGroups] BGG LEFT OUTER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] WHERE BGG.[BGControlID] = @ControlID AND BGD.[ID] IS NULL /* Get the next available Sequence number for the new groups */ Select @SeqNo = IsNull(Max(BGG.Seqno), 0) from [dbo].[BGGroups] BGG where BGG.[BGControlID] = @ControlID /* Create new groups. One new group for each item to be ungrouped. This is why the IDs are GUIDs. We can now use the GUIDs of the original Detail items to create the IDs of the new Groups. Using GUIDs (virtually guaranteed to be unique) makes doing this much easier than it would have been using different types of ID fields. */ INSERT INTO @newgroups ([ID]) SELECT [ID] FROM [dbo].[BGDetail] WHERE [BGControlID] = @ControlID AND [BGGroupID] = @GroupID ORDER BY SeqNo INSERT INTO [dbo].[BGGroups] ([ID], [SeqNo], [BGControlID], [Narrative]) SELECT NGR.[ID], @SeqNo + NGR.[seqno], @ControlID, BGD.[Narrative] FROM @newgroups NGR INNER JOIN [dbo].[BGDetail] BGD ON BGD.[ID] = NGR.[ID] /* Now reassign the Detail lines so they are ungrouped and linked to each individual newly created group. Each Detail line gets a sequence number of 1. */ UPDATE BGD SET BGD.[BGGroupID] = BGD.[ID], SeqNo = 1 FROM [dbo].[BGDetail] BGD WHERE BGD.[BGControlID] = @ControlID AND BGD.[BGGroupID] = @GroupID /* Remove the group that was just "ungrouped". The best thing to do here is to repeat the removal of all orphaned groups as this will not only remove the group that has just been ungrouped but any other groups that may have become orphaned unexpectedly. */ DELETE BGG FROM [dbo].[BGGroups] BGG LEFT OUTER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] WHERE BGG.[BGControlID] = @ControlID AND BGD.[ID] IS NULL /* resequence the groups so that their sequence numbers remain contiguous: 1, 2, 3 ... */ EXEC [dbo].[ky_ReorderGroupBG] @ControlID END ' END GO /****** Object: StoredProcedure [dbo].[ky_NewGroupBG] Script Date: 10/01/2014 16:18:56 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_NewGroupBG]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_NewGroupBG] (@ControlID int, @Narrative varchar(255)) AS /*************************************************************************** * * ky_ReorderGroupBG * Rewritten 2014-09-12 to improve efficiency and prevent deadlocks * re-numbers the sequence numbers in a Billing Guide Group so that they * are contiguously numbered 1, 2, 3, etc. * ***************************************************************************/ BEGIN DECLARE @NewID as uniqueidentifier /* Remove orphaned groups */ DELETE BGG FROM [dbo].[BGGroups] BGG LEFT OUTER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] WHERE BGG.[BGControlID] = @ControlID AND BGD.[ID] IS NULL SET @NewID = NewID() INSERT INTO [dbo].[BGGroups] ([ID], [SeqNo], [BGControlID], [Narrative]) SELECT @NewId, IsNull(Max(BGG.[SeqNo]), 0) + 1, BGC.[ID], @Narrative FROM [dbo].[BGControl] BGC LEFT OUTER JOIN [dbo].[BGGroups] BGG ON BGG.[BGControlID] = BGC.[ID] WHERE BGC.[ID] = @ControlID GROUP BY BGC.[ID], BGC.[Matter] EXEC [dbo].[ky_ReorderGroupBG] @ControlID END ' END GO /****** Object: View [dbo].[OpenClosedMatters] Script Date: 10/01/2014 16:20:02 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[OpenClosedMatters]')) EXEC dbo.sp_executesql @statement = N' CREATE VIEW [dbo].[OpenClosedMatters] WITH SCHEMABINDING AS /****************************************************************************** * * OpenClosedMatters * Lists basic information about all the Open and Closed matters in the system. * Used mainly in Reports * ******************************************************************************/ SELECT MAT.[Code], MAT.[ClientCode], MAT.[ClientName], MAT.[Matter], MAT.[Description], MAT.[Dept], MAT.[Fecode], MAT.[Started], MAT.[StartDate], MAT.[Wtype], MAT.[User1], MAT.[User2], MAT.[User3], MAT.[OldRef], MAT.[FileNum], MAT.[OpenCode], MAT.[ClosedCode], MAT.[OpenClosed] FROM [dbo].[ky_NETOpenClosedMatters]() MAT ' GO /****** Object: View [dbo].[OpenClosedMatterLedger] Script Date: 10/01/2014 16:20:02 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[OpenClosedMatterLedger]')) EXEC dbo.sp_executesql @statement = N' CREATE VIEW [dbo].[OpenClosedMatterLedger] WITH SCHEMABINDING AS SELECT LF.[MATTER], LF.[BATCHNO], LF.[PREF], LF.[TransDate], LF.[Ref], LF.[Narr], LF.[ValueD], LF.[ValueO], LF.[ValueC], LF.[Fee], LF.[Per], LF.[TranYear], LF.[EntryDate], LF.[Client], LF.[ValueCC], LF.[ValueCD], LF.[Deposittype], LF.[lref] FROM [dbo].[ky_NETOpenClosedMatterLedger]() LF ' GO /****** Object: View [dbo].[OpenClosedMattersLedger] Script Date: 10/01/2014 16:20:02 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[OpenClosedMattersLedger]')) EXEC dbo.sp_executesql @statement = N' CREATE VIEW [dbo].[OpenClosedMattersLedger] WITH SCHEMABINDING AS SELECT LF.[MATTER], LF.[BATCHNO], LF.[PREF], LF.[TransDate], LF.[Ref], LF.[Narr], LF.[ValueD], LF.[ValueO], LF.[ValueC], LF.[Fee], LF.[Per], LF.[TranYear], LF.[EntryDate], LF.[Client], LF.[ValueCC], LF.[ValueCD], LF.[Deposittype], LF.[lref] FROM [dbo].[ky_NETOpenClosedMatterLedger]() LF ' GO /****** Object: StoredProcedure [dbo].[ky_WDDelegateAction_DiaryDel] Script Date: 10/01/2014 16:18:02 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDDelegateAction_DiaryDel]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDDelegateAction_DiaryDel * * Delegate an action. This is performed in 4 steps: * 1) If requested, the action is released. * 2) The action is delegated * 3) The action is updated * 4) An alarm is set * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDDelegateAction_DiaryDel] (@ActionID int, @AssignNo int, @Handler varchar(10), @AssignTo varchar(10), @Release int) AS BEGIN DECLARE @AIDParm varchar(50) DECLARE @RESULT int BEGIN TRANSACTION SET @RESULT = 0 IF (@Release = 1) BEGIN BEGIN TRY BEGIN EXEC [dbo].[ky_WDReleaseAction_DiaryDel] @ActionId, @Handler, @RESULT OUTPUT IF (@@ERROR <> 0) BEGIN SET @RESULT = -1 END END END TRY BEGIN CATCH SET @RESULT = -1 END CATCH END IF (@RESULT = 0) BEGIN BEGIN TRY BEGIN EXEC [dbo].[ky_WDAssignAction_DiaryDel] @ActionId, @AssignNo, @Handler, @AssignTo, @Release, @RESULT OUTPUT IF (@@ERROR <> 0) BEGIN SET @RESULT = -1 END END END TRY BEGIN CATCH SET @RESULT = -1 END CATCH END IF (@RESULT = 0) BEGIN BEGIN TRY BEGIN EXEC [dbo].[ky_WDUpdateAction_DiaryDel] @ActionId, @AssignNo, @Handler, @AssignTo, @Release, @RESULT OUTPUT IF (@@ERROR <> 0) BEGIN SET @RESULT = -1 END END END TRY BEGIN CATCH SET @RESULT = -1 END CATCH END IF (@RESULT = 0) BEGIN BEGIN TRY BEGIN SET @AIDParm = convert(varchar(50), @ActionID) IF (@@ERROR <> 0) BEGIN SET @RESULT = -1 END EXEC [dbo].[ky_AddAlarmDelegate] @AIDParm, @AssignTo IF (@@ERROR <> 0) BEGIN SET @RESULT = -1 END END END TRY BEGIN CATCH SET @RESULT = -1 END CATCH END IF (@RESULT = 0) COMMIT ELSE ROLLBACK END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDCreateDiaryStep] Script Date: 10/01/2014 16:17:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDCreateDiaryStep]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_WDCreateDiaryStep] (@pStatus Int=0, @pDate datetime, @pSentDate datetime, @pCaseCode char(17), @pActionCode char(15), @pActionStatus char(3), @pFnCode char(5), @pTeamCode char(5), @pText1 varchar(8000), @pAttachments char(1), @pEmailAddress varchar(150), @pAddressTo varchar(2000), @pccTo varchar(2000), @pbccTo varchar(2000), @pemail char(1), @pSubject varchar(500), @pProcessType char(1), @pActionID int) AS /************************************************************************ * * Create Diary Step WinDev/WebDev version * As it uses ky_WDCreateDiaryStep2 it will automatically become aware * of the new DisplayText column * *************************************************************************/ BEGIN EXEC [dbo].[ky_WDCreateDiaryStep2] @pStatus, @pDate, NULL, @pSentDate, @pCaseCode, @pActionCode, ''E'', @pActionStatus, NULL, NULL, NULL, NULL, NULL, @pFnCode, @pTeamCode, @pText1, @pAttachments, @pEmailAddress, @pAddressTo, @pccTo, @pbccTo, @pemail, @pSubject, @pProcessType, @pActionID END ' END GO /****** Object: View [dbo].[FeesReceivedBreakDown] Script Date: 10/01/2014 16:19:56 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FeesReceivedBreakDown]')) EXEC dbo.sp_executesql @statement = N' create VIEW [dbo].[FeesReceivedBreakDown] AS SELECT BatchDetails.FEE, Handlers.NAME AS Solicitor, DebtorsReceipts.MATTER, OpenClosedMatters.ClientCode, OpenClosedMatters.ClientName, OpenClosedMatters.Description, DebtorsInvoices.DATE AS InvoiceDate, DebtorsInvoices.BATCHNO AS InvoiceBatchNo,DebtorsInvoices.REF AS InvoiceRef, DebtorsInvoices.PREF AS InvoiceReceiptNo, DebtorsInvoices.TYPE AS InvoiceType, ISNULL(DebtorsInvoices.ORFEES, 0) AS FeesInvoiced, ISNULL(DebtorsInvoices.ORVAT, 0) AS VATInvoiced, ISNULL(BatchDetails.VALUE, 0) AS SolicitorFeeInvoiced, ISNULL(BatchDetails.VATVAL, 0) AS SolicitorVATInvoiced, DebtorsInvoices.NARR AS InvoiceNarr, DebtorsInvoices.YEAR AS InvoiceFinancialYear, DebtorsInvoices.PER AS InvoiceFinancialPeriod, DebtorsReceipts.DATE AS ReceiptDate, DebtorsReceipts.BATCHNO AS ReceiptBatchNo, DebtorsReceipts.REF AS ReceiptRef, DebtorsReceipts.PREF AS ReceiptPRef, DebtorsReceipts.TYPE AS ReceiptType, CASE WHEN (DebtorsInvoices.ORVAT = 0) THEN 0 ELSE (dbo.Allocations.VAT * (dbo.BatchDetails.VATVAL / DebtorsInvoices.ORVAT) * - 1) END AS SolicitorVatReceived, CASE WHEN (DebtorsInvoices.ORFEES = 0) THEN 0 ELSE (dbo.Allocations.FEES * (dbo.BatchDetails.VALUE / DebtorsInvoices.ORFEES) * - 1) END AS SolicitorFeeReceived, DebtorsReceipts.NARR AS ReceiptNarr, DebtorsReceipts.YEAR AS ReceiptFinancialYear, DebtorsReceipts.PER AS ReceiptFinancialPeriod, { fn MONTHNAME(DebtorsReceipts.DATE) } AS ReceiptDatedMonthName, { fn MONTH(DebtorsReceipts.DATE) } AS ReceiptDatedMonth, YEAR(DebtorsReceipts.DATE) AS ReceiptDatedYear, ISNULL(Allocations.FEES, 0) AS AllocatedFee, Allocations.VAT, OpenClosedMatters.Dept, OpenClosedMatters.Fecode AS MatterFe, OpenClosedMatters.Started, OpenClosedMatters.StartDate, OpenClosedMatters.Wtype, OpenClosedMatters.User1, OpenClosedMatters.User2, OpenClosedMatters.User3, OpenClosedMatters.OpenClosed, coalesce((SELECT TOP (1) CSWKTCODE FROM CaseMaster WHERE (CSCODE = dbo.OpenClosedMatters.opencode)), (SELECT TOP (1) CSWKTCODE FROM CaseMasterClosed WHERE (CSCODE = dbo.OpenClosedMatters.closedcode))) AS CasePlan FROM Handlers WITH (Nolock) RIGHT OUTER JOIN OpenClosedMatters WITH (Nolock) INNER JOIN DebtorsLedger AS DebtorsReceipts INNER JOIN Allocations WITH (Nolock) ON DebtorsReceipts.BATCHNO = Allocations.BATCHNO AND DebtorsReceipts.PREF = Allocations.PREF INNER JOIN DebtorsLedger AS DebtorsInvoices ON Allocations.ABATCHNO = DebtorsInvoices.BATCHNO AND Allocations.OPREF = DebtorsInvoices.PREF INNER JOIN BatchDetails WITH (Nolock) ON DebtorsInvoices.BATCHNO = BatchDetails.BATCHNO ON OpenClosedMatters.Code = DebtorsReceipts.MATTER LEFT OUTER JOIN CaseMasterClosed WITH (Nolock) ON OpenClosedMatters.ClosedCode = CaseMasterClosed.CSCODE LEFT OUTER JOIN CaseMaster WITH (Nolock)ON OpenClosedMatters.OpenCode = CaseMaster.CSCODE ON Handlers.CODE = BatchDetails.FEE WHERE (DebtorsReceipts.TYPE = ''R'') AND (BatchDetails.OUTLAY = ''F'') ' GO /****** Object: UserDefinedFunction [dbo].[ky_WDMatterSearch] Script Date: 10/01/2014 16:19:28 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_WDMatterSearch]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /******************************************************************************************* * * ky_WDMatterSearch * matter search based on selection criteria and searching fields such as matter description, * client name, user fields etc. * *******************************************************************************************/ CREATE FUNCTION [dbo].[ky_WDMatterSearch] (@fe varchar(10), @contactsearch varchar(50), @mattersearch varchar(50), @docontactsearch int) RETURNS @MS TABLE ([ID] int, [CODE] varchar(20), [NAME] varchar(300), [Description] varchar(300), [FECode] varchar(10), [Tel] varchar(30), [EMAIL] varchar(100), [TDBTime] varchar(10), [TDBStopwatchRunning] int, [TDBRecordID] int) AS BEGIN SET @contactsearch = RTRIM(Isnull(@contactsearch, '''')) IF (@contactsearch <> '''') BEGIN SET @docontactsearch = 1 END ELSE BEGIN SET @docontactsearch = CASE WHEN ISNULL(@docontactsearch, 0) = 1 THEN 1 ELSE 0 END END IF (@docontactsearch = 1) BEGIN INSERT INTO @MS ([ID], [CODE], [NAME], [Description], [FECode], [Tel], [EMAIL], [TDBTime], [TDBStopwatchRunning], [TDBRecordID]) select CS.[ID] AS [id], CS.[CaseCode] AS [CODE], CS.[ClientName] AS [NAME], CS.[CaseDescription] AS [CaseDescription], MAT.[FECode] AS [FECode], CON.[Tel] AS [Tel], CON.[email] as [EMAIL], CASE WHEN ISNULL(TDB.[TIME], 0) = 0 THEN '''' ELSE CASE WHEN ISNULL(TDB.[TIME], 0) < 0 THEN ''-'' ELSE '''' END + RIGHT(''00'' + convert(VARCHAR(2), FLOOR(ABS(ISNULL(TDB.[TIME], 0)) / 60)), 2) + '':'' + RIGHT(''00'' + convert(VARCHAR(2), ABS(ISNULL(TDB.[TIME], 0)) - (60 * FLOOR(ABS(ISNULL(TDB.[TIME], 0)) / 60))), 2) END AS [TDBTime], CASE WHEN TDB.[StopwatchStartTime] IS NULL THEN 0 ELSE 1 END AS [TDBStopwatchRunning], CASE WHEN TDB.[RECORDID] IS NULL THEN 0 ELSE TDB.[RECORDID] END AS [TDBRecordID] from [dbo].[ky_WDContactSearch](@fe, @contactsearch, @mattersearch, 0, 1, 0, 1, '''', '''', 0, 0, 1, 1, 1, 100) CS INNER JOIN [dbo].[matters] MAT inner join [dbo].[Contacts] CON ON CON.[Code] = MAT.[ClientCode] LEFT OUTER JOIN [dbo].[TimeDayBook] TDB ON TDB.[MATTER] = MAT.[CODE] AND TDB.[FEEEARN] = @fe ON MAT.[Code] = CS.[CaseCode] END ELSE BEGIN set @mattersearch = REPLACE(''%'' + @mattersearch + ''%'', ''%%'',''%'') INSERT INTO @MS ([CODE], [NAME], [Description], [FECode], [Tel], [EMAIL], [TDBTime], [TDBStopwatchRunning], [TDBRecordID]) SELECT MS.[CODE], MS.[NAME], MS.[Description], MS.[FECode], MS.[Tel], MS.[EMAIL], MS.[TDBTime], MS.[TDBStopwatchRunning], MS.[TDBRecordID] FROM [dbo].[ky_WDMatSearch](@mattersearch, @fe, 1, 100) MS END RETURN END ' END GO /****** Object: View [dbo].[FeWIP] Script Date: 10/01/2014 16:19:57 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FeWIP]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[FeWIP] AS SELECT FEEEARN, SUM(WIP) AS WIP FROM dbo.FeMatterWIP WHERE (WIP <> 0) GROUP BY FEEEARN ' GO /****** Object: View [dbo].[LastMatterDates] Script Date: 10/01/2014 16:19:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[LastMatterDates]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[LastMatterDates] AS SELECT TOP 100 PERCENT Code, Dept, Fecode, Wtype, CASE OpenCode WHEN Code THEN ''Open'' ELSE ''Closed'' END AS Status, (SELECT TOP 1 DATE FROM dbo.TimeEntry WHERE (MATTER = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastTimeEntry, (SELECT TOP 1 FEEEARN + '' - '' + COMMENT AS Expr1 FROM dbo.TimeEntry AS TimeEntry_1 WHERE (MATTER = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastTimeEntryDesc, (SELECT TOP 1 DATE FROM dbo.diary WHERE (CASECODE = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastOpenDiaryDate, (SELECT TOP 1 convert(varchar(1000), substring(TEXT1, 1, 1000)) FROM dbo.diary AS dairy_1 WHERE (CASECODE = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastOpenDiaryText1, (SELECT TOP 1 DATE FROM dbo.CloseDiary AS dairy_1 WHERE (CASECODE = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastClosedDiaryDate, (SELECT TOP 1 convert(varchar(1000), substring(TEXT1, 1, 1000)) FROM dbo.CloseDiary AS dairy_1 WHERE (CASECODE = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastClosedDiaryText1, (SELECT TOP 1 DATE FROM dbo.MatterLedger WHERE (MATTER = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastOpenAccountDate, (SELECT TOP 1 NARR FROM dbo.MatterLedger AS MatterLedger_1 WHERE (MATTER = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastOpenAccountDesc, (SELECT TOP 1 DATE FROM dbo.ClosedMatterLedger WHERE (MATTER = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastClosedAccountDate, (SELECT TOP 1 NARR FROM dbo.ClosedMatterLedger AS ClosedMatterLedger_1 WHERE (MATTER = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastClosedAccountDesc, (SELECT TOP 1 DATE FROM dbo.Undertakings AS Undertakings_1 WHERE (MATTER = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastUndertakingDate, (SELECT TOP 1 WHO + '' Value:'' + CAST(VALUE AS varchar) + '' '' + DESCRIPTION AS Expr1 FROM dbo.Undertakings WHERE (MATTER = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastUndertakingDesc, (SELECT TOP 1 LastAct FROM dbo.matters AS matters_1 WHERE (Code = OpenClosedMatters_1.Code) ORDER BY LastAct DESC) AS LastOpenAct, (SELECT TOP 1 LASTACT FROM dbo.Closed AS Closed_1 WHERE (CODE = OpenClosedMatters_1.Code) ORDER BY LASTACT DESC) AS LastClosedAct FROM dbo.OpenClosedMatters AS OpenClosedMatters_1 ORDER BY Status ' GO /****** Object: View [dbo].[MatterDetailView] Script Date: 10/01/2014 16:20:00 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[MatterDetailView]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[MatterDetailView] AS SELECT dbo.OpenClosedMatters.Code AS MatterCode, dbo.OpenClosedMatters.ClientCode, dbo.Contacts.Name AS ClientName, dbo.OpenClosedMatters.Description AS MatterDescription, dbo.OpenClosedMatters.Fecode AS FeeEarnerCode, dbo.FeeEarnerCodes.NAME AS FeeEarnerName, dbo.Departments.[DESC] AS Department, dbo.WorkTypes.[DESC] AS WorkType, dbo.OpenClosedMatters.Started, dbo.OpenClosedMatters.User1, dbo.OpenClosedMatters.User2, dbo.OpenClosedMatters.User3, dbo.OpenClosedMatters.OldRef, (CASE ISNULL(dbo.OpenClosedMatters.OpenCode, ''Closed'') WHEN ''Closed'' THEN ''Closed'' ELSE ''Open'' END) AS OpenOrClosed, dbo.OpenClosedMatters.Wtype AS WorkTypeCode, dbo.OpenClosedMatters.Dept AS DepartmentCode FROM dbo.OpenClosedMatters INNER JOIN dbo.Contacts ON dbo.OpenClosedMatters.ClientCode = dbo.Contacts.Code INNER JOIN dbo.FeeEarnerCodes ON dbo.OpenClosedMatters.Fecode = dbo.FeeEarnerCodes.CODE INNER JOIN dbo.WorkTypes ON dbo.OpenClosedMatters.Wtype = dbo.WorkTypes.CODE INNER JOIN dbo.Departments ON dbo.OpenClosedMatters.Dept = dbo.Departments.CODE ' GO /****** Object: View [dbo].[diarycloseddiary] Script Date: 10/01/2014 16:19:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[diarycloseddiary]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[diarycloseddiary] AS SELECT dbo.diary.ACTIONID, dbo.diary.CASECODE, dbo.diary.[DATE], dbo.diary.TEXT1, dbo.OpenClosedMatters.OpenCode, dbo.CloseDiary.ACTIONID AS ClosedActionID, dbo.CloseDiary.CASECODE AS ClosedCaseCode, dbo.CloseDiary.[DATE] AS ClosedDate, dbo.CloseDiary.TEXT1 AS ClosedText1, dbo.OpenClosedMatters.ClosedCode FROM dbo.diary INNER JOIN dbo.CloseDiary ON dbo.diary.ACTIONID = dbo.CloseDiary.ACTIONID INNER JOIN dbo.OpenClosedMatters ON dbo.diary.CASECODE = dbo.OpenClosedMatters.Code AND dbo.CloseDiary.CASECODE = dbo.OpenClosedMatters.Code ' GO /****** Object: View [dbo].[diaryattcloseddiaryatt] Script Date: 10/01/2014 16:19:53 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[diaryattcloseddiaryatt]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[diaryattcloseddiaryatt] AS SELECT dbo.DiaryAttachments.TRACKREFERENCE, dbo.DiaryAttachments.DIARYID, dbo.DiaryAttachments.CASECODE, dbo.DiaryAttachments.NAME, dbo.OpenClosedMatters.OpenCode, dbo.CloseDiaryAttachments.TRACKREFERENCE AS ClosedTrackRef, dbo.CloseDiaryAttachments.DIARYID AS ClosedDiaryID, dbo.CloseDiaryAttachments.CASECODE AS ClosedCaseCode, dbo.CloseDiaryAttachments.NAME AS ClosedName, dbo.OpenClosedMatters.ClosedCode FROM dbo.DiaryAttachments INNER JOIN dbo.OpenClosedMatters ON dbo.DiaryAttachments.CASECODE = dbo.OpenClosedMatters.Code INNER JOIN dbo.CloseDiaryAttachments ON dbo.OpenClosedMatters.Code = dbo.CloseDiaryAttachments.CASECODE ' GO /****** Object: StoredProcedure [dbo].[ky_MoveBriefDocument] Script Date: 10/01/2014 16:17:24 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_MoveBriefDocument]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'Create Procedure [dbo].[ky_MoveBriefDocument] (@RecID Integer, @Direction Integer) AS /************************************************************** * * * ky_MoveBriefDocument * * * * Moves a document up or down within a section of a brief * * * * Parameters: RecID, the recordid column of the document * * Direction, the direction to move * * 1 = Down * * 2 = Up * * 3 = Beginning * * 4 = End * * * **************************************************************/ DECLARE @FirstRecID Integer DECLARE @FirstSO Integer DECLARE @PreviousRecID Integer DECLARE @PreviousSO Integer DECLARE @NextRecID Integer DECLARE @NextSO Integer DECLARE @LastRecID Integer DECLARE @LastSO Integer DECLARE @CurRecID Integer DECLARE @CurSO Integer EXEC dbo.ky_ReorderBriefDocSection @RecID SELECT @CurRecID = @RecID, @CurSO = X.SortOrder, @FirstRecID = BD6.recordid, @FirstSO = BD6.SortOrder, @PreviousRecID = BD4.recordid, @PreviousSO = BD4.SortOrder, @NextRecID = BD5.recordid, @NextSO = BD5.SortOrder, @LastRecID = BD7.recordid, @LastSO = BD7.SortOrder FROM ( select BD.BriefID, BD.SectionID, BD.sortorder, min(BD2.sortorder) As FirstSO, max(BD2.sortorder) As PreviousSO, min(BD3.sortorder) As NextSO, max(BD3.sortorder) As LastSO from dbo.BriefDocuments BD left outer join BriefDocuments BD2 ON BD2.briefID = BD.briefid AND BD2.sectionID = BD.sectionID AND BD2.sortorder < BD.sortorder left outer join BriefDocuments BD3 ON BD3.briefID = BD.briefid AND BD3.sectionID = BD.sectionID AND BD3.sortorder > BD.sortorder Where BD.recordid = @RecID group by BD.BriefID, BD.SectionID, BD.sortorder) X LEFT OUTER JOIN BriefDocuments BD6 ON BD6.BriefID = X.BriefID AND BD6.SectionID = X.SectionID AND BD6.sortorder = X.FirstSO LEFT OUTER JOIN BriefDocuments BD4 ON BD4.BriefID = X.BriefID AND BD4.SectionID = X.SectionID AND BD4.sortorder = X.PreviousSO LEFT OUTER JOIN BriefDocuments BD5 ON BD5.BriefID = X.BriefID AND BD5.SectionID = X.SectionID AND BD5.sortorder = X.NextSO LEFT OUTER JOIN BriefDocuments BD7 ON BD7.BriefID = X.BriefID AND BD7.SectionID = X.SectionID AND BD7.sortorder = X.LastSO IF @Direction = 1 IF @PreviousRecID Is Not NULL BEGIN UPDATE BriefDocuments SET sortorder = @PreviousSO WHERE recordid = @CurRecID UPDATE BriefDocuments SET sortorder = @CurSO WHERE recordid = @PreviousRecID END ELSE EXEC dbo.ky_MoveBriefDocumentFromSection @RecID, @Direction IF @Direction = 2 IF @NextRecID Is Not NULL BEGIN UPDATE BriefDocuments SET sortorder = @NextSO WHERE recordid = @CurRecID UPDATE BriefDocuments SET sortorder = @CurSO WHERE recordid = @NextRecID END ELSE EXEC dbo.ky_MoveBriefDocumentFromSection @RecID, @Direction IF @Direction = 3 IF @FirstRecID Is Not NULL IF @FirstRecID <> @CurRecID BEGIN UPDATE BriefDocuments SET sortorder = @FirstSO - 1 WHERE recordid = @CurRecID EXEC dbo.ky_ReorderBriefDocSection @RecID END IF @Direction = 4 IF @LastRecID Is Not NULL IF @LastRecID <> @CurRecID BEGIN UPDATE BriefDocuments SET sortorder = @LastSO + 1 WHERE recordid = @CurRecID EXEC dbo.ky_ReorderBriefDocSection @RecID END ' END GO /****** Object: StoredProcedure [dbo].[ky_QuickGroupBG] Script Date: 10/01/2014 16:17:28 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_QuickGroupBG]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_QuickGroupBG] (@ControlID int, @GroupType varchar(1), @GroupHandler varchar(5), @GroupOutlay varchar(10), @GroupMatter varchar(17), @GroupNarrative varchar(1000), @NewGroupNarr varchar(1000)) AS /*************************************************************************** * * ky_QuickGroupBG * Rewritten 2014-09-12 to improve efficiency and prevent deadlocks * Groups Billing Guide Detail lines to a new Billing Guide Groups and makes * sure the sequence numbers of all groups and all BGDetail lines remain * contiguously numbered 1, 2, 3, etc * ***************************************************************************/ BEGIN DECLARE @GroupID uniqueidentifier DECLARE @reseqbgd TABLE ([seqno] int identity(1, 1), [before] int, [oldseqno] int, [groupseq] int, [ID] uniqueidentifier, [BGGroupID] uniqueidentifier) DECLARE @reorder TABLE ([seqno] int identity(1, 1), [ID] uniqueidentifier) EXEC [dbo].[ky_NewGroupBG] @ControlID, @NewGroupNarr SELECT @GroupID = BGG.[ID] FROM (SELECT MAX([SeqNo]) as [SeqNo] FROM [dbo].[BGGroups] BGM WHERE BGM.[BGControlID] = @ControlID) MX INNER JOIN [dbo].[BGGroups] BGG ON BGG.[BGControlID] = @ControlID AND BGG.[SeqNo] = MX.[SeqNo] UPDATE BGD SET BGD.[BGGroupID] = @GroupID FROM [dbo].[BGDetail] BGD WHERE BGD.[BGControlID] = @ControlID AND ( BGD.[Type] = IsNull(@GroupType, '''') OR IsNull(@GroupType, '''') = '''') AND ( IsNull(BGD.[FEEEARN], '''') = IsNull(@GroupHandler, '''') OR IsNull(@GroupHandler, '''') = '''') AND ( IsNull(BGD.[MATTER], '''') = IsNull(@GroupMatter, '''') OR IsNull(@GroupMatter, '''') = '''') AND ( IsNull(BGD.[OUTLAYCODE], '''') = IsNull(@GroupOutlay, '''') OR IsNull(@GroupOutlay, '''') = '''') AND ( IsNull(BGD.[Narrative], '''') = IsNull(@GroupNarrative, '''') OR IsNull(@GroupNarrative, '''') = '''') /* Remove orphaned groups */ DELETE BGG FROM [dbo].[BGGroups] BGG LEFT OUTER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] WHERE BGG.[BGControlID] = @ControlID AND BGD.[ID] IS NULL INSERT INTO @reseqbgd ([ID], [BGGroupID], [oldseqno]) SELECT BGD.[ID], BGD.[BGGroupID], BGD.[Seqno] FROM [dbo].[BGDetail] BGD WHERE BGD.[BGControlID] = 2814 ORDER BY BGD.[BGGroupID], BGD.[Type], RTRIM(IsNull(BGD.[Matter], '''')), IsNull(convert(varchar, BGD.[Date], 121), ''''), BGD.[Narrative], BGD.[OriginalID] UPDATE RSQ SET RSQ.[groupseq] = RT.[TOTAL] + 1 FROM @reseqbgd RSQ CROSS APPLY (SELECT COUNT(DISTINCT BGGroupID) AS [TOTAL] FROM @reseqbgd RSQG WHERE RSQG.[seqno] < RSQ.[seqno] AND RSQG.[BGGroupID] <> RSQ.[BGGroupID]) RT UPDATE RSQ SET RSQ.[before] = RT.[TOTAL] FROM @reseqbgd RSQ CROSS APPLY (SELECT COUNT(1) AS [TOTAL] FROM @reseqbgd RSQG WHERE RSQG.[groupseq] < RSQ.[groupseq]) RT UPDATE BGD SET BGD.[Seqno] = RSQ.[seqno] - RSQ.[before] FROM @reseqbgd RSQ INNER JOIN [dbo].[BGDetail] BGD ON BGD.[ID] = RSQ.[ID] INSERT INTO @reorder ([ID]) SELECT [ID] FROM [dbo].[BGGroups] WHERE [BGControlID] = @ControlID ORDER BY [SeqNo] UPDATE BGG SET BGG.[SeqNo] = RGB.[seqno] FROM @reorder RGB INNER JOIN [dbo].[BGGroups] BGG ON BGG.[ID] = RGB.[ID] END ' END GO /****** Object: View [dbo].[FeeBillAnalysis] Script Date: 10/01/2014 16:19:56 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FeeBillAnalysis]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[FeeBillAnalysis] AS SELECT TOP 100 PERCENT dbo.OpenClosedMatters.User3 AS Fecode, dbo.DebtorsLedger.[YEAR], dbo.DebtorsLedger.PER, SUM(dbo.DebtorsLedger.ORFEES) AS ORFees FROM dbo.OpenClosedMatters LEFT OUTER JOIN dbo.DebtorsLedger ON dbo.OpenClosedMatters.Code = dbo.DebtorsLedger.MATTER RIGHT OUTER JOIN dbo.FeeEarnerCodes ON dbo.OpenClosedMatters.Fecode = dbo.FeeEarnerCodes.CODE WHERE (dbo.DebtorsLedger.TYPE = ''I'') GROUP BY dbo.DebtorsLedger.[YEAR], dbo.DebtorsLedger.PER, dbo.FeeEarnerCodes.RETIRED, dbo.OpenClosedMatters.ClientCode, dbo.OpenClosedMatters.User3 HAVING (dbo.FeeEarnerCodes.RETIRED <> ''Y'') ORDER BY dbo.OpenClosedMatters.User3, dbo.DebtorsLedger.[YEAR], dbo.DebtorsLedger.PER ' GO /****** Object: StoredProcedure [dbo].[ky_GroupGroupNarrBG] Script Date: 10/01/2014 16:17:20 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ky_GroupGroupNarrBG]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' CREATE PROCEDURE [dbo].[ky_GroupGroupNarrBG] (@ControlID int, @GroupID varchar(38)) AS /*************************************************************************** * * ky_GroupGroupNarrBG * Rewritten 2014-09-12 to improve efficiency and prevent deadlocks * Groups Billing Guide Detail lines based on the narratives found * in the selected Group and makes * sure the sequence numbers of all groups and all BGDetail lines remain * contiguously numbered 1, 2, 3, etc * ***************************************************************************/ BEGIN DECLARE @narr varchar(255) DECLARE @type varchar(1) DECLARE @newnarr varchar(1000) DECLARE @seqno int DECLARE @narcurs TABLE ([seqno] int identity(1, 1), [Type] varchar(1), [Narrative] varchar(1000)) INSERT INTO @narcurs ([Type], [Narrative]) select DISTINCT BGD.[Type], BGD.[Narrative] from [dbo].[BGGroups] BGG INNER JOIN [dbo].[BGDetail] BGD ON BGD.[BGGroupID] = BGG.[ID] WHERE BGG.[ID] = convert(uniqueidentifier, @GroupID) WHILE EXISTS (SELECT * FROM @narcurs) BEGIN SELECT TOP 1 @seqno = NC.[seqno], @type = NC.[Type], @narr = NC.[Narrative] FROM @narcurs NC SET @newnarr = RTrim(Substring(''All '' + @narr, 1, 1000)) EXEC ky_QuickGroupBG @ControlID, @type, NULL, NULL, NULL, @narr, @newnarr DELETE @narcurs WHERE [seqno] = @seqno END END ' END GO /*REVENUE STUFF */ /****** Object: View [dbo].[CurrentStages] Script Date: 10/07/2014 11:57:22 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[CurrentStages]')) DROP VIEW [dbo].[CurrentStages] /****** Object: View [dbo].[CurrentStages] Script Date: 07/10/2014 11:49:23 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[CurrentStages] AS SELECT TOP (100) PERCENT dbo.diary.CASECODE, dbo.diary.DATE, dbo.diary.STATUS, dbo.diary.ACTIONCODE, dbo.diary.ACTIONSTATUS, dbo.diary.TxmSent, dbo.diary.TxmDate, dbo.diary.TxmSeqNo, LEFT(dbo.diary.CASECODE, 6) AS Expr1, dbo.diary.ACTIONID FROM dbo.diary with (nolock) INNER JOIN dbo.matters with (nolock) ON dbo.diary.CASECODE = dbo.matters.Code INNER JOIN dbo.ClientLink with (nolock) ON dbo.matters.ClientCode = dbo.ClientLink.ClientCode WHERE (dbo.diary.TxmSent = 0) AND (dbo.diary.STATUS = 0) AND (dbo.diary.ACTIONSTATUS = '10' OR dbo.diary.ACTIONSTATUS = '13' OR dbo.diary.ACTIONSTATUS = '16' OR dbo.diary.ACTIONSTATUS = '19' OR dbo.diary.ACTIONSTATUS = '22' OR dbo.diary.ACTIONSTATUS = '25' OR dbo.diary.ACTIONSTATUS = '28' OR dbo.diary.ACTIONSTATUS = '31' OR dbo.diary.ACTIONSTATUS = '32' OR dbo.diary.ACTIONSTATUS = '34' OR dbo.diary.ACTIONSTATUS = '37' OR dbo.diary.ACTIONSTATUS = '43' OR dbo.diary.ACTIONSTATUS = '44' OR dbo.diary.ACTIONSTATUS = '45' OR dbo.diary.ACTIONSTATUS = '46' OR dbo.diary.ACTIONSTATUS = '47' OR dbo.diary.ACTIONSTATUS = '49' OR dbo.diary.ACTIONSTATUS = '50' OR dbo.diary.ACTIONSTATUS = '52' OR dbo.diary.ACTIONSTATUS = '54' OR dbo.diary.ACTIONSTATUS = '55' OR dbo.diary.ACTIONSTATUS = '58' OR dbo.diary.ACTIONSTATUS = '59' OR dbo.diary.ACTIONSTATUS = '61' OR dbo.diary.ACTIONSTATUS = '64' OR dbo.diary.ACTIONSTATUS = '65' OR dbo.diary.ACTIONSTATUS = '66' OR dbo.diary.ACTIONSTATUS = '67' OR dbo.diary.ACTIONSTATUS = '68' OR dbo.diary.ACTIONSTATUS = '69' OR dbo.diary.ACTIONSTATUS = '71' OR dbo.diary.ACTIONSTATUS = '73' OR dbo.diary.ACTIONSTATUS = '74' OR dbo.diary.ACTIONSTATUS = '99') AND (dbo.ClientLink.ClientType = 'R') ORDER BY dbo.diary.CASECODE, dbo.diary.DATE GO /****** Object: View [dbo].[RevenueOutcomes] Script Date: 10/07/2014 11:57:22 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RevenueOutcomes]')) DROP VIEW [dbo].[RevenueOutcomes] /****** Object: View [dbo].[RevenueOutcomes] Script Date: 07/10/2014 11:49:36 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[RevenueOutcomes] AS SELECT TOP (100) PERCENT dbo.diary.CASECODE, dbo.diary.DATE, dbo.diary.STATUS, dbo.diary.ACTIONCODE, dbo.diary.ACTIONSTATUS, dbo.diary.TxmSent, dbo.diary.TxmDate, dbo.diary.TxmSeqNo, dbo.diary.ACTIONID, REPLACE(REPLACE(CONVERT(VARCHAR(MAX), dbo.diary.TEXT1), CHAR(10), ' '), CHAR(13), ' ') AS Text1 FROM dbo.matters with (nolock) INNER JOIN dbo.ClientLink with (nolock) ON dbo.matters.ClientCode = dbo.ClientLink.ClientCode INNER JOIN dbo.diary with (nolock) ON dbo.matters.Code = dbo.diary.CASECODE WHERE (dbo.diary.TxmSent = 'false') AND (dbo.diary.STATUS = 1) AND (dbo.diary.ACTIONCODE = 'O01' OR dbo.diary.ACTIONCODE = 'O02' OR dbo.diary.ACTIONCODE = 'O03' OR dbo.diary.ACTIONCODE = 'O04' OR dbo.diary.ACTIONCODE = 'O05' OR dbo.diary.ACTIONCODE = 'O06' OR dbo.diary.ACTIONCODE = 'O07' OR dbo.diary.ACTIONCODE = 'O08' OR dbo.diary.ACTIONCODE = 'O19' OR dbo.diary.ACTIONCODE = 'O20' OR dbo.diary.ACTIONCODE = 'O21' OR dbo.diary.ACTIONCODE = 'O23' OR dbo.diary.ACTIONCODE = 'O24' OR dbo.diary.ACTIONCODE = 'O25' OR dbo.diary.ACTIONCODE = 'O28' OR dbo.diary.ACTIONCODE = 'O29' OR dbo.diary.ACTIONCODE = 'O34') AND (dbo.diary.ACTIONSTATUS = 'NA') AND (dbo.ClientLink.ClientType = 'R') ORDER BY dbo.diary.CASECODE, dbo.diary.DATE GO /****** Object: View [dbo].[RevenueStages] Script Date: 10/07/2014 11:57:22 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RevenueStages]')) DROP VIEW [dbo].[RevenueStages] /****** Object: View [dbo].[RevenueStages] Script Date: 07/10/2014 11:50:02 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[RevenueStages] AS SELECT TOP (100) PERCENT dbo.diary.CASECODE, dbo.diary.DATE, dbo.diary.STATUS, dbo.diary.ACTIONCODE, dbo.diary.ACTIONSTATUS, dbo.diary.TxmSent, dbo.diary.TxmDate, dbo.diary.TxmSeqNo, dbo.diary.ACTIONID, REPLACE(REPLACE(CONVERT(VARCHAR(MAX), dbo.diary.TEXT1), CHAR(10), ' '), CHAR(13), ' ') AS Text1 FROM dbo.diary with (nolock) INNER JOIN dbo.matters with (nolock)ON dbo.diary.CASECODE = dbo.matters.Code INNER JOIN dbo.ClientLink with (nolock) ON dbo.matters.ClientCode = dbo.ClientLink.ClientCode WHERE (dbo.diary.TxmSent = 'false') AND (dbo.diary.STATUS = 1) AND (dbo.diary.ACTIONSTATUS = '10' OR dbo.diary.ACTIONSTATUS = '13' OR dbo.diary.ACTIONSTATUS = '16' OR dbo.diary.ACTIONSTATUS = '19' OR dbo.diary.ACTIONSTATUS = '22' OR dbo.diary.ACTIONSTATUS = '25' OR dbo.diary.ACTIONSTATUS = '28' OR dbo.diary.ACTIONSTATUS = '31' OR dbo.diary.ACTIONSTATUS = '32' OR dbo.diary.ACTIONSTATUS = '34' OR dbo.diary.ACTIONSTATUS = '37' OR dbo.diary.ACTIONSTATUS = '43' OR dbo.diary.ACTIONSTATUS = '44' OR dbo.diary.ACTIONSTATUS = '45' OR dbo.diary.ACTIONSTATUS = '46' OR dbo.diary.ACTIONSTATUS = '47' OR dbo.diary.ACTIONSTATUS = '49' OR dbo.diary.ACTIONSTATUS = '50' OR dbo.diary.ACTIONSTATUS = '52' OR dbo.diary.ACTIONSTATUS = '54' OR dbo.diary.ACTIONSTATUS = '55' OR dbo.diary.ACTIONSTATUS = '58' OR dbo.diary.ACTIONSTATUS = '59' OR dbo.diary.ACTIONSTATUS = '61' OR dbo.diary.ACTIONSTATUS = '64' OR dbo.diary.ACTIONSTATUS = '65' OR dbo.diary.ACTIONSTATUS = '66' OR dbo.diary.ACTIONSTATUS = '67' OR dbo.diary.ACTIONSTATUS = '68' OR dbo.diary.ACTIONSTATUS = '69' OR dbo.diary.ACTIONSTATUS = '71' OR dbo.diary.ACTIONSTATUS = '73' OR dbo.diary.ACTIONSTATUS = '74' OR dbo.diary.ACTIONSTATUS = '99') AND (dbo.ClientLink.ClientType = 'R') ORDER BY dbo.diary.CASECODE, dbo.diary.DATE GO /****** Object: View [dbo].[RevenueStagesGone] Script Date: 10/07/2014 11:57:22 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RevenueStagesGone]')) DROP VIEW [dbo].[RevenueStagesGone] /****** Object: View [dbo].[RevenueStagesGone] Script Date: 07/10/2014 11:50:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[RevenueStagesGone] AS SELECT TOP (100) PERCENT dbo.diary.CASECODE, dbo.diary.DATE, dbo.diary.STATUS, dbo.diary.ACTIONCODE, dbo.diary.ACTIONSTATUS, dbo.diary.TxmSent, dbo.diary.TxmDate, dbo.diary.TxmSeqNo, dbo.diary.ACTIONID FROM dbo.diary with (nolock) INNER JOIN dbo.matters with (nolock) ON dbo.diary.CASECODE = dbo.matters.Code INNER JOIN dbo.ClientLink with (nolock) ON dbo.matters.ClientCode = dbo.ClientLink.ClientCode WHERE (dbo.diary.TxmSent = 'true') AND (dbo.diary.STATUS = 1) AND (dbo.diary.ACTIONSTATUS = '10' OR dbo.diary.ACTIONSTATUS = '13' OR dbo.diary.ACTIONSTATUS = '16' OR dbo.diary.ACTIONSTATUS = '19' OR dbo.diary.ACTIONSTATUS = '22' OR dbo.diary.ACTIONSTATUS = '25' OR dbo.diary.ACTIONSTATUS = '28' OR dbo.diary.ACTIONSTATUS = '31' OR dbo.diary.ACTIONSTATUS = '32' OR dbo.diary.ACTIONSTATUS = '34' OR dbo.diary.ACTIONSTATUS = '37' OR dbo.diary.ACTIONSTATUS = '43' OR dbo.diary.ACTIONSTATUS = '44' OR dbo.diary.ACTIONSTATUS = '45' OR dbo.diary.ACTIONSTATUS = '46' OR dbo.diary.ACTIONSTATUS = '47' OR dbo.diary.ACTIONSTATUS = '49' OR dbo.diary.ACTIONSTATUS = '50' OR dbo.diary.ACTIONSTATUS = '52' OR dbo.diary.ACTIONSTATUS = '54' OR dbo.diary.ACTIONSTATUS = '55' OR dbo.diary.ACTIONSTATUS = '58' OR dbo.diary.ACTIONSTATUS = '59' OR dbo.diary.ACTIONSTATUS = '61' OR dbo.diary.ACTIONSTATUS = '64' OR dbo.diary.ACTIONSTATUS = '65' OR dbo.diary.ACTIONSTATUS = '66' OR dbo.diary.ACTIONSTATUS = '67' OR dbo.diary.ACTIONSTATUS = '68' OR dbo.diary.ACTIONSTATUS = '69' OR dbo.diary.ACTIONSTATUS = '71' OR dbo.diary.ACTIONSTATUS = '73' OR dbo.diary.ACTIONSTATUS = '74' OR dbo.diary.ACTIONSTATUS = '99') AND (dbo.diary.TxmSeqNo > 1) AND (dbo.ClientLink.ClientType = 'R') ORDER BY dbo.diary.CASECODE, dbo.diary.DATE GO /****** Object: View [dbo].[RevenueOutcomesSent] Script Date: 10/07/2014 12:50:09 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RevenueOutcomesSent]')) DROP VIEW [dbo].[RevenueOutcomesSent] /****** Object: View [dbo].[RevenueOutcomesSent] Script Date: 10/07/2014 12:52:11 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[RevenueOutcomesSent] AS SELECT TOP (100) PERCENT dbo.diary.CASECODE, dbo.diary.DATE, dbo.diary.STATUS, dbo.diary.ACTIONCODE, dbo.diary.ACTIONSTATUS, dbo.diary.TxmSent, dbo.diary.TxmDate, dbo.diary.TxmSeqNo, dbo.diary.ACTIONID FROM dbo.diary with (nolock) INNER JOIN dbo.matters with (nolock) ON dbo.diary.CASECODE = dbo.matters.Code INNER JOIN dbo.ClientLink with (nolock) ON dbo.matters.ClientCode = dbo.ClientLink.ClientCode WHERE (dbo.diary.TxmSent = 'true') AND (dbo.diary.STATUS = 1) AND (dbo.diary.ACTIONSTATUS = '10' OR dbo.diary.ACTIONSTATUS = '13' OR dbo.diary.ACTIONSTATUS = '16' OR dbo.diary.ACTIONSTATUS = '19' OR dbo.diary.ACTIONSTATUS = '22' OR dbo.diary.ACTIONSTATUS = '25' OR dbo.diary.ACTIONSTATUS = '28' OR dbo.diary.ACTIONSTATUS = '31' OR dbo.diary.ACTIONSTATUS = '32' OR dbo.diary.ACTIONSTATUS = '34' OR dbo.diary.ACTIONSTATUS = '37' OR dbo.diary.ACTIONSTATUS = '43' OR dbo.diary.ACTIONSTATUS = '44' OR dbo.diary.ACTIONSTATUS = '45' OR dbo.diary.ACTIONSTATUS = '46' OR dbo.diary.ACTIONSTATUS = '47' OR dbo.diary.ACTIONSTATUS = '49' OR dbo.diary.ACTIONSTATUS = '50' OR dbo.diary.ACTIONSTATUS = '52' OR dbo.diary.ACTIONSTATUS = '54' OR dbo.diary.ACTIONSTATUS = '55' OR dbo.diary.ACTIONSTATUS = '58' OR dbo.diary.ACTIONSTATUS = '59' OR dbo.diary.ACTIONSTATUS = '61' OR dbo.diary.ACTIONSTATUS = '64' OR dbo.diary.ACTIONSTATUS = '65' OR dbo.diary.ACTIONSTATUS = '66' OR dbo.diary.ACTIONSTATUS = '67' OR dbo.diary.ACTIONSTATUS = '68' OR dbo.diary.ACTIONSTATUS = '69' OR dbo.diary.ACTIONSTATUS = '71' OR dbo.diary.ACTIONSTATUS = '73' OR dbo.diary.ACTIONSTATUS = '74' OR dbo.diary.ACTIONSTATUS = '99') AND (dbo.diary.CASECODE = '') AND (dbo.diary.TxmSeqNo > 1) AND (dbo.ClientLink.ClientType = 'R') ORDER BY dbo.diary.CASECODE, dbo.diary.DATE GO /****** Object: View [dbo].[RevenueStatementsAandB] Script Date: 10/07/2014 13:06:24 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RevenueStatementsAandB]')) DROP VIEW [dbo].[RevenueStatementsAandB] /****** Object: View [dbo].[RevenueStatementsAandB] Script Date: 10/07/2014 13:06:35 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[RevenueStatementsAandB] AS SELECT dbo.matters.ClientCode, ISNULL(dbo.matters.User3, '') AS User3, dbo.DebtCostingLedger.MATTERCODE AS CaseNo, (SELECT TOP (1) TEXT1 FROM dbo.CaseUDFAnswers WITH (nolock) WHERE (CASECODE = dbo.matters.Code) AND (UDFNAME = 'Courttype')) AS Court, ISNULL ((SELECT TOP (1) dbo.CaseAssociatesNames.NAME FROM dbo.CaseContacts WITH (nolock) INNER JOIN dbo.CaseAssociatesNames WITH (nolock) ON dbo.CaseContacts.NAMECODE = dbo.CaseAssociatesNames.CODE WHERE (dbo.CaseContacts.CONNUM = 1) AND (dbo.CaseContacts.CONTYPE = 'debtor') AND (dbo.CaseContacts.CASECODE = dbo.matters.Code)), '') AS TaxDebtor, ISNULL(dbo.DebtBreakDown.TaxHeadRegistration, '') AS Reg, dbo.TimeEntry.StageCode, (CASE (ISNUMERIC(TimeEntry.Stagecode)) WHEN 1 THEN (CASE WHEN (TimeEntry.Stagecode <= 13) THEN 'D' WHEN (TimeEntry.Stagecode > 32) THEN 'E' ELSE 'S' END) ELSE RIGHT(TimeEntry.Stagecode, 1) END) AS StatusCodesDesc, ISNULL(dbo.StatusCodes.DESCRIPTION, '') AS StatusCodesDescription, dbo.DebtCostingLedger.TYPE AS Paymenttype, (SELECT TOP (1) DateValue FROM dbo.CaseUDFAnswers AS CaseUDFAnswers_1 WITH (nolock) WHERE (CASECODE = dbo.matters.Code) AND (UDFNAME LIKE 'DateReferral')) AS ReferralDate, ISNULL(dbo.DebtCostingLedger.DATE, '') AS DateofPayment, dbo.DebtCostingLedger.DATE, dbo.DebtBreakDown.MatterCode AS FileRef, ISNULL(dbo.DebtBreakDown.TaxHead, '') AS TaxHead, dbo.DebtBreakDown.EndPeriod AS PeriodEnded, CASE ISNULL(dbo.DebtCostingLedger.PREMIUMSTATUS, dbo.DebtCostingLedger.INTERESTSTATUS) WHEN 'P' THEN 'P' ELSE 'F' END AS [F/P], dbo.DebtCostingLedger.PREMIUMSTATUS, dbo.DebtCostingLedger.INTERESTSTATUS, dbo.DebtCostingLedger.TYPE, dbo.TimeEntry.CHARGE, ISNULL(dbo.DebtAllocations.TaxAmount, 0) AS TaxAmount, ISNULL(dbo.DebtAllocations.InterestAmount, 0) AS Interest, dbo.DebtCostingLedger.PREMIUMPAID + dbo.DebtCostingLedger.INTERESTPAID AS TaxInterest, ISNULL(dbo.DebtCostingLedger.COSTSPAID, 0) AS Costs, dbo.DebtBreakDown.Sequence, dbo.DebtCostingLedger.POSTINGREF, dbo.DebtBreakDown.RecordID, ISNULL(dbo.DebtCostingLedger.Value, 0) AS value, dbo.TimeEntry.CHARGE * ISNULL((dbo.DebtAllocations.TaxAmount + dbo.DebtAllocations.InterestAmount) / NULLIF (dbo.DebtCostingLedger.PREMIUMPAID + dbo.DebtCostingLedger.INTERESTPAID, 0), 1) AS Commission, ISNULL(dbo.TimeEntry.CHARGE * ((dbo.DebtAllocations.TaxAmount + dbo.DebtAllocations.InterestAmount) / NULLIF (dbo.DebtCostingLedger.PREMIUMPAID + dbo.DebtCostingLedger.INTERESTPAID, 0)) / NULLIF (dbo.DebtAllocations.TaxAmount + dbo.DebtAllocations.InterestAmount, 0) * 100, 0) AS per, (CASE DebtCostingLedger.TYPE WHEN 'Receipt' THEN 'A' ELSE 'B' END) AS ReportType, dbo.StatusCodes.DESCRIPTION, dbo.matters.YourRef AS PPSN, ISNULL(dbo.DebtBreakDown.EndPeriod, '') AS EndPeriod, (SELECT TOP (1) CheckCharacter FROM dbo.MatterCheckChars WITH (nolock) WHERE (MatterCode = dbo.matters.Code)) AS CheckCharacter, (SELECT TOP (1) AddCheckCharacter FROM dbo.MatterCheckChars AS MatterCheckChars_1 WITH (nolock) WHERE (MatterCode = dbo.matters.Code)) AS AddCheckCharacter, dbo.matters.Code, dbo.matters.User2 AS KellyRef FROM dbo.matters WITH (nolock) INNER JOIN dbo.DebtCostingLedger WITH (nolock) ON dbo.matters.Code = dbo.DebtCostingLedger.MATTERCODE INNER JOIN dbo.ClientLink ON dbo.matters.ClientCode = dbo.ClientLink.ClientCode LEFT OUTER JOIN dbo.DebtAllocations WITH (nolock) LEFT OUTER JOIN dbo.DebtBreakDown WITH (nolock) ON dbo.DebtAllocations.BreakdownId = dbo.DebtBreakDown.RecordID ON dbo.DebtCostingLedger.POSTINGREF = dbo.DebtAllocations.PaymentId LEFT OUTER JOIN dbo.TimeEntry WITH (nolock) ON dbo.DebtCostingLedger.POSTINGREF = dbo.TimeEntry.DOCKET LEFT OUTER JOIN dbo.StatusCodes WITH (nolock) ON dbo.TimeEntry.StageCode = dbo.StatusCodes.CODE WHERE (dbo.DebtCostingLedger.TYPE = 'Receipt' OR dbo.DebtCostingLedger.TYPE = 'Direct Payment' OR dbo.DebtCostingLedger.TYPE = 'Credit') AND (dbo.ClientLink.ClientType = 'R') GO EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00] Begin DesignProperties = Begin PaneConfigurations = Begin PaneConfiguration = 0 NumPanes = 4 Configuration = "(H (1[46] 4[17] 2[20] 3) )" End Begin PaneConfiguration = 1 NumPanes = 3 Configuration = "(H (1 [50] 4 [25] 3))" End Begin PaneConfiguration = 2 NumPanes = 3 Configuration = "(H (1 [50] 2 [25] 3))" End Begin PaneConfiguration = 3 NumPanes = 3 Configuration = "(H (4 [30] 2 [40] 3))" End Begin PaneConfiguration = 4 NumPanes = 2 Configuration = "(H (1 [56] 3))" End Begin PaneConfiguration = 5 NumPanes = 2 Configuration = "(H (2 [66] 3))" End Begin PaneConfiguration = 6 NumPanes = 2 Configuration = "(H (4 [50] 3))" End Begin PaneConfiguration = 7 NumPanes = 1 Configuration = "(V (3))" End Begin PaneConfiguration = 8 NumPanes = 3 Configuration = "(H (1[56] 4[18] 2) )" End Begin PaneConfiguration = 9 NumPanes = 2 Configuration = "(H (1 [75] 4))" End Begin PaneConfiguration = 10 NumPanes = 2 Configuration = "(H (1[66] 2) )" End Begin PaneConfiguration = 11 NumPanes = 2 Configuration = "(H (4 [60] 2))" End Begin PaneConfiguration = 12 NumPanes = 1 Configuration = "(H (1) )" End Begin PaneConfiguration = 13 NumPanes = 1 Configuration = "(V (4))" End Begin PaneConfiguration = 14 NumPanes = 1 Configuration = "(V (2))" End ActivePaneConfig = 0 End Begin DiagramPane = Begin Origin = Top = 0 Left = 0 End Begin Tables = Begin Table = "matters" Begin Extent = Top = 46 Left = 233 Bottom = 154 Right = 411 End DisplayFlags = 280 TopColumn = 0 End Begin Table = "DebtCostingLedger" Begin Extent = Top = 6 Left = 38 Bottom = 114 Right = 206 End DisplayFlags = 280 TopColumn = 0 End Begin Table = "DebtAllocations" Begin Extent = Top = 6 Left = 460 Bottom = 114 Right = 616 End DisplayFlags = 280 TopColumn = 0 End Begin Table = "DebtBreakDown" Begin Extent = Top = 7 Left = 981 Bottom = 115 Right = 1179 End DisplayFlags = 280 TopColumn = 0 End Begin Table = "TimeEntry" Begin Extent = Top = 118 Left = 631 Bottom = 308 Right = 791 End DisplayFlags = 280 TopColumn = 0 End Begin Table = "StatusCodes" Begin Extent = Top = 120 Left = 1190 Bottom = 198 Right = 1341 End DisplayFlags = 280 TopColumn = 0 End Begin Table = "ClientLink" Begin Extent = Top = 194 Left = 29 Bottom = 287 Right = 180 En' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'RevenueStatementsAandB' GO EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane2', @value=N'd DisplayFlags = 280 TopColumn = 0 End End End Begin SQLPane = End Begin DataPane = Begin ParameterDefaults = "" End Begin ColumnWidths = 9 Width = 284 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 Width = 1500 End End Begin CriteriaPane = Begin ColumnWidths = 11 Column = 1440 Alias = 900 Table = 1170 Output = 720 Append = 1400 NewValue = 1170 SortType = 1350 SortOrder = 1410 GroupBy = 1350 Filter = 6465 Or = 1350 Or = 1350 Or = 1350 Or = 1350 End End End ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'RevenueStatementsAandB' GO EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=2 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'RevenueStatementsAandB' /* Change OpenClosedMatters and MatterLedger Views based on the current state of [dbo].[closed] */ IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'OpenClosedMatters' AND SO.[type] = 'V') BEGIN DROP VIEW [dbo].[OpenClosedMatters] END GO -- Function is obsolete. Delete here, do not re-create. IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'ky_NETOpenClosedMatters' AND SO.[type] = 'TF') BEGIN DROP FUNCTION [dbo].[ky_NETOpenClosedMatters] END GO DECLARE @COMMAND VARCHAR(MAX) IF EXISTS (SELECT * FROM [dbo].[closed]) BEGIN -- there are still "closed" matters in [dbo].[closed]. Use the old views. SET @COMMAND = 'CREATE VIEW [dbo].[OpenClosedMatters] AS SELECT TOP (100) PERCENT LTRIM(ISNULL(dbo.matters.Code, '''') + ISNULL(dbo.Closed.CODE, '''')) AS Code, LTRIM(ISNULL(dbo.matters.ClientCode, '''') + ISNULL(dbo.Closed.CLIENTCODE, '''')) AS ClientCode, (SELECT TOP 1 name FROM contacts where CODE = (LTRIM(ISNULL(dbo.matters.ClientCode,'''')+ISNULL(dbo.Closed.CLIENTCODE,''''))) ORDER BY code ) AS ClientName, LTRIM(ISNULL(dbo.matters.Matter, '''') + ISNULL(dbo.Closed.MATTER, '''')) AS Matter, LTRIM(ISNULL(dbo.matters.Description, '''') + ISNULL(dbo.Closed.DESCRIPTION, '''')) AS Description, LTRIM(ISNULL(dbo.matters.Dept, '''') + ISNULL(dbo.Closed.DEPT, '''')) AS Dept, LTRIM(ISNULL(dbo.matters.FECode, '''') + ISNULL(dbo.Closed.FECODE, '''')) AS Fecode, LTRIM(ISNULL(dbo.matters.Started, '''') + ISNULL(dbo.Closed.STARTED,'''')) AS Started, ISNULL(dbo.matters.Started, '''') + ISNULL(dbo.Closed.STARTED ,'''') AS StartDate, LTRIM(ISNULL(dbo.matters.WType, '''') + ISNULL(dbo.Closed.WTYPE, '''')) AS Wtype, LTRIM(ISNULL(dbo.matters.User1, '''') + ISNULL(dbo.Closed.USER1, '''')) AS User1, LTRIM(ISNULL(dbo.matters.User2, '''') + ISNULL(dbo.Closed.USER2, '''')) AS User2, LTRIM(ISNULL(dbo.matters.User3, '''') + ISNULL(dbo.Closed.USER3, '''')) AS User3, LTRIM(ISNULL(dbo.matters.OldRef, '''') + ISNULL(dbo.Closed.OLDREF, '''')) AS OldRef, LTRIM(ISNULL(dbo.matters.FileNum, '''') + ISNULL(dbo.Closed.FILENUM, '''')) AS FileNum, dbo.matters.Code AS OpenCode, dbo.Closed.CODE AS ClosedCode, (CASE WHEN dbo.matters.Code IS NULL THEN ''Closed'' ELSE (CASE WHEN dbo.closed.Code IS NULL THEN ''Open'' ELSE ''Both'' END)END) As OpenClosed FROM dbo.matters FULL OUTER JOIN dbo.Closed ON dbo.matters.Code = dbo.Closed.CODE ORDER BY LTRIM(ISNULL(dbo.matters.Code, '''') + ISNULL(dbo.Closed.CODE, ''''))' EXEC (@COMMAND) END ELSE BEGIN -- no more "closed" matters in [dbo].[closed]. Use the new views! SET @COMMAND = ' CREATE VIEW [dbo].[OpenClosedMatters] WITH SCHEMABINDING AS SELECT RTRIM(ISNULL(MAT.[Code], '''')) AS [Code] , RTRIM(ISNULL(MAT.[ClientCode], '''')) AS [ClientCode], RTRIM(ISNULL(CON.[Name], '''')) AS [ClientName], RTRIM(ISNULL(MAT.[matter], '''')) AS [Matter], RTRIM(ISNULL(MAT.[Description], '''')) AS [Description], RTRIM(ISNULL(MAT.[Dept], '''')) AS [Dept], RTRIM(ISNULL(MAT.[FECode], '''')) AS [FECode], CASE SUBSTRING(CONVERT(VARCHAR, MAT.[Started], 103), 4, 2) WHEN ''01'' THEN ''Jan'' --Necessary to create an "unambiguous" conversion, WHEN ''02'' THEN ''Feb'' --so that we can create indexes over this view WHEN ''03'' THEN ''Mar'' WHEN ''04'' THEN ''Apr'' WHEN ''05'' THEN ''May'' WHEN ''06'' THEN ''Jun'' WHEN ''07'' THEN ''Jul'' WHEN ''08'' THEN ''Aug'' WHEN ''09'' THEN ''Sep'' WHEN ''10'' THEN ''Oct'' WHEN ''11'' THEN ''Nov'' WHEN ''12'' THEN ''Dec'' END + '' '' + CONVERT(VARCHAR(2), CONVERT(INT, SUBSTRING(CONVERT(VARCHAR, MAT.[Started], 103), 1, 2))) + '' '' + SUBSTRING(CONVERT(VARCHAR, MAT.[Started], 112), 1, 4) + ''12:00AM'' AS [Started], MAT.[Started] AS [StartDate], RTRIM(ISNULL(MAT.[WType], '''')) AS [WType], RTRIM(ISNULL(MAT.[User1], '''')) AS [User1], RTRIM(ISNULL(MAT.[User2], '''')) AS [User2], RTRIM(ISNULL(MAT.[User3], '''')) AS [User3], RTRIM(ISNULL(MAT.[OldRef], '''')) AS [OldRef], ISNULL(MAT.[FileNum], 0) AS [FileNum], CASE WHEN MAT.[Closed] <> ''Y'' THEN RTRIM(ISNULL(MAT.[Code], '''')) ELSE '''' END AS [OpenCode], CASE WHEN MAT.[Closed] = ''Y'' THEN RTRIM(ISNULL(MAT.[Code], '''')) ELSE '''' END AS [ClosedCode], CASE WHEN MAT.[Closed] <> ''Y'' THEN ''Open'' ELSE ''Closed'' END AS [OpenClosed] FROM [dbo].[matters] MAT INNER JOIN [dbo].[Contacts] CON ON CON.[Code] = MAT.[CLIENTCODE]' EXEC (@COMMAND) SET @COMMAND = ' CREATE UNIQUE CLUSTERED INDEX [IX_Code] ON [dbo].[OpenClosedMatters] ([Code])' EXEC (@COMMAND) SET @COMMAND = ' CREATE UNIQUE NONCLUSTERED INDEX [IX_Client] ON [dbo].[OpenClosedMatters] ([ClientCode], [Code])' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'OpenClosedMatterLedger' AND SO.[type] = 'V') BEGIN DROP VIEW [dbo].[OpenClosedMatterLedger] END GO IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'OpenClosedMattersLedger' AND SO.[type] = 'V') BEGIN DROP VIEW [dbo].[OpenClosedMattersLedger] END GO -- Function is obsolete. Delete, don't recreate IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'ky_NETOpenClosedMatterLedger' AND SO.[type] = 'TF') BEGIN DROP FUNCTION [dbo].[ky_NETOpenClosedMatterLedger] END GO DECLARE @COMMAND VARCHAR(MAX) IF EXISTS (SELECT * FROM [dbo].[closed]) BEGIN SET @COMMAND = 'CREATE VIEW [dbo].[OpenClosedMatterLedger] AS SELECT ISNULL(dbo.MatterLedger.MATTER, dbo.ClosedMatterLedger.MATTER) AS Matter, ISNULL(dbo.MatterLedger.BATCHNO, dbo.ClosedMatterLedger.BATCHNO) AS BatchNo, ISNULL(dbo.MatterLedger.PREF, dbo.ClosedMatterLedger.PREF) AS Pref, ISNULL(dbo.MatterLedger.[DATE], dbo.ClosedMatterLedger.[DATE]) AS TransDate, ISNULL(dbo.MatterLedger.REF, dbo.ClosedMatterLedger.REF) AS Ref, ISNULL(dbo.MatterLedger.NARR, dbo.ClosedMatterLedger.NARR) AS Narr, ISNULL(dbo.MatterLedger.VALUED, dbo.ClosedMatterLedger.VALUED) AS ValueD, ISNULL(dbo.MatterLedger.VALUEO, dbo.ClosedMatterLedger.VALUEO) AS ValueO, ISNULL(dbo.MatterLedger.VALUEC, dbo.ClosedMatterLedger.VALUEC) AS ValueC, ISNULL(dbo.MatterLedger.FEE, dbo.ClosedMatterLedger.FEE) AS Fee, ISNULL(dbo.MatterLedger.PER, dbo.ClosedMatterLedger.PER) AS Per, ISNULL(dbo.MatterLedger.[YEAR], dbo.ClosedMatterLedger.[YEAR]) AS TranYear, ISNULL(dbo.MatterLedger.ENTRYDATE, dbo.ClosedMatterLedger.ENTRYDATE) AS EntryDate, ISNULL(dbo.MatterLedger.CLIENT, dbo.ClosedMatterLedger.CLIENT) AS Client, ISNULL(dbo.MatterLedger.VALUECC, dbo.ClosedMatterLedger.VALUECC) AS ValueCC, ISNULL(dbo.MatterLedger.VALUECD, dbo.ClosedMatterLedger.VALUECD) AS ValueCD, ISNULL(dbo.MatterLedger.DEPOSITTYPE, dbo.ClosedMatterLedger.DEPOSITTYPE) AS Deposittype, ISNULL(dbo.MatterLedger.LREF, dbo.ClosedMatterLedger.LREF) AS lref FROM dbo.MatterLedger FULL OUTER JOIN dbo.ClosedMatterLedger ON dbo.MatterLedger.MATTER = dbo.ClosedMatterLedger.MATTER AND dbo.MatterLedger.LREF = dbo.ClosedMatterLedger.LREF' EXEC (@COMMAND) SET @COMMAND = 'CREATE VIEW [dbo].[OpenClosedMattersLedger] AS SELECT ISNULL(dbo.MatterLedger.MATTER, dbo.ClosedMatterLedger.MATTER) AS Matter, ISNULL(dbo.MatterLedger.BATCHNO, dbo.ClosedMatterLedger.BATCHNO) AS BatchNo, ISNULL(dbo.MatterLedger.PREF, dbo.ClosedMatterLedger.PREF) AS Pref, ISNULL(dbo.MatterLedger.[DATE], dbo.ClosedMatterLedger.[DATE]) AS TransDate, ISNULL(dbo.MatterLedger.REF, dbo.ClosedMatterLedger.REF) AS Ref, ISNULL(dbo.MatterLedger.NARR, dbo.ClosedMatterLedger.NARR) AS Narr, ISNULL(dbo.MatterLedger.VALUED, dbo.ClosedMatterLedger.VALUED) AS ValueD, ISNULL(dbo.MatterLedger.VALUEO, dbo.ClosedMatterLedger.VALUEO) AS ValueO, ISNULL(dbo.MatterLedger.VALUEC, dbo.ClosedMatterLedger.VALUEC) AS ValueC, ISNULL(dbo.MatterLedger.FEE, dbo.ClosedMatterLedger.FEE) AS Fee, ISNULL(dbo.MatterLedger.PER, dbo.ClosedMatterLedger.PER) AS Per, ISNULL(dbo.MatterLedger.[YEAR], dbo.ClosedMatterLedger.[YEAR]) AS TranYear, ISNULL(dbo.MatterLedger.ENTRYDATE, dbo.ClosedMatterLedger.ENTRYDATE) AS EntryDate, ISNULL(dbo.MatterLedger.CLIENT, dbo.ClosedMatterLedger.CLIENT) AS Client, ISNULL(dbo.MatterLedger.VALUECC, dbo.ClosedMatterLedger.VALUECC) AS ValueCC, ISNULL(dbo.MatterLedger.VALUECD, dbo.ClosedMatterLedger.VALUECD) AS ValueCD, ISNULL(dbo.MatterLedger.DEPOSITTYPE, dbo.ClosedMatterLedger.DEPOSITTYPE) AS Deposittype, ISNULL(dbo.MatterLedger.LREF, dbo.ClosedMatterLedger.LREF) AS lref FROM dbo.MatterLedger FULL OUTER JOIN dbo.ClosedMatterLedger ON dbo.MatterLedger.MATTER = dbo.ClosedMatterLedger.MATTER AND dbo.MatterLedger.LREF = dbo.ClosedMatterLedger.LREF' EXEC (@COMMAND) END ELSE BEGIN SET @COMMAND = 'CREATE VIEW [dbo].[OpenClosedMatterLedger] WITH SCHEMABINDING AS SELECT RTRIM(ISNULL(MAL.[MATTER], '''')) AS [Matter], ISNULL(MAL.[Batchno], 0) AS [BatchNo], ISNULL(MAL.[PREF], 0) AS [Pref], MAL.[DATE] AS [TransDate], RTRIM(ISNULL(MAL.[REF], '''')) AS [Ref], RTRIM(ISNULL(MAL.[NARR], '''')) AS [Narr], ISNULL(MAL.[ValueD], 0) AS [ValueD], ISNULL(MAL.[ValueO], 0) AS [ValueO], ISNULL(MAL.[ValueC], 0) AS [ValueC], RTRIM(ISNULL(MAL.[FEE], '''')) AS [Fee], ISNULL(MAL.[PER], 0) AS [Per], ISNULL(MAL.[YEAR], 0) AS [TranYear], MAL.[ENTRYDATE] AS [EntryDate], RTRIM(ISNULL(MAL.[CLIENT], '''')) AS [Client], ISNULL(MAL.[VALUECC], 0) AS [ValueCC], ISNULL(MAL.[VALUECD], 0) AS [ValueCD], RTRIM(ISNULL(MAL.[deposittype], '''')) AS [Deposittype], ISNULL(MAL.[LREF], 0) AS [lref] FROM [dbo].[MatterLedger] MAL' EXEC (@COMMAND) SET @COMMAND = 'CREATE UNIQUE CLUSTERED INDEX [IX_LREF] ON [dbo].[OpenClosedMatterLedger] ([Matter], [lref])' EXEC (@COMMAND) SET @COMMAND = 'CREATE VIEW [dbo].[OpenClosedMattersLedger] WITH SCHEMABINDING AS SELECT RTRIM(ISNULL(MAL.[MATTER], '''')) AS [Matter], ISNULL(MAL.[Batchno], 0) AS [BatchNo], ISNULL(MAL.[PREF], 0) AS [Pref], MAL.[DATE] AS [TransDate], RTRIM(ISNULL(MAL.[REF], '''')) AS [Ref], RTRIM(ISNULL(MAL.[NARR], '''')) AS [Narr], ISNULL(MAL.[ValueD], 0) AS [ValueD], ISNULL(MAL.[ValueO], 0) AS [ValueO], ISNULL(MAL.[ValueC], 0) AS [ValueC], RTRIM(ISNULL(MAL.[FEE], '''')) AS [Fee], ISNULL(MAL.[PER], 0) AS [Per], ISNULL(MAL.[YEAR], 0) AS [TranYear], MAL.[ENTRYDATE] AS [EntryDate], RTRIM(ISNULL(MAL.[CLIENT], '''')) AS [Client], ISNULL(MAL.[VALUECC], 0) AS [ValueCC], ISNULL(MAL.[VALUECD], 0) AS [ValueCD], RTRIM(ISNULL(MAL.[deposittype], '''')) AS [Deposittype], ISNULL(MAL.[LREF], 0) AS [lref] FROM [dbo].[MatterLedger] MAL' EXEC (@COMMAND) SET @COMMAND = 'CREATE UNIQUE CLUSTERED INDEX [IX_LREF] ON [dbo].[OpenClosedMattersLedger] ([Matter], [lref])' EXEC (@COMMAND) END GO /************************************************************************ * * Additional views Necessary to run All reports Which were added for B82 * View are * BillsProfitability * Case Activity * FeMatterWIP * HandlersStats * LastMatterDates * MatterBalsByMatter * MatterBalsByYearPeriod * MatterBalsByClient * ReportInvoices * FeesReceivedBreakDown * * Installed by Catherine Ievers - 12.11.2014 * * *************************************************************************/ /****** Object: View [dbo].[BillsProfitability] Script Date: 10/08/2014 09:20:48 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[BillsProfitability]')) DROP VIEW [dbo].[BillsProfitability] GO /****** Object: View [dbo].[BillsProfitability] Script Date: 10/08/2014 09:20:48 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[BillsProfitability] AS SELECT dbo.OpenClosedMatters.ClientCode, dbo.OpenClosedMatters.ClientName, dbo.DebtorsLedger.MATTER, dbo.DebtorsLedger.BATCHNO, dbo.DebtorsLedger.REF, dbo.DebtorsLedger.DATE, dbo.BatchH.INVCR, dbo.DebtorsLedger.ORFEES AS FeeBilled, ISNULL ((SELECT SUM(CHARGE) AS E1 FROM dbo.TimeEntry AS T WHERE ((CASE WHEN ISNUMERIC(DebtorsLedger.REF) = 1 THEN CAST(DebtorsLedger.REF AS INT) ELSE NULL END) = INVOICENO) AND (TIMEORCHARGE <> 'B')), 0) AS TimeValue, dbo.OpenClosedMatters.Dept, D.[DESC] AS DeptDesc, dbo.OpenClosedMatters.Wtype, W.[DESC] AS WTypeDesc, dbo.OpenClosedMatters.OpenClosed FROM dbo.DebtorsLedger INNER JOIN dbo.BatchH ON dbo.BatchH.BATCHNO = dbo.DebtorsLedger.BATCHNO INNER JOIN dbo.OpenClosedMatters ON dbo.DebtorsLedger.MATTER = dbo.OpenClosedMatters.Code INNER JOIN dbo.Departments AS D ON D.CODE = dbo.OpenClosedMatters.Dept INNER JOIN dbo.WorkTypes AS W ON W.CODE = dbo.OpenClosedMatters.Wtype WHERE (dbo.DebtorsLedger.TYPE = 'I') AND (dbo.DebtorsLedger.ORFEES <> 0) GO /****** Object: View [dbo].[Case Activity] Script Date: 09/25/2014 16:15:39 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[Case Activity]')) DROP VIEW [dbo].[Case Activity] GO /****** Object: View [dbo].[Case Activity] Script Date: 09/25/2014 16:15:39 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[Case Activity] AS SELECT DISTINCT TOP (100) PERCENT a.Code, a.Description, a.DATE, a.ACTIONID, a.recordId, a.actiontype, a.Attachments, a.Origin, MAT.ClientCode, Contacts.Name FROM Contacts WITH (nolock) RIGHT OUTER JOIN matters MAT WITH (nolock) ON Contacts.Code = MAT.ClientCode RIGHT OUTER JOIN (SELECT TOP (100) PERCENT m.Code, m.Description, d.DATE, d.ACTIONID, 0 AS recordId, d.ACTIONTYPE AS actiontype, (SELECT COUNT(TRACKREFERENCE) AS Expr1 FROM DiaryAttachments with (nolock) WHERE (CASECODE = m.Code) AND (d.ACTIONID = DIARYID)) AS Attachments, 'Diary' AS Origin FROM matters as m with (nolock) RIGHT OUTER JOIN diary as d with (nolock) ON m.Code = d.CASECODE WHERE (d.CASECODE <> '~') AND (m.Code <> '') -- Changed for Build 82 AND (m.Closed <> 'Y') ORDER BY m.Code, d.DATE UNION SELECT m.Code, m.Description, TimeEntry.DATE, 0 AS ACTIONID, TimeEntry.RECORDID, '' AS actiontype, 0 AS Attachments, 'Time' AS Origin FROM matters AS m RIGHT OUTER JOIN TimeEntry with (nolock) ON m.Code = TimeEntry.MATTER WHERE (TimeEntry.MATTER IN (SELECT DISTINCT Code FROM matters with (nolock) -- Changed for Build 82 where (m.Closed <> 'Y') ))) AS a ON MAT.Code = a.Code ORDER BY a.Code GO /****** Object: View [dbo].[FeMatterWIP] Script Date: 10/08/2014 10:54:03 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FeMatterWIP]')) DROP VIEW [dbo].[FeMatterWIP] GO /****** Object: View [dbo].[FeMatterWIP] Script Date: 10/08/2014 10:54:03 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[FeMatterWIP] AS SELECT TOP (100) PERCENT TIM.FEEEARN, TIM.MATTER, SUM(TIM.CHARGE) AS Charged, SUM(ISNULL(TIM.BilledAmount, 0)) AS BilledAmount, SUM(TIM.CHARGE - ISNULL(TIM.BilledAmount, 0)) AS WIP, MatterLastBillDate.BillDate, MAT.ClientName AS Name, m.Description, m.Fecode, m.Dept, m.Wtype, m.DebtBal AS DebtorsBalance, m.OutlayBal AS OutlayBalance, m.ClientBal AS ClientTotalBalance, m.ClientCurBal AS ClientDepositeBalance, m.ClientDepBal AS ClientBalance, TIM.REC_IRR, MAT.StartDate, m.Code FROM matters m RIGHT OUTER JOIN OpenClosedMatters MAT WITH (nolock) ON m.Code = MAT.Code LEFT OUTER JOIN MatterLastBillDate WITH (nolock) RIGHT OUTER JOIN TimeEntry TIM WITH (nolock) ON MatterLastBillDate.MatterCode = TIM.MATTER ON MAT.Code = TIM.MATTER WHERE (TIM.TIMEORCHARGE <> 'B') GROUP BY TIM.FEEEARN, TIM.MATTER, MatterLastBillDate.BillDate, MAT.ClientName, m.Description, m.Fecode, m.Dept, m.Wtype, m.DebtBal, m.OutlayBal, m.ClientBal, m.ClientCurBal, m.ClientDepBal, TIM.REC_IRR, m.Code, MAT.StartDate, MAT.OpenClosed HAVING (TIM.MATTER <> '~') and MAT.OpenClosed = 'Open' ORDER BY TIM.FEEEARN, TIM.MATTER GO /****** Object: View [dbo].[HandlersStats] Script Date: 10/08/2014 10:42:47 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[HandlersStats]')) DROP VIEW [dbo].[HandlersStats] GO /****** Object: View [dbo].[HandlersStats] Script Date: 10/08/2014 10:42:47 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[HandlersStats] AS SELECT TOP (100) PERCENT dbo.Handlers.CODE AS SolicitorCode, dbo.Handlers.NAME AS Solicitor, Handlers_1.NAME AS TeamName, dbo.Departments.[DESC] AS Department, ISNULL ((SELECT SUM(TIME) AS TotalRecordedTime FROM dbo.TimeEntry WHERE (DATE >= (SELECT FromDate FROM dbo.KPIParameters)) AND (DATE <= (SELECT ToDate FROM dbo.KPIParameters AS KPIParameters_1)) AND (FEEEARN = dbo.Handlers.CODE) AND (timeorcharge <> 'B') AND (TASK <> 'CREDIT') AND (TASK <> 'WRI') AND (MATTER <> '~')), 0) AS TimeRecorded, ISNULL ((SELECT ChargableTimeBudget FROM dbo.HandlerBudgets AS HandlerBudgets_1 WHERE (Handler = dbo.Handlers.CODE) AND (Month = (SELECT Period FROM dbo.KPIParameters AS KPIParameters_1)) AND (Year = (SELECT Year FROM dbo.KPIParameters AS KPIParameters_1))), 0) AS TimeWeeklyBudget, ISNULL ((SELECT SUM(TIME) AS TotalRecordedTime FROM dbo.TimeEntry AS TimeEntry_1 WHERE (DATE >= (SELECT StartOfYear FROM dbo.KPIParameters AS KPIParameters_2)) AND (DATE <= (SELECT ToDate FROM dbo.KPIParameters AS KPIParameters_1)) AND (FEEEARN = dbo.Handlers.CODE) AND (timeorcharge <> 'B') AND (TASK <> 'CREDIT') AND (TASK <> 'WRI')), 0) AS TimeRecordedYTD, ISNULL ((SELECT SUM(dbo.BatchDetails.VALUE) AS Expr1 FROM dbo.BatchDetails INNER JOIN dbo.BatchH ON dbo.BatchDetails.BATCHNO = dbo.BatchH.BATCHNO WHERE (dbo.BatchDetails.FEE = dbo.Handlers.CODE) AND (dbo.BatchDetails.TYPE = 'I') AND (dbo.BatchDetails.YEAR = (SELECT Year FROM dbo.KPIParameters AS KPIParameters_3)) AND (dbo.BatchDetails.PERNO = (SELECT Period FROM dbo.KPIParameters AS KPIParameters_1)) AND (dbo.BatchDetails.OUTLAY = 'F') AND (dbo.BatchH.INVCR = 'I')), 0) - ISNULL ((SELECT SUM(BatchDetails_1.VALUE) AS Expr1 FROM dbo.BatchDetails AS BatchDetails_1 INNER JOIN dbo.BatchH AS BatchH_1 ON BatchDetails_1.BATCHNO = BatchH_1.BATCHNO WHERE (BatchDetails_1.FEE = dbo.Handlers.CODE) AND (BatchDetails_1.TYPE = 'I') AND (BatchDetails_1.YEAR = (SELECT Year FROM dbo.KPIParameters AS KPIParameters_3)) AND (BatchDetails_1.PERNO = (SELECT Period FROM dbo.KPIParameters AS KPIParameters_1)) AND (BatchDetails_1.OUTLAY = 'F') AND (BatchH_1.INVCR = 'C')), 0) AS FeesCurrnetPeriod, ISNULL ((SELECT FeesBudget FROM dbo.HandlerBudgets AS HandlerBudgets_1 WHERE (Handler = dbo.Handlers.CODE) AND (Month = (SELECT Period FROM dbo.KPIParameters AS KPIParameters_1)) AND (Year = (SELECT Year FROM dbo.KPIParameters AS KPIParameters_1))), 0) AS FeesCurrnetBudget, ISNULL ((SELECT SUM(BatchDetails_4.VALUE) AS Expr1 FROM dbo.BatchDetails AS BatchDetails_4 INNER JOIN dbo.BatchH AS BatchH_4 ON BatchDetails_4.BATCHNO = BatchH_4.BATCHNO WHERE (BatchDetails_4.FEE = dbo.Handlers.CODE) AND (BatchDetails_4.TYPE = 'I') AND (BatchDetails_4.YEAR = (SELECT Year - (CASE WHEN (SELECT Period AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1) = 1 THEN 1 ELSE 0 END) AS Expr1 FROM dbo.KPIParameters AS KPIParameters_3)) AND (BatchDetails_4.PERNO = (SELECT Period + (CASE WHEN (SELECT Period AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1) = 1 THEN + 11 ELSE - 1 END) AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1)) AND (BatchDetails_4.OUTLAY = 'F') AND (BatchH_4.INVCR = 'I')), 0) - ISNULL ((SELECT SUM(BatchDetails_1.VALUE) AS Expr1 FROM dbo.BatchDetails AS BatchDetails_1 INNER JOIN dbo.BatchH AS BatchH_1 ON BatchDetails_1.BATCHNO = BatchH_1.BATCHNO WHERE (BatchDetails_1.FEE = dbo.Handlers.CODE) AND (BatchDetails_1.TYPE = 'I') AND (BatchDetails_1.YEAR = (SELECT Year - (CASE WHEN (SELECT Period AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1) = 1 THEN 1 ELSE 0 END) AS Expr1 FROM dbo.KPIParameters AS KPIParameters_3)) AND (BatchDetails_1.PERNO = (SELECT Period + (CASE WHEN (SELECT Period AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1) = 1 THEN + 11 ELSE - 1 END) AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1)) AND (BatchDetails_1.OUTLAY = 'F') AND (BatchH_1.INVCR = 'C')), 0) AS FeesLastPeriod, ISNULL ((SELECT FeesBudget FROM dbo.HandlerBudgets AS HandlersBudgets_2 WHERE (Handler = dbo.Handlers.CODE) AND (Month = (SELECT Period + (CASE WHEN (SELECT Period AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1) = 1 THEN + 11 ELSE - 1 END) AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1)) AND (Year = (SELECT Year - (CASE WHEN (SELECT Period AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1) = 1 THEN 1 ELSE 0 END) AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1))), 0) AS FeesLastPeriodBudget, ISNULL ((SELECT SUM(BatchDetails_2.VALUE) AS Expr1 FROM dbo.BatchDetails AS BatchDetails_2 INNER JOIN dbo.BatchH AS BatchH_2 ON BatchDetails_2.BATCHNO = BatchH_2.BATCHNO WHERE (BatchDetails_2.FEE = dbo.Handlers.CODE) AND (BatchDetails_2.TYPE = 'I') AND (BatchDetails_2.YEAR = (SELECT Year FROM dbo.KPIParameters AS KPIParameters_3)) AND (BatchDetails_2.PERNO <= (SELECT Period FROM dbo.KPIParameters AS KPIParameters_1)) AND (BatchDetails_2.OUTLAY = 'F') AND (BatchH_2.INVCR = 'I')), 0) - ISNULL ((SELECT SUM(BatchDetails_3.VALUE) AS Expr1 FROM dbo.BatchDetails AS BatchDetails_3 INNER JOIN dbo.BatchH AS BatchH_3 ON BatchDetails_3.BATCHNO = BatchH_3.BATCHNO WHERE (BatchDetails_3.FEE = dbo.Handlers.CODE) AND (BatchDetails_3.TYPE = 'I') AND (BatchDetails_3.YEAR = (SELECT Year FROM dbo.KPIParameters AS KPIParameters_3)) AND (BatchDetails_3.PERNO <= (SELECT Period FROM dbo.KPIParameters AS KPIParameters_1)) AND (BatchDetails_3.OUTLAY = 'F') AND (BatchH_3.INVCR = 'C')), 0) AS FeeYTD, ISNULL ((SELECT SUM(BatchDetails_4.VALUE) AS Expr1 FROM dbo.BatchDetails AS BatchDetails_4 INNER JOIN dbo.BatchH AS BatchH_4 ON BatchDetails_4.BATCHNO = BatchH_4.BATCHNO WHERE (BatchDetails_4.FEE = dbo.Handlers.CODE) AND (BatchDetails_4.TYPE = 'I') AND (BatchDetails_4.YEAR = (SELECT Year - 1 AS Expr1 FROM dbo.KPIParameters AS KPIParameters_3)) AND (BatchDetails_4.PERNO <= (SELECT Period FROM dbo.KPIParameters AS KPIParameters_1)) AND (BatchDetails_4.OUTLAY = 'F') AND (BatchH_4.INVCR = 'I')), 0) - ISNULL ((SELECT SUM(BatchDetails_1.VALUE) AS Expr1 FROM dbo.BatchDetails AS BatchDetails_1 INNER JOIN dbo.BatchH AS BatchH_1 ON BatchDetails_1.BATCHNO = BatchH_1.BATCHNO WHERE (BatchDetails_1.FEE = dbo.Handlers.CODE) AND (BatchDetails_1.TYPE = 'I') AND (BatchDetails_1.YEAR = (SELECT Year - 1 AS Expr1 FROM dbo.KPIParameters AS KPIParameters_3)) AND (BatchDetails_1.PERNO <= (SELECT Period AS Expr1 FROM dbo.KPIParameters AS KPIParameters_1)) AND (BatchDetails_1.OUTLAY = 'F') AND (BatchH_1.INVCR = 'C')), 0) AS FeesYTDLastYear, ISNULL ((SELECT SUM(FeesBudget) AS Expr1 FROM dbo.HandlerBudgets AS HandlersBudgets_1 WHERE (Handler = dbo.Handlers.CODE) AND (Month <= (SELECT Period FROM dbo.KPIParameters AS KPIParameters_1)) AND (Year = (SELECT Year FROM dbo.KPIParameters AS KPIParameters_1))), 0) AS FeesYTDBudget, ISNULL ((SELECT SUM(dbo.DebtorsLedger.OSVALUE) AS Expr1 FROM dbo.DebtorsLedger INNER JOIN dbo.matters ON dbo.DebtorsLedger.MATTER = dbo.matters.Code WHERE (dbo.matters.FECode = dbo.Handlers.CODE) AND (dbo.DebtorsLedger.DATE <= { fn NOW() } - 60) AND (dbo.DebtorsLedger.OSVALUE <> 0)), 0) AS OSInvoicesOver60, ISNULL ((SELECT SUM(DebtorsLedger_1.OSVALUE) AS Expr1 FROM dbo.DebtorsLedger AS DebtorsLedger_1 INNER JOIN dbo.matters AS matters_1 ON DebtorsLedger_1.MATTER = matters_1.Code WHERE (matters_1.FECode = dbo.Handlers.CODE) AND (DebtorsLedger_1.OSVALUE <> 0)), 0) AS OSInvoices, ISNULL ((SELECT SUM(DebtorsLedger_2.OSFEES) AS Expr1 FROM dbo.DebtorsLedger AS DebtorsLedger_2 INNER JOIN dbo.matters AS matters_2 ON DebtorsLedger_2.MATTER = matters_2.Code WHERE (matters_2.FECode = dbo.Handlers.CODE) AND (DebtorsLedger_2.DATE <= { fn NOW() } - 60) AND (DebtorsLedger_2.OSVALUE <> 0)), 0) AS OSFeesOver60, ISNULL ((SELECT SUM(DebtorsLedger_1.OSFEES) AS Expr1 FROM dbo.DebtorsLedger AS DebtorsLedger_1 INNER JOIN dbo.matters AS matters_1 ON DebtorsLedger_1.MATTER = matters_1.Code WHERE (matters_1.FECode = dbo.Handlers.CODE) AND (DebtorsLedger_1.OSVALUE <> 0)), 0) AS OSFees, 000 AS UnBilledOutlay, ISNULL ((SELECT SUM(dbo.BillHeader.TOTAL) AS Expr1 FROM dbo.BillHeader INNER JOIN dbo.matters AS matters_5 ON dbo.BillHeader.MATTER = matters_5.Code WHERE (matters_5.FECode = dbo.Handlers.CODE) AND (dbo.BillHeader.BILLNO = 0)), 0) AS DraftInvoice, ISNULL ((SELECT COUNT(DelType) AS Expr1 FROM dbo.DiaryDelegations WHERE (STATUS = 0) AND (DelType IN ('Created', 'Delegated', 'Released')) AND (HANDLER = dbo.Handlers.CODE)), 0) AS NoDiaryDelOS, ISNULL ((SELECT COUNT(DelType) AS Expr1 FROM dbo.DiaryDelegations AS DiaryDelegations_1 WHERE (STATUS = 0) AND (DelType IN ('Created', 'Delegated', 'Released')) AND (HANDLER = dbo.Handlers.CODE) AND (DUEDATE <= { fn NOW() })), 0) AS NoDiaryDelOSOverdue, ISNULL ((SELECT COUNT(a.DelType) AS Expr1 FROM dbo.DiaryDelegations AS a INNER JOIN dbo.diary AS b ON a.ACTIONID = b.ACTIONID WHERE (a.STATUS = 1) AND (a.DelType = 'Completed') AND (a.HANDLER = dbo.Handlers.CODE)), 0) AS NoDiaryDelComp, ISNULL ((SELECT COUNT(a.DelType) AS Expr1 FROM dbo.DiaryDelegations AS a INNER JOIN dbo.diary AS b ON a.ACTIONID = b.ACTIONID WHERE (a.STATUS = 0) AND (b.PRIORITY = 'H') AND (a.HANDLER = dbo.Handlers.CODE)), 0) AS NoDiaryDelOSHighPriority, ISNULL ((SELECT COUNT(a.MATTER) AS Expr1 FROM dbo.Undertakings AS a INNER JOIN dbo.matters AS b ON a.MATTER = b.Code WHERE (b.FECode = dbo.Handlers.CODE) AND (a.DISCHARGEDATE = 0)), 0) AS NoUndertakings, ISNULL ((SELECT COUNT(a.MATTER) AS Expr1 FROM dbo.Undertakings AS a INNER JOIN dbo.matters AS b ON a.MATTER = b.Code WHERE (b.FECode = dbo.Handlers.CODE) AND (a.DISCHARGEDATE = 0) AND (a.DATE <= { fn NOW() } + 30)), 0) AS NoUndertakingsWithin30, ISNULL ((SELECT COUNT(Code) AS Expr1 FROM dbo.matters AS matters_3 WHERE (FECode = dbo.Handlers.CODE)), 0) AS NoOpenMatters, ISNULL ((SELECT COUNT(Code) AS Expr1 FROM dbo.matters AS matters_3 WHERE (PCODE <> '') AND (FECode = dbo.Handlers.CODE)), 0) AS NoActiveMatters, ISNULL ((SELECT COUNT(Code) AS Expr1 FROM dbo.matters AS matters_3 WHERE (PCODE <> '') AND (Section68 <> 'Y') AND (FECode = dbo.Handlers.CODE)), 0) AS NoSection68Matters, ISNULL ((SELECT COUNT(Code) AS Expr1 FROM dbo.matters AS matters_4 WHERE (FECode = dbo.Handlers.CODE) AND (Started >= (SELECT FromDate FROM dbo.KPIParameters AS KPIParameters_5)) AND (Started <= (SELECT ToDate FROM dbo.KPIParameters AS KPIParameters_4))) + (SELECT COUNT(CODE) AS Expr1 FROM dbo.Closed WHERE (FECODE = dbo.Handlers.CODE) AND (STARTED >= (SELECT FromDate FROM dbo.KPIParameters AS KPIParameters_5)) AND (STARTED <= (SELECT ToDate FROM dbo.KPIParameters AS KPIParameters_4))), 0) AS NoNewOpenedMatters, ISNULL ((SELECT COUNT(Code) AS Expr1 FROM dbo.matters AS matters_4 WHERE (FECode = dbo.Handlers.CODE) AND (Started >= (SELECT StartOfYear FROM dbo.KPIParameters AS KPIParameters_5)) AND (Started <= (SELECT ToDate FROM dbo.KPIParameters AS KPIParameters_4))) + (SELECT COUNT(CODE) AS Expr1 FROM dbo.Closed AS Closed_1 WHERE (FECODE = dbo.Handlers.CODE) AND (STARTED >= (SELECT StartOfYear FROM dbo.KPIParameters AS KPIParameters_5)) AND (STARTED <= (SELECT ToDate FROM dbo.KPIParameters AS KPIParameters_4))), 0) AS NoMattersYTD, ISNULL ((SELECT COUNT(MATTER) AS Expr1 FROM dbo.TimeDayBook WHERE (FEEEARN = dbo.Handlers.CODE)), 0) AS NoUnPostedTimeEntrys, ISNULL ((SELECT COUNT(BillHeader_1.MATTER) AS Expr1 FROM dbo.BillHeader AS BillHeader_1 INNER JOIN dbo.matters AS matters_5 ON BillHeader_1.MATTER = matters_5.Code WHERE (matters_5.FECode = dbo.Handlers.CODE) AND (BillHeader_1.BILLNO = 0)), 0) AS NoDraftInvoice, ISNULL ((SELECT COUNT(StatuteLimits) AS Expr1 FROM dbo.matters AS matters_6 WHERE (StatuteLimits IS NOT NULL) AND (FECode = dbo.Handlers.CODE)), 0) AS NoStatuteOfLimitations, ISNULL ((SELECT COUNT(StatuteLimits) AS Expr1 FROM dbo.matters AS matters_6 WHERE (StatuteLimits IS NOT NULL) AND (FECode = dbo.Handlers.CODE) AND (StatuteLimits <= { fn NOW() } + 30)), 0) AS NoStatuteOfLimitationsWithin30, dbo.Handlers.TEAM, dbo.Handlers.Type, dbo.Handlers.TEAMCODE, ISNULL ((SELECT SUM(TIME) AS TotalRecordedTime FROM dbo.TimeEntry AS TimeEntry_1 WHERE (DATE >= (SELECT StartOfYear FROM dbo.KPIParameters AS KPIParameters_2)) AND (DATE <= (SELECT ToDate FROM dbo.KPIParameters AS KPIParameters_1)) AND (FEEEARN = dbo.Handlers.CODE) AND (MATTER = '~') AND (timeorcharge <> 'B') AND (TASK <> 'CREDIT') AND (TASK <> 'WRI') OR (DATE >= (SELECT StartOfYear FROM dbo.KPIParameters AS KPIParameters_2)) AND (DATE <= (SELECT ToDate FROM dbo.KPIParameters AS KPIParameters_1)) AND (FEEEARN = dbo.Handlers.CODE) AND (timeorcharge <> 'B') AND (TASK <> 'CREDIT') AND (TASK <> 'WRI') AND (REC_IRR = 'N')), 0) AS NonChargableTime, ISNULL ((SELECT SUM( WIP) FROM fematterWIP where (FEEEARN = dbo.Handlers.CODE)), 0) AS WIP, dbo.Handlers.Dept FROM dbo.Handlers INNER JOIN dbo.Handlers AS Handlers_1 ON dbo.Handlers.TEAM = Handlers_1.CODE LEFT OUTER JOIN dbo.Departments ON dbo.Handlers.Dept = dbo.Departments.CODE WHERE (dbo.Handlers.Type = 'L' OR dbo.Handlers.Type = 'P') AND (dbo.Handlers.TEAMCODE <> 'Y') GO /****** Object: View [dbo].[LastMatterDates] Script Date: 10/03/2014 12:52:15 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[LastMatterDates]')) DROP VIEW [dbo].[LastMatterDates] GO /****** Object: View [dbo].[LastMatterDates] Script Date: 10/03/2014 12:52:16 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[LastMatterDates] AS SELECT TOP 100 PERCENT Code, Dept, Fecode, Wtype, CASE OpenCode WHEN Code THEN 'Open' ELSE 'Closed' END AS Status, (SELECT TOP 1 DATE FROM dbo.TimeEntry WHERE (MATTER = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastTimeEntry, (SELECT TOP 1 FEEEARN + ' - ' + COMMENT AS Expr1 FROM dbo.TimeEntry AS TimeEntry_1 WHERE (MATTER = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastTimeEntryDesc, (SELECT TOP 1 DATE FROM dbo.diary WHERE (CASECODE = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastOpenDiaryDate, (SELECT TOP 1 convert(varchar(1000), substring(TEXT1, 1, 1000)) FROM dbo.diary AS dairy_1 WHERE (CASECODE = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastOpenDiaryText1, (SELECT TOP 1 DATE FROM dbo.CloseDiary AS dairy_1 WHERE (CASECODE = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastClosedDiaryDate, (SELECT TOP 1 convert(varchar(1000), substring(TEXT1, 1, 1000)) FROM dbo.CloseDiary AS dairy_1 WHERE (CASECODE = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastClosedDiaryText1, (SELECT TOP 1 DATE FROM dbo.MatterLedger WHERE (MATTER = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastOpenAccountDate, (SELECT TOP 1 NARR FROM dbo.MatterLedger AS MatterLedger_1 WHERE (MATTER = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastOpenAccountDesc, (SELECT TOP 1 DATE FROM dbo.ClosedMatterLedger WHERE (MATTER = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastClosedAccountDate, (SELECT TOP 1 NARR FROM dbo.ClosedMatterLedger AS ClosedMatterLedger_1 WHERE (MATTER = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastClosedAccountDesc, (SELECT TOP 1 DATE FROM dbo.Undertakings AS Undertakings_1 WHERE (MATTER = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastUndertakingDate, (SELECT TOP 1 WHO + ' Value:' + CAST(VALUE AS varchar) + ' ' + DESCRIPTION AS Expr1 FROM dbo.Undertakings WHERE (MATTER = OpenClosedMatters_1.Code) ORDER BY DATE DESC) AS LastUndertakingDesc, (SELECT TOP 1 LastAct FROM dbo.matters AS matters_1 WHERE (Code = OpenClosedMatters_1.Code) ORDER BY LastAct DESC) AS LastOpenAct, (SELECT TOP 1 LASTACT FROM dbo.Closed AS Closed_1 WHERE (CODE = OpenClosedMatters_1.Code) ORDER BY LASTACT DESC) AS LastClosedAct FROM dbo.OpenClosedMatters AS OpenClosedMatters_1 ORDER BY Status GO /****** Object: View [dbo].[MatterBalsByMatter] Script Date: 10/07/2014 12:51:42 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[MatterBalsByMatter]')) DROP VIEW [dbo].[MatterBalsByMatter] GO /****** Object: View [dbo].[MatterBalsByMatter] Script Date: 10/07/2014 12:51:42 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[MatterBalsByMatter] AS SELECT Top 100 percent T.Matter, T.SumBilled, T.SumOutlay, T.SumClientBal, T.SumClientC, T.SumClientCD, OpenClosedMatters.ClientCode, OpenClosedMatters.ClientName, OpenClosedMatters.Description, OpenClosedMatters.Dept, OpenClosedMatters.Fecode, OpenClosedMatters.StartDate, OpenClosedMatters.Wtype FROM (SELECT TOP (100) PERCENT Matter, SUM(ValueD) AS SumBilled, SUM(ValueO) AS SumOutlay, SUM(ValueC) AS SumClientBal, SUM(ValueCC) AS SumClientC, SUM(ValueCD) AS SumClientCD FROM OpenClosedMattersLedger GROUP BY Matter HAVING (ABS(SUM(ValueD)) + ABS(SUM(ValueO)) + ABS(SUM(ValueC)) <> 0)) AS T INNER JOIN OpenClosedMatters ON T.Matter = OpenClosedMatters.Code ORDER BY T.Matter GO /****** Object: View [dbo].[MatterBalsByYearPeriod] Script Date: 10/07/2014 12:51:49 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[MatterBalsByYearPeriod]')) DROP VIEW [dbo].[MatterBalsByYearPeriod] /****** Object: View [dbo].[MatterBalsByYearPeriod] Script Date: 10/07/2014 12:51:49 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[MatterBalsByYearPeriod] AS SELECT Top 100 percent T.Tranyear, T.PER, T.Matter, T.SumBilled, T.SumOutlay, T.SumClientBal, T.SumClientC, T.SumClientCD, OpenClosedMatters.ClientCode, OpenClosedMatters.ClientName, OpenClosedMatters.Description, OpenClosedMatters.Dept, OpenClosedMatters.Fecode, OpenClosedMatters.StartDate, OpenClosedMatters.Wtype, OpenClosedMatters.OpenClosed FROM (SELECT TOP (100) PERCENT Matter, Tranyear, PER, SUM(ValueD) AS SumBilled, SUM(ValueO) AS SumOutlay, SUM(ValueC) AS SumClientBal, SUM(ValueCC) AS SumClientC, SUM(ValueCD) AS SumClientCD FROM OpenClosedMattersLedger GROUP BY Tranyear, PER, Matter HAVING (tranyear <> 0) and (ABS(SUM(ValueD)) + ABS(SUM(ValueO)) + ABS(SUM(ValueC)) <> 0)) AS T INNER JOIN OpenClosedMatters ON T.Matter = OpenClosedMatters.Code WHERE (dbo.OpenClosedMatters.OpenClosed = 'Open') ORDER BY T.tranYear, T.Per, T.Matter GO /****** Object: View [dbo].[MatterBalsByClient] Script Date: 10/07/2014 12:51:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[MatterBalsByClient]')) DROP VIEW [dbo].[MatterBalsByClient] GO /****** Object: View [dbo].[MatterBalsByClient] Script Date: 10/07/2014 12:51:36 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SELECT TOP 100 PERCENT MAT.ClientCode, MAT.ClientName, SUM(LED.ValueD) AS SumBilled, SUM(LED.ValueO) AS SumOutlay, SUM(LED.ValueC) AS SumClientBal, SUM(LED.ValueCC) AS SumClientC, SUM(LED.ValueCD) AS SumClientCD FROM dbo.OpenClosedMatters MAT LEFT OUTER JOIN dbo.OpenClosedMattersLedger LED ON MAT.Code = LED.Matter WHERE (MAT.OpenClosed = 'Open') GROUP BY MAT.ClientCode, MAT.ClientName --HAVING (ABS(SUM(dbo.OpenClosedMattersLedger.ValueD)) + ABS(SUM(dbo.OpenClosedMattersLedger.ValueO)) + ABS(SUM(dbo.OpenClosedMattersLedger.ValueC)) <> 0) ORDER BY MAT.ClientCode GO /****** Object: View [dbo].[Profitability] Script Date: 10/06/2014 11:03:03 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[Profitability]')) DROP VIEW [dbo].[Profitability] GO /****** Object: View [dbo].[Profitability] Script Date: 10/06/2014 11:03:03 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[Profitability] AS SELECT TOP (100) PERCENT t.Code, t.ClientCode, t.ClientName, t.StartDate, t.Description, t.Dept, t.MatterFe, dbo.Handlers.NAME, t.Wtype, t.OpenClosed, t.TimeCharge, t.InvoiceFees, t.LastDateInvoiced, t.LastBillDate, t.LastTimeEntry, t.LastTimeEntryDesc, t.InvoiceFees-t.TimeCharge AS ShortfallSurplus, CASE WHEN (TimeCharge = 0 OR InvoiceFees = 0) THEN 0 ELSE ((InvoiceFees / TimeCharge) * 100) END AS recover FROM (SELECT TOP (100) PERCENT dbo.OpenClosedMatters.Code, dbo.OpenClosedMatters.ClientCode, dbo.OpenClosedMatters.ClientName, dbo.OpenClosedMatters.StartDate, dbo.OpenClosedMatters.Description, dbo.OpenClosedMatters.Dept, dbo.OpenClosedMatters.Fecode AS MatterFe, dbo.OpenClosedMatters.Wtype, dbo.OpenClosedMatters.OpenClosed, ISNULL ((SELECT SUM(CHARGE) AS Expr1 FROM dbo.TimeEntry WHERE (TIMEORCHARGE <> 'B') AND (CHARGE <> 0) AND (MATTER = dbo.OpenClosedMatters.Code) AND (TASK <> 'WRI')), 0) AS TimeCharge, ISNULL ((SELECT TOP (100) PERCENT SUM(ORFEES) AS Expr1 FROM dbo.DebtorsLedger AS DebtorsInvoices WHERE (MATTER = dbo.OpenClosedMatters.Code) AND (ORFEES <> 0)), 0) AS InvoiceFees, (SELECT MAX(DATE) AS Expr1 FROM dbo.DebtorsLedger WHERE (MATTER = dbo.OpenClosedMatters.Code) AND (TYPE = 'I')) AS LastDateInvoiced, (SELECT MAX(LastBillDate) AS Expr1 FROM dbo.LastBillDate WHERE (MATTER = dbo.OpenClosedMatters.Code)) AS LastBillDate, dbo.LastMatterDates.LastTimeEntry, dbo.LastMatterDates.LastTimeEntryDesc FROM dbo.OpenClosedMatters WITH (Nolock) LEFT OUTER JOIN dbo.LastMatterDates WITH (Nolock) ON dbo.OpenClosedMatters.Code = dbo.LastMatterDates.Code LEFT OUTER JOIN dbo.LastBillDate AS LastBillDate_1 WITH (Nolock) ON dbo.OpenClosedMatters.Code = LastBillDate_1.MATTER WHERE (dbo.OpenClosedMatters.Matter NOT LIKE '%0000')) AS t LEFT OUTER JOIN dbo.Handlers WITH (Nolock) ON t.MatterFe = dbo.Handlers.CODE ORDER BY t.Code GO /****** Object: View [dbo].[ReportInvoices] Script Date: 10/13/2014 12:03:48 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ReportInvoices]')) DROP VIEW [dbo].[ReportInvoices] GO /****** Object: View [dbo].[ReportInvoices] Script Date: 10/13/2014 12:03:48 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[ReportInvoices] AS SELECT TOP 100 PERCENT bd.BATCHNO, bd.TYPE, bd.PREF, bd.REF, bd.DATE, bd.NARR, bd.VALUE AS BatchDValue, bd.VATCODE AS BatchDVATCode, bd.VATVAL AS BatchDVATValue, bd.OUTLAY, bd.YEAR, bd.PERNO, fe.NAME, bd.CODE, bd.FEE, bh.MATTER, bh.INVCR, bh.POSTED, bh.OUTLAYTOT AS BatchHOutlay, bh.VATTOT AS BatchHVAT, bh.FEETOT AS BatchHFee, bh.VALUE AS BatchHValue, ISNULL(m.Description, '') AS MatterDescription, ISNULL(m.ClientCode, '') AS Client, ISNULL(m.Dept, '') AS Dept, ISNULL(m.WType, '') AS WType, ISNULL(m.FECode, '') AS FECODE, bh.REF AS BatchHRef FROM dbo.BatchH bh with (nolock) RIGHT OUTER JOIN dbo.BatchDetails bd with (nolock) LEFT OUTER JOIN dbo.FeeEarnerCodes fe with (nolock) ON bd.FEE = fe.CODE ON bh.BATCHNO = bd.BATCHNO LEFT OUTER JOIN dbo.matters m with (nolock) ON bh.MATTER = m.Code WHERE (bd.TYPE = 'I') ORDER BY bd.BATCHNO GO /****** Object: View [dbo].[FeesReceivedBreakDown] Script Date: 11/10/2014 11:55:57 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FeesReceivedBreakDown]')) DROP VIEW [dbo].[FeesReceivedBreakDown] GO /****** Object: View [dbo].[FeesReceivedBreakDown] Script Date: 11/10/2014 11:55:57 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE VIEW [dbo].[FeesReceivedBreakDown] AS SELECT BD.FEE, H.NAME AS Solicitor, DR.MATTER, MAT.ClientCode, MAT.ClientName, MAT.Description, DI.DATE AS InvoiceDate, DI.BATCHNO AS InvoiceBatchNo, DI.REF AS InvoiceRef, DI.PREF AS InvoiceReceiptNo, DI.TYPE AS InvoiceType, ISNULL(DI.ORFEES, 0) AS FeesInvoiced, ISNULL(DI.ORVAT, 0) AS VATInvoiced, ISNULL(BD.VALUE, 0) AS SolicitorFeeInvoiced, ISNULL(BD.VATVAL, 0) AS SolicitorVATInvoiced, DI.NARR AS InvoiceNarr, DI.YEAR AS InvoiceFinancialYear, DI.PER AS InvoiceFinancialPeriod, DR.DATE AS ReceiptDate, DR.BATCHNO AS ReceiptBatchNo, DR.REF AS ReceiptRef, DR.PREF AS ReceiptPRef, DR.TYPE AS ReceiptType, CASE WHEN (DI.ORVAT = 0) THEN 0 ELSE (ALO.VAT * (BD.VATVAL / DI.ORVAT) * - 1) END AS SolicitorVatReceived, CASE WHEN (DI.ORFEES = 0) THEN 0 ELSE (ALO.FEES * (BD.VALUE / DI.ORFEES) * - 1) END AS SolicitorFeeReceived, DR.NARR AS ReceiptNarr, DR.YEAR AS ReceiptFinancialYear, DR.PER AS ReceiptFinancialPeriod, { fn MONTHNAME(DR.DATE) } AS ReceiptDatedMonthName, { fn MONTH(DR.DATE) } AS ReceiptDatedMonth, YEAR(DR.DATE) AS ReceiptDatedYear, ISNULL(ALO.FEES, 0) AS AllocatedFee, ALO.VAT, MAT.Dept, MAT.Fecode AS MatterFe, MAT.Started, MAT.StartDate, MAT.Wtype, MAT.User1, MAT.User2, MAT.User3, MAT.OpenClosed, coalesce((SELECT TOP (1) CSWKTCODE FROM CaseMaster WHERE (CSCODE = MAT.opencode)), (SELECT TOP (1) CSWKTCODE FROM CaseMasterClosed WHERE (CSCODE = MAT.closedcode))) AS CasePlan FROM Handlers H WITH (Nolock) RIGHT OUTER JOIN OpenClosedMatters MAT WITH (Nolock) INNER JOIN DebtorsLedger AS DR INNER JOIN Allocations ALO WITH (Nolock) ON DR.BATCHNO = ALO.BATCHNO AND DR.PREF = ALO.PREF INNER JOIN DebtorsLedger AS DI ON ALO.ABATCHNO = DI.BATCHNO AND ALO.OPREF = DI.PREF INNER JOIN BatchDetails BD WITH (Nolock) ON DI.BATCHNO = BD.BATCHNO ON MAT.Code = DR.MATTER LEFT OUTER JOIN CaseMasterClosed WITH (Nolock) ON MAT.ClosedCode = CaseMasterClosed.CSCODE LEFT OUTER JOIN CaseMaster WITH (Nolock)ON MAT.OpenCode = CaseMaster.CSCODE ON H.CODE = BD.FEE WHERE (DR.TYPE = 'R') AND (BD.OUTLAY = 'F') GO SET NOEXEC OFF