From c5a5fd3bd977ee65d6e7799e0d0f3f535d82a334 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 5 Aug 2021 00:57:09 +0000 Subject: [PATCH] --- server/AyaNova/DataList/DataListFetcher.cs | 5 + .../DataList/DataListSqlSelectBuilder.cs | 2 +- .../AyaNova/DataList/QuoteItemPartDataList.cs | 594 ++++++++++++++++++ 3 files changed, 600 insertions(+), 1 deletion(-) create mode 100644 server/AyaNova/DataList/QuoteItemPartDataList.cs diff --git a/server/AyaNova/DataList/DataListFetcher.cs b/server/AyaNova/DataList/DataListFetcher.cs index a9a6e245..16ecb9ea 100644 --- a/server/AyaNova/DataList/DataListFetcher.cs +++ b/server/AyaNova/DataList/DataListFetcher.cs @@ -72,6 +72,11 @@ namespace AyaNova.DataList { //get the AyaObjectFieldDefinition DataListFieldDefinition f = DataList.FieldDefinitions.FirstOrDefault(z => z.FieldKey == TemplateField); + if(f==null){ + + log.LogError($"DataListFetcher:GetResponseAsync Template field '{TemplateField}' was NOT found in the field definitions for data list {DataList.ToString()}"); + continue; + } if (f.IsCustomField) { DataListField AyaField = new DataListField(); diff --git a/server/AyaNova/DataList/DataListSqlSelectBuilder.cs b/server/AyaNova/DataList/DataListSqlSelectBuilder.cs index c9c2e3a1..24938d8b 100644 --- a/server/AyaNova/DataList/DataListSqlSelectBuilder.cs +++ b/server/AyaNova/DataList/DataListSqlSelectBuilder.cs @@ -32,7 +32,7 @@ namespace AyaNova.DataList #if (DEBUG) //Developers little helper if (o == null) - { + { throw new System.ArgumentNullException($"## DEV ERROR in DataListSqlSelectBuilder.cs:BuildForDataTableListResponse() field {ColumnName} specified in columns was NOT found in the data list's ObjectFields list, a defined fieldkey name differs from the columns key name"); } #endif diff --git a/server/AyaNova/DataList/QuoteItemPartDataList.cs b/server/AyaNova/DataList/QuoteItemPartDataList.cs new file mode 100644 index 00000000..328f303f --- /dev/null +++ b/server/AyaNova/DataList/QuoteItemPartDataList.cs @@ -0,0 +1,594 @@ +using System.Collections.Generic; +using System.Linq; +using AyaNova.Biz; +using AyaNova.Models; + +namespace AyaNova.DataList +{ + internal class QuoteItemPartDataList : DataListProcessingBase, IDataListInternalCriteria + { + public QuoteItemPartDataList() + { + DefaultListAType = AyaType.Quote; + SQLFrom = "from aquote " + + "left join aquotestatus on (aquote.laststatusid = aquotestatus.id) " + + "left join acustomer on (aquote.customerid = acustomer.id) " + + "left join aheadoffice on (acustomer.headofficeid = aheadoffice.id) " + + "left join aproject on (aquote.projectid = aproject.id) " + + "left join auser as aprepuser on (aquote.preparedbyid = aprepuser.id) " + + "left join acontract on (aquote.contractid = acontract.id)" + + "left join aquoteitem on aquote.id=aquoteitem.quoteid " + + "left join aworkorderitemstatus on (aquoteitem.workorderitemstatusid = aworkorderitemstatus.id) " + + "left join aworkorderitempriority on (aquoteitem.workorderitempriorityid = aworkorderitempriority.id) " + + //workorder item part + + "left join aquoteitempart on aquoteitem.id=aquoteitempart.quoteitemid " + + "left join apart on (aquoteitempart.partid=apart.id) " + + "left join apartwarehouse on (aquoteitempart.partwarehouseid=apartwarehouse.id) " + + "left join ataxcode on (aquoteitempart.taxpartsaleid=ataxcode.id) " + ; + + var RoleSet = BizRoles.GetRoleSet(DefaultListAType); + AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; + DefaultColumns = new List() { + "QuoteSerialNumber", + "WorkOrderItemSequence", + "WorkOrderItemSummary", + "Customer", + "QuoteQuoteRequestDate", + "WorkOrderItemPartPartID", + "WorkOrderItemPartQuantity" + }; + DefaultSortBy = new Dictionary() { { "QuoteSerialNumber", "-" }, { "WorkOrderItemSequence", "+" }, { "WorkOrderItemPartPartID", "+" } }; + FieldDefinitions = new List(); + + + /* + ██████╗ █████╗ ██████╗ ████████╗███████╗ + ██╔══██╗██╔══██╗██╔══██╗╚══██╔══╝██╔════╝ + ██████╔╝███████║██████╔╝ ██║ ███████╗ + ██╔═══╝ ██╔══██║██╔══██╗ ██║ ╚════██║ + ██║ ██║ ██║██║ ██║ ██║ ███████║ + ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚══════╝ + */ + + #region QuoteItemPart fields + + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemPartPartID", + FieldKey = "WorkOrderItemPartPartID", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.QuoteItemPart, + SqlIdColumnName = "aquoteitempart.id", + SqlValueColumnName = "apart.partnumber", + IsRowId = true + }); + + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemPartPartWarehouseID", + FieldKey = "WorkOrderItemPartPartWarehouseID", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.PartWarehouse, + SqlIdColumnName = "aquoteitempart.partwarehouseid", + SqlValueColumnName = "apartwarehouse.name" + }); + + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemPartQuantity", + FieldKey = "WorkOrderItemPartQuantity", + UiFieldDataType = (int)UiFieldDataType.Decimal, + SqlValueColumnName = "aquoteitempart.quantity" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "PartUPC", + FieldKey = "PartUPC", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.QuoteItemPart, + SqlIdColumnName = "aquoteitempart.id", + SqlValueColumnName = "apart.upc" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemPartDescription", + FieldKey = "WorkOrderItemPartDescription", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.QuoteItemPart, + SqlIdColumnName = "aquoteitempart.id", + SqlValueColumnName = "aquoteitempart.description" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "PurchaseOrderItemSerialNumbers", + FieldKey = "PurchaseOrderItemSerialNumbers", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.QuoteItemPart, + SqlIdColumnName = "aquoteitempart.id", + SqlValueColumnName = "aquoteitempart.serials" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemPartTaxPartSaleID", + FieldKey = "WorkOrderItemPartTaxPartSaleID", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.TaxCode, + SqlIdColumnName = "aquoteitempart.taxpartsaleid", + SqlValueColumnName = "ataxcode.name" + }); + + + + //META column + FieldDefinitions.Add(new DataListFieldDefinition + { + FieldKey = "metawoitempartid", + UiFieldDataType = (int)UiFieldDataType.InternalId, + SqlIdColumnName = "aquoteitempart.id", + SqlValueColumnName = "aquoteitempart.id", + IsMeta = true + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + FieldKey = "metapart", + UiFieldDataType = (int)UiFieldDataType.InternalId, + SqlIdColumnName = "aquoteitempart.partid", + SqlValueColumnName = "aquoteitempart.partid", + IsMeta = true + }); + + #endregion + + + + /* + ██╗████████╗███████╗███╗ ███╗███████╗ + ██║╚══██╔══╝██╔════╝████╗ ████║██╔════╝ + ██║ ██║ █████╗ ██╔████╔██║███████╗ + ██║ ██║ ██╔══╝ ██║╚██╔╝██║╚════██║ + ██║ ██║ ███████╗██║ ╚═╝ ██║███████║ + ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝ + */ + #region QuoteItem fields + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemSummary", + FieldKey = "WorkOrderItemSummary", + AType = (int)AyaType.QuoteItem, + UiFieldDataType = (int)UiFieldDataType.Text, + SqlIdColumnName = "aquoteitem.id", + SqlValueColumnName = "aquoteitem.notes", + IsRowId = true + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "Sequence", + FieldKey = "WorkOrderItemSequence", + AType = (int)AyaType.QuoteItem, + UiFieldDataType = (int)UiFieldDataType.Integer, + SqlIdColumnName = "aquoteitem.id", + SqlValueColumnName = "aquoteitem.sequence" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemTechNotes", + FieldKey = "WorkOrderItemTechNotes", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aquoteitem.technotes" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "Tags", + FieldKey = "WorkOrderItemTags", + UiFieldDataType = (int)UiFieldDataType.Tags, + SqlValueColumnName = "aquoteitem.tags" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemWorkOrderStatusID", + FieldKey = "WorkOrderItemWorkOrderStatusID", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.WorkOrderItemStatus, + SqlIdColumnName = "aquoteitem.workorderitemstatusid", + SqlColorColumnName = "aworkorderitemstatus.color", + SqlValueColumnName = "aworkorderitemstatus.name" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemPriorityID", + FieldKey = "WorkOrderItemPriorityID", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.WorkOrderItemStatus, + SqlIdColumnName = "aquoteitem.workorderitempriorityid", + SqlColorColumnName = "aworkorderitempriority.color", + SqlValueColumnName = "aworkorderitempriority.name" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemRequestDate", + FieldKey = "WorkOrderItemRequestDate", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "aquoteitem.requestdate" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemWarrantyService", + FieldKey = "WorkOrderItemWarrantyService", + UiFieldDataType = (int)UiFieldDataType.Bool, + SqlValueColumnName = "aquoteitem.warrantyservice" + }); + + + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom1", FieldKey = "workorderitemcustom1", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquoteitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom2", FieldKey = "workorderitemcustom2", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquoteitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom3", FieldKey = "workorderitemcustom3", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquoteitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom4", FieldKey = "workorderitemcustom4", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquoteitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom5", FieldKey = "workorderitemcustom5", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquoteitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom6", FieldKey = "workorderitemcustom6", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquoteitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom7", FieldKey = "workorderitemcustom7", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquoteitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom8", FieldKey = "workorderitemcustom8", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquoteitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom9", FieldKey = "workorderitemcustom9", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquoteitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom10", FieldKey = "workorderitemcustom10", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquoteitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom11", FieldKey = "workorderitemcustom11", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquoteitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom12", FieldKey = "workorderitemcustom12", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquoteitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom13", FieldKey = "workorderitemcustom13", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquoteitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom14", FieldKey = "workorderitemcustom14", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquoteitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom15", FieldKey = "workorderitemcustom15", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquoteitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom16", FieldKey = "workorderitemcustom16", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquoteitem.customfields", TKeySection = "WorkOrderItem" }); + + + //META column + FieldDefinitions.Add(new DataListFieldDefinition + { + FieldKey = "metaquoteitemid", + UiFieldDataType = (int)UiFieldDataType.InternalId, + SqlIdColumnName = "aquoteitem.id", + SqlValueColumnName = "aquoteitem.id", + IsMeta = true + }); + + #endregion workorderitem fields + + + + /* + Quote + */ + #region Quote Header fields + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "QuoteSerialNumber", + FieldKey = "QuoteSerialNumber", + AType = (int)AyaType.Quote, + UiFieldDataType = (int)UiFieldDataType.Integer, + SqlIdColumnName = "aquote.id", + SqlValueColumnName = "aquote.serial", + IsRowId = true + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + FieldKey = "Customer", + TKey = "Customer", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.Customer, + SqlIdColumnName = "acustomer.id", + SqlValueColumnName = "acustomer.name" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "HeadOffice", + FieldKey = "workorderheadoffice", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.HeadOffice, + SqlIdColumnName = "aheadoffice.id", + SqlValueColumnName = "aheadoffice.name" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "QuotePreparedByID", + FieldKey = "QuotePreparedByID", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.User, + SqlIdColumnName = "aquote.preparedbyid", + SqlValueColumnName = "aprepuser.name" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "QuoteQuoteStatusType", + FieldKey = "QuoteQuoteStatusType", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.QuoteStatus, + SqlIdColumnName = "aquote.laststatusid", + SqlColorColumnName = "aquotestatus.color", + SqlValueColumnName = "aquotestatus.name" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderSummary", + FieldKey = "workordernotes", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aquote.notes" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "Tags", + FieldKey = "workordertags", + UiFieldDataType = (int)UiFieldDataType.Tags, + SqlValueColumnName = "aquote.tags" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + FieldKey = "Project", + TKey = "Project", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.Project, + SqlIdColumnName = "aproject.id", + SqlValueColumnName = "aproject.name" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "Contract", + FieldKey = "Contract", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.Contract, + SqlIdColumnName = "acontract.id", + SqlValueColumnName = "acontract.name" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderInternalReferenceNumber", + FieldKey = "WorkOrderInternalReferenceNumber", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aquote.internalreferencenumber" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderCustomerReferenceNumber", + FieldKey = "WorkOrderCustomerReferenceNumber", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aquote.customerreferencenumber" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderCustomerContactName", + FieldKey = "WorkOrderCustomerContactName", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aquote.customercontactname" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "QuoteQuoteRequestDate", + FieldKey = "QuoteQuoteRequestDate", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "aquote.requested" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "QuoteValidUntilDate", + FieldKey = "QuoteValidUntilDate", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "aquote.validuntil" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "QuoteDateSubmitted", + FieldKey = "QuoteDateSubmitted", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "aquote.submitted" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "QuoteDateApproved", + FieldKey = "QuoteDateApproved", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "aquote.approved" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "QuoteIntroduction", + FieldKey = "QuoteIntroduction", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aquote.introduction" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderOnsite", + FieldKey = "WorkOrderOnsite", + UiFieldDataType = (int)UiFieldDataType.Bool, + SqlValueColumnName = "aquote.onsite" + }); + + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressPostalDeliveryAddress", + FieldKey = "workorderpostaddress", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aquote.postaddress" + }); + + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressPostalCity", + FieldKey = "workorderpostcity", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aquote.postcity" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressPostalStateProv", + FieldKey = "workorderpostregion", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aquote.postregion" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressPostalCountry", + FieldKey = "workorderpostcountry", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aquote.postcountry" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressPostalPostal", + FieldKey = "workorderpostcode", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aquote.postcode" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressDeliveryAddress", + FieldKey = "workorderaddress", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aquote.address" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressCity", + FieldKey = "workordercity", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aquote.city" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressStateProv", + FieldKey = "workorderregion", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aquote.region" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressCountry", + FieldKey = "workordercountry", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aquote.country" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressLatitude", + FieldKey = "workorderlatitude", + UiFieldDataType = (int)UiFieldDataType.Decimal, + SqlValueColumnName = "aquote.latitude" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressLongitude", + FieldKey = "workorderlongitude", + UiFieldDataType = (int)UiFieldDataType.Decimal, + SqlValueColumnName = "aquote.longitude" + }); + + + + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom1", FieldKey = "workordercustom1", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom2", FieldKey = "workordercustom2", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom3", FieldKey = "workordercustom3", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom4", FieldKey = "workordercustom4", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom5", FieldKey = "workordercustom5", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom6", FieldKey = "workordercustom6", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom7", FieldKey = "workordercustom7", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom8", FieldKey = "workordercustom8", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom9", FieldKey = "workordercustom9", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom10", FieldKey = "workordercustom10", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom11", FieldKey = "workordercustom11", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom12", FieldKey = "workordercustom12", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom13", FieldKey = "workordercustom13", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom14", FieldKey = "workordercustom14", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom15", FieldKey = "workordercustom15", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom16", FieldKey = "workordercustom16", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); + + + #endregion + } + + + public List DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, string clientCriteria) + { + + List ret = new List(); + + //This is required to filter out rows where there are no matching scheduled user otherwise we'd get all workorders and items regardless + { + DataListFilterOption FilterOption = new DataListFilterOption() { Column = "metawoitempartid" }; + FilterOption.Items.Add(new DataListColumnFilter() { value = "*NULL*", op = DataListFilterComparisonOperator.NotEqual }); + ret.Add(FilterOption); + } + + //This is an optional filter generated at client to restrict to particular item's workorders + //ClientCriteria format for this list is "OBJECTID,AYATYPE" + var crit = (clientCriteria ?? "").Split(',').Select(z => z.Trim()).ToArray(); + if (crit.Length > 1) + { + int nType = 0; + if (!int.TryParse(crit[1], out nType)) return ret; + AyaType forType = (AyaType)nType; + if (forType != AyaType.Part) return ret;//could be more later + + long lId = 0; + if (!long.TryParse(crit[0], out lId)) return ret; + if (lId == 0) return ret; + + //Have valid type, have an id, so filter away + switch (forType) + { + case AyaType.Part: + { + DataListFilterOption FilterOption = new DataListFilterOption() { Column = "metapart" }; + FilterOption.Items.Add(new DataListColumnFilter() { value = crit[0], op = DataListFilterComparisonOperator.Equality }); + ret.Add(FilterOption); + } + break; + + } + } + + return ret; + } + }//eoc +}//eons \ No newline at end of file