From 0ed0b3ab64935bc0003b6daee9b468d7387e77a4 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Wed, 28 Jul 2021 18:18:06 +0000 Subject: [PATCH] --- server/AyaNova/DataList/PMDataList.cs | 334 +++++++++++++++++++++++ server/AyaNova/DataList/QuoteDataList.cs | 105 +++---- server/AyaNova/resource/de.json | 3 +- server/AyaNova/resource/en.json | 3 +- server/AyaNova/resource/es.json | 3 +- server/AyaNova/resource/fr.json | 3 +- server/AyaNova/util/AySchema.cs | 8 +- 7 files changed, 386 insertions(+), 73 deletions(-) create mode 100644 server/AyaNova/DataList/PMDataList.cs diff --git a/server/AyaNova/DataList/PMDataList.cs b/server/AyaNova/DataList/PMDataList.cs new file mode 100644 index 00000000..7f927e70 --- /dev/null +++ b/server/AyaNova/DataList/PMDataList.cs @@ -0,0 +1,334 @@ +using System.Collections.Generic; +using System.Linq; +using AyaNova.Biz; +using AyaNova.Models; + +namespace AyaNova.DataList +{ + internal class PMDataList : DataListProcessingBase, IDataListInternalCriteria + { + public PMDataList() + { + DefaultListAType = AyaType.PM; + SQLFrom = "from apm " + + "left join acustomer on (apm.customerid = acustomer.id) " + + "left join aheadoffice on (acustomer.headofficeid = aheadoffice.id) " + + "left join aproject on (apm.projectid = aproject.id) " + + "left join acontract on (apm.contractid = acontract.id)"; + var RoleSet = BizRoles.GetRoleSet(DefaultListAType); + AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; + DefaultColumns = new List() { "PMSerialNumber", "Customer", "PMNextServiceDate", "PMNextWoGenerateDate", "pmactive", "PMStopGeneratingDate" }; + DefaultSortBy = new Dictionary() { { "PMSerialNumber", "-" } }; + FieldDefinitions = new List(); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "PMSerialNumber", + FieldKey = "PMSerialNumber", + AType = (int)AyaType.PM, + UiFieldDataType = (int)UiFieldDataType.Integer, + SqlIdColumnName = "apm.id", + SqlValueColumnName = "apm.serial", + IsRowId = true + }); + + //---------- + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "PMStopGeneratingDate", + FieldKey = "PMStopGeneratingDate", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "apm.stopgeneratingdate" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "Active", + FieldKey = "pmactive", + UiFieldDataType = (int)UiFieldDataType.Bool, + SqlValueColumnName = "apm.active" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "PMNextServiceDate", + FieldKey = "PMNextServiceDate", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "apm.nextservicedate" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "PMNextWoGenerateDate", + FieldKey = "PMNextWoGenerateDate", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "apm.generatedate" + }); + //---------- + + 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 = "WorkOrderSummary", + FieldKey = "workordernotes", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "apm.notes" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "Tags", + FieldKey = "workordertags", + UiFieldDataType = (int)UiFieldDataType.Tags, + SqlValueColumnName = "apm.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 = "apm.internalreferencenumber" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderCustomerReferenceNumber", + FieldKey = "WorkOrderCustomerReferenceNumber", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "apm.customerreferencenumber" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderCustomerContactName", + FieldKey = "WorkOrderCustomerContactName", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "apm.customercontactname" + }); + + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderOnsite", + FieldKey = "WorkOrderOnsite", + UiFieldDataType = (int)UiFieldDataType.Bool, + SqlValueColumnName = "apm.onsite" + }); + + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressPostalDeliveryAddress", + FieldKey = "workorderpostaddress", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "apm.postaddress" + }); + + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressPostalCity", + FieldKey = "workorderpostcity", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "apm.postcity" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressPostalStateProv", + FieldKey = "workorderpostregion", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "apm.postregion" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressPostalCountry", + FieldKey = "workorderpostcountry", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "apm.postcountry" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressPostalPostal", + FieldKey = "workorderpostcode", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "apm.postcode" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressDeliveryAddress", + FieldKey = "workorderaddress", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "apm.address" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressCity", + FieldKey = "workordercity", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "apm.city" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressStateProv", + FieldKey = "workorderregion", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "apm.region" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressCountry", + FieldKey = "workordercountry", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "apm.country" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressLatitude", + FieldKey = "workorderlatitude", + UiFieldDataType = (int)UiFieldDataType.Decimal, + SqlValueColumnName = "apm.latitude" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressLongitude", + FieldKey = "workorderlongitude", + UiFieldDataType = (int)UiFieldDataType.Decimal, + SqlValueColumnName = "apm.longitude" + }); + + + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom1", FieldKey = "workordercustom1", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "apm.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom2", FieldKey = "workordercustom2", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "apm.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom3", FieldKey = "workordercustom3", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "apm.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom4", FieldKey = "workordercustom4", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "apm.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom5", FieldKey = "workordercustom5", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "apm.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom6", FieldKey = "workordercustom6", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "apm.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom7", FieldKey = "workordercustom7", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "apm.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom8", FieldKey = "workordercustom8", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "apm.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom9", FieldKey = "workordercustom9", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "apm.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom10", FieldKey = "workordercustom10", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "apm.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom11", FieldKey = "workordercustom11", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "apm.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom12", FieldKey = "workordercustom12", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "apm.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom13", FieldKey = "workordercustom13", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "apm.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom14", FieldKey = "workordercustom14", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "apm.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom15", FieldKey = "workordercustom15", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "apm.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom16", FieldKey = "workordercustom16", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "apm.customfields" }); + + + //META COLUMNS + + FieldDefinitions.Add(new DataListFieldDefinition + { + FieldKey = "metacustomer", + UiFieldDataType = (int)UiFieldDataType.InternalId, + SqlIdColumnName = "acustomer.id", + SqlValueColumnName = "acustomer.id", + IsMeta = true + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + FieldKey = "metaproject", + UiFieldDataType = (int)UiFieldDataType.InternalId, + SqlIdColumnName = "aproject.id", + SqlValueColumnName = "aproject.id", + IsMeta = true + }); + + + + } + + + public List DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, string clientCriteria) + { + List ret = new List(); + + //ClientCriteria format for this list is "OBJECTID,AYATYPE" + var crit = (clientCriteria ?? "").Split(',').Select(z => z.Trim()).ToArray(); + if (crit.Length > 1) + { + //will be filtered from different types, show all pms from Customer, Project and nothing else at this time (others but for sub lists like pmitemunits etc) + int nType = 0; + if (!int.TryParse(crit[1], out nType)) return ret; + AyaType forType = (AyaType)nType; + if (forType != AyaType.Customer && forType != AyaType.Project) return ret;//only supports customer and project for now + + 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.Customer: + { + DataListFilterOption FilterOption = new DataListFilterOption() { Column = "metacustomer" }; + FilterOption.Items.Add(new DataListColumnFilter() { value = crit[0], op = DataListFilterComparisonOperator.Equality }); + ret.Add(FilterOption); + } + break; + case AyaType.Project: + { + DataListFilterOption FilterOption = new DataListFilterOption() { Column = "metaproject" }; + 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 diff --git a/server/AyaNova/DataList/QuoteDataList.cs b/server/AyaNova/DataList/QuoteDataList.cs index 55f27371..55540aa7 100644 --- a/server/AyaNova/DataList/QuoteDataList.cs +++ b/server/AyaNova/DataList/QuoteDataList.cs @@ -47,7 +47,7 @@ namespace AyaNova.DataList FieldDefinitions.Add(new DataListFieldDefinition { TKey = "HeadOffice", - FieldKey = "quoteheadoffice", + FieldKey = "workorderheadoffice", UiFieldDataType = (int)UiFieldDataType.Text, AType = (int)AyaType.HeadOffice, SqlIdColumnName = "aheadoffice.id", @@ -77,8 +77,8 @@ namespace AyaNova.DataList FieldDefinitions.Add(new DataListFieldDefinition { - TKey = "QuoteSummary", - FieldKey = "quotenotes", + TKey = "WorkOrderSummary", + FieldKey = "workordernotes", UiFieldDataType = (int)UiFieldDataType.Text, SqlValueColumnName = "aquote.notes" }); @@ -86,7 +86,7 @@ namespace AyaNova.DataList FieldDefinitions.Add(new DataListFieldDefinition { TKey = "Tags", - FieldKey = "quotetags", + FieldKey = "workordertags", UiFieldDataType = (int)UiFieldDataType.Tags, SqlValueColumnName = "aquote.tags" }); @@ -113,24 +113,24 @@ namespace AyaNova.DataList FieldDefinitions.Add(new DataListFieldDefinition { - TKey = "QuoteInternalReferenceNumber", - FieldKey = "QuoteInternalReferenceNumber", + TKey = "WorkOrderInternalReferenceNumber", + FieldKey = "WorkOrderInternalReferenceNumber", UiFieldDataType = (int)UiFieldDataType.Text, SqlValueColumnName = "aquote.internalreferencenumber" }); FieldDefinitions.Add(new DataListFieldDefinition { - TKey = "QuoteCustomerReferenceNumber", - FieldKey = "QuoteCustomerReferenceNumber", + TKey = "WorkOrderCustomerReferenceNumber", + FieldKey = "WorkOrderCustomerReferenceNumber", UiFieldDataType = (int)UiFieldDataType.Text, SqlValueColumnName = "aquote.customerreferencenumber" }); FieldDefinitions.Add(new DataListFieldDefinition { - TKey = "QuoteCustomerContactName", - FieldKey = "QuoteCustomerContactName", + TKey = "WorkOrderCustomerContactName", + FieldKey = "WorkOrderCustomerContactName", UiFieldDataType = (int)UiFieldDataType.Text, SqlValueColumnName = "aquote.customercontactname" }); @@ -177,8 +177,8 @@ namespace AyaNova.DataList FieldDefinitions.Add(new DataListFieldDefinition { - TKey = "QuoteOnsite", - FieldKey = "QuoteOnsite", + TKey = "WorkOrderOnsite", + FieldKey = "WorkOrderOnsite", UiFieldDataType = (int)UiFieldDataType.Bool, SqlValueColumnName = "aquote.onsite" }); @@ -187,7 +187,7 @@ namespace AyaNova.DataList FieldDefinitions.Add(new DataListFieldDefinition { TKey = "AddressPostalDeliveryAddress", - FieldKey = "quotepostaddress", + FieldKey = "workorderpostaddress", UiFieldDataType = (int)UiFieldDataType.Text, SqlValueColumnName = "aquote.postaddress" }); @@ -196,7 +196,7 @@ namespace AyaNova.DataList FieldDefinitions.Add(new DataListFieldDefinition { TKey = "AddressPostalCity", - FieldKey = "quotepostcity", + FieldKey = "workorderpostcity", UiFieldDataType = (int)UiFieldDataType.Text, SqlValueColumnName = "aquote.postcity" }); @@ -204,7 +204,7 @@ namespace AyaNova.DataList FieldDefinitions.Add(new DataListFieldDefinition { TKey = "AddressPostalStateProv", - FieldKey = "quotepostregion", + FieldKey = "workorderpostregion", UiFieldDataType = (int)UiFieldDataType.Text, SqlValueColumnName = "aquote.postregion" }); @@ -212,7 +212,7 @@ namespace AyaNova.DataList FieldDefinitions.Add(new DataListFieldDefinition { TKey = "AddressPostalCountry", - FieldKey = "quotepostcountry", + FieldKey = "workorderpostcountry", UiFieldDataType = (int)UiFieldDataType.Text, SqlValueColumnName = "aquote.postcountry" }); @@ -220,7 +220,7 @@ namespace AyaNova.DataList FieldDefinitions.Add(new DataListFieldDefinition { TKey = "AddressPostalPostal", - FieldKey = "quotepostcode", + FieldKey = "workorderpostcode", UiFieldDataType = (int)UiFieldDataType.Text, SqlValueColumnName = "aquote.postcode" }); @@ -228,7 +228,7 @@ namespace AyaNova.DataList FieldDefinitions.Add(new DataListFieldDefinition { TKey = "AddressDeliveryAddress", - FieldKey = "quoteaddress", + FieldKey = "workorderaddress", UiFieldDataType = (int)UiFieldDataType.Text, SqlValueColumnName = "aquote.address" }); @@ -236,7 +236,7 @@ namespace AyaNova.DataList FieldDefinitions.Add(new DataListFieldDefinition { TKey = "AddressCity", - FieldKey = "quotecity", + FieldKey = "workordercity", UiFieldDataType = (int)UiFieldDataType.Text, SqlValueColumnName = "aquote.city" }); @@ -244,7 +244,7 @@ namespace AyaNova.DataList FieldDefinitions.Add(new DataListFieldDefinition { TKey = "AddressStateProv", - FieldKey = "quoteregion", + FieldKey = "workorderregion", UiFieldDataType = (int)UiFieldDataType.Text, SqlValueColumnName = "aquote.region" }); @@ -252,7 +252,7 @@ namespace AyaNova.DataList FieldDefinitions.Add(new DataListFieldDefinition { TKey = "AddressCountry", - FieldKey = "quotecountry", + FieldKey = "workordercountry", UiFieldDataType = (int)UiFieldDataType.Text, SqlValueColumnName = "aquote.country" }); @@ -260,7 +260,7 @@ namespace AyaNova.DataList FieldDefinitions.Add(new DataListFieldDefinition { TKey = "AddressLatitude", - FieldKey = "quotelatitude", + FieldKey = "workorderlatitude", UiFieldDataType = (int)UiFieldDataType.Decimal, SqlValueColumnName = "aquote.latitude" }); @@ -268,54 +268,29 @@ namespace AyaNova.DataList FieldDefinitions.Add(new DataListFieldDefinition { TKey = "AddressLongitude", - FieldKey = "quotelongitude", + FieldKey = "workorderlongitude", UiFieldDataType = (int)UiFieldDataType.Decimal, SqlValueColumnName = "aquote.longitude" }); + - // FieldDefinitions.Add(new DataListFieldDefinition - // { - // TKey = "QuoteCloseByDate", - // FieldKey = "QuoteCloseByDate", - // UiFieldDataType = (int)UiFieldDataType.DateTime, - // SqlValueColumnName = "aquote.closebydate" - // }); - - - // FieldDefinitions.Add(new DataListFieldDefinition - // { - // TKey = "QuoteAge", - // FieldKey = "QuoteAge", - // UiFieldDataType = (int)UiFieldDataType.TimeSpan, - // SqlValueColumnName = "expwoage" - // }); - - // FieldDefinitions.Add(new DataListFieldDefinition - // { - // TKey = "TimeToCompletion", - // FieldKey = "TimeToCompletion", - // UiFieldDataType = (int)UiFieldDataType.TimeSpan, - // SqlValueColumnName = "durationtocompleted" - // }); - - - FieldDefinitions.Add(new DataListFieldDefinition { TKey = "QuoteCustom1", FieldKey = "quotecustom1", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); - FieldDefinitions.Add(new DataListFieldDefinition { TKey = "QuoteCustom2", FieldKey = "quotecustom2", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); - FieldDefinitions.Add(new DataListFieldDefinition { TKey = "QuoteCustom3", FieldKey = "quotecustom3", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); - FieldDefinitions.Add(new DataListFieldDefinition { TKey = "QuoteCustom4", FieldKey = "quotecustom4", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); - FieldDefinitions.Add(new DataListFieldDefinition { TKey = "QuoteCustom5", FieldKey = "quotecustom5", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); - FieldDefinitions.Add(new DataListFieldDefinition { TKey = "QuoteCustom6", FieldKey = "quotecustom6", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); - FieldDefinitions.Add(new DataListFieldDefinition { TKey = "QuoteCustom7", FieldKey = "quotecustom7", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); - FieldDefinitions.Add(new DataListFieldDefinition { TKey = "QuoteCustom8", FieldKey = "quotecustom8", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); - FieldDefinitions.Add(new DataListFieldDefinition { TKey = "QuoteCustom9", FieldKey = "quotecustom9", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); - FieldDefinitions.Add(new DataListFieldDefinition { TKey = "QuoteCustom10", FieldKey = "quotecustom10", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); - FieldDefinitions.Add(new DataListFieldDefinition { TKey = "QuoteCustom11", FieldKey = "quotecustom11", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); - FieldDefinitions.Add(new DataListFieldDefinition { TKey = "QuoteCustom12", FieldKey = "quotecustom12", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); - FieldDefinitions.Add(new DataListFieldDefinition { TKey = "QuoteCustom13", FieldKey = "quotecustom13", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); - FieldDefinitions.Add(new DataListFieldDefinition { TKey = "QuoteCustom14", FieldKey = "quotecustom14", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); - FieldDefinitions.Add(new DataListFieldDefinition { TKey = "QuoteCustom15", FieldKey = "quotecustom15", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); - FieldDefinitions.Add(new DataListFieldDefinition { TKey = "QuoteCustom16", FieldKey = "quotecustom16", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aquote.customfields" }); + 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" }); //META COLUMNS diff --git a/server/AyaNova/resource/de.json b/server/AyaNova/resource/de.json index 483f4172..5b1e9082 100644 --- a/server/AyaNova/resource/de.json +++ b/server/AyaNova/resource/de.json @@ -2292,5 +2292,6 @@ "GenerateQuote": "Angebot erstellen", "GeneratePM":"Präventive Wartung generieren", "GenerateBefore":"Vorher generieren", - "RepeatInterval": "Wiederholungsintervall" + "RepeatInterval": "Wiederholungsintervall", + "PMNextWoGenerateDate":"Nächstes Generierungsdatum" } \ No newline at end of file diff --git a/server/AyaNova/resource/en.json b/server/AyaNova/resource/en.json index f2b05521..cf872eab 100644 --- a/server/AyaNova/resource/en.json +++ b/server/AyaNova/resource/en.json @@ -2292,6 +2292,7 @@ "GenerateQuote": "Generate Quote", "GeneratePM":"Generate Preventive Maintenance", "GenerateBefore":"Generate beforehand", - "RepeatInterval": "Repeat interval" + "RepeatInterval": "Repeat interval", + "PMNextWoGenerateDate":"Next generate event" } \ No newline at end of file diff --git a/server/AyaNova/resource/es.json b/server/AyaNova/resource/es.json index ab517f5b..6b46b911 100644 --- a/server/AyaNova/resource/es.json +++ b/server/AyaNova/resource/es.json @@ -2292,5 +2292,6 @@ "GenerateQuote": "Generar Presupuesto", "GeneratePM":"Generar mantenimiento preventivo", "GenerateBefore":"Generar de antemano", - "RepeatInterval": "Intervalo de repetición" + "RepeatInterval": "Intervalo de repetición", + "PMNextWoGenerateDate":"Siguiente evento de generación" } \ No newline at end of file diff --git a/server/AyaNova/resource/fr.json b/server/AyaNova/resource/fr.json index ddb58178..ed6eb06f 100644 --- a/server/AyaNova/resource/fr.json +++ b/server/AyaNova/resource/fr.json @@ -2292,5 +2292,6 @@ "GenerateQuote": "Générer un devis", "GeneratePM":"Générer une maintenance préventive", "GenerateBefore":"Générer au préalable", - "RepeatInterval": "Intervalle de répétition" + "RepeatInterval": "Intervalle de répétition", + "PMNextWoGenerateDate":"Prochain événement de génération" } \ No newline at end of file diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index ee895873..d6c76ae6 100644 --- a/server/AyaNova/util/AySchema.cs +++ b/server/AyaNova/util/AySchema.cs @@ -22,16 +22,16 @@ namespace AyaNova.Util //!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!! private const int DESIRED_SCHEMA_LEVEL = 1; - internal const long EXPECTED_COLUMN_COUNT = 1218; + internal const long EXPECTED_COLUMN_COUNT = 1221; internal const long EXPECTED_INDEX_COUNT = 145; - internal const long EXPECTED_CHECK_CONSTRAINTS = 513; + internal const long EXPECTED_CHECK_CONSTRAINTS = 516; internal const long EXPECTED_FOREIGN_KEY_CONSTRAINTS = 190; internal const long EXPECTED_VIEWS = 7; internal const long EXPECTED_ROUTINES = 2; //!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!! - ///////////////////////////////////////////////////////////////// C1218:I145:CC513:FC190:V7:R2 + ///////////////////////////////////////////////////////////////// C1220:I145:CC515:FC190:V7:R2 /* @@ -1015,7 +1015,7 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); await ExecQueryAsync("CREATE TABLE apm (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, serial BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL, " + "notes TEXT, wiki TEXT, customfields TEXT, tags VARCHAR(255) ARRAY, customerid BIGINT NOT NULL REFERENCES acustomer (id), " + "projectid BIGINT REFERENCES aproject, contractid BIGINT NULL, internalreferencenumber text, " - + "customerreferencenumber text, customercontactname text, createddate TIMESTAMP NOT NULL, " + + "customerreferencenumber text, customercontactname text, createddate TIMESTAMP NOT NULL, onsite BOOL NOT NULL, " + "stopgeneratingdate TIMESTAMP, nextservicedate TIMESTAMP NOT NULL, generatedate TIMESTAMP, excludedaysofweek BOOL ARRAY NOT NULL, active BOOL NOT NULL, " + "repeatunit INTEGER NOT NULL, generatebeforeunit INTEGER NOT NULL, repeatinterval INTEGER NOT NULL, generatebeforeinterval INTEGER NOT NULL, " + "postaddress TEXT, postcity TEXT, postregion TEXT, postcountry TEXT, postcode TEXT, address TEXT, city TEXT, region TEXT, country TEXT, latitude DECIMAL(9,6), longitude DECIMAL(9,6) "