Files
2018-06-29 19:47:36 +00:00

620 lines
44 KiB
C#

///////////////////////////////////////////////////////////
// DashBoardInfo.cs
// Implementation of Class DashBoardInfo
// CSLA type: Read-only object
// Created on: 09-Jan-2012
// Object design: John / Joyce
// Coded: John 09-Jan-2012
///////////////////////////////////////////////////////////
using System;
using System.Data;
using CSLA.Data;
using GZTW.Data;
using CSLA;
using System.Threading;
using CSLA.Security;
using System.Collections.Generic;
namespace GZTW.AyaNova.BLL
{
#pragma warning disable 1591
/// <summary>
/// Fetches all information for Dashboard form / page
/// </summary>
[Serializable]
public class DashBoardInfo : ReadOnlyBase
{
private const int DASHBOARDMAXLISTITEMS = 3;//List items plus one more for the More... item
/// <summary>
/// Private constructor to prevent direct instantiation
/// </summary>
private DashBoardInfo()
{
ListCriteria = new Dictionary<string, string>(10);
myOverdueList = new List<DashBoardInfoItem>(DASHBOARDMAXLISTITEMS + 1);
myNewMemosList = new List<DashBoardInfoItem>(DASHBOARDMAXLISTITEMS + 1);
myRemindersList = new List<DashBoardInfoItem>(DASHBOARDMAXLISTITEMS + 1);
myServiceRateSummaryList = new List<DashBoardInfoItem>(DASHBOARDMAXLISTITEMS + 1);
myScheduledList = new List<DashBoardInfoItem>(DASHBOARDMAXLISTITEMS + 1);
compOverdueList = new List<DashBoardInfoItem>(DASHBOARDMAXLISTITEMS + 1);
compNotAssignedList = new List<DashBoardInfoItem>(DASHBOARDMAXLISTITEMS + 1);
compServiceRequestsList = new List<DashBoardInfoItem>(DASHBOARDMAXLISTITEMS + 1);
compServiceRateSummaryList = new List<DashBoardInfoItem>(DASHBOARDMAXLISTITEMS + 1);
compScheduledList = new List<DashBoardInfoItem>(DASHBOARDMAXLISTITEMS + 1);
}
#region props
public string CurrentUserNameFormatted { get; private set; }
public string CurrentCompanyOrRegionName { get; private set; }
public Dictionary<string,string> ListCriteria { get; private set; }
#region "My" properties
public bool HasMyOverdueList { get { return myOverdueList.Count > 0; } }
public bool HasMyNewMemoList { get { return myNewMemosList.Count > 0; } }
public bool HasMyReminderList { get { return myRemindersList.Count > 0; } }
public bool HasMyServiceRateSummaryList { get { return myServiceRateSummaryList.Count > 0; } }
public bool HasMyScheduledList { get { return myScheduledList.Count > 0; } }
/// <summary>
/// Should the "my" panel be shown
/// </summary>
public bool MyPanelVisible
{
get
{
return (HasMyOverdueList || HasMyNewMemoList || HasMyReminderList || HasMyScheduledList || HasMyServiceRateSummaryList);
}
}
public List<DashBoardInfoItem> myOverdueList { get; private set; }
public List<DashBoardInfoItem> myNewMemosList { get; private set; }
public List<DashBoardInfoItem> myRemindersList { get; private set; }
public List<DashBoardInfoItem> myServiceRateSummaryList { get; private set; }
public List<DashBoardInfoItem> myScheduledList { get; private set; }
#endregion "my" props
#region "Comp" properties
public bool HasCompOverdueList { get { return compOverdueList.Count > 0; } }
public bool HasCompNotAssignedList { get { return compNotAssignedList.Count > 0; } }
public bool HasCompServiceRequestList { get { return compServiceRequestsList.Count > 0; } }
public bool HasCompServiceRateSummaryList { get { return compServiceRateSummaryList.Count > 0; } }
public bool HasCompScheduledList { get { return compScheduledList.Count > 0; } }
/// <summary>
/// Should the "Company / Region" panel be shown
/// </summary>
public bool CompPanelVisible
{
get
{
return (HasCompOverdueList || HasCompNotAssignedList || HasCompServiceRequestList || HasCompScheduledList || HasCompServiceRateSummaryList);
}
}
public List<DashBoardInfoItem> compOverdueList { get; private set; }
public List<DashBoardInfoItem> compNotAssignedList { get; private set; }
public List<DashBoardInfoItem> compServiceRequestsList { get; private set; }
public List<DashBoardInfoItem> compServiceRateSummaryList { get; private set; }
public List<DashBoardInfoItem> compScheduledList { get; private set; }
#endregion "comp" props
#endregion props
public static DashBoardInfo Get(string More)
{
bool FetchScheduleableUserInfo = true;
if (User.IsAdmin) FetchScheduleableUserInfo = false;
if (User.CurrentUserType != UserTypes.Schedulable)
FetchScheduleableUserInfo = false;
DashBoardInfo di = new DashBoardInfo();
DashBoardInfoItem MoreItem = new DashBoardInfoItem(RootObjectTypes.Nothing, Guid.Empty, More);
di.CurrentUserNameFormatted = UserPickList.GetListOfOneSpecificUser(User.CurrentThreadUserID)[0].Name;
di.CurrentCompanyOrRegionName = AyaBizUtils.REGTO;
if (!User.CurrentUserIsInDefaultRegion)
di.CurrentCompanyOrRegionName = NameFetcher.GetItem(new TypeAndID(RootObjectTypes.Region, User.CurrentUserRegionID)).RecordName;
#region "My" lists
if (FetchScheduleableUserInfo)
{
if (AyaBizUtils.Right("Object.WorkorderService") > (int)SecurityLevelTypes.NoAccess)
{
#region My overdue
{
string crit = "<?xml version=\"1.0\" encoding=\"utf-16\" standalone=\"yes\"?> \r\n" +
"<GRIDCRITERIA> \r\n" +
" <COLUMNITEM CM=\"aWorkorderItemScheduledUser.aStartDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\" PIN=\"0\" WIDTH=\"210\" SORT=\"ASC\" /> \r\n" +
" <COLUMNITEM CM=\"aUser.aLastName\" UI=\"LT_WorkorderItemScheduledUser_Label_UserID\" PIN=\"0\" WIDTH=\"242\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderService.aServiceNumber\" UI=\"LT_O_Workorder\" PIN=\"0\" WIDTH=\"100\" /> \r\n" +
" <COLUMNITEM CM=\"aPriority.aName\" UI=\"LT_WorkorderItem_Label_PriorityID\" PIN=\"0\" WIDTH=\"148\" /> \r\n" +
" <COLUMNITEM CM=\"aDispatchZone.aName\" UI=\"LT_O_DispatchZone\" PIN=\"0\" WIDTH=\"120\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorder.aServiceCompleted\" UI=\"LT_Workorder_Label_ServiceCompleted\" PIN=\"0\" WIDTH=\"143\" /> \r\n" +
" <COLUMNITEM CM=\"aUnit.aSerial\" UI=\"LT_Unit_Label_Serial\" PIN=\"0\" WIDTH=\"120\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorder.aOnsite\" UI=\"LT_Workorder_Label_Onsite\" PIN=\"0\" WIDTH=\"80\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderItemStatus.aName\" UI=\"LT_WorkorderItem_Label_WorkorderStatusID\" PIN=\"0\" WIDTH=\"158\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderService.aServiceDate\" UI=\"LT_WorkorderService_Label_ServiceDate\" PIN=\"0\" WIDTH=\"112\" /> \r\n" +
" <COLUMNITEM CM=\"aClient.aName\" UI=\"LT_O_Client\" PIN=\"0\" WIDTH=\"76\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderItemScheduledUser.aStopDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StopDate\" PIN=\"0\" WIDTH=\"136\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderItem.aSummary\" UI=\"LT_WorkorderItem_Label_Summary\" PIN=\"0\" WIDTH=\"121\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorder.aClosed\" UI=\"LT_Workorder_Label_Closed\" PIN=\"0\" WIDTH=\"82\" /> \r\n" +
" <COLUMNITEM CM=\"aUnitModel.aName\" UI=\"LT_O_UnitModel\" PIN=\"0\" WIDTH=\"101\" /> \r\n" +
" <COLUMNITEM CM=\"aRate.aName\" UI=\"LT_WorkorderItemScheduledUser_Label_ServiceRateID\" PIN=\"0\" WIDTH=\"124\" /> \r\n" +
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_Workorder_Label_ServiceCompleted\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"Equals\" CM=\"aWorkorder.aServiceCompleted\" UI=\"LT_Workorder_Label_ServiceCompleted\" TYPE=\"System.Boolean\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"False\" /> \r\n" +
" </WHEREITEMGROUP> \r\n" +
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_WorkorderItemScheduledUser_Label_UserID\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"Equals\" CM=\"aWorkorderItemScheduledUser.aUserID\" UICOMPAREVALUE=\"" + di.CurrentUserNameFormatted + "\" TYPE=\"System.Guid\" COMPAREVALUE=\"{" + User.CurrentThreadUserID.ToString().ToUpper() + "}\" /> \r\n" +
" </WHEREITEMGROUP> \r\n" +
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"NotEquals\" CM=\"aWorkorderItemScheduledUser.aStartDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\" TYPE=\"System.Object\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"\" /> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"LessThanOrEqualTo\" CM=\"aWorkorderItemScheduledUser.aStartDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\" TYPE=\"System.Object\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"" + DBUtil.CurrentWorkingDateTime.ToString() + "\" /> \r\n" +
" </WHEREITEMGROUP> \r\n" +
"</GRIDCRITERIA> ";
string critSub = " <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_Workorder_Label_ServiceCompleted\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"Equals\" CM=\"aWorkorder.aServiceCompleted\" UI=\"LT_Workorder_Label_ServiceCompleted\" TYPE=\"System.Boolean\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"False\" /> \r\n" +
" </WHEREITEMGROUP> \r\n" +
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_WorkorderItemScheduledUser_Label_UserID\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"Equals\" CM=\"aWorkorderItemScheduledUser.aUserID\" UICOMPAREVALUE=\"" + di.CurrentUserNameFormatted + "\" TYPE=\"System.Guid\" COMPAREVALUE=\"{" + User.CurrentThreadUserID.ToString().ToUpper() + "}\" /> \r\n" +
" </WHEREITEMGROUP> \r\n" +
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"NotEquals\" CM=\"aWorkorderItemScheduledUser.aStartDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\" TYPE=\"System.Object\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"\" /> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"LessThanOrEqualTo\" CM=\"aWorkorderItemScheduledUser.aStartDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\" TYPE=\"System.Object\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"" + DBUtil.CurrentWorkingDateTime.ToString() + "\" /> \r\n" +
" </WHEREITEMGROUP> \r\n";
di.ListCriteria.Add("MyOverdue", critSub);//used to filter grid list in UI when user clicks More... list item
WorkorderServiceScheduledUserList l = WorkorderServiceScheduledUserList.Get(crit, DASHBOARDMAXLISTITEMS, null);
if (l.Count > 0)
{
int max = Max(l.Count);
for (int x = 0; x < max; x++)
{
di.myOverdueList.Add(new DashBoardInfoItem(l[x]));
}
if (l.Count == DASHBOARDMAXLISTITEMS)
di.myOverdueList.Add(MoreItem);
}
}
#endregion my overdue
#region My Scheduled items list
{
string crit = "<?xml version=\"1.0\" encoding=\"utf-16\" standalone=\"yes\"?> \r\n" +
"<GRIDCRITERIA> \r\n" +
" <COLUMNITEM CM=\"aWorkorderItemScheduledUser.aStartDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\" PIN=\"0\" WIDTH=\"210\" SORT=\"ASC\" /> \r\n" +
" <COLUMNITEM CM=\"aUser.aLastName\" UI=\"LT_WorkorderItemScheduledUser_Label_UserID\" PIN=\"0\" WIDTH=\"242\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderService.aServiceNumber\" UI=\"LT_O_Workorder\" PIN=\"0\" WIDTH=\"100\" /> \r\n" +
" <COLUMNITEM CM=\"aPriority.aName\" UI=\"LT_WorkorderItem_Label_PriorityID\" PIN=\"0\" WIDTH=\"148\" /> \r\n" +
" <COLUMNITEM CM=\"aDispatchZone.aName\" UI=\"LT_O_DispatchZone\" PIN=\"0\" WIDTH=\"120\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorder.aServiceCompleted\" UI=\"LT_Workorder_Label_ServiceCompleted\" PIN=\"0\" WIDTH=\"143\" /> \r\n" +
" <COLUMNITEM CM=\"aUnit.aSerial\" UI=\"LT_Unit_Label_Serial\" PIN=\"0\" WIDTH=\"120\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorder.aOnsite\" UI=\"LT_Workorder_Label_Onsite\" PIN=\"0\" WIDTH=\"80\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderItemStatus.aName\" UI=\"LT_WorkorderItem_Label_WorkorderStatusID\" PIN=\"0\" WIDTH=\"158\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderService.aServiceDate\" UI=\"LT_WorkorderService_Label_ServiceDate\" PIN=\"0\" WIDTH=\"112\" /> \r\n" +
" <COLUMNITEM CM=\"aClient.aName\" UI=\"LT_O_Client\" PIN=\"0\" WIDTH=\"76\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderItemScheduledUser.aStopDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StopDate\" PIN=\"0\" WIDTH=\"136\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderItem.aSummary\" UI=\"LT_WorkorderItem_Label_Summary\" PIN=\"0\" WIDTH=\"121\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorder.aClosed\" UI=\"LT_Workorder_Label_Closed\" PIN=\"0\" WIDTH=\"82\" /> \r\n" +
" <COLUMNITEM CM=\"aUnitModel.aName\" UI=\"LT_O_UnitModel\" PIN=\"0\" WIDTH=\"101\" /> \r\n" +
" <COLUMNITEM CM=\"aRate.aName\" UI=\"LT_WorkorderItemScheduledUser_Label_ServiceRateID\" PIN=\"0\" WIDTH=\"124\" /> \r\n" +
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_Workorder_Label_ServiceCompleted\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"Equals\" CM=\"aWorkorder.aServiceCompleted\" UI=\"LT_Workorder_Label_ServiceCompleted\" TYPE=\"System.Boolean\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"False\" /> \r\n" +
" </WHEREITEMGROUP> \r\n" +
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_WorkorderItemScheduledUser_Label_UserID\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"Equals\" CM=\"aWorkorderItemScheduledUser.aUserID\" UICOMPAREVALUE=\"" + di.CurrentUserNameFormatted + "\" TYPE=\"System.Guid\" COMPAREVALUE=\"{" + User.CurrentThreadUserID.ToString().ToUpper() + "}\" /> \r\n" +
" </WHEREITEMGROUP> \r\n" +
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"GreaterThan\" CM=\"aWorkorderItemScheduledUser.aStartDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\" TYPE=\"System.Object\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"" + DBUtil.CurrentWorkingDateTime.ToString() + "\" /> \r\n" +
" </WHEREITEMGROUP> \r\n" +
"</GRIDCRITERIA> ";
string critSub = " <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_Workorder_Label_ServiceCompleted\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"Equals\" CM=\"aWorkorder.aServiceCompleted\" UI=\"LT_Workorder_Label_ServiceCompleted\" TYPE=\"System.Boolean\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"False\" /> \r\n" +
" </WHEREITEMGROUP> \r\n" +
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_WorkorderItemScheduledUser_Label_UserID\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"Equals\" CM=\"aWorkorderItemScheduledUser.aUserID\" UICOMPAREVALUE=\"" + di.CurrentUserNameFormatted + "\" TYPE=\"System.Guid\" COMPAREVALUE=\"{" + User.CurrentThreadUserID.ToString().ToUpper() + "}\" /> \r\n" +
" </WHEREITEMGROUP> \r\n" +
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"GreaterThan\" CM=\"aWorkorderItemScheduledUser.aStartDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\" TYPE=\"System.Object\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"" + DBUtil.CurrentWorkingDateTime.ToString() + "\" /> \r\n" +
" </WHEREITEMGROUP> \r\n";
di.ListCriteria.Add("MyScheduled", critSub);//used to filter grid list in UI when user clicks More... list item
WorkorderServiceScheduledUserList l = WorkorderServiceScheduledUserList.Get(crit, DASHBOARDMAXLISTITEMS, null);
if (l.Count > 0)
{
int max = Max(l.Count);
for (int x = 0; x < max; x++)
{
di.myScheduledList.Add(new DashBoardInfoItem(l[x]));
}
if (l.Count == DASHBOARDMAXLISTITEMS)
di.myScheduledList.Add(MoreItem);
}
}
#endregion my scheduled
}
#region My Service rate summary
{
DashboardServiceRateBalanceFetcher l = DashboardServiceRateBalanceFetcher.GetItem(User.CurrentThreadUserID, true);
di.myServiceRateSummaryList.Add(new DashBoardInfoItem(LocalizedTextTable.GetLocalizedTextDirect("UI.Label.DateRange.Today") + " = " + l.Today.ToString()));
di.myServiceRateSummaryList.Add(new DashBoardInfoItem(LocalizedTextTable.GetLocalizedTextDirect("UI.Label.DateRange.Yesterday") + " = " + l.Yesterday.ToString()));
di.myServiceRateSummaryList.Add(new DashBoardInfoItem(LocalizedTextTable.GetLocalizedTextDirect("UI.Label.DateRange.ThisWeek") + " = " + l.ThisWeek.ToString()));
di.myServiceRateSummaryList.Add(new DashBoardInfoItem(LocalizedTextTable.GetLocalizedTextDirect("UI.Label.DateRange.ThisMonth") + " = " + l.ThisMonth.ToString()));
di.myServiceRateSummaryList.Add(new DashBoardInfoItem(LocalizedTextTable.GetLocalizedTextDirect("UI.Label.DateRange.ThisYear") + " = " + l.ThisYear.ToString()));
}
#endregion my service rate summary
if (AyaBizUtils.Right("Object.Memo") > (int)SecurityLevelTypes.NoAccess)
{
#region My newest memos
{
string crit = "<?xml version=\"1.0\" encoding=\"utf-16\" standalone=\"yes\"?> \r\n" +
"<GRIDCRITERIA> \r\n" +
" <COLUMNITEM CM=\"aMemo.aCreated\" UI=\"LT_Memo_Label_Sent\" PIN=\"0\" WIDTH=\"158\" SORT=\"DESC\" /> \r\n" +
" <COLUMNITEM CM=\"aMemo.aReplied\" UI=\"LT_Memo_Label_Replied\" PIN=\"0\" WIDTH=\"86\" /> \r\n" +
" <COLUMNITEM CM=\"aUser.aLastName\" UI=\"LT_Memo_Label_FromID\" PIN=\"0\" WIDTH=\"274\" /> \r\n" +
" <COLUMNITEM CM=\"aMemo.aSubject\" UI=\"LT_Memo_Label_Subject\" PIN=\"0\" WIDTH=\"85\" /> \r\n" +
" <COLUMNITEM CM=\"grid\" UI=\"LT_Memo_Label_Sent_Relative\" PIN=\"0\" WIDTH=\"158\" /> \r\n" +
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_Memo_Label_Viewed\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"Equals\" CM=\"aMemo.aViewed\" UI=\"\" TYPE=\"System.Boolean\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"False\" /> \r\n" +
" </WHEREITEMGROUP> \r\n" +
"</GRIDCRITERIA> ";
string critSub = " <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_Memo_Label_Viewed\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"Equals\" CM=\"aMemo.aViewed\" UI=\"\" TYPE=\"System.Boolean\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"False\" /> \r\n" +
" </WHEREITEMGROUP> \r\n";
di.ListCriteria.Add("MyNewMemos", critSub);//used to filter grid list in UI when user clicks More... list item
MemoList l = MemoList.Get(crit, DASHBOARDMAXLISTITEMS, null);
if (l.Count > 0)
{
int max = Max(l.Count);
for (int x = 0; x < max; x++)
{
di.myNewMemosList.Add(new DashBoardInfoItem(l[x]));
}
if (l.Count == DASHBOARDMAXLISTITEMS)
di.myNewMemosList.Add(MoreItem);
}
}
#endregion
}
if (AyaBizUtils.Right("Object.ScheduleMarker") > (int)SecurityLevelTypes.NoAccess)
{
#region My reminders
{
DashboardReminderList l = DashboardReminderList.GetList(DASHBOARDMAXLISTITEMS);
if (l.Count > 0)
{
int max = Max(l.Count);
for (int x = 0; x < max; x++)
{
di.myRemindersList.Add(new DashBoardInfoItem(l[x]));
}
//Nowhere really to send them as it's not based on a grid so
//unless we send them to the schedule screen then this shouldn't be here
//if(l.Count==DASHBOARDMAXLISTITEMS)
// di.myRemindersList.Add(MoreItem);
}
}
#endregion my reminders
}
}//end of if FetchScheduleableUserInfo
#endregion my lists
#region "Company" lists
{
if (!AyaBizUtils.Lite)
{
if (AyaBizUtils.Right("Object.WorkorderService") > (int)SecurityLevelTypes.NoAccess)
{
#region Company - Not Assigned
{
string crit = "<?xml version=\"1.0\" encoding=\"utf-16\" standalone=\"yes\"?> \r\n" +
"<GRIDCRITERIA> \r\n" +
" <COLUMNITEM CM=\"aWorkorderItemScheduledUser.aStartDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\" PIN=\"0\" WIDTH=\"210\" SORT=\"DESC\" /> \r\n" +
" <COLUMNITEM CM=\"aUser.aLastName\" UI=\"LT_WorkorderItemScheduledUser_Label_UserID\" PIN=\"0\" WIDTH=\"242\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderService.aServiceNumber\" UI=\"LT_O_Workorder\" PIN=\"0\" WIDTH=\"100\" /> \r\n" +
" <COLUMNITEM CM=\"aPriority.aName\" UI=\"LT_WorkorderItem_Label_PriorityID\" PIN=\"0\" WIDTH=\"148\" /> \r\n" +
" <COLUMNITEM CM=\"aDispatchZone.aName\" UI=\"LT_O_DispatchZone\" PIN=\"0\" WIDTH=\"120\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorder.aServiceCompleted\" UI=\"LT_Workorder_Label_ServiceCompleted\" PIN=\"0\" WIDTH=\"143\" /> \r\n" +
" <COLUMNITEM CM=\"aUnit.aSerial\" UI=\"LT_Unit_Label_Serial\" PIN=\"0\" WIDTH=\"120\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorder.aOnsite\" UI=\"LT_Workorder_Label_Onsite\" PIN=\"0\" WIDTH=\"80\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderItemStatus.aName\" UI=\"LT_WorkorderItem_Label_WorkorderStatusID\" PIN=\"0\" WIDTH=\"158\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderService.aServiceDate\" UI=\"LT_WorkorderService_Label_ServiceDate\" PIN=\"0\" WIDTH=\"112\" /> \r\n" +
" <COLUMNITEM CM=\"aClient.aName\" UI=\"LT_O_Client\" PIN=\"0\" WIDTH=\"76\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderItemScheduledUser.aStopDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StopDate\" PIN=\"0\" WIDTH=\"136\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderItem.aSummary\" UI=\"LT_WorkorderItem_Label_Summary\" PIN=\"0\" WIDTH=\"121\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorder.aClosed\" UI=\"LT_Workorder_Label_Closed\" PIN=\"0\" WIDTH=\"82\" /> \r\n" +
" <COLUMNITEM CM=\"aUnitModel.aName\" UI=\"LT_O_UnitModel\" PIN=\"0\" WIDTH=\"101\" /> \r\n" +
" <COLUMNITEM CM=\"aRate.aName\" UI=\"LT_WorkorderItemScheduledUser_Label_ServiceRateID\" PIN=\"0\" WIDTH=\"124\" /> \r\n" +
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"Or\" UI=\"LT_Workorder_Label_ServiceCompleted\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"Equals\" CM=\"aWorkorder.aServiceCompleted\" UI=\"LT_Workorder_Label_ServiceCompleted\" TYPE=\"System.Boolean\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"False\" /> \r\n" +
" </WHEREITEMGROUP> \r\n" +
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"Or\" UI=\"LT_WorkorderItemScheduledUser_Label_UserID\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"Equals\" CM=\"aUser.aLastName\" UICOMPAREVALUE=\"\" TYPE=\"System.String\" COMPAREVALUE=\"\" /> \r\n" +
" </WHEREITEMGROUP> \r\n" +
"</GRIDCRITERIA> ";
string critSub =
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"Or\" UI=\"LT_Workorder_Label_ServiceCompleted\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"Equals\" CM=\"aWorkorder.aServiceCompleted\" UI=\"LT_Workorder_Label_ServiceCompleted\" TYPE=\"System.Boolean\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"False\" /> \r\n" +
" </WHEREITEMGROUP> \r\n" +
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"Or\" UI=\"LT_WorkorderItemScheduledUser_Label_UserID\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"Equals\" CM=\"aUser.aLastName\" UICOMPAREVALUE=\"\" TYPE=\"System.String\" COMPAREVALUE=\"\" /> \r\n" +
" </WHEREITEMGROUP> \r\n";
di.ListCriteria.Add("CompanyNotAssigned", critSub);//used to filter grid list in UI when user clicks More... list item
WorkorderServiceScheduledUserList l = WorkorderServiceScheduledUserList.Get(crit, DASHBOARDMAXLISTITEMS, null);
if (l.Count > 0)
{
int max = Max(l.Count);
for (int x = 0; x < max; x++)
{
di.compNotAssignedList.Add(new DashBoardInfoItem(l[x]));
}
if (l.Count == DASHBOARDMAXLISTITEMS)
di.compNotAssignedList.Add(MoreItem);
}
}
#endregion Company not assigned
#region Company overdue
{
string crit = "<?xml version=\"1.0\" encoding=\"utf-16\" standalone=\"yes\"?> \r\n" +
"<GRIDCRITERIA> \r\n" +
" <COLUMNITEM CM=\"aWorkorderItemScheduledUser.aStartDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\" PIN=\"0\" WIDTH=\"210\" SORT=\"ASC\" /> \r\n" +
" <COLUMNITEM CM=\"aUser.aLastName\" UI=\"LT_WorkorderItemScheduledUser_Label_UserID\" PIN=\"0\" WIDTH=\"242\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderService.aServiceNumber\" UI=\"LT_O_Workorder\" PIN=\"0\" WIDTH=\"100\" /> \r\n" +
" <COLUMNITEM CM=\"aPriority.aName\" UI=\"LT_WorkorderItem_Label_PriorityID\" PIN=\"0\" WIDTH=\"148\" /> \r\n" +
" <COLUMNITEM CM=\"aDispatchZone.aName\" UI=\"LT_O_DispatchZone\" PIN=\"0\" WIDTH=\"120\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorder.aServiceCompleted\" UI=\"LT_Workorder_Label_ServiceCompleted\" PIN=\"0\" WIDTH=\"143\" /> \r\n" +
" <COLUMNITEM CM=\"aUnit.aSerial\" UI=\"LT_Unit_Label_Serial\" PIN=\"0\" WIDTH=\"120\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorder.aOnsite\" UI=\"LT_Workorder_Label_Onsite\" PIN=\"0\" WIDTH=\"80\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderItemStatus.aName\" UI=\"LT_WorkorderItem_Label_WorkorderStatusID\" PIN=\"0\" WIDTH=\"158\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderService.aServiceDate\" UI=\"LT_WorkorderService_Label_ServiceDate\" PIN=\"0\" WIDTH=\"112\" /> \r\n" +
" <COLUMNITEM CM=\"aClient.aName\" UI=\"LT_O_Client\" PIN=\"0\" WIDTH=\"76\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderItemScheduledUser.aStopDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StopDate\" PIN=\"0\" WIDTH=\"136\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderItem.aSummary\" UI=\"LT_WorkorderItem_Label_Summary\" PIN=\"0\" WIDTH=\"121\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorder.aClosed\" UI=\"LT_Workorder_Label_Closed\" PIN=\"0\" WIDTH=\"82\" /> \r\n" +
" <COLUMNITEM CM=\"aUnitModel.aName\" UI=\"LT_O_UnitModel\" PIN=\"0\" WIDTH=\"101\" /> \r\n" +
" <COLUMNITEM CM=\"aRate.aName\" UI=\"LT_WorkorderItemScheduledUser_Label_ServiceRateID\" PIN=\"0\" WIDTH=\"124\" /> \r\n" +
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_Workorder_Label_ServiceCompleted\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"Equals\" CM=\"aWorkorder.aServiceCompleted\" UI=\"LT_Workorder_Label_ServiceCompleted\" TYPE=\"System.Boolean\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"False\" /> \r\n" +
" </WHEREITEMGROUP> \r\n" +
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"NotEquals\" CM=\"aWorkorderItemScheduledUser.aStartDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\" TYPE=\"System.Object\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"\" /> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"LessThanOrEqualTo\" CM=\"aWorkorderItemScheduledUser.aStartDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\" TYPE=\"System.Object\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"" + DBUtil.CurrentWorkingDateTime.ToString() + "\" /> \r\n" +
" </WHEREITEMGROUP> \r\n" +
"</GRIDCRITERIA> ";
string critSub = " <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_Workorder_Label_ServiceCompleted\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"Equals\" CM=\"aWorkorder.aServiceCompleted\" UI=\"LT_Workorder_Label_ServiceCompleted\" TYPE=\"System.Boolean\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"False\" /> \r\n" +
" </WHEREITEMGROUP> \r\n" +
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"NotEquals\" CM=\"aWorkorderItemScheduledUser.aStartDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\" TYPE=\"System.Object\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"\" /> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"LessThanOrEqualTo\" CM=\"aWorkorderItemScheduledUser.aStartDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\" TYPE=\"System.Object\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"" + DBUtil.CurrentWorkingDateTime.ToString() + "\" /> \r\n" +
" </WHEREITEMGROUP> \r\n";
di.ListCriteria.Add("CompanyOverdue", critSub);//used to filter grid list in UI when user clicks More... list item
WorkorderServiceScheduledUserList l = WorkorderServiceScheduledUserList.Get(crit, DASHBOARDMAXLISTITEMS, null);
if (l.Count > 0)
{
int max = Max(l.Count);
for (int x = 0; x < max; x++)
{
di.compOverdueList.Add(new DashBoardInfoItem(l[x]));
}
if (l.Count == DASHBOARDMAXLISTITEMS)
di.compOverdueList.Add(MoreItem);
}
}
#endregion my overdue
#region Company Scheduled / next items list
{
string crit = "<?xml version=\"1.0\" encoding=\"utf-16\" standalone=\"yes\"?> \r\n" +
"<GRIDCRITERIA> \r\n" +
" <COLUMNITEM CM=\"aWorkorderItemScheduledUser.aStartDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\" PIN=\"0\" WIDTH=\"210\" SORT=\"ASC\" /> \r\n" +
" <COLUMNITEM CM=\"aUser.aLastName\" UI=\"LT_WorkorderItemScheduledUser_Label_UserID\" PIN=\"0\" WIDTH=\"242\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderService.aServiceNumber\" UI=\"LT_O_Workorder\" PIN=\"0\" WIDTH=\"100\" /> \r\n" +
" <COLUMNITEM CM=\"aPriority.aName\" UI=\"LT_WorkorderItem_Label_PriorityID\" PIN=\"0\" WIDTH=\"148\" /> \r\n" +
" <COLUMNITEM CM=\"aDispatchZone.aName\" UI=\"LT_O_DispatchZone\" PIN=\"0\" WIDTH=\"120\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorder.aServiceCompleted\" UI=\"LT_Workorder_Label_ServiceCompleted\" PIN=\"0\" WIDTH=\"143\" /> \r\n" +
" <COLUMNITEM CM=\"aUnit.aSerial\" UI=\"LT_Unit_Label_Serial\" PIN=\"0\" WIDTH=\"120\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorder.aOnsite\" UI=\"LT_Workorder_Label_Onsite\" PIN=\"0\" WIDTH=\"80\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderItemStatus.aName\" UI=\"LT_WorkorderItem_Label_WorkorderStatusID\" PIN=\"0\" WIDTH=\"158\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderService.aServiceDate\" UI=\"LT_WorkorderService_Label_ServiceDate\" PIN=\"0\" WIDTH=\"112\" /> \r\n" +
" <COLUMNITEM CM=\"aClient.aName\" UI=\"LT_O_Client\" PIN=\"0\" WIDTH=\"76\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderItemScheduledUser.aStopDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StopDate\" PIN=\"0\" WIDTH=\"136\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderItem.aSummary\" UI=\"LT_WorkorderItem_Label_Summary\" PIN=\"0\" WIDTH=\"121\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorder.aClosed\" UI=\"LT_Workorder_Label_Closed\" PIN=\"0\" WIDTH=\"82\" /> \r\n" +
" <COLUMNITEM CM=\"aUnitModel.aName\" UI=\"LT_O_UnitModel\" PIN=\"0\" WIDTH=\"101\" /> \r\n" +
" <COLUMNITEM CM=\"aRate.aName\" UI=\"LT_WorkorderItemScheduledUser_Label_ServiceRateID\" PIN=\"0\" WIDTH=\"124\" /> \r\n" +
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_Workorder_Label_ServiceCompleted\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"Equals\" CM=\"aWorkorder.aServiceCompleted\" UI=\"LT_Workorder_Label_ServiceCompleted\" TYPE=\"System.Boolean\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"False\" /> \r\n" +
" </WHEREITEMGROUP> \r\n" +
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"GreaterThan\" CM=\"aWorkorderItemScheduledUser.aStartDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\" TYPE=\"System.Object\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"" + DBUtil.CurrentWorkingDateTime.ToString() + "\" /> \r\n" +
" </WHEREITEMGROUP> \r\n" +
"</GRIDCRITERIA> ";
string critSub = " <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_Workorder_Label_ServiceCompleted\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"Equals\" CM=\"aWorkorder.aServiceCompleted\" UI=\"LT_Workorder_Label_ServiceCompleted\" TYPE=\"System.Boolean\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"False\" /> \r\n" +
" </WHEREITEMGROUP> \r\n" +
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"GreaterThan\" CM=\"aWorkorderItemScheduledUser.aStartDate\" UI=\"LT_WorkorderItemScheduledUser_Label_StartDate\" TYPE=\"System.Object\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"" + DBUtil.CurrentWorkingDateTime.ToString() + "\" /> \r\n" +
" </WHEREITEMGROUP> \r\n";
di.ListCriteria.Add("CompanyNext", critSub);//used to filter grid list in UI when user clicks More... list item
WorkorderServiceScheduledUserList l = WorkorderServiceScheduledUserList.Get(crit, DASHBOARDMAXLISTITEMS, null);
if (l.Count > 0)
{
int max = Max(l.Count);
for (int x = 0; x < max; x++)
{
di.compScheduledList.Add(new DashBoardInfoItem(l[x]));
}
if (l.Count == DASHBOARDMAXLISTITEMS)
di.compScheduledList.Add(MoreItem);
}
}
#endregion my scheduled
}
#region Company / region Service rate summary
{
DashboardServiceRateBalanceFetcher l = DashboardServiceRateBalanceFetcher.GetItem(User.CurrentThreadUserID, false);
di.compServiceRateSummaryList.Add(new DashBoardInfoItem(LocalizedTextTable.GetLocalizedTextDirect("UI.Label.DateRange.Today") + " = " + l.Today.ToString()));
di.compServiceRateSummaryList.Add(new DashBoardInfoItem(LocalizedTextTable.GetLocalizedTextDirect("UI.Label.DateRange.Yesterday") + " = " + l.Yesterday.ToString()));
di.compServiceRateSummaryList.Add(new DashBoardInfoItem(LocalizedTextTable.GetLocalizedTextDirect("UI.Label.DateRange.ThisWeek") + " = " + l.ThisWeek.ToString()));
di.compServiceRateSummaryList.Add(new DashBoardInfoItem(LocalizedTextTable.GetLocalizedTextDirect("UI.Label.DateRange.ThisMonth") + " = " + l.ThisMonth.ToString()));
di.compServiceRateSummaryList.Add(new DashBoardInfoItem(LocalizedTextTable.GetLocalizedTextDirect("UI.Label.DateRange.ThisYear") + " = " + l.ThisYear.ToString()));
}
#endregion my service rate summary
if (AyaBizUtils.Right("Object.ClientServiceRequest") > (int)SecurityLevelTypes.NoAccess)
{
#region Company open client service requests
{
string crit = "<?xml version=\"1.0\" encoding=\"utf-16\" standalone=\"yes\"?> \r\n" +
"<GRIDCRITERIA> \r\n" +
" <COLUMNITEM CM=\"aClientServiceRequest.aCreated\" UI=\"LT_Common_Label_Created\" PIN=\"0\" WIDTH=\"226\" SORT=\"ASC\" /> \r\n" +
" <COLUMNITEM CM=\"aClientServiceRequest.aStatus\" UI=\"LT_ClientServiceRequest_Label_Status\" PIN=\"0\" WIDTH=\"153\" /> \r\n" +
" <COLUMNITEM CM=\"aClientServiceRequest.aPriority\" UI=\"LT_ClientServiceRequest_Label_Priority\" PIN=\"0\" WIDTH=\"141\" /> \r\n" +
" <COLUMNITEM CM=\"aClientServiceRequest.aTitle\" UI=\"LT_O_ClientServiceRequest\" PIN=\"0\" WIDTH=\"156\" /> \r\n" +
" <COLUMNITEM CM=\"aClient.aName\" UI=\"LT_O_Client\" PIN=\"0\" WIDTH=\"98\" /> \r\n" +
" <COLUMNITEM CM=\"aWorkorderService.aServiceNumber\" UI=\"LT_O_Workorder\" PIN=\"0\" WIDTH=\"100\" /> \r\n" +
" <COLUMNITEM CM=\"aClientServiceRequest.ACLIENTREF\" UI=\"LT_ClientServiceRequest_Label_CustomerReferenceNumber\" PIN=\"0\" WIDTH=\"143\" /> \r\n" +
" <COLUMNITEM CM=\"aUser.aInitials\" UI=\"LT_Common_Label_Creator\" PIN=\"0\" WIDTH=\"143\" /> \r\n" +
" <COLUMNITEM CM=\"aUnit.aSerial\" UI=\"LT_Unit_Label_Serial\" PIN=\"0\" WIDTH=\"120\" /> \r\n" +
" <COLUMNITEM CM=\"aHeadOffice.aName\" UI=\"LT_O_HeadOffice\" PIN=\"0\" WIDTH=\"107\" /> \r\n" +
" <COLUMNITEM CM=\"aRegion.aName\" UI=\"LT_O_Region\" PIN=\"0\" WIDTH=\"83\" /> \r\n" +
" <COLUMNITEM CM=\"aClientServiceRequest.AREQUESTEDBY\" UI=\"LT_ClientServiceRequest_Label_RequestedBy\" PIN=\"0\" WIDTH=\"122\" /> \r\n" +
" <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_ClientServiceRequest_Label_Status\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"Equals\" CM=\"aClientServiceRequest.aStatus\" UI=\"LT_ClientServiceRequest_Label_Status\" TYPE=\"System.Int32\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"0\" /> \r\n" +
" </WHEREITEMGROUP> \r\n" +
"</GRIDCRITERIA> ";
string critSub = " <WHEREITEMGROUP GROUPLOGICALOPERATOR=\"And\" UI=\"LT_ClientServiceRequest_Label_Status\"> \r\n" +
" <WHEREITEM COMPAREOPERATOR=\"Equals\" CM=\"aClientServiceRequest.aStatus\" UI=\"LT_ClientServiceRequest_Label_Status\" TYPE=\"System.Int32\" UICOMPAREVALUE=\"\" COMPAREVALUE=\"0\" /> \r\n" +
" </WHEREITEMGROUP> \r\n";
di.ListCriteria.Add("CompanyNewServiceRequests", critSub);//used to filter grid list in UI when user clicks More... list item
ClientClientServiceRequestList l = ClientClientServiceRequestList.Get(crit, DASHBOARDMAXLISTITEMS, null);
if (l.Count > 0)
{
int max = Max(l.Count);
for (int x = 0; x < max; x++)
{
di.compServiceRequestsList.Add(new DashBoardInfoItem(l[x]));
}
if (l.Count == DASHBOARDMAXLISTITEMS)
di.compServiceRequestsList.Add(MoreItem);
}
}
#endregion my overdue
}
//?? contracts about to expire ??
//?? Maybe this: active banked service at zero or negative ??
//?? Average response time ??
}
}
#endregion company lists
return di;
}
private static int Max(int listCount)
{
if (listCount < DASHBOARDMAXLISTITEMS)
return listCount;
else
return DASHBOARDMAXLISTITEMS;
}
}//eoc
/// <summary>
/// Used internally to populate dashboard lists
/// </summary>
public class DashBoardInfoItem
{
public TypeAndID id { get; set; }
public string item { get; set; }
public DashBoardInfoItem(string itemDescription)
{
id = new TypeAndID(RootObjectTypes.Nothing, Guid.Empty);
item = itemDescription;
}
public DashBoardInfoItem(RootObjectTypes objectType, Guid objectId, string itemDescription)
{
id = new TypeAndID(objectType, objectId);
item = itemDescription;
}
public DashBoardInfoItem(object listInfoObject)
{
if (listInfoObject is WorkorderServiceScheduledUserList.WorkorderServiceScheduledUserListInfo)
{
WorkorderServiceScheduledUserList.WorkorderServiceScheduledUserListInfo i = (WorkorderServiceScheduledUserList.WorkorderServiceScheduledUserListInfo)listInfoObject;
id = new TypeAndID(RootObjectTypes.WorkorderItemScheduledUser, i.LT_WorkorderItemScheduledUser_Label_ID);
item = i.LT_WorkorderItemScheduledUser_Label_StartDate.ToString() + " " + i.LT_O_Workorder.Display + " " + i.LT_O_Client.Display + " " + i.LT_WorkorderItem_Label_Summary.Replace('\r', ' ').Replace("\n", "");
}
else if (listInfoObject is MemoList.MemoListInfo)
{
MemoList.MemoListInfo i = (MemoList.MemoListInfo)listInfoObject;
id = new TypeAndID(RootObjectTypes.Memo, i.ID);
item = i.LT_Memo_Label_Sent.ToString() + " " + i.LT_Memo_Label_FromID.Display + " " + i.LT_Memo_Label_Subject;
}
else if (listInfoObject is DashboardReminderList.DashboardReminderListInfo)
{
DashboardReminderList.DashboardReminderListInfo i = (DashboardReminderList.DashboardReminderListInfo)listInfoObject;
id = new TypeAndID(RootObjectTypes.ScheduleMarker, i.SourceObjectID);
item = i.StartDateTime.ToString() + " " + i.Subject;
}
else if (listInfoObject is ClientClientServiceRequestList.ClientClientServiceRequestListInfo)
{
ClientClientServiceRequestList.ClientClientServiceRequestListInfo i = (ClientClientServiceRequestList.ClientClientServiceRequestListInfo)listInfoObject;
id = new TypeAndID(RootObjectTypes.ClientServiceRequest, i.ID);
item = i.LT_Common_Label_Created.ToString() + " " + i.LT_O_Client + " " + i.LT_O_ClientServiceRequest + " " + i.LT_ClientServiceRequest_Label_RequestedBy;
}
}
}
#pragma warning restore 1591
}//ens