USE [Keyhouse] GO /****** Object: StoredProcedure [dbo].[ky_GroupGroupNarrBG] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_QuickGroupBG] Script Date: 09/05/2013 17:16:39 ******/ 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: View [dbo].[FeWIP] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FeWIP]')) DROP VIEW [dbo].[FeWIP] GO /****** Object: StoredProcedure [dbo].[ky_WDCompleteTranscription] Script Date: 09/05/2013 17:16:39 ******/ 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_MoveBriefDocument] Script Date: 09/05/2013 17:16:39 ******/ 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: UserDefinedFunction [dbo].[ky_WDMatterSearch] Script Date: 09/05/2013 17:16:41 ******/ 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_WDDayBook] Script Date: 09/05/2013 17:16:39 ******/ 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_BGFeeBreakDown] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_DesktopCalculateFEBreakDown] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_WDCreateDiaryStep] Script Date: 09/05/2013 17:16:39 ******/ 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: View [dbo].[HandlersStatsFeByTeam] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[HandlersStatsFeByTeam]')) DROP VIEW [dbo].[HandlersStatsFeByTeam] GO /****** Object: StoredProcedure [dbo].[ky_CalculateFEBreakDownBD] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_UngroupGUIDBG] Script Date: 09/05/2013 17:16:39 ******/ 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_NewGroupBG] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_UngroupBG] Script Date: 09/05/2013 17:16:39 ******/ 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_MoveBriefDocumentToSection] Script Date: 09/05/2013 17:16:39 ******/ 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].[ky_MoveBriefDocumentFromSection] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_briefsectionupdate] Script Date: 09/05/2013 17:16:39 ******/ 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_MoveBriefSection] Script Date: 09/05/2013 17:16:39 ******/ 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: View [dbo].[HandlersStatsFeByDept] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[HandlersStatsFeByDept]')) DROP VIEW [dbo].[HandlersStatsFeByDept] GO /****** Object: StoredProcedure [dbo].[ky_WDPushTask] Script Date: 09/05/2013 17:16:40 ******/ 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_WDPushTask2] Script Date: 09/05/2013 17:16:40 ******/ 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: StoredProcedure [dbo].[ky_WDPushTask3] Script Date: 09/05/2013 17:16:40 ******/ 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_WDDiaryDocuments] Script Date: 09/05/2013 17:16:39 ******/ 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_WDCaseDocuments3] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_WDCaseDocuments] Script Date: 09/05/2013 17:16:39 ******/ 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].[ky_WDCaseDocuments4] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_WDCaseDocuments2] Script Date: 09/05/2013 17:16:39 ******/ 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_WDDelegateAction_DiaryDel] Script Date: 09/05/2013 17:16:39 ******/ 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: UserDefinedFunction [dbo].[ky_WDCaseDiary3] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_WDCaseDiary2] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_WDContactSearch] Script Date: 09/05/2013 17:16:41 ******/ 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_WDSearchAllContacts3] Script Date: 09/05/2013 17:16:40 ******/ 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: StoredProcedure [dbo].[ky_WDSearchAllContacts] Script Date: 09/05/2013 17:16:40 ******/ 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].[ky_WDSearchAllContacts2] Script Date: 09/05/2013 17:16:40 ******/ 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_WDTaskListByHighlightPage] Script Date: 09/05/2013 17:16:40 ******/ 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_WDTaskListByActionTypePage] Script Date: 09/05/2013 17:16:40 ******/ 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_WDTaskList] Script Date: 09/05/2013 17:16:40 ******/ 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: View [dbo].[FeeBillAnalysis] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FeeBillAnalysis]')) DROP VIEW [dbo].[FeeBillAnalysis] GO /****** Object: View [dbo].[diaryattcloseddiaryatt] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[diaryattcloseddiaryatt]')) DROP VIEW [dbo].[diaryattcloseddiaryatt] GO /****** Object: View [dbo].[tmp_diaryattcloseddiaryatt] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[tmp_diaryattcloseddiaryatt]')) DROP VIEW [dbo].[tmp_diaryattcloseddiaryatt] GO /****** Object: View [dbo].[MatterDetailView] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[MatterDetailView]')) DROP VIEW [dbo].[MatterDetailView] GO /****** Object: View [dbo].[diarycloseddiary] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[diarycloseddiary]')) DROP VIEW [dbo].[diarycloseddiary] GO /****** Object: View [dbo].[tmp_diarycloseddiary] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[tmp_diarycloseddiary]')) DROP VIEW [dbo].[tmp_diarycloseddiary] GO /****** Object: StoredProcedure [dbo].[ky_BGAddToInvoice] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_BGTransfer] Script Date: 09/05/2013 17:16:39 ******/ 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_BGReverseTransfer] Script Date: 09/05/2013 17:16:39 ******/ 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_WDCopyTimeEntry] Script Date: 09/05/2013 17:16:39 ******/ 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: View [dbo].[New_FeMatterWIP_View] Script Date: 09/05/2013 17:16:36 ******/ 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].[FeMatterWIP] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FeMatterWIP]')) DROP VIEW [dbo].[FeMatterWIP] GO /****** Object: StoredProcedure [dbo].[ky_WDHandlerTimeBudgetDashboard] Script Date: 09/05/2013 17:16:40 ******/ 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].[KPIClientStats] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[KPIClientStats]')) DROP VIEW [dbo].[KPIClientStats] GO /****** Object: StoredProcedure [dbo].[ky_WDPostDayBook] Script Date: 09/05/2013 17:16:40 ******/ 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: View [dbo].[LastMatterDates] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[LastMatterDates]')) DROP VIEW [dbo].[LastMatterDates] GO /****** Object: StoredProcedure [dbo].[ky_BGReset] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_BGProcess] Script Date: 09/05/2013 17:16:39 ******/ 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_WDTaskListPage2Rev] Script Date: 09/05/2013 17:16:40 ******/ 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: StoredProcedure [dbo].[ky_WDTaskListPage] Script Date: 09/05/2013 17:16:40 ******/ 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: StoredProcedure [dbo].[ky_WDTaskListPage2] Script Date: 09/05/2013 17:16:40 ******/ 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: StoredProcedure [dbo].[ky_WDTaskListByActionTypePage2] Script Date: 09/05/2013 17:16:40 ******/ 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: StoredProcedure [dbo].[ky_WDTaskListByHighlightPage2Rev] Script Date: 09/05/2013 17:16:40 ******/ 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: StoredProcedure [dbo].[ky_WDTaskListByHighlightPage2] Script Date: 09/05/2013 17:16:40 ******/ 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_WDTaskListByActionTypePage2Rev] Script Date: 09/05/2013 17:16:40 ******/ 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_SetActionAutoAlarm] Script Date: 09/05/2013 17:16:39 ******/ 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_WDActionComplete2] Script Date: 09/05/2013 17:16:39 ******/ 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_WDNextActionMissingCasePartner] Script Date: 09/05/2013 17:16:40 ******/ 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].[ky_WDActionComplete] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_WDActionComplete3] Script Date: 09/05/2013 17:16:39 ******/ 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].[ContactAddresses] Script Date: 09/05/2013 17:16:40 ******/ 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_BGPayItem] Script Date: 09/05/2013 17:16:39 ******/ 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].[ky_ReorderGroupBG] Script Date: 09/05/2013 17:16:39 ******/ 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_MoveGroupBG] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_BGResetCR] Script Date: 09/05/2013 17:16:39 ******/ 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: UserDefinedFunction [dbo].[ky_BGListTotals] Script Date: 09/05/2013 17:16:40 ******/ 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_BGDelete] Script Date: 09/05/2013 17:16:39 ******/ 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_WDBriefSectionDocs] Script Date: 09/05/2013 17:16:41 ******/ 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_ReorderBriefDocSection] Script Date: 09/05/2013 17:16:39 ******/ 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: View [dbo].[EmailAddressHistory] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[EmailAddressHistory]')) DROP VIEW [dbo].[EmailAddressHistory] GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDiaryPage3] Script Date: 09/05/2013 17:16:41 ******/ 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: View [dbo].[RevenueOutcomes] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RevenueOutcomes]')) DROP VIEW [dbo].[RevenueOutcomes] GO /****** Object: View [dbo].[RevenueStages] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RevenueStages]')) DROP VIEW [dbo].[RevenueStages] GO /****** Object: View [dbo].[CurrentStages] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[CurrentStages]')) DROP VIEW [dbo].[CurrentStages] GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDiaryPage] Script Date: 09/05/2013 17:16:41 ******/ 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_Diary] Script Date: 09/05/2013 17:16:40 ******/ 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_WDBriefReorderSections] Script Date: 09/05/2013 17:16:41 ******/ 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_WDBriefReorderAllDocs] Script Date: 09/05/2013 17:16:41 ******/ 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_ReorderBriefDocSection2] Script Date: 09/05/2013 17:16:39 ******/ 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_ReorderAllBriefDocuments] Script Date: 09/05/2013 17:16:39 ******/ 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].[ky_ReorderBriefSections] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_WDRemoveBriefDocuments] Script Date: 09/05/2013 17:16:40 ******/ 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: StoredProcedure [dbo].[ky_WDMoveBriefDocuments] Script Date: 09/05/2013 17:16:40 ******/ 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: UserDefinedFunction [dbo].[ky_WDCaseDocList2] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_WDCaseDocList] Script Date: 09/05/2013 17:16:41 ******/ 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: 09/05/2013 17:16:41 ******/ 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_WDCaseDocList4] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_WDCaseDocList3] Script Date: 09/05/2013 17:16:41 ******/ 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: View [dbo].[CaseDocuments] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[CaseDocuments]')) DROP VIEW [dbo].[CaseDocuments] GO /****** Object: StoredProcedure [dbo].[ky_WDCreateTranscription] Script Date: 09/05/2013 17:16:39 ******/ 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_BriefDocAddToSection] Script Date: 09/05/2013 17:16:39 ******/ 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: UserDefinedFunction [dbo].[ky_WDBriefSectionList] Script Date: 09/05/2013 17:16:41 ******/ 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: View [dbo].[BriefContent] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[BriefContent]')) DROP VIEW [dbo].[BriefContent] GO /****** Object: View [dbo].[CaseDocsBriefsView] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[CaseDocsBriefsView]')) DROP VIEW [dbo].[CaseDocsBriefsView] GO /****** Object: StoredProcedure [dbo].[ky_DeleteBrief] Script Date: 09/05/2013 17:16:39 ******/ 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_briefsectionadd] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_FinaliseBrief] Script Date: 09/05/2013 17:16:39 ******/ 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: View [dbo].[MatterTransactionsBalances] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[MatterTransactionsBalances]')) DROP VIEW [dbo].[MatterTransactionsBalances] GO /****** Object: UserDefinedFunction [dbo].[ky_BGListGroupDrillEntries] Script Date: 09/05/2013 17:16:40 ******/ 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_UpdateRecentMatterList] Script Date: 09/05/2013 17:16:39 ******/ 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: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_BGListGroupedEntries] Script Date: 09/05/2013 17:16:40 ******/ 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: View [dbo].[Partners] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[Partners]')) DROP VIEW [dbo].[Partners] GO /****** Object: View [dbo].[Solicitors] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[Solicitors]')) DROP VIEW [dbo].[Solicitors] GO /****** Object: View [dbo].[SupportStaff] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[SupportStaff]')) DROP VIEW [dbo].[SupportStaff] GO /****** Object: StoredProcedure [dbo].[ky_WDUpdateAction_DiaryDel] Script Date: 09/05/2013 17:16:40 ******/ 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_GenerateBrief5] Script Date: 09/05/2013 17:16:39 ******/ 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_briefdocumentadd] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_GenerateBrief] Script Date: 09/05/2013 17:16:39 ******/ 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].[ky_GenerateBrief3] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_GenerateBrief2] Script Date: 09/05/2013 17:16:39 ******/ 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_GenerateBrief4] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_WDGenerateBrief] Script Date: 09/05/2013 17:16:40 ******/ 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].[DiaryBriefs] Script Date: 09/05/2013 17:16:36 ******/ 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: 09/05/2013 17:16:39 ******/ 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: UserDefinedFunction [dbo].[ky_NewerAssignments] Script Date: 09/05/2013 17:16:40 ******/ 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: View [dbo].[NoOverDuePhoneCalls] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[NoOverDuePhoneCalls]')) DROP VIEW [dbo].[NoOverDuePhoneCalls] GO /****** Object: View [dbo].[NoOutstandingTasks] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[NoOutstandingTasks]')) DROP VIEW [dbo].[NoOutstandingTasks] GO /****** Object: View [dbo].[NoOverDueTasks] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[NoOverDueTasks]')) DROP VIEW [dbo].[NoOverDueTasks] GO /****** Object: StoredProcedure [dbo].[ky_DeleteCalendarStep] Script Date: 09/05/2013 17:16:39 ******/ 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: View [dbo].[MatterLastBillDate] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[MatterLastBillDate]')) DROP VIEW [dbo].[MatterLastBillDate] GO /****** Object: StoredProcedure [dbo].[ky_WDListMailAssociations2] Script Date: 09/05/2013 17:16:40 ******/ 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_WDReadTimeEntryLog] Script Date: 09/05/2013 17:16:41 ******/ 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_WDStoreFileBlob] Script Date: 09/05/2013 17:16:40 ******/ 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: UserDefinedFunction [dbo].[ky_WDDelTeamView] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_WDDelView] Script Date: 09/05/2013 17:16:41 ******/ 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: StoredProcedure [dbo].[ky_WDAssignAction_DiaryDel] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_WDReleaseAction_DiaryDel] Script Date: 09/05/2013 17:16:40 ******/ 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: View [dbo].[OpenClosedMatterLedger] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[OpenClosedMatterLedger]')) DROP VIEW [dbo].[OpenClosedMatterLedger] GO /****** Object: View [dbo].[OpenClosedMattersLedger] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[OpenClosedMattersLedger]')) DROP VIEW [dbo].[OpenClosedMattersLedger] GO /****** Object: StoredProcedure [dbo].[ky_WDAlterTimeDayBook] Script Date: 09/05/2013 17:16:39 ******/ 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: UserDefinedFunction [dbo].[ky_WDAllClientContacts] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_WDHFBudgets] Script Date: 09/05/2013 17:16:41 ******/ 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: View [dbo].[ClientDiary] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ClientDiary]')) DROP VIEW [dbo].[ClientDiary] GO /****** Object: StoredProcedure [dbo].[ky_WDDeleteAction] Script Date: 09/05/2013 17:16:39 ******/ 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_SetMatterAlarms] Script Date: 09/05/2013 17:16: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].[ky_AddAlarmDelegate] Script Date: 09/05/2013 17:16:39 ******/ 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_UpdateActionAlarm] Script Date: 09/05/2013 17:16:39 ******/ 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_SetAlarm] Script Date: 09/05/2013 17:16:39 ******/ 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_SetLinkedAlarms] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_SetAlarm2] Script Date: 09/05/2013 17:16:39 ******/ 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_WDAllContacts] Script Date: 09/05/2013 17:16:41 ******/ 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].[ky_WDCaseDiary] Script Date: 09/05/2013 17:16:41 ******/ 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: View [dbo].[AssociateCategoryView] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AssociateCategoryView]')) DROP VIEW [dbo].[AssociateCategoryView] GO /****** Object: UserDefinedFunction [dbo].[ky_WDTimeDayBookWithAxleErrors] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_WDSearchContacts] Script Date: 09/05/2013 17:16:41 ******/ 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_WDMatterList] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_WDSearchMatterContacts] Script Date: 09/05/2013 17:16:41 ******/ 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_WDSearchClientContacts] Script Date: 09/05/2013 17:16:41 ******/ 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: StoredProcedure [dbo].[ky_UpdateCalendarStep] Script Date: 09/05/2013 17:16:39 ******/ 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_CreateDiaryAttachment] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_WDSetTimeDayBookRateCharge] Script Date: 09/05/2013 17:16:40 ******/ 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: UserDefinedFunction [dbo].[ky_WDTaskListSet] Script Date: 09/05/2013 17:16:41 ******/ 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_WDTaskListByHighlightSet] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_WDTaskListByActionTypeSet] Script Date: 09/05/2013 17:16: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_WDPopDayBook] Script Date: 09/05/2013 17:16:41 ******/ 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_WDRecentMatterList] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[WDMatterSearch] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_WDAllMatterContacts] Script Date: 09/05/2013 17:16:41 ******/ 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].[DAByTrackRef] Script Date: 09/05/2013 17:16:40 ******/ 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_OrphanedAlarmCleanup] Script Date: 09/05/2013 17:16:39 ******/ 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_WDMatLedger] Script Date: 09/05/2013 17:16:41 ******/ 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: StoredProcedure [dbo].[ky_WDMatterListCount] Script Date: 09/05/2013 17:16:40 ******/ 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: StoredProcedure [dbo].[ky_UpdateDiaryAttachment] Script Date: 09/05/2013 17:16:39 ******/ 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_WDTaskListCountByHighlight] Script Date: 09/05/2013 17:16:40 ******/ 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_WDTaskListCountByActionType] Script Date: 09/05/2013 17:16:40 ******/ 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: UserDefinedFunction [dbo].[ky_WDTaskListSet2Rev] Script Date: 09/05/2013 17:16:41 ******/ 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: StoredProcedure [dbo].[ky_WDTaskListCount] Script Date: 09/05/2013 17:16:40 ******/ 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: UserDefinedFunction [dbo].[ky_WDTaskListSet2] Script Date: 09/05/2013 17:16:41 ******/ 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: StoredProcedure [dbo].[ky_CreateCalendarStep] Script Date: 09/05/2013 17:16:39 ******/ 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: UserDefinedFunction [dbo].[ky_WDTaskListByHighlightSet2] Script Date: 09/05/2013 17:16:41 ******/ 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: View [dbo].[OpenClosedMatters] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[OpenClosedMatters]')) DROP VIEW [dbo].[OpenClosedMatters] GO /****** Object: UserDefinedFunction [dbo].[ky_WDTaskListByHighlightSet2Rev] Script Date: 09/05/2013 17:16:41 ******/ 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: StoredProcedure [dbo].[ky_GenerateBriefTemplate] Script Date: 09/05/2013 17:16:39 ******/ 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: UserDefinedFunction [dbo].[ky_WDTaskListByActionTypeSet2] Script Date: 09/05/2013 17:16: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].[HandlersDiary] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[HandlersDiary]')) DROP VIEW [dbo].[HandlersDiary] GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListCountByHighlight2] Script Date: 09/05/2013 17:16:40 ******/ 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_WDListMailAssociations] Script Date: 09/05/2013 17:16:40 ******/ 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: View [dbo].[TEMPOpenClosedMatters] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[TEMPOpenClosedMatters]')) DROP VIEW [dbo].[TEMPOpenClosedMatters] GO /****** Object: UserDefinedFunction [dbo].[ky_WDTaskListByActionTypeSet2Rev] Script Date: 09/05/2013 17:16:41 ******/ 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: StoredProcedure [dbo].[ky_WDCheckUnpostableEntries] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_WDTaskListCount2] Script Date: 09/05/2013 17:16:40 ******/ 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_WDTaskListCountByActionType2] Script Date: 09/05/2013 17:16:40 ******/ 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: View [dbo].[WDOpenMatters] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[WDOpenMatters]')) DROP VIEW [dbo].[WDOpenMatters] GO /****** Object: StoredProcedure [dbo].[ky_WDGenerateBriefTemplate] Script Date: 09/05/2013 17:16:40 ******/ 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_BGNewBillFeeBreakdown] Script Date: 09/05/2013 17:16:40 ******/ 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_WDAllCaseAssociates2] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_WDSearchCaseAssociates] Script Date: 09/05/2013 17:16:41 ******/ 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_WDAllCaseAssociates] Script Date: 09/05/2013 17:16:40 ******/ 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: UserDefinedFunction [dbo].[ky_WDHFUndertakings] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_WDMTUndertakings] Script Date: 09/05/2013 17:16:41 ******/ 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_BGPaid] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_BGClearOrphanedGuide] Script Date: 09/05/2013 17:16:39 ******/ 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_WDHFCountDraftInvoices] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_WDListBills] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_CompBillMatterByBatch] Script Date: 09/05/2013 17:16:40 ******/ 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_BGNewBillFeeBreakdownBD] Script Date: 09/05/2013 17:16:40 ******/ 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_FromDesktopBillFeeBreakdown] Script Date: 09/05/2013 17:16:40 ******/ 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: View [dbo].[V_BDFE] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_BDFE]')) DROP VIEW [dbo].[V_BDFE] GO /****** Object: StoredProcedure [dbo].[ky_CreditNote] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_ReCalcBillLinesVAT] Script Date: 09/05/2013 17:16:39 ******/ 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].[ReportInvoices] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[ReportInvoices]')) DROP VIEW [dbo].[ReportInvoices] GO /****** Object: View [dbo].[AllocatedBills] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AllocatedBills]')) DROP VIEW [dbo].[AllocatedBills] GO /****** Object: View [dbo].[AllocatedBillHeadDetails] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[AllocatedBillHeadDetails]')) DROP VIEW [dbo].[AllocatedBillHeadDetails] GO /****** Object: View [dbo].[FeeAllocated] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[FeeAllocated]')) DROP VIEW [dbo].[FeeAllocated] GO /****** Object: StoredProcedure [dbo].[ky_WDUpdateAllMatterTimeBalances] Script Date: 09/05/2013 17:16:40 ******/ 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: StoredProcedure [dbo].[ky_WDTimeWriteoff] Script Date: 09/05/2013 17:16:40 ******/ 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].[ky_WDUpdateMatterTimeBalance] Script Date: 09/05/2013 17:16:40 ******/ 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: View [dbo].[UDF_TimeEntryDebtLedger] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[UDF_TimeEntryDebtLedger]')) DROP VIEW [dbo].[UDF_TimeEntryDebtLedger] GO /****** Object: StoredProcedure [dbo].[ky_WDUpdateTimeEntry] Script Date: 09/05/2013 17:16:40 ******/ 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_WDSetTimeInvoiceNo] Script Date: 09/05/2013 17:16:40 ******/ 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: View [dbo].[LastBillDate] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[LastBillDate]')) DROP VIEW [dbo].[LastBillDate] GO /****** Object: StoredProcedure [dbo].[ky_WDUpdateTimeEntry2] Script Date: 09/05/2013 17:16:40 ******/ 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: View [dbo].[TimeEntryLastDate] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[TimeEntryLastDate]')) DROP VIEW [dbo].[TimeEntryLastDate] GO /****** Object: View [dbo].[TimeLastBilled] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[TimeLastBilled]')) DROP VIEW [dbo].[TimeLastBilled] GO /****** Object: StoredProcedure [dbo].[ky_InitialiseBG] Script Date: 09/05/2013 17:16:39 ******/ 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_RefreshBG] Script Date: 09/05/2013 17:16:39 ******/ 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_WDUpdateTimeEntryFromDayBook] Script Date: 09/05/2013 17:16:40 ******/ 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: View [dbo].[TimeAdminTasks] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[TimeAdminTasks]')) DROP VIEW [dbo].[TimeAdminTasks] GO /****** Object: View [dbo].[TimeTasks] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[TimeTasks]')) DROP VIEW [dbo].[TimeTasks] GO /****** Object: View [dbo].[HandlersStats] Script Date: 09/05/2013 17:16:36 ******/ IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[HandlersStats]')) DROP VIEW [dbo].[HandlersStats] GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchClientContacts3] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_WDSearchMatterContacts3] Script Date: 09/05/2013 17:16:41 ******/ 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_WDSearchClientContacts2] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_WDMatterList2] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_WDSearchContacts2] Script Date: 09/05/2013 17:16:41 ******/ 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: 09/05/2013 17:16:41 ******/ 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_WDSearchCaseAssociates3] Script Date: 09/05/2013 17:16:41 ******/ 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: 09/05/2013 17:16:41 ******/ 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_WDSearchMatterContacts2] Script Date: 09/05/2013 17:16:41 ******/ 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_WDMatSearch] Script Date: 09/05/2013 17:16:41 ******/ 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_WDGetTAList] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_WDGetPhoneTAs] Script Date: 09/05/2013 17:16:41 ******/ 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_WDGetEmailTAs] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_WDGetNoteTAs] Script Date: 09/05/2013 17:16:41 ******/ 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].[ky_WDGetTAList2] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_WDActionCheckDependentActions] Script Date: 09/05/2013 17:16:40 ******/ 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: UserDefinedFunction [dbo].[ky_WDActionAuthorisedToComplete] Script Date: 09/05/2013 17:16:40 ******/ 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: StoredProcedure [dbo].[ky_CreateDiaryStep] Script Date: 09/05/2013 17:16:39 ******/ 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_WDCreateDiaryStep2] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_CreateDiaryStepWS] Script Date: 09/05/2013 17:16:39 ******/ 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_GetFileLocation] Script Date: 09/05/2013 17:16:39 ******/ 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].[sp_KEYHOUSEEXTRACT] Script Date: 09/05/2013 17:16:40 ******/ 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: UserDefinedFunction [dbo].[ky_WDTimeEntry] Script Date: 09/05/2013 17:16:41 ******/ 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_TimeFromMinutes] Script Date: 09/05/2013 17:16:40 ******/ 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: UserDefinedFunction [dbo].[ky_RemoveSpuriousWhitespace2] Script Date: 09/05/2013 17:16:40 ******/ 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_RemoveSpuriousWhitespace] Script Date: 09/05/2013 17:16:40 ******/ 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: UserDefinedFunction [dbo].[ky_WDGetDate] Script Date: 09/05/2013 17:16:41 ******/ 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_ConvertDateAndClarionTimeToDateTime] Script Date: 09/05/2013 17:16:40 ******/ 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_ConvertTimeToClarion] Script Date: 09/05/2013 17:16:40 ******/ 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_WDGetTimePassed] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_GetFirstLineOfAddress] Script Date: 09/05/2013 17:16:40 ******/ 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_WDNextWhile] Script Date: 09/05/2013 17:16:41 ******/ 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: UserDefinedFunction [dbo].[ky_GetNameFromEmailAddress] Script Date: 09/05/2013 17:16:40 ******/ 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_HeuristicPhoneNumber] Script Date: 09/05/2013 17:16:40 ******/ 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: UserDefinedFunction [dbo].[ky_GetAddressFromEmailAddress] Script Date: 09/05/2013 17:16:40 ******/ 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: UserDefinedFunction [dbo].[ky_getDuration] Script Date: 09/05/2013 17:16:40 ******/ 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_getDuration] Script Date: 09/05/2013 17:16: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_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_GetAddressFromEmailAddress] Script Date: 09/05/2013 17:16: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_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_HeuristicPhoneNumber] Script Date: 09/05/2013 17:16: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_HeuristicPhoneNumber]') 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_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) 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, '')'', '''') 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_GetNameFromEmailAddress] Script Date: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[ky_WDNextWhile] Script Date: 09/05/2013 17:16: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_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: 09/05/2013 17:16: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_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: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[ky_ConvertTimeToClarion] Script Date: 09/05/2013 17:16: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_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: 09/05/2013 17:16: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_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: 09/05/2013 17:16: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_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: 09/05/2013 17:16: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_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: 09/05/2013 17:16: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_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_TimeFromMinutes] Script Date: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[ky_WDTimeEntry] Script Date: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[sp_KEYHOUSEEXTRACT] Script Date: 09/05/2013 17:16: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].[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: StoredProcedure [dbo].[ky_GetFileLocation] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_CreateDiaryStepWS] Script Date: 09/05/2013 17:16:39 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF 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 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], [Attachments], [EmailAddress], [AddressTo], [ccTo], [bccTo], [email], [Subject], [Publish], [ActionType], [ProcessType], [DYStartTime], [ActionId], [Date], [TxmDate]) SELECT @pStatus, @pCaseCode, @pActionCode, @pActionStatus, @pFnCode, @pTeamCode, convert(text, @pText1), @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 GO /****** Object: StoredProcedure [dbo].[ky_WDCreateDiaryStep2] Script Date: 09/05/2013 17:16: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_WDCreateDiaryStep2]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'/************************************************************************ * * Create Diary Step WinDev/WebDev version - Version 2, suitable for Add Task * as well as assigning a mail to Case * *************************************************************************/ 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 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], [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), @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 GO /****** Object: StoredProcedure [dbo].[ky_CreateDiaryStep] Script Date: 09/05/2013 17:16:39 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF 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 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], [Attachments], [EmailAddress], [AddressTo], [ccTo], [bccTo], [email], [Subject], [Publish], [ActionType], [ProcessType], [DYStartTime], [ActionId], [Date]) SELECT @pStatus, @pCaseCode, @pActionCode, @pActionStatus, @pFnCode, @pTeamCode, convert(text, @pText1), @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 GO /****** Object: UserDefinedFunction [dbo].[ky_WDActionAuthorisedToComplete] Script Date: 09/05/2013 17:16: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_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_WDActionCheckDependentActions] Script Date: 09/05/2013 17:16: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_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_WDGetTAList2] Script Date: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[ky_WDGetNoteTAs] Script Date: 09/05/2013 17:16: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_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_WDGetEmailTAs] Script Date: 09/05/2013 17:16: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_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_WDGetPhoneTAs] Script Date: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[ky_WDGetTAList] Script Date: 09/05/2013 17:16: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_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_WDMatSearch] Script Date: 09/05/2013 17:16: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_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_WDSearchMatterContacts2] Script Date: 09/05/2013 17:16: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_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_WDSearchContacts3] Script Date: 09/05/2013 17:16: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_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_WDSearchCaseAssociates3] Script Date: 09/05/2013 17:16: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_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_WDSearchCaseAssociates2] Script Date: 09/05/2013 17:16: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_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_WDSearchContacts2] Script Date: 09/05/2013 17:16: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_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_WDMatterList2] Script Date: 09/05/2013 17:16: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_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_WDSearchClientContacts2] Script Date: 09/05/2013 17:16: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_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: 09/05/2013 17:16: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_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_WDSearchClientContacts3] Script Date: 09/05/2013 17:16: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_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: View [dbo].[HandlersStats] Script Date: 09/05/2013 17:16:36 ******/ 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 (INVOICENO = 0) 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].[TimeTasks] Script Date: 09/05/2013 17:16:36 ******/ 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: 09/05/2013 17:16:36 ******/ 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: StoredProcedure [dbo].[ky_WDUpdateTimeEntryFromDayBook] Script Date: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[ky_RefreshBG] Script Date: 09/05/2013 17:16: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_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(255) 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(255) 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(255), 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(255), 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(255), 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(255), 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 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: 09/05/2013 17:16: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_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], convert(varchar(255), 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], convert(varchar(255), 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], convert(varchar(255), 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], convert(varchar(255), 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: View [dbo].[TimeLastBilled] Script Date: 09/05/2013 17:16:36 ******/ 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: 09/05/2013 17:16:36 ******/ 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_WDUpdateTimeEntry2] Script Date: 09/05/2013 17:16: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_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: View [dbo].[LastBillDate] Script Date: 09/05/2013 17:16:36 ******/ 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_WDSetTimeInvoiceNo] Script Date: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[ky_WDUpdateTimeEntry] Script Date: 09/05/2013 17:16: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_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: View [dbo].[UDF_TimeEntryDebtLedger] Script Date: 09/05/2013 17:16:36 ******/ 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].[ky_WDUpdateMatterTimeBalance] Script Date: 09/05/2013 17:16: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_WDUpdateMatterTimeBalance]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'/************************************************************************ * * Update Matter Time Balance * *************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDUpdateMatterTimeBalance] (@MATTER varchar(20)) 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 WHERE MAT.[Code] = @MATTER END' END GO /****** Object: StoredProcedure [dbo].[ky_WDTimeWriteoff] Script Date: 09/05/2013 17:16: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_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_WDUpdateAllMatterTimeBalances] Script Date: 09/05/2013 17:16: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_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: View [dbo].[FeeAllocated] Script Date: 09/05/2013 17:16:36 ******/ 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: 09/05/2013 17:16:36 ******/ 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: 09/05/2013 17:16:36 ******/ 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].[ReportInvoices] Script Date: 09/05/2013 17:16:36 ******/ 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_ReCalcBillLinesVAT] Script Date: 09/05/2013 17:16: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_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 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_CreditNote] Script Date: 09/05/2013 17:16: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_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] -- 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. DECLARE VATRATESC CURSOR FOR 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 OPEN VATRATESC FETCH NEXT FROM VATRATESC INTO @THISVATRATE WHILE @@FETCH_STATUS = 0 BEGIN SET @VATENTRY = @VATENTRY + 1 select @THISNET = 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] = @THISVATRATE set @THISVATVALUE = Round(((@THISNET * @THISVATRATE) / 100), 2) -- If this is the first distinct VAT Rate, set the values for RATE1 IF (@VATENTRY = 1) BEGIN SET @RATE1 = @THISVATRATE SET @NETRATE1 = @THISNET SET @VATRATE1 = @THISVATVALUE END -- If this is the second distinct VAT Rate, set the values for RATE2 IF (@VATENTRY = 2) BEGIN SET @RATE2 = @THISVATRATE SET @NETRATE2 = @THISNET SET @VATRATE2 = @THISVATVALUE END FETCH NEXT FROM VATRATESC INTO @THISVATRATE END CLOSE VATRATESC DEALLOCATE VATRATESC 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: View [dbo].[V_BDFE] Script Date: 09/05/2013 17:16:36 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[V_BDFE]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[V_BDFE] AS SELECT DRAFTNO, MATTER, TYPE, FEEEARNER, SUM(NET) AS totNET, SUM(VATVALUE) AS totVAT FROM dbo.BillDetails GROUP BY DRAFTNO, MATTER, FEEEARNER, TYPE HAVING (DRAFTNO = 114) AND (TYPE = ''F'') ' GO IF NOT EXISTS (SELECT * FROM ::fn_listextendedproperty(N'MS_DiagramPane1' , N'SCHEMA',N'dbo', N'VIEW',N'V_BDFE', 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 = "BillDetails" Begin Extent = Top = 6 Left = 38 Bottom = 114 Right = 189 End DisplayFlags = 280 TopColumn = 8 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 = 12 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'V_BDFE' GO IF NOT EXISTS (SELECT * FROM ::fn_listextendedproperty(N'MS_DiagramPaneCount' , N'SCHEMA',N'dbo', N'VIEW',N'V_BDFE', NULL,NULL)) EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'V_BDFE' GO /****** Object: UserDefinedFunction [dbo].[ky_FromDesktopBillFeeBreakdown] Script Date: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[ky_BGNewBillFeeBreakdownBD] Script Date: 09/05/2013 17:16: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_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_CompBillMatterByBatch] Script Date: 09/05/2013 17:16: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_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_WDListBills] Script Date: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[ky_WDHFCountDraftInvoices] Script Date: 09/05/2013 17:16: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_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_BGClearOrphanedGuide] Script Date: 09/05/2013 17:16: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_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: 09/05/2013 17:16: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_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_WDMTUndertakings] Script Date: 09/05/2013 17:16: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_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] varchar(30), [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], UND.[DISCHARGEDATE], NULL, 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: UserDefinedFunction [dbo].[ky_WDHFUndertakings] Script Date: 09/05/2013 17:16: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_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] varchar(30), [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], UND.[DISCHARGEDATE], NULL, 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_WDAllCaseAssociates] Script Date: 09/05/2013 17:16: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_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_WDSearchCaseAssociates] Script Date: 09/05/2013 17:16: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_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_WDAllCaseAssociates2] Script Date: 09/05/2013 17:16: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_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_BGNewBillFeeBreakdown] Script Date: 09/05/2013 17:16: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_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 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(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] ' END GO /****** Object: StoredProcedure [dbo].[ky_WDGenerateBriefTemplate] Script Date: 09/05/2013 17:16: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_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: View [dbo].[WDOpenMatters] Script Date: 09/05/2013 17:16:36 ******/ 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_WDTaskListCountByActionType2] Script Date: 09/05/2013 17:16: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_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 * **************************************************************************************/ 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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_WDTaskListCount2] Script Date: 09/05/2013 17:16: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_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 * **************************************************************************************/ 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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_WDCheckUnpostableEntries] Script Date: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[ky_WDTaskListByActionTypeSet2Rev] Script Date: 09/05/2013 17:16: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_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: View [dbo].[TEMPOpenClosedMatters] Script Date: 09/05/2013 17:16:36 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[TEMPOpenClosedMatters]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[TEMPOpenClosedMatters] 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, 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, 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 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, '''')) ' GO /****** Object: StoredProcedure [dbo].[ky_WDListMailAssociations] Script Date: 09/05/2013 17:16: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_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_WDTaskListCountByHighlight2] Script Date: 09/05/2013 17:16: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_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 * **************************************************************************************/ 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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: View [dbo].[HandlersDiary] Script Date: 09/05/2013 17:16:36 ******/ 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: UserDefinedFunction [dbo].[ky_WDTaskListByActionTypeSet2] Script Date: 09/05/2013 17:16: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: StoredProcedure [dbo].[ky_GenerateBriefTemplate] Script Date: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[ky_WDTaskListByHighlightSet2Rev] Script Date: 09/05/2013 17:16: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_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: View [dbo].[OpenClosedMatters] Script Date: 09/05/2013 17:16:36 ******/ 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] 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, '''')) ' GO IF NOT EXISTS (SELECT * FROM ::fn_listextendedproperty(N'MS_DiagramPane1' , N'SCHEMA',N'dbo', N'VIEW',N'OpenClosedMatters', 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[21] 4[40] 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 = 6 Left = 38 Bottom = 114 Right = 216 End DisplayFlags = 280 TopColumn = 0 End Begin Table = "Closed" Begin Extent = Top = 6 Left = 254 Bottom = 114 Right = 438 End DisplayFlags = 280 TopColumn = 0 End End End Begin SQLPane = End Begin DataPane = Begin ParameterDefaults = "" End End Begin CriteriaPane = Begin ColumnWidths = 11 Column = 7605 Alias = 2520 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'OpenClosedMatters' GO IF NOT EXISTS (SELECT * FROM ::fn_listextendedproperty(N'MS_DiagramPaneCount' , N'SCHEMA',N'dbo', N'VIEW',N'OpenClosedMatters', NULL,NULL)) EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'OpenClosedMatters' GO /****** Object: UserDefinedFunction [dbo].[ky_WDTaskListByHighlightSet2] Script Date: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[ky_CreateCalendarStep] Script Date: 09/05/2013 17:16:39 ******/ 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, Subject, Publish, ActionType, ProcessType, DYStartTime, ActionId, [Date]) Values (@pStatus, @pCaseCode, @pActionCode, @pActionStatus, @pFnCode, @pTeamCode, @pText1, @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_WDTaskListSet2] Script Date: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[ky_WDTaskListCount] Script Date: 09/05/2013 17:16: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_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 * **************************************************************************************/ 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] 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] 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] 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] 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] 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] 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] 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] 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: UserDefinedFunction [dbo].[ky_WDTaskListSet2Rev] Script Date: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[ky_WDTaskListCountByActionType] Script Date: 09/05/2013 17:16: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_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 * **************************************************************************************/ 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] 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] 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] 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] 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] 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] 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] 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] 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_WDTaskListCountByHighlight] Script Date: 09/05/2013 17:16: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_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 * **************************************************************************************/ 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] 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] 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] 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] 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] 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] 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] 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] 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: StoredProcedure [dbo].[ky_UpdateDiaryAttachment] Script Date: 09/05/2013 17:16:39 ******/ 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: StoredProcedure [dbo].[ky_WDMatterListCount] Script Date: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[ky_WDMatLedger] Script Date: 09/05/2013 17:16: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_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_OrphanedAlarmCleanup] Script Date: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[DAByTrackRef] Script Date: 09/05/2013 17:16: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].[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: UserDefinedFunction [dbo].[ky_WDAllMatterContacts] Script Date: 09/05/2013 17:16: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_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].[WDMatterSearch] Script Date: 09/05/2013 17:16: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].[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: UserDefinedFunction [dbo].[ky_WDRecentMatterList] Script Date: 09/05/2013 17:16: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_WDRecentMatterList]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT')) BEGIN execute dbo.sp_executesql @statement = N' /************************************************************************ * * Recent Matter List * *************************************************************************/ Create Function [dbo].[ky_WDRecentMatterList](@Handler varchar(10)) RETURNS @MATZ TABLE ([CODE] varchar(20)) AS BEGIN INSERT INTO @MATZ ([CODE]) SELECT MAT.[Code] AS [MatterCode] FROM [dbo].[matters] MAT --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].[Departments] DEP -- ON DEP.[Code] = MAT.[Dept] --LEFT OUTER JOIN [dbo].[WorkTypes] WKT -- ON WKT.[Code] = MAT.[WType] 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: UserDefinedFunction [dbo].[ky_WDPopDayBook] Script Date: 09/05/2013 17:16: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_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_WDTaskListByActionTypeSet] Script Date: 09/05/2013 17:16: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_WDTaskListByHighlightSet] Script Date: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[ky_WDTaskListSet] Script Date: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[ky_WDSetTimeDayBookRateCharge] Script Date: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[ky_CreateDiaryAttachment] Script Date: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[ky_UpdateCalendarStep] Script Date: 09/05/2013 17:16:39 ******/ 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_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 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, 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 GO /****** Object: UserDefinedFunction [dbo].[ky_WDSearchClientContacts] Script Date: 09/05/2013 17:16: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_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_WDSearchMatterContacts] Script Date: 09/05/2013 17:16: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_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_WDMatterList] Script Date: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[ky_WDSearchContacts] Script Date: 09/05/2013 17:16: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_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].[ky_WDTimeDayBookWithAxleErrors] Script Date: 09/05/2013 17:16: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_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: View [dbo].[AssociateCategoryView] Script Date: 09/05/2013 17:16:36 ******/ 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: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[ky_WDAllContacts] Script Date: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[ky_SetAlarm2] Script Date: 09/05/2013 17:16: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_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_SetLinkedAlarms] Script Date: 09/05/2013 17:16: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_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_SetAlarm] Script Date: 09/05/2013 17:16: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_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) 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, ''''), 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 GO /****** Object: StoredProcedure [dbo].[ky_UpdateActionAlarm] Script Date: 09/05/2013 17:16: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_UpdateActionAlarm]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'create procedure [dbo].[ky_UpdateActionAlarm] (@LinkID varchar(50)) AS 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_AddAlarmDelegate] Script Date: 09/05/2013 17:16: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_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_SetMatterAlarms] Script Date: 09/05/2013 17:16: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: StoredProcedure [dbo].[ky_WDDeleteAction] Script Date: 09/05/2013 17:16: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_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: View [dbo].[ClientDiary] Script Date: 09/05/2013 17:16:36 ******/ 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: UserDefinedFunction [dbo].[ky_WDHFBudgets] Script Date: 09/05/2013 17:16: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_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: 09/05/2013 17:16: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_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].[ky_WDAlterTimeDayBook] Script Date: 09/05/2013 17:16: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_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: View [dbo].[OpenClosedMattersLedger] Script Date: 09/05/2013 17:16:36 ******/ 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] 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 ' GO /****** Object: View [dbo].[OpenClosedMatterLedger] Script Date: 09/05/2013 17:16:36 ******/ 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] 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 ' GO /****** Object: StoredProcedure [dbo].[ky_WDReleaseAction_DiaryDel] Script Date: 09/05/2013 17:16: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_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: 09/05/2013 17:16: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_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_WDDelView] Script Date: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[ky_WDDelTeamView] Script Date: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[ky_WDStoreFileBlob] Script Date: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[ky_WDReadTimeEntryLog] Script Date: 09/05/2013 17:16: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_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: 09/05/2013 17:16: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_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: 09/05/2013 17:16:36 ******/ 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].[ky_DeleteCalendarStep] Script Date: 09/05/2013 17:16:39 ******/ 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: 09/05/2013 17:16:36 ******/ 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: 09/05/2013 17:16:36 ******/ 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: View [dbo].[NoOverDuePhoneCalls] Script Date: 09/05/2013 17:16:36 ******/ 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: UserDefinedFunction [dbo].[ky_NewerAssignments] Script Date: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[ky_WDAddBriefDocuments] Script Date: 09/05/2013 17:16: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_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: View [dbo].[DiaryBriefs] Script Date: 09/05/2013 17:16:36 ******/ 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_WDGenerateBrief] Script Date: 09/05/2013 17:16: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_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_GenerateBrief4] Script Date: 09/05/2013 17:16: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_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_GenerateBrief2] Script Date: 09/05/2013 17:16: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_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_GenerateBrief3] Script Date: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[ky_GenerateBrief] Script Date: 09/05/2013 17:16: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_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_briefdocumentadd] Script Date: 09/05/2013 17:16: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_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_GenerateBrief5] Script Date: 09/05/2013 17:16: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_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_WDUpdateAction_DiaryDel] Script Date: 09/05/2013 17:16: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_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: View [dbo].[SupportStaff] Script Date: 09/05/2013 17:16:36 ******/ 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: View [dbo].[Solicitors] Script Date: 09/05/2013 17:16:36 ******/ 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: 09/05/2013 17:16:36 ******/ 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: UserDefinedFunction [dbo].[ky_BGListGroupedEntries] Script Date: 09/05/2013 17:16: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_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_WDTimeEntryByRecordID] Script Date: 09/05/2013 17:16: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_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].[ky_UpdateRecentMatterList] Script Date: 09/05/2013 17:16: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_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_BGListGroupDrillEntries] Script Date: 09/05/2013 17:16: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_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].[MatterTransactionsBalances] Script Date: 09/05/2013 17:16:36 ******/ 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_FinaliseBrief] Script Date: 09/05/2013 17:16: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_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_briefsectionadd] Script Date: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[ky_DeleteBrief] Script Date: 09/05/2013 17:16: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_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: View [dbo].[CaseDocsBriefsView] Script Date: 09/05/2013 17:16:36 ******/ 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: 09/05/2013 17:16:36 ******/ 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: UserDefinedFunction [dbo].[ky_WDBriefSectionList] Script Date: 09/05/2013 17:16: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_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_BriefDocAddToSection] Script Date: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[ky_WDCreateTranscription] Script Date: 09/05/2013 17:16: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_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: View [dbo].[CaseDocuments] Script Date: 09/05/2013 17:16:36 ******/ 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: 09/05/2013 17:16: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_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: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[ky_WDDiaryDocList] Script Date: 09/05/2013 17:16: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_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_WDCaseDocList] Script Date: 09/05/2013 17:16: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_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_WDCaseDocList2] Script Date: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[ky_WDMoveBriefDocuments] Script Date: 09/05/2013 17:16: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_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_WDRemoveBriefDocuments] Script Date: 09/05/2013 17:16: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_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_ReorderBriefSections] Script Date: 09/05/2013 17:16: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_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_ReorderAllBriefDocuments] Script Date: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[ky_ReorderBriefDocSection2] Script Date: 09/05/2013 17:16: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_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_WDBriefReorderAllDocs] Script Date: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[ky_WDBriefReorderSections] Script Date: 09/05/2013 17:16: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_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_Diary] Script Date: 09/05/2013 17:16: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_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: 09/05/2013 17:16: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_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: View [dbo].[CurrentStages] Script Date: 09/05/2013 17:16:36 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[CurrentStages]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[CurrentStages] AS SELECT TOP 100 PERCENT CASECODE, DATE, STATUS, ACTIONCODE, ACTIONSTATUS, TxmSent, TxmDate, TxmSeqNo, LEFT(CASECODE, 6) AS Expr1, ACTIONID FROM dbo.diary WHERE (TxmSent = 0) AND (STATUS = 0) AND (ACTIONSTATUS = ''10'' OR ACTIONSTATUS = ''13'' OR ACTIONSTATUS = ''16'' OR ACTIONSTATUS = ''19'' OR ACTIONSTATUS = ''22'' OR ACTIONSTATUS = ''25'' OR ACTIONSTATUS = ''28'' OR ACTIONSTATUS = ''31'' OR ACTIONSTATUS = ''32'' OR ACTIONSTATUS = ''34'' OR ACTIONSTATUS = ''37'' OR ACTIONSTATUS = ''43'' OR ACTIONSTATUS = ''44'' OR ACTIONSTATUS = ''45'' OR ACTIONSTATUS = ''46'' OR ACTIONSTATUS = ''47'' OR ACTIONSTATUS = ''49'' OR ACTIONSTATUS = ''50'' OR ACTIONSTATUS = ''52'' OR ACTIONSTATUS = ''54'' OR ACTIONSTATUS = ''55'' OR ACTIONSTATUS = ''58'' OR ACTIONSTATUS = ''59'' OR ACTIONSTATUS = ''61'' OR ACTIONSTATUS = ''64'' OR ACTIONSTATUS = ''65'' OR ACTIONSTATUS = ''66'' OR ACTIONSTATUS = ''67'' OR ACTIONSTATUS = ''68'' OR ACTIONSTATUS = ''69'' OR ACTIONSTATUS = ''71'' OR ACTIONSTATUS = ''73'' OR ACTIONSTATUS = ''74'' OR ACTIONSTATUS = ''99'') AND (LEFT(CASECODE, 6) = ''RDR001'') ORDER BY CASECODE, DATE' GO /****** Object: View [dbo].[RevenueStages] Script Date: 09/05/2013 17:16:36 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RevenueStages]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[RevenueStages] AS SELECT TOP 100 PERCENT CASECODE, DATE, STATUS, ACTIONCODE, ACTIONSTATUS, TxmSent, TxmDate, TxmSeqNo, ACTIONID FROM dbo.diary WHERE (TxmSent = ''false'') AND (STATUS = 1) AND (ACTIONSTATUS = ''10'' OR ACTIONSTATUS = ''13'' OR ACTIONSTATUS = ''16'' OR ACTIONSTATUS = ''19'' OR ACTIONSTATUS = ''22'' OR ACTIONSTATUS = ''25'' OR ACTIONSTATUS = ''28'' OR ACTIONSTATUS = ''31'' OR ACTIONSTATUS = ''32'' OR ACTIONSTATUS = ''34'' OR ACTIONSTATUS = ''37'' OR ACTIONSTATUS = ''43'' OR ACTIONSTATUS = ''44'' OR ACTIONSTATUS = ''45'' OR ACTIONSTATUS = ''46'' OR ACTIONSTATUS = ''47'' OR ACTIONSTATUS = ''49'' OR ACTIONSTATUS = ''50'' OR ACTIONSTATUS = ''52'' OR ACTIONSTATUS = ''54'' OR ACTIONSTATUS = ''55'' OR ACTIONSTATUS = ''58'' OR ACTIONSTATUS = ''59'' OR ACTIONSTATUS = ''61'' OR ACTIONSTATUS = ''64'' OR ACTIONSTATUS = ''65'' OR ACTIONSTATUS = ''66'' OR ACTIONSTATUS = ''67'' OR ACTIONSTATUS = ''68'' OR ACTIONSTATUS = ''69'' OR ACTIONSTATUS = ''71'' OR ACTIONSTATUS = ''73'' OR ACTIONSTATUS = ''74'' OR ACTIONSTATUS = ''99'') AND (LEFT(CASECODE, 6) = ''RDR001'') ORDER BY CASECODE, DATE' GO /****** Object: View [dbo].[RevenueOutcomes] Script Date: 09/05/2013 17:16:36 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RevenueOutcomes]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[RevenueOutcomes] AS SELECT TOP 100 PERCENT CASECODE, DATE, STATUS, ACTIONCODE, ACTIONSTATUS, TxmSent, TxmDate, TxmSeqNo, ACTIONID, TEXT1 FROM dbo.diary WHERE (TxmSent = ''false'') AND (STATUS = 1) AND (ACTIONCODE = ''O01'' OR ACTIONCODE = ''O02'' OR ACTIONCODE = ''O03'' OR ACTIONCODE = ''O04'' OR ACTIONCODE = ''O05'' OR ACTIONCODE = ''O06'' OR ACTIONCODE = ''O07'' OR ACTIONCODE = ''O08'' OR ACTIONCODE = ''O19'' OR ACTIONCODE = ''O20'' OR ACTIONCODE = ''O21'' OR ACTIONCODE = ''O23'' OR ACTIONCODE = ''O24'' OR ACTIONCODE = ''O25'' OR ACTIONCODE = ''O28'' OR ACTIONCODE = ''O29'' OR ACTIONCODE = ''O34'') AND (ACTIONSTATUS = ''NA'') AND (LEFT(CASECODE, 6) = ''RDR001'') ORDER BY CASECODE, DATE' GO /****** Object: UserDefinedFunction [dbo].[ky_WDCaseDiaryPage3] Script Date: 09/05/2013 17:16: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_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: View [dbo].[EmailAddressHistory] Script Date: 09/05/2013 17:16:36 ******/ 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].[ky_ReorderBriefDocSection] Script Date: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[ky_WDBriefSectionDocs] Script Date: 09/05/2013 17:16: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_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_BGDelete] Script Date: 09/05/2013 17:16: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_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 -- 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(@DraftNo, 0) <> 0) -- AND (BGC.[DraftNo] = IsNull(@DraftNo, 0))) -- OR ( (IsNull(@DraftNo, 0) = 0) -- AND (BGC.[BatchNo] = @BatchNo)) 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 (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 (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 (BGC.[BatchNo] = @BatchNo)) END ' END GO /****** Object: UserDefinedFunction [dbo].[ky_BGListTotals] Script Date: 09/05/2013 17:16: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_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_BGResetCR] Script Date: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[ky_MoveGroupBG] Script Date: 09/05/2013 17:16: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_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 BEGIN DECLARE @SeqNo int DECLARE @CursID uniqueidentifier UPDATE BGD SET BGD.[BGGroupID] = convert(uniqueidentifier, @NewGroupID), BGD.[SeqNo] = MX.MaxSeqNo + BGD.SeqNo FROM (SELECT IsNull(Max(BGDMAX.[SeqNo]), 0) As [MaxSeqNo] FROM [dbo].[BGDetail] BGDMAX WHERE BGDMAX.[BGGroupID] = convert(uniqueidentifier, @NewGroupID)) MX INNER JOIN [dbo].[BGDetail] BGD ON 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 SET @SeqNo = 0 DECLARE Reseq cursor for SELECT [ID] FROM [dbo].[BGGroups] WHERE [BGControlID] = @ControlID ORDER BY [SeqNo] OPEN Reseq FETCH NEXT FROM Reseq INTO @CursID WHILE @@FETCH_STATUS = 0 BEGIN SET @SeqNo = @SeqNo + 1 UPDATE [dbo].[BGGroups] SET SeqNo = @SeqNo WHERE [ID] = @CursID FETCH NEXT FROM Reseq INTO @CursID END CLOSE Reseq DEALLOCATE Reseq SET @SeqNo = 0 DECLARE Reseq cursor for SELECT [ID] FROM [dbo].[BGDetail] WHERE [BGGroupID] = convert(uniqueidentifier, @NewGroupID) ORDER BY [Type], RTRIM(IsNull([Matter], '''')), IsNull(convert(varchar, [Date], 121), ''''), Narrative, OriginalID OPEN Reseq FETCH NEXT FROM Reseq INTO @CursID WHILE @@FETCH_STATUS = 0 BEGIN SET @SeqNo = @SeqNo + 1 UPDATE [dbo].[BGDetail] SET SeqNo = @SeqNo WHERE [ID] = @CursID FETCH NEXT FROM Reseq INTO @CursID END CLOSE Reseq DEALLOCATE Reseq END ' END GO /****** Object: StoredProcedure [dbo].[ky_ReorderGroupBG] Script Date: 09/05/2013 17:16: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_ReorderGroupBG]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[ky_ReorderGroupBG] (@ControlID int) AS DECLARE @SeqNo int DECLARE @CursID uniqueidentifier /* Re-sequence groups so that the sequence numbers remain contiguous*/ SET @SeqNo = 0 DECLARE Reseq cursor for SELECT [ID] FROM [dbo].[BGGroups] WHERE [BGControlID] = @ControlID ORDER BY [SeqNo] OPEN Reseq FETCH NEXT FROM Reseq INTO @CursID WHILE @@FETCH_STATUS = 0 BEGIN SET @SeqNo = @SeqNo + 1 UPDATE [dbo].[BGGroups] SET SeqNo = @SeqNo WHERE [ID] = @CursID FETCH NEXT FROM Reseq INTO @CursID END CLOSE Reseq DEALLOCATE Reseq ' END GO /****** Object: StoredProcedure [dbo].[ky_BGPayItem] Script Date: 09/05/2013 17:16: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_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: 09/05/2013 17:16: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].[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_WDActionComplete3] Script Date: 09/05/2013 17:16: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_WDActionComplete3]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDActionComplete3 * * Completes / Returns an Action - depending on whether this SP is invoked by the owner * or a delegate. Also allows for taking ownership * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDActionComplete3] (@ActionID int, @CurFee varchar(10), @CurTeam varchar(10), @NextActionsXML varchar(4000), @TakeOwnership int) AS 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], [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], @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: 09/05/2013 17:16: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_WDActionComplete]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDActionComplete * * Completes / Returns an Action - depending on whether this SP is invoked by the owner * or a delegate. * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDActionComplete] (@ActionID int, @CurFee varchar(10), @NextActionsXML varchar(4000)) AS 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], [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], @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: 09/05/2013 17:16: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_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_WDActionComplete2] Script Date: 09/05/2013 17:16: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_WDActionComplete2]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDActionComplete2 * * Completes / Returns an Action - depending on whether this SP is invoked by the owner * or a delegate. Also allows for taking ownership * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDActionComplete2] (@ActionID int, @CurFee varchar(10), @NextActionsXML varchar(4000), @TakeOwnership int) AS 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], [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], @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_SetActionAutoAlarm] Script Date: 09/05/2013 17:16: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_SetActionAutoAlarm]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'create procedure [dbo].[ky_SetActionAutoAlarm] (@LinkID varchar(50)) AS 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_WDTaskListByActionTypePage2Rev] Script Date: 09/05/2013 17:16: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_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], RTrim([dbo].[ky_removespuriouswhitespace2](substring(DIA.[TEXT1], 1, 500), 500)) 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] 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] ORDER BY TSK.[DelegatedDateTime] DESC END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListByHighlightPage2] Script Date: 09/05/2013 17:16: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_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], RTrim([dbo].[ky_removespuriouswhitespace2](substring(DIA.[TEXT1], 1, 500), 500)) 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] 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] ORDER BY TSK.[DelegatedDateTime] END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListByHighlightPage2Rev] Script Date: 09/05/2013 17:16: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_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], RTrim([dbo].[ky_removespuriouswhitespace2](substring(DIA.[TEXT1], 1, 500), 500)) 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] 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] ORDER BY TSK.[DelegatedDateTime] DESC END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListByActionTypePage2] Script Date: 09/05/2013 17:16: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_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], RTrim([dbo].[ky_removespuriouswhitespace2](substring(DIA.[TEXT1], 1, 500), 500)) 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] 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] ORDER BY TSK.[DelegatedDateTime] END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListPage2] Script Date: 09/05/2013 17:16: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_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], RTrim([dbo].[ky_removespuriouswhitespace2](substring(DIA.[TEXT1], 1, 500), 500)) 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] 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] ORDER BY TSK.[DelegatedDateTime] END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListPage] Script Date: 09/05/2013 17:16: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_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.[TEXT1], 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] 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] ORDER BY TSK.[DelegatedDateTime] END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListPage2Rev] Script Date: 09/05/2013 17:16: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_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], RTrim([dbo].[ky_removespuriouswhitespace2](substring(DIA.[TEXT1], 1, 500), 500)) 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] 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] ORDER BY TSK.[DelegatedDateTime] DESC END ' END GO /****** Object: StoredProcedure [dbo].[ky_BGProcess] Script Date: 09/05/2013 17:16: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_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: 09/05/2013 17:16: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_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: View [dbo].[LastMatterDates] Script Date: 09/05/2013 17:16:36 ******/ 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: StoredProcedure [dbo].[ky_WDPostDayBook] Script Date: 09/05/2013 17:16: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_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: View [dbo].[KPIClientStats] Script Date: 09/05/2013 17:16:36 ******/ 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_WDHandlerTimeBudgetDashboard] Script Date: 09/05/2013 17:16: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_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: View [dbo].[FeMatterWIP] Script Date: 09/05/2013 17:16:36 ******/ 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.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'') AND (TimeEntry.INVOICENO = 0) ORDER BY TimeEntry.FEEEARN, TimeEntry.MATTER ' GO /****** Object: View [dbo].[New_FeMatterWIP_View] Script Date: 09/05/2013 17:16:36 ******/ 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: StoredProcedure [dbo].[ky_WDCopyTimeEntry] Script Date: 09/05/2013 17:16: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_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].[ky_BGReverseTransfer] Script Date: 09/05/2013 17:16: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_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 @INVOICENO int 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 DECLARE MATOUT CURSOR FOR 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] OPEN MATOUT FETCH NEXT FROM MATOUT INTO @DETMATTER, @DETVALUE WHILE @@FETCH_STATUS = 0 BEGIN 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 FETCH NEXT FROM MATOUT INTO @DETMATTER, @DETVALUE END CLOSE MATOUT DEALLOCATE MATOUT 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), 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](@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] + TOT.[BILLNOW], 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 -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 END ' END GO /****** Object: StoredProcedure [dbo].[ky_BGTransfer] Script Date: 09/05/2013 17:16: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_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 char(11) DECLARE @INVOICENO int 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 DECLARE MATOUT CURSOR FOR 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] OPEN MATOUT FETCH NEXT FROM MATOUT INTO @DETMATTER, @DETVALUE WHILE @@FETCH_STATUS = 0 BEGIN 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 FETCH NEXT FROM MATOUT INTO @DETMATTER, @DETVALUE END CLOSE MATOUT DEALLOCATE MATOUT 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 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 MAT SET MAT.[OutlayBal] = MAT.[OutlayBal] + TOT.[BILLNOW], 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 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 END ' END GO /****** Object: StoredProcedure [dbo].[ky_BGAddToInvoice] Script Date: 09/05/2013 17:16: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_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 @FMATTER varchar(17) DECLARE @FDRAFTNO int DECLARE @FBILLNO int DECLARE @FTYPE varchar(1) DECLARE @FFEEEARNER varchar(5) DECLARE @FNOMINAL varchar(10) DECLARE @FNARRATIVE varchar(6999) DECLARE @FNET decimal(13, 2) DECLARE @FVATCODE varchar(1) DECLARE @FVATRATE decimal(5, 2) DECLARE @FVATVALUE decimal(13, 2) DECLARE @LINENO smallint DECLARE @TOTVALUE decimal(11, 2) --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 @LINENO = IsNull(Max([LINENO]), 0) FROM [dbo].[BillDetails] WHERE [DRAFTNO] = @DraftNo DECLARE LINESTOADD CURSOR FOR 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] OPEN LINESTOADD FETCH NEXT FROM LINESTOADD INTO @FMATTER, @FDRAFTNO, @FBILLNO, @FTYPE, @FFEEEARNER, @FNOMINAL, @FNARRATIVE, @FNET, @FVATCODE, @FVATRATE, @FVATVALUE WHILE @@FETCH_STATUS = 0 BEGIN SET @LINENO = @LINENO + 1 INSERT INTO [dbo].[BillDetails] ([Matter], [DRAFTNO], [BILLNO], [TYPE], [FEEEARNER], [NOMINAL], [NARRATIVE], [NET], [VATCODE], [VATRATE], [VATVALUE], [LINENO]) select @FMATTER, @FDRAFTNO, @FBILLNO, @FTYPE, @FFEEEARNER, @FNOMINAL, @FNARRATIVE, @FNET, @FVATCODE, @FVATRATE, @FVATVALUE, @LINENO FETCH NEXT FROM LINESTOADD INTO @FMATTER, @FDRAFTNO, @FBILLNO, @FTYPE, @FFEEEARNER, @FNOMINAL, @FNARRATIVE, @FNET, @FVATCODE, @FVATRATE, @FVATVALUE END CLOSE LINESTOADD DEALLOCATE LINESTOADD 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] -- 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. DECLARE VATRATESC CURSOR FOR 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 OPEN VATRATESC FETCH NEXT FROM VATRATESC INTO @THISVATRATE WHILE @@FETCH_STATUS = 0 BEGIN SET @VATENTRY = @VATENTRY + 1 select @THISNET = 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] = @THISVATRATE set @THISVATVALUE = Round(((@THISNET * @THISVATRATE) / 100), 2) -- If this is the first distinct VAT Rate, set the values for RATE1 IF (@VATENTRY = 1) BEGIN SET @RATE1 = @THISVATRATE SET @NETRATE1 = @THISNET SET @VATRATE1 = @THISVATVALUE END -- If this is the second distinct VAT Rate, set the values for RATE2 IF (@VATENTRY = 2) BEGIN SET @RATE2 = @THISVATRATE SET @NETRATE2 = @THISNET SET @VATRATE2 = @THISVATVALUE END FETCH NEXT FROM VATRATESC INTO @THISVATRATE END CLOSE VATRATESC DEALLOCATE VATRATESC 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: View [dbo].[tmp_diarycloseddiary] Script Date: 09/05/2013 17:16:36 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[tmp_diarycloseddiary]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[tmp_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].[diarycloseddiary] Script Date: 09/05/2013 17:16:36 ******/ 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].[MatterDetailView] Script Date: 09/05/2013 17:16:36 ******/ 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].[tmp_diaryattcloseddiaryatt] Script Date: 09/05/2013 17:16:36 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[tmp_diaryattcloseddiaryatt]')) EXEC dbo.sp_executesql @statement = N'CREATE VIEW [dbo].[tmp_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: View [dbo].[diaryattcloseddiaryatt] Script Date: 09/05/2013 17:16:36 ******/ 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: View [dbo].[FeeBillAnalysis] Script Date: 09/05/2013 17:16:36 ******/ 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_WDTaskList] Script Date: 09/05/2013 17:16: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_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_WDTaskListByActionTypePage] Script Date: 09/05/2013 17:16: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_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.[TEXT1], 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] 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] ORDER BY TSK.[DelegatedDateTime] END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDTaskListByHighlightPage] Script Date: 09/05/2013 17:16: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_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.[TEXT1], 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] 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] ORDER BY TSK.[DelegatedDateTime] END ' END GO /****** Object: StoredProcedure [dbo].[ky_WDSearchAllContacts2] Script Date: 09/05/2013 17:16: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_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_WDSearchAllContacts] Script Date: 09/05/2013 17:16: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_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_WDSearchAllContacts3] Script Date: 09/05/2013 17:16: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_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: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[ky_WDCaseDiary2] Script Date: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[ky_WDCaseDiary3] Script Date: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[ky_WDDelegateAction_DiaryDel] Script Date: 09/05/2013 17:16: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_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_WDCaseDocuments2] Script Date: 09/05/2013 17:16: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_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_WDCaseDocuments4] Script Date: 09/05/2013 17:16: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_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_WDCaseDocuments] Script Date: 09/05/2013 17:16: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_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_WDCaseDocuments3] Script Date: 09/05/2013 17:16: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_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_WDDiaryDocuments] Script Date: 09/05/2013 17:16: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_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_WDPushTask3] Script Date: 09/05/2013 17:16: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_WDPushTask3]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDPushTask3 * * Push a task forward and/or change its text. - Now with support for Time information * **************************************************************************************/ 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 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.[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: 09/05/2013 17:16: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_WDPushTask2]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDPushTask2 * * Push a task forward and/or change its text. * **************************************************************************************/ 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 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.[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: 09/05/2013 17:16: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_WDPushTask]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************************** * * ky_WDPushTask * * Push a task forward and/or change its text. * **************************************************************************************/ CREATE PROCEDURE [dbo].[ky_WDPushTask] (@AssignNo int, @Date varchar(8), @NewText varchar(MAX), @Shuffle int, @Handler varchar(10)) AS 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 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 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: View [dbo].[HandlersStatsFeByDept] Script Date: 09/05/2013 17:16:36 ******/ 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_MoveBriefSection] Script Date: 09/05/2013 17:16: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_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: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[ky_MoveBriefDocumentFromSection] Script Date: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[ky_MoveBriefDocumentToSection] Script Date: 09/05/2013 17:16: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_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_UngroupBG] Script Date: 09/05/2013 17:16: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_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 DECLARE @GroupID uniqueidentifier DECLARE @SeqNo int DECLARE @NewGroupSeq int DECLARE @CursID 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. */ DECLARE Reseq cursor for SELECT [ID] FROM [dbo].[BGDetail] WHERE [BGControlID] = @ControlID AND [BGGroupID] = @GroupID ORDER BY SeqNo OPEN Reseq FETCH NEXT FROM Reseq INTO @CursID WHILE @@FETCH_STATUS = 0 BEGIN SET @SeqNo = @SeqNo + 1 INSERT INTO [dbo].[BGGroups] ([ID], [SeqNo], [BGControlID], [Narrative]) SELECT BGD.[ID], @SeqNo, @ControlID, BGD.[Narrative] from [dbo].[BGDetail] BGD LEFT OUTER JOIN [dbo].[BGGroups] BGG ON [BGG].[ID] = BGD.[ID] where BGD.[ID] = @CursID AND BGG.[ID] is null FETCH NEXT FROM Reseq INTO @CursID END CLOSE Reseq DEALLOCATE Reseq /* 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 GO /****** Object: StoredProcedure [dbo].[ky_NewGroupBG] Script Date: 09/05/2013 17:16: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_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 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 GO /****** Object: StoredProcedure [dbo].[ky_UngroupGUIDBG] Script Date: 09/05/2013 17:16: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_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 DECLARE @SeqNo int DECLARE @NewGroupSeq int DECLARE @CursID uniqueidentifier DECLARE @GroupID uniqueidentifier SET @GroupID = convert(uniqueidentifier, @GroupIDString) /* 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. */ DECLARE Reseq cursor for SELECT [ID] FROM [dbo].[BGDetail] WHERE [BGControlID] = @ControlID AND [BGGroupID] = @GroupID ORDER BY SeqNo OPEN Reseq FETCH NEXT FROM Reseq INTO @CursID WHILE @@FETCH_STATUS = 0 BEGIN SET @SeqNo = @SeqNo + 1 INSERT INTO [dbo].[BGGroups] ([ID], [SeqNo], [BGControlID], [Narrative]) SELECT BGD.[ID], @SeqNo, @ControlID, BGD.[Narrative] from [dbo].[BGDetail] BGD LEFT OUTER JOIN [dbo].[BGGroups] BGG ON [BGG].[ID] = BGD.[ID] where BGD.[ID] = @CursID AND BGG.[ID] is null FETCH NEXT FROM Reseq INTO @CursID END CLOSE Reseq DEALLOCATE Reseq /* 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 GO /****** Object: StoredProcedure [dbo].[ky_CalculateFEBreakDownBD] Script Date: 09/05/2013 17:16: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_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: View [dbo].[HandlersStatsFeByTeam] Script Date: 09/05/2013 17:16:36 ******/ 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: StoredProcedure [dbo].[ky_WDCreateDiaryStep] Script Date: 09/05/2013 17:16: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_WDCreateDiaryStep]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************ * * Create Diary Step WinDev/WebDev version * *************************************************************************/ 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 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 /* ORIGINAL CODE SET NOCOUNT ON DECLARE @strcasecode nVarChar(17) DECLARE @intAssignno int DECLARE @pPublish char(1) DECLARE @SubjectLen int DECLARE @CaseCodeLen int DECLARE @FELen int DECLARE @TeamLen int DECLARE @dDate datetime DECLARE @pTime char(10) -- Get only the DATE portion of the date that was passed in SET @dDate = convert(datetime, convert(varchar, @pDate, 112)) SET @pTime = convert(char(10), (1000 * convert(int, DATEDIFF(ms, @dDate, @pDate) / 10000)) + 1) select @SubjectLen = sc.[length] 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 = (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 -- Write Diary Record ----------------------------------------------------------------------------------------------------------------------------------------- INSERT INTO [dbo].[Diary] ([ActionID], [Status], [CaseCode], [ActionCode], [ActionStatus], [FnCode], [TeamCode], [Text1], [Attachments], [EmailAddress], [AddressTo], [ccTo], [bccTo], [email], [Subject], [Publish], [ActionType], [ProcessType], [DYStartTime], [Date], [TxmDate]) VALUES(@pActionID, @pStatus, @pCaseCode, @pActionCode, @pActionStatus, @pFnCode, @pTeamCode, convert(text, @pText1), @pAttachments, @pEmailAddress, @pAddressTo, @pccTo, @pbccTo, @pemail, @pSubject, @pPublish, ''E'', @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, 0, '''', @pDate, @pTime, '' '', @pStatus, ''Y'', @pFnCode, 0, ''E'', '' '', '' '', ''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 GO /****** Object: StoredProcedure [dbo].[ky_DesktopCalculateFEBreakDown] Script Date: 09/05/2013 17:16: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_DesktopCalculateFEBreakDown]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N' /************************************************************************ * * Calculate Fee Earner BreakDown * *************************************************************************/ CREATE PROCEDURE [dbo].[ky_DesktopCalculateFEBreakDown] (@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 [dbo].[ky_FromDesktopBillFeeBreakdown](@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_BGFeeBreakDown] Script Date: 09/05/2013 17:16: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_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_WDDayBook] Script Date: 09/05/2013 17:16: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_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: UserDefinedFunction [dbo].[ky_WDMatterSearch] Script Date: 09/05/2013 17:16: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_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: StoredProcedure [dbo].[ky_MoveBriefDocument] Script Date: 09/05/2013 17:16: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_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_WDCompleteTranscription] Script Date: 09/05/2013 17:16: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_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: View [dbo].[FeWIP] Script Date: 09/05/2013 17:16:36 ******/ 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: StoredProcedure [dbo].[ky_QuickGroupBG] Script Date: 09/05/2013 17:16: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_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(255), @NewGroupNarr varchar(255)) AS BEGIN DECLARE @SeqNo int DECLARE @GroupID uniqueidentifier DECLARE @CursID 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 SET @SeqNo = 0 DECLARE Reseq cursor for SELECT [ID] FROM [dbo].[BGDetail] WHERE [BGGroupID] = @GroupID ORDER BY [Type], RTRIM(IsNull([Matter], '''')), IsNull(convert(varchar, [Date], 121), ''''), Narrative, OriginalID OPEN Reseq FETCH NEXT FROM Reseq INTO @CursID WHILE @@FETCH_STATUS = 0 BEGIN SET @SeqNo = @SeqNo + 1 UPDATE [dbo].[BGDetail] SET SeqNo = @SeqNo WHERE [ID] = @CursID FETCH NEXT FROM Reseq INTO @CursID END CLOSE Reseq DEALLOCATE Reseq SET @SeqNo = 0 DECLARE Reseq cursor for SELECT [ID] FROM [dbo].[BGGroups] WHERE [BGControlID] = @ControlID ORDER BY [SeqNo] OPEN Reseq FETCH NEXT FROM Reseq INTO @CursID WHILE @@FETCH_STATUS = 0 BEGIN SET @SeqNo = @SeqNo + 1 UPDATE [dbo].[BGGroups] SET SeqNo = @SeqNo WHERE [ID] = @CursID FETCH NEXT FROM Reseq INTO @CursID END CLOSE Reseq DEALLOCATE Reseq END ' END GO /****** Object: StoredProcedure [dbo].[ky_GroupGroupNarrBG] Script Date: 09/05/2013 17:16: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_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 BEGIN DECLARE @narr varchar(255) DECLARE @type varchar(1) DECLARE @newnarr varchar(255) DECLARE narcurs cursor for 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) OPEN narcurs FETCH NEXT FROM narcurs INTO @type, @narr WHILE @@FETCH_STATUS = 0 BEGIN SET @newnarr = RTrim(Substring(''All '' + @narr, 1, 255)) EXEC ky_QuickGroupBG @ControlID, @type, NULL, NULL, NULL, @narr, @newnarr FETCH NEXT FROM narcurs INTO @type, @narr END CLOSE narcurs DEALLOCATE narcurs END ' END GO