/////////////////////////////////////////////////////////// // WorkorderServiceCustomList.cs // Implementation of Class WorkorderServiceCustomList // CSLA type: Read only collection // Created on: 05-Dec-2005 // Object design: Joyce // Coded: 05-Dec-2005 /////////////////////////////////////////////////////////// using System; using System.Data; using GZTW.Data; using CSLA.Data; using CSLA; using System.Collections.Generic; namespace GZTW.AyaNova.BLL { #pragma warning disable 1591 /// /// Read only list of objects used in grids and summary reports /// [Serializable] public class WorkorderServiceCustomList : ReadOnlyCollectionBase { #region Data structure /// /// Properties /// [Serializable] public struct WorkorderServiceCustomListInfo { #region (STANDARD) Workorder Service Level #region Attributes internal Guid mWorkorderID; internal GridNameValueCellItem mWorkorder; internal GridNameValueCellItem mFromQuoteID; internal GridNameValueCellItem mFromPMID; internal GridNameValueCellItem mClient; internal GridNameValueCellItem mProject; internal GridNameValueCellItem mRegion; internal GridNameValueCellItem mStatus; internal int mStatusARGB; internal GridNameValueCellItem mCategory; internal string mInternalReferenceNumber; internal string mCustomerReferenceNumber; internal string mCustomerContactName; internal string mSummary; internal SmartDate mServiceDate; internal string mInvoiceNumber; internal bool mOnsite; internal bool mServiceCompleted; internal bool mClosed; internal GridNameValueCellItem mClientGroup; internal GridNameValueCellItem mDispatchZone; internal SmartDate mCloseByDate; internal GridRelativeTimeCellItem mServiceDateRelative; //Case 39 internal GridNameValueCellItem mHeadOffice; #endregion attributes #region Properties [Display(DisplayType.Hidden)] public Guid LT_Workorder_Label_ID { get { return mWorkorderID; } } [SqlColumnNameAttribute("aWorkorderService.aServiceNumber", "aWorkorder.aID"), Display(DisplayType.Button, RootObjectType = RootObjectTypes.Workorder, CompareAs=CompareType.StringToInt32)] public GridNameValueCellItem LT_O_Workorder { get { return mWorkorder; } } [SqlColumnNameAttribute("aWorkorderQuote.aQuoteNumber", "aWorkorder.aFromQuoteID"), Display(DisplayType.Button, RootObjectType = RootObjectTypes.WorkorderQuote, CompareAs=CompareType.StringToInt32)] public GridNameValueCellItem LT_Workorder_Label_FromQuoteID { get { return mFromQuoteID; } } [SqlColumnNameAttribute("aWorkorderPreventiveMaintenance.aPreventiveMaintenanceNumber", "aWorkorder.aFromPMID"), Display(DisplayType.Button, RootObjectType = RootObjectTypes.WorkorderPreventiveMaintenance, CompareAs=CompareType.StringToInt32)] public GridNameValueCellItem LT_Workorder_Label_FromPMID { get { return mFromPMID; } } [SqlColumnNameAttribute("aClient.aName", "aClient.aID"), Display(DisplayType.Button, RootObjectType = RootObjectTypes.Client)] public GridNameValueCellItem LT_O_Client { get { return mClient; } } //Case 39 [SqlColumnNameAttribute("aHeadOffice.aName", "aClient.aHeadOfficeID"), Display(DisplayType.Button, RootObjectType = RootObjectTypes.HeadOffice)] public GridNameValueCellItem LT_O_HeadOffice { get { return mHeadOffice; } } [SqlColumnNameAttribute("aProject.aName", "aProject.aID"), Display(DisplayType.Button, RootObjectType = RootObjectTypes.Project)] public GridNameValueCellItem LT_O_Project { get { return mProject; } } [SqlColumnNameAttribute("aRegion.aName", "aRegion.aID"), Display(DisplayType.Button, RootObjectType = RootObjectTypes.Region)] public GridNameValueCellItem LT_O_Region { get { return mRegion; } } [SqlColumnNameAttribute("aWorkorderStatus.aName", "aWorkorderService.aWorkorderStatusID"), Display(DisplayType.Button, RootObjectType = RootObjectTypes.WorkorderStatus, Color = true, ColorField = "LT_WorkorderStatus_Label_ARGB")] public GridNameValueCellItem LT_O_WorkorderStatus { get { return mStatus; } } /// /// Not for viewing directly, sets the color of the status button /// [Display(DisplayType.Hidden)] public int LT_WorkorderStatus_Label_ARGB { get { return mStatusARGB; } } [SqlColumnNameAttribute("aWorkorderCategory.aName", "aWorkorderCategory.aID"), Display(DisplayType.Button, RootObjectType = RootObjectTypes.WorkorderCategory)] public GridNameValueCellItem LT_O_WorkorderCategory { get { return mCategory; } } [Display(DisplayType.Text)] public string LT_Workorder_Label_InternalReferenceNumber { get { return mInternalReferenceNumber; } } [Display(DisplayType.Text)] public string LT_Workorder_Label_CustomerReferenceNumber { get { return mCustomerReferenceNumber; } } [Display(DisplayType.Text)] public string LT_Workorder_Label_CustomerContactName { get { return mCustomerContactName; } } [Display(DisplayType.Text)] public string LT_Workorder_Label_Summary { get { return mSummary; } } [/*Case 230*/SqlColumnNameAttribute("grid"), Display(DisplayType.Text)] public GridRelativeTimeCellItem LT_WorkorderService_Label_ServiceDateRelative { get { return mServiceDateRelative; } } [Display(DisplayType.DateTime)] public object LT_WorkorderService_Label_ServiceDate { get { return mServiceDate.DBValue; } } [Display(DisplayType.Text)] public string LT_WorkorderService_Label_InvoiceNumber { get { return mInvoiceNumber; } } [Display(DisplayType.TrueFalse)] public bool LT_Workorder_Label_Onsite { get { return mOnsite; } } [Display(DisplayType.TrueFalse)] public bool LT_Workorder_Label_ServiceCompleted { get { return mServiceCompleted; } } [Display(DisplayType.TrueFalse)] public bool LT_Workorder_Label_Closed { get { return mClosed; } } [SqlColumnNameAttribute("aClientGroup.aName", "aClientGroup.aID"), Display(DisplayType.Button, RootObjectType = RootObjectTypes.ClientGroup)] public GridNameValueCellItem LT_O_ClientGroup { get { return mClientGroup; } } [SqlColumnNameAttribute("aDispatchZone.aName", "aDispatchZone.aID"), Display(DisplayType.Button, RootObjectType = RootObjectTypes.DispatchZone)] public GridNameValueCellItem LT_O_DispatchZone { get { return mDispatchZone; } } [Display(DisplayType.DateTime)] public object LT_WorkorderService_Label_CloseByDate { get { return this.mCloseByDate.DBValue; } } //case 781 - contract name and expiry fields internal GridNameValueCellItem mContract; [SqlColumnNameAttribute("aContract.aName", "aClient.aContractID"), Display(DisplayType.Button, RootObjectType = RootObjectTypes.Contract, ShowInLite = false)] public GridNameValueCellItem LT_O_Contract { get { return mContract; } } internal SmartDate mContractExpires; [SqlColumnNameAttribute("aClient.aContractExpires"), Display(DisplayType.DateTime, ShowInLite = false)] public object LT_Client_Label_ContractExpires { get { return mContractExpires.DBValue; } } #endregion properties #endregion workorderservice level #region (STANDARD with technotes) WorkorderServiceWorkorderItemsList Level internal Guid mWorkorderItemID; internal string mWorkorderItemSummary; internal GridNameValueCellItem mWorkorderItemType; internal SmartDate mRequestDate; internal GridNameValueCellItem mPriority; internal GridNameValueCellItem mWorkorderItemStatus; internal GridNameValueCellItem mSerial; internal GridNameValueCellItem mUnitModel; internal GridNameValueCellItem mWorkorderItemUnitServiceType; internal GridNameValueCellItem mVendorSentTo; internal GridNameValueCellItem mVendorSentVia; internal string mSenderUser; internal string mRMANumber; internal string mTrackingNumber; internal decimal mRepairCost; internal decimal mRepairPrice; internal decimal mShippingCost; internal decimal mShippingPrice; internal SmartDate mDateSent; internal SmartDate mDateETA; internal SmartDate mDateReturned; internal string mTechNotes; internal bool mWarrantyService; [Display(DisplayType.Hidden)] public Guid LT_WorkorderItem_Label_ID { get { return mWorkorderItemID; } } [Display(DisplayType.Text)] public string LT_WorkorderItem_Label_Summary { get { return mWorkorderItemSummary; } } [SqlColumnNameAttribute("aWorkorderItemType.aName", "aWorkorderItem.aTypeID"), Display(DisplayType.Button, RootObjectType = RootObjectTypes.WorkorderItemType)] public GridNameValueCellItem LT_WorkorderItem_Label_TypeID { get { return mWorkorderItemType; } } [Display(DisplayType.DateTime)] public object LT_WorkorderItem_Label_RequestDate { get { return mRequestDate.DBValue; } } [SqlColumnNameAttribute("aPriority.aName", "aWorkorderItem.aPriorityID"), Display(DisplayType.Button, RootObjectType = RootObjectTypes.Priority)] public GridNameValueCellItem LT_WorkorderItem_Label_PriorityID { get { return mPriority; } } //Changed: 26-April-2006 added sqlcolumnname attribute that was missing causing errors filtering on that column in grid [SqlColumnNameAttribute("aWorkorderItemStatus.aName", "aWorkorderItem.aWorkorderStatusID"), Display(DisplayType.Button, RootObjectType = RootObjectTypes.WorkorderStatus, Color = true, ColorField = "WorkorderItemStatusARGB")/*Case 40*/] public GridNameValueCellItem LT_WorkorderItem_Label_WorkorderStatusID { get { return mWorkorderItemStatus; } } /// /// Case 40 /// Not for viewing directly, sets the color of the status button /// /// [Display(DisplayType.Hidden)] public int WorkorderItemStatusARGB { get { return mWorkorderItemStatusARGB; } } internal int mWorkorderItemStatusARGB; [SqlColumnNameAttribute("aUnit.aSerial", "aWorkorderItem.aUnitID"), Display(DisplayType.Button, RootObjectType = RootObjectTypes.Unit)] public GridNameValueCellItem LT_Unit_Label_Serial { get { return mSerial; } } [SqlColumnNameAttribute("aUnitModel.aName", "aUnit.aUnitModelID"), Display(DisplayType.Button, RootObjectType = RootObjectTypes.UnitModel)] public GridNameValueCellItem LT_O_UnitModel { get { return mUnitModel; } } [SqlColumnNameAttribute("aUnitServiceType.aName", "aWorkorderItem.aWorkorderItemUnitServiceTypeID"), Display(DisplayType.Button, RootObjectType = RootObjectTypes.UnitServiceType)] public GridNameValueCellItem LT_O_UnitServiceType { get { return mWorkorderItemUnitServiceType; } } [SqlColumnNameAttribute("aVendorSentToTable.aName", "aWorkorderItemOutsideService.aVendorSentToID"), Display(DisplayType.Button, RootObjectType = RootObjectTypes.Vendor)] public GridNameValueCellItem LT_WorkorderItemOutsideService_Label_VendorSentToID { get { return mVendorSentTo; } } [SqlColumnNameAttribute("aVendorSentViaTable.aName", "aWorkorderItemOutsideService.aVendorSentViaID"), Display(DisplayType.Button, RootObjectType = RootObjectTypes.Vendor)] public GridNameValueCellItem LT_WorkorderItemOutsideService_Label_VendorSentViaID { get { return mVendorSentVia; } } [SqlColumnNameAttribute("grid"),Display(DisplayType.Text)]//case 800 public string LT_WorkorderItemOutsideService_Label_SenderUserID { get { return mSenderUser; } } [Display(DisplayType.Text)] public string LT_WorkorderItemOutsideService_Label_RMANumber { get { return mRMANumber; } } [Display(DisplayType.Text)] public string LT_WorkorderItemOutsideService_Label_TrackingNumber { get { return mTrackingNumber; } } [Display(DisplayType.Currency)] public decimal LT_WorkorderItemOutsideService_Label_RepairCost { get { return mRepairCost; } } [Display(DisplayType.Currency)] public decimal LT_WorkorderItemOutsideService_Label_RepairPrice { get { return mRepairPrice; } } [Display(DisplayType.Currency)] public decimal LT_WorkorderItemOutsideService_Label_ShippingCost { get { return mShippingCost; } } [Display(DisplayType.Currency)] public decimal LT_WorkorderItemOutsideService_Label_ShippingPrice { get { return mShippingPrice; } } [Display(DisplayType.DateTime)] public object LT_WorkorderItemOutsideService_Label_DateSent { get { return mDateSent.DBValue; } } [Display(DisplayType.DateTime)] public object LT_WorkorderItemOutsideService_Label_DateETA { get { return mDateETA.DBValue; } } [Display(DisplayType.DateTime)] public object LT_WorkorderItemOutsideService_Label_DateReturned { get { return mDateReturned.DBValue; } } [Display(DisplayType.TrueFalse)] public bool LT_WorkorderItem_Label_WarrantyService { get { return mWarrantyService; } } [SqlColumnNameAttribute("grid"), Display(DisplayType.Text)] public string LT_WorkorderItem_Label_TechNotes { get { return mTechNotes; } } #endregion #region WorkorderServiceWorkorderItemsListDetailed (custom fields) Level internal string mCustom1; internal string mCustom2; internal string mCustom3; internal string mCustom4; internal string mCustom5; internal string mCustom6; internal string mCustom7; internal string mCustom8; internal string mCustom9; internal string mCustom0; [Display(DisplayType.Text)] public string LT_WorkorderItem_Label_Custom1 { get { return mCustom1; } } [Display(DisplayType.Text)] public string LT_WorkorderItem_Label_Custom2 { get { return mCustom2; } } [Display(DisplayType.Text)] public string LT_WorkorderItem_Label_Custom3 { get { return mCustom3; } } [Display(DisplayType.Text)] public string LT_WorkorderItem_Label_Custom4 { get { return mCustom4; } } [Display(DisplayType.Text)] public string LT_WorkorderItem_Label_Custom5 { get { return mCustom5; } } [Display(DisplayType.Text)] public string LT_WorkorderItem_Label_Custom6 { get { return mCustom6; } } [Display(DisplayType.Text)] public string LT_WorkorderItem_Label_Custom7 { get { return mCustom7; } } [Display(DisplayType.Text)] public string LT_WorkorderItem_Label_Custom8 { get { return mCustom8; } } [Display(DisplayType.Text)] public string LT_WorkorderItem_Label_Custom9 { get { return mCustom9; } } [Display(DisplayType.Text)] public string LT_WorkorderItem_Label_Custom0 { get { return mCustom0; } } #endregion workorderserviceworkorderitemslistdetailed (custom fields) level /// /// /// /// public bool Equals(WorkorderServiceCustomListInfo obj) { return this.mWorkorder.Value.Equals(obj.mWorkorder.Value); } }//end WorkorderServiceCustomListInfo #endregion #region Constructor private RelativeTimeFormatter rtfm=null; protected WorkorderServiceCustomList() { rtfm=RelativeTimeFormatter.GetItem(User.CurrentUserLanguage); // AllowSort=false; // AllowFind=true; // AllowEdit=false; // AllowNew=false; // AllowRemove=false; } #endregion #region Business properties and methods /// /// Get item by index /// /// public WorkorderServiceCustomListInfo this[int Item] { get { return (WorkorderServiceCustomListInfo) List[Item]; } } /// /// Returns display text that matches passed in itemid value /// /// public string this[Guid ItemID] { get { foreach (WorkorderServiceCustomListInfo child in List) { if(child.mWorkorder.Value==ItemID) return child.ToString(); } return "Missing: "+ItemID.ToString(); } } #endregion #region contains /// /// Check if item in collection /// /// public bool Contains(WorkorderServiceCustomListInfo obj) { foreach (WorkorderServiceCustomListInfo child in List) { if(child.Equals(obj)) return true; } return false; } #endregion #region Reporting and shared UI editor helpers /// /// Returns the report key which is a property of /// reports used to link all reports that can be used /// with a particular data source. /// public static string ReportKey { get { return "WorkorderServiceCustomList"; } } /// /// Returns the Detailed report key /// which is used to determine which reports and objects /// will be used for detailed reports /// /// If empty string then indicates there is no detailed report object or reports /// public static string DetailedReportKey { get { //no detailed for this return ""; } } /// /// Base object that this list is reporting on /// used by shared UI editor to instantiate new objects /// when user selects new in UI elements that display this list /// /// (I.E. when user clicks on new in a read only list grid, this is the object type created) /// public static RootObjectTypes BaseObjectType { get { return RootObjectTypes.WorkorderService; } } /// /// The Type of the struct used to store list records /// Used to fetch the custom display attributes of the fields /// contained within the record to modify the grid display accordingly /// /// public static Type ListRecordType { get { return typeof(WorkorderServiceCustomListInfo); } } /// /// Locale key so that generic list editor /// UI code knows what title to give the list in a /// grid /// public string LocaleKey { get { return "WorkorderItem.Label.CustomFields"; } } /// /// Field that contains the ID of the objects /// that are the basis of this list. /// /// Used for compiling an ID list for reporting from user /// selections in a grid. /// public static string IDField { get { return "LT_WorkorderItem_Label_ID"; } } /// /// Same as IDField but for detailed reports /// public static string IDFieldDetailed { get { return WorkorderServiceList.IDFieldDetailed; } } #endregion #region Static methods /// /// Internal method used by list factory /// internal static WorkorderServiceCustomList Get(string Filter, int MaxRecords, List IDList) { return (WorkorderServiceCustomList)DataPortal.Fetch(new Criteria(Filter, IDList, MaxRecords)); } /// /// Get all (filtered by crit) /// /// Use AyaNova UI to easily build xmlCriteria and Ctrl-Alt-g keyboard command to display it for use in your code /// list of objects public static WorkorderServiceCustomList GetList(string xmlCriteria) { return (WorkorderServiceCustomList) DataPortal.Fetch(new Criteria(xmlCriteria,null,-1)); } /// /// Takes a single ID and returns a "list" of one object /// /// ID of WorkorderItem object /// list of objects public static WorkorderServiceCustomList GetListForSingleItem(Guid WorkorderItemID) { //Case 556 List l = new List(); l.Add(WorkorderItemID); return GetListFromIDList(l); } /// /// Get list by items indicated in IDList /// /// Generic list of Guid's /// list of objects public static WorkorderServiceCustomList GetListFromIDList(List IDList) { //case 556 //Handle empty list if (IDList.Count == 0) return new WorkorderServiceCustomList(); return (WorkorderServiceCustomList)DataPortal.Fetch(new Criteria("", IDList, -1)); } /// /// Return an empty list /// used for initializing grid /// /// public static WorkorderServiceCustomList GetEmptyList() { return new WorkorderServiceCustomList(); } #endregion #region DAL DATA ACCESS /// /// protected override void DataPortal_Fetch(object Criteria) { #region Cached objects // //task completion types // string TaskComplete=LocalizedTextTable.GetLocalizedTextDirect("WorkorderItemTask.Label.CompletionType.Complete"); // string TaskIncomplete=LocalizedTextTable.GetLocalizedTextDirect("WorkorderItemTask.Label.CompletionType.Incomplete"); // string TaskNotApplicable=LocalizedTextTable.GetLocalizedTextDirect("WorkorderItemTask.Label.CompletionType.NotApplicable"); // // //Tax codes cache // TaxCodeList taxlist=TaxCodeList.GetList(); // // //Users UserPickList users=UserPickList.GetList(false); // // //Service rates // RatePickList rates=RatePickList.GetList(); // #endregion cached objects Criteria crit = (Criteria)Criteria; DateTime dtNow = DBUtil.CurrentWorkingDateTime; SafeDataReader dr = null; try { DBCommandWrapper cm = null; //Base query string q= //*********************************************************************************************************** "SELECT ~MAXRECS~ aWorkorderService.aServiceNumber AS aWorkorderNumber, " + " aContract.aName AS aContractName, ACLIENT.aContractExpires, ACLIENT.aContractID, " +//case 781 " ACLIENT.aName AS aClientName, ACLIENT.aID " + "AS aClientID, aClient.aHeadOfficeID, aHeadOffice.aName as aHeadOfficeName, aWorkorder.aInternalReferenceNumber, " + " aWorkorder.aCustomerReferenceNumber, " + " aProject.aName AS aProjectName, aProject.aID " + "AS aProjectID, aRegion.aName AS aRegionName, " + " aRegion.aID AS aRegionID, aWorkorderStatus.aName " + "AS aWorkorderStatusName, aWorkorderStatus.aID " + "AS aWorkorderStatusID, aWorkorderStatus.AARGB, " + " aWorkorderService.aServiceDate, " + " aWorkorderService.aInvoiceNumber, aWorkorder.aOnsite, " + " aWorkorder.aClosed, aWorkorder.aServiceCompleted, " + " aWorkorder.aCustomerContactName, " + " aWorkorder.aSummary, aWorkorderCategory.aName " + "AS aWorkorderCategoryName, aWorkorderCategory.aID " + "AS aWorkorderCategoryID, aWorkorder.aFromPMID, " + " aWorkorderPreventiveMaintenance.aPreventiveMaintenanceNumber, " + " aWorkorder.aFromQuoteID, " + " aWorkorderQuote.aQuoteNumber, " + " aWorkorderService.aCloseByDate, ACLIENT.aDispatchZoneID, " + " aDispatchZone.aName AS aDispatchZoneName, " + " ACLIENT.aClientGroupID, aClientGroup.aName " + "AS aClientGroupName, AWORKORDERITEM.aSummary " + "AS aWORKORDERITEMSUMMARY, AWORKORDERITEM.aTypeID, " + " aWorkorderItemType.aName AS " + "aTypeName, AWORKORDERITEM.aRequestDate, aPriority.aName " + "AS aPriorityName, AWORKORDERITEM.aPriorityID, " + " AWORKORDERITEM.aWorkorderStatusID " + "AS aWorkorderItemStatusID, aWorkorderItemStatus.aName " + "AS aWorkorderItemStatusName, aWorkorderItemStatus.aargb AS aWIARGB, AWORKORDERITEM.aUnitID, " + //Case 40 " aUnitModel.aName AS aUnitModelName, aUnitModel.aModelNumber, " + //Case 139 " aUnitModelVendor.aName AS aUnitVendorName, " + "aUnit.aSerial, AUNIT.ADESCRIPTION AS AUNITDESCRIPTION, aUnit.aUnitModelID, AWORKORDERITEM.aWorkorderItemUnitServiceTypeID, " + " aUnitServiceType.aName " + "AS aWIUnitServiceTypeName, " + "aWorkorderItemOutsideService.aVendorSentToID, " + "aVendorSentToTable.aName AS aVendorSentToName, aWorkorderItemOutsideService.aVendorSentViaID, " + " aVendorSentViaTable.aName " + "AS aVendorSentViaName, aWorkorderItemOutsideService.aRMANumber, " + " aWorkorderItemOutsideService.aTrackingNumber, " + " aWorkorderItemOutsideService.aRepairCost, " + " aWorkorderItemOutsideService.aRepairPrice, " + " aWorkorderItemOutsideService.aShippingCost, " + " aWorkorderItemOutsideService.aShippingPrice, " + " aWorkorderItemOutsideService.aDateSent, " + " aWorkorderItemOutsideService.aDateETA, " + " aWorkorderItemOutsideService.aDateReturned, " + " aWorkorderItemOutsideService.aSenderUserID, " + " AWORKORDERITEM.aTechNotes, AWORKORDERITEM.aWarrantyService, " + " AWORKORDERITEM.aCustom1, " + " AWORKORDERITEM.aCustom2, AWORKORDERITEM.aCustom3, " + " AWORKORDERITEM.aCustom4, " + " AWORKORDERITEM.aCustom5, AWORKORDERITEM.aCustom6, " + " AWORKORDERITEM.aCustom7, AWORKORDERITEM.aCustom8, " + " AWORKORDERITEM.aCustom9, " + " AWORKORDERITEM.aCustom0, aWorkorder.aID " + "AS aWorkorderID, AWORKORDERITEM.aID AS aWorkorderItemID " + "FROM " + " AWORKORDER " + " LEFT OUTER JOIN AWORKORDERITEM ON (AWORKORDER.AID=AWORKORDERITEM.AWORKORDERID) " + " LEFT OUTER JOIN AWORKORDERITEMOUTSIDESERVICE ON (AWORKORDERITEM.AID=AWORKORDERITEMOUTSIDESERVICE.AWORKORDERITEMID) " + " LEFT OUTER JOIN AWORKORDERSTATUS aWorkorderItemStatus ON (AWORKORDERITEM.AWORKORDERSTATUSID=aWorkorderItemStatus.AID) " + " LEFT OUTER JOIN AVENDOR aVendorSentToTable ON (AWORKORDERITEMOUTSIDESERVICE.AVENDORSENTTOID=aVendorSentToTable.AID) " + " LEFT OUTER JOIN AVENDOR aVendorSentViaTable ON (AWORKORDERITEMOUTSIDESERVICE.AVENDORSENTVIAID=aVendorSentViaTable.AID) " + " LEFT OUTER JOIN APRIORITY ON (AWORKORDERITEM.APRIORITYID=APRIORITY.AID) " + " LEFT OUTER JOIN AUNITSERVICETYPE ON (AWORKORDERITEM.AWORKORDERITEMUNITSERVICETYPEID=AUNITSERVICETYPE.AID) " + " LEFT OUTER JOIN AWORKORDERITEMTYPE ON (AWORKORDERITEM.ATYPEID=AWORKORDERITEMTYPE.AID) " + " LEFT OUTER JOIN AUNIT ON (AUNIT.AID=AWORKORDERITEM.AUNITID) " + " LEFT OUTER JOIN AUNITMODEL ON (AUNIT.AUNITMODELID=AUNITMODEL.AID) " + " LEFT OUTER JOIN AVENDOR aUnitModelVendor ON (AUNITMODEL.AVENDORID=aUnitModelVendor.AID) " + " LEFT OUTER JOIN AWORKORDERQUOTE ON (AWORKORDER.AFROMQUOTEID=AWORKORDERQUOTE.AID) " + " LEFT OUTER JOIN AWORKORDERPREVENTIVEMAINTENANCE ON (AWORKORDER.AFROMPMID=AWORKORDERPREVENTIVEMAINTENANCE.AID) " + //" LEFT OUTER JOIN AREGION ON (ACLIENT.AREGIONID=AREGION.AID) " + " LEFT OUTER JOIN AWORKORDERCATEGORY ON (AWORKORDER.AWORKORDERCATEGORYID=AWORKORDERCATEGORY.AID) " + " LEFT OUTER JOIN APROJECT ON (AWORKORDER.APROJECTID=APROJECT.AID) " + " LEFT OUTER JOIN AWORKORDERSERVICE ON (AWORKORDER.AID=AWORKORDERSERVICE.AWORKORDERID) " + " LEFT OUTER JOIN AWORKORDERSTATUS ON (AWORKORDERSERVICE.AWORKORDERSTATUSID=AWORKORDERSTATUS.AID) " + " LEFT OUTER JOIN ACLIENT ON (AWORKORDER.ACLIENTID=ACLIENT.AID) " + " LEFT OUTER JOIN AREGION ON (ACLIENT.AREGIONID=AREGION.AID) " +//Changed:16-June-2006 Moved here " LEFT OUTER JOIN ADISPATCHZONE ON (ACLIENT.ADISPATCHZONEID=ADISPATCHZONE.AID) " + " LEFT OUTER JOIN ACLIENTGROUP ON (ACLIENT.ACLIENTGROUPID=ACLIENTGROUP.AID) " + //Case 39 " LEFT OUTER JOIN AHEADOFFICE ON (ACLIENT.AHEADOFFICEID=AHEADOFFICE.AID) " + //case 781 " LEFT OUTER JOIN aContract ON ACLIENT.aContractID = aContract.aID " + "WHERE (aWorkorder.aWorkorderType = 1) AND " + "(AWORKORDERITEM.aID IS NOT NULL) " //*********************************************************************************************************** ; if (crit.MaxRecords > 0) q = q.Replace("~MAXRECS~", "TOP " + crit.MaxRecords.ToString()); else q = q.Replace("~MAXRECS~", ""); //Built in order for reporting string qOrderBy= " aWorkorder.aID, AWORKORDERITEM.aID "; //One item or grid criteria? if (crit.IDList != null) { //Case 556 System.Text.StringBuilder sbIN = new System.Text.StringBuilder(); sbIN.Append(" AND (aWorkorderItem.aID in ("); foreach (Guid gItem in crit.IDList) { sbIN.Append("'"); sbIN.Append("{"); sbIN.Append(gItem.ToString().ToUpperInvariant()); sbIN.Append("}"); sbIN.Append("',"); } sbIN.Length = sbIN.Length - 1; sbIN.Append(")) "); //One item: cm = DBUtil.DB.GetSqlStringCommandWrapper(q + sbIN.ToString() + " ORDER BY " + qOrderBy); } else { //Grid criteria cm = DBUtil.DB.GetSqlStringCommandWrapper(DBUtil.AddRegionFilter(//case 58 q + AyaBizUtils.GetGridColumnCriteria(crit.CriteriaXML,false) + " " + AyaBizUtils.GetGridSortOrderColumns(crit.CriteriaXML) /*+ ", "+ qOrderBy*/ ) ); } dr=new SafeDataReader(DBUtil.DB.ExecuteReader(cm)); while(dr.Read()) { //******************************************* WorkorderServiceCustomListInfo info=new WorkorderServiceCustomListInfo(); #region Workorder Service Level info.mWorkorderID = dr.GetGuid("aWorkorderID"); info.mWorkorder = new GridNameValueCellItem( dr.GetGuid("aWorkorderID"), dr.GetInt32("aWorkorderNumber").ToString(), RootObjectTypes.Workorder); info.mFromQuoteID = new GridNameValueCellItem( dr.GetGuid("aFromQuoteID"), dr.GetInt32("aQuoteNumber") == 0 ? "" : dr.GetInt32("aQuoteNumber").ToString(), RootObjectTypes.WorkorderQuote); info.mFromPMID = new GridNameValueCellItem( dr.GetGuid("aFromPMID"), dr.GetInt32("aPreventiveMaintenanceNumber") == 0 ? "" : dr.GetInt32("aPreventiveMaintenanceNumber").ToString(), RootObjectTypes.WorkorderPreventiveMaintenance); //case 781 info.mContract = new GridNameValueCellItem( dr.GetGuid("aContractID"), dr.GetString("aContractName"), RootObjectTypes.Contract); info.mContractExpires = DBUtil.ToLocal(dr.GetSmartDate("aContractExpires")); info.mClient = new GridNameValueCellItem( dr.GetGuid("aClientID"), dr.GetString("aClientName"), RootObjectTypes.Client); info.mHeadOffice = new GridNameValueCellItem( dr.GetGuid("aHeadOfficeID"), dr.GetString("aHeadOfficeName"), RootObjectTypes.HeadOffice); info.mProject = new GridNameValueCellItem( dr.GetGuid("aProjectID"), dr.GetString("aProjectName"), RootObjectTypes.Project); info.mRegion = new GridNameValueCellItem( dr.GetGuid("aRegionID"), dr.GetString("aRegionName"), RootObjectTypes.Region); info.mStatus = new GridNameValueCellItem( dr.GetGuid("aWorkorderStatusID"), dr.GetString("aWorkorderStatusName"), RootObjectTypes.WorkorderStatus); info.mCategory = new GridNameValueCellItem( dr.GetGuid("aWorkorderCategoryID"), dr.GetString("aWorkorderCategoryName"), RootObjectTypes.WorkorderCategory); info.mStatusARGB = dr.GetInt32("AARGB"); info.mInternalReferenceNumber = dr.GetString("aInternalReferenceNumber"); info.mCustomerReferenceNumber = dr.GetString("aCustomerReferenceNumber"); info.mCustomerContactName = dr.GetString("aCustomerContactName"); info.mSummary = dr.GetString("aSummary"); info.mServiceDate = DBUtil.ToLocal(dr.GetSmartDate("aServiceDate")); info.mServiceDateRelative = new GridRelativeTimeCellItem(rtfm.Format(dtNow, info.mServiceDate)); info.mInvoiceNumber = dr.GetString("aInvoiceNumber"); info.mOnsite = dr.GetBoolean("aOnsite"); info.mClosed = dr.GetBoolean("aClosed"); info.mServiceCompleted = dr.GetBoolean("aServiceCompleted"); info.mDispatchZone = new GridNameValueCellItem( dr.GetGuid("aDispatchZoneID"), dr.GetString("aDispatchZoneName"), RootObjectTypes.DispatchZone); info.mClientGroup = new GridNameValueCellItem( dr.GetGuid("aClientGroupID"), dr.GetString("aClientGroupName"), RootObjectTypes.ClientGroup); info.mCloseByDate = DBUtil.ToLocal(dr.GetSmartDate("aCloseByDate")); #endregion workorderservicelevel #region WorkorderServiceWorkorderItemList Level info.mWorkorderItemID = dr.GetGuid("aWorkorderItemID"); info.mWorkorderItemSummary = dr.GetString("aWORKORDERITEMSUMMARY"); info.mWorkorderItemType = new GridNameValueCellItem( dr.GetGuid("aTypeID"), dr.GetString("aTypeName"), RootObjectTypes.WorkorderItemType); info.mRequestDate = DBUtil.ToLocal(dr.GetSmartDate("aRequestDate")); info.mPriority = new GridNameValueCellItem( dr.GetGuid("aPriorityID"), dr.GetString("aPriorityName"), RootObjectTypes.Priority); info.mWorkorderItemStatus = new GridNameValueCellItem( dr.GetGuid("aWorkorderItemStatusID"), dr.GetString("aWorkorderItemStatusName"), RootObjectTypes.WorkorderStatus); //Case 40 info.mWorkorderItemStatusARGB = dr.GetInt32("aWIARGB"); info.mSerial = new GridNameValueCellItem( dr.GetGuid("aUnitID"), Unit.UnitNameFormatter(dr.GetString("aModelNumber"), dr.GetString("aUnitModelName"), dr.GetString("aUnitVendorName"), dr.GetString("aSerial"), dr.GetString("AUNITDESCRIPTION"), AyaBizUtils.GlobalSettings.DefaultUnitNameDisplayFormat), RootObjectTypes.Unit); //Case 139 //info.mUnitModel = new GridNameValueCellItem( // dr.GetGuid("aUnitModelID"), // dr.GetString("aUnitModelName"), // RootObjectTypes.UnitModel); info.mUnitModel = new GridNameValueCellItem( dr.GetGuid("aUnitModelID"), AyaBizUtils.SS("", dr.GetString("aUnitModelName"), " ") + dr.GetString("aModelNumber"), RootObjectTypes.UnitModel); info.mWorkorderItemUnitServiceType = new GridNameValueCellItem( dr.GetGuid("aWorkorderItemUnitServiceTypeID"), dr.GetString("aWIUnitServiceTypeName"), RootObjectTypes.UnitServiceType); //Fixup these... info.mVendorSentTo = new GridNameValueCellItem( dr.GetGuid("aVendorSentToID"), dr.GetString("aVendorSentToName"), RootObjectTypes.Vendor); info.mVendorSentVia = new GridNameValueCellItem( dr.GetGuid("aVendorSentViaID"), dr.GetString("aVendorSentViaName"), RootObjectTypes.Vendor); info.mSenderUser = users[dr.GetGuid("aSenderUserID")]; info.mRMANumber = dr.GetString("aRMANumber"); info.mTrackingNumber = dr.GetString("aTrackingNumber"); info.mRepairCost = dr.GetDecimal("aRepairCost"); info.mRepairPrice = dr.GetDecimal("aRepairPrice"); info.mShippingCost = dr.GetDecimal("aShippingCost"); info.mShippingPrice = dr.GetDecimal("aShippingPrice"); info.mDateSent = DBUtil.ToLocal(dr.GetSmartDate("aDateSent")); info.mDateETA = DBUtil.ToLocal(dr.GetSmartDate("aDateETA")); info.mDateReturned = DBUtil.ToLocal(dr.GetSmartDate("aDateReturned")); info.mWarrantyService = dr.GetBoolean("aWarrantyService"); //ONLY DIFFERENT FIELD FROM STANDARD info.mTechNotes = dr.GetString("aTechNotes"); #endregion workorderserviceworkorderitemlist fields #region WorkorderServiceWorkorderItemsListDetailed (custom fields) Level info.mCustom0=dr.GetString("aCustom0"); info.mCustom1=dr.GetString("aCustom1"); info.mCustom2=dr.GetString("aCustom2"); info.mCustom3=dr.GetString("aCustom3"); info.mCustom4=dr.GetString("aCustom4"); info.mCustom5=dr.GetString("aCustom5"); info.mCustom6=dr.GetString("aCustom6"); info.mCustom7=dr.GetString("aCustom7"); info.mCustom8=dr.GetString("aCustom8"); info.mCustom9=dr.GetString("aCustom9"); #endregion workorderserviceworkorderitemslistdetailed (custom fields) level InnerList.Add(info); //******************************************* } } finally { if(dr!=null) dr.Close(); } } #endregion #region criteria /// /// Criteria for identifying existing object /// [Serializable] private class Criteria { public List IDList; public string CriteriaXML; public int MaxRecords; public Criteria(string _CriteriaXML, List _IDList, int _MaxRecords) { CriteriaXML = _CriteriaXML; IDList = _IDList; MaxRecords = _MaxRecords; } } #endregion }//end WorkorderServiceCustomList #pragma warning restore 1591 }//end namespace GZTW.AyaNova.BLL