From 880830d4743175876feef033662e9e66c633bb94 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Fri, 25 Jun 2021 23:40:47 +0000 Subject: [PATCH] --- .../DataList/WorkOrderItemExpenseDataList.cs | 17 +- .../DataList/WorkOrderItemLoanDataList.cs | 529 ++++++++++++++++ .../WorkOrderItemOutsideServiceDataList.cs | 569 ++++++++++++++++++ 3 files changed, 1099 insertions(+), 16 deletions(-) create mode 100644 server/AyaNova/DataList/WorkOrderItemLoanDataList.cs create mode 100644 server/AyaNova/DataList/WorkOrderItemOutsideServiceDataList.cs diff --git a/server/AyaNova/DataList/WorkOrderItemExpenseDataList.cs b/server/AyaNova/DataList/WorkOrderItemExpenseDataList.cs index 87900be1..dcd2db40 100644 --- a/server/AyaNova/DataList/WorkOrderItemExpenseDataList.cs +++ b/server/AyaNova/DataList/WorkOrderItemExpenseDataList.cs @@ -50,22 +50,7 @@ namespace AyaNova.DataList */ #region WorkOrderItemExpense fields - /* - l.Add(new FormField { TKey = "WorkOrderItemExpenseChargeAmount", FieldKey = "WorkOrderItemExpenseChargeAmount", TKeySection = "WorkOrderItemExpense" }); - l.Add(new FormField { TKey = "WorkOrderItemExpenseChargeTaxCodeID", FieldKey = "WorkOrderItemExpenseChargeTaxCodeID", TKeySection = "WorkOrderItemExpense" }); - l.Add(new FormField { TKey = "WorkOrderItemExpenseTaxPaid", FieldKey = "WorkOrderItemExpenseTaxPaid", TKeySection = "WorkOrderItemExpense" }); - l.Add(new FormField { TKey = "WorkOrderItemExpenseChargeToCustomer", FieldKey = "WorkOrderItemExpenseChargeToCustomer", TKeySection = "WorkOrderItemExpense" }); - l.Add(new FormField { TKey = "WorkOrderItemExpenseDescription", FieldKey = "WorkOrderItemExpenseDescription", TKeySection = "WorkOrderItemExpense" }); - l.Add(new FormField { TKey = "WorkOrderItemExpenseName", FieldKey = "WorkOrderItemExpenseName", TKeySection = "WorkOrderItemExpense" }); - l.Add(new FormField { TKey = "WorkOrderItemExpenseReimburseUser", FieldKey = "WorkOrderItemExpenseReimburseUser", TKeySection = "WorkOrderItemExpense" }); - l.Add(new FormField { TKey = "WorkOrderItemExpenseTotalCost", FieldKey = "WorkOrderItemExpenseTotalCost", TKeySection = "WorkOrderItemExpense" }); - l.Add(new FormField { TKey = "WorkOrderItemExpenseUserID", FieldKey = "WorkOrderItemExpenseUserID", TKeySection = "WorkOrderItemExpense" }); - - CREATE TABLE aworkorderitemexpense (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, workorderitemid BIGINT NOT NULL REFERENCES aworkorderitem (id), " - + "description TEXT, name TEXT, totalcost DECIMAL(38,18) NOT NULL default 0, chargeamount DECIMAL(38,18) NOT NULL default 0, taxpaid DECIMAL(38,18) NOT NULL default 0, " - + "chargetaxcodeid BIGINT REFERENCES ataxcode, reimburseuser BOOL NOT NULL, userid BIGINT REFERENCES auser, chargetocustomer BOOL NOT NULL - */ - + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemExpenseName", diff --git a/server/AyaNova/DataList/WorkOrderItemLoanDataList.cs b/server/AyaNova/DataList/WorkOrderItemLoanDataList.cs new file mode 100644 index 00000000..e28d6924 --- /dev/null +++ b/server/AyaNova/DataList/WorkOrderItemLoanDataList.cs @@ -0,0 +1,529 @@ +using System.Collections.Generic; +using AyaNova.Biz; +using AyaNova.Models; + +namespace AyaNova.DataList +{ + internal class WorkOrderItemLoanDataList : DataListProcessingBase, IDataListInternalCriteria + { + public WorkOrderItemLoanDataList() + { + DefaultListAType = AyaType.WorkOrder; + SQLFrom = "from aworkorder " + + "left join aworkorderstatus on (aworkorder.laststatusid = aworkorderstatus.id) " + + "left join acustomer on (aworkorder.customerid=acustomer.id) " + + "left join aheadoffice on (acustomer.headofficeid=aheadoffice.id) " + + "left join aproject on (aworkorder.projectid=aproject.id) " + + "left join acontract on (aworkorder.contractid=acontract.id)" + + "left join aworkorderitem on aworkorder.id=aworkorderitem.workorderid " + + "left join aworkorderitemstatus on (aworkorderitem.workorderitemstatusid = aworkorderitemstatus.id) " + + "left join aworkorderitempriority on (aworkorderitem.workorderitempriorityid = aworkorderitempriority.id) " + + //workorder item loan + + "left join aworkorderitemloan on aworkorderitem.id=aworkorderitemloan.workorderitemid " + + "left join aloanunit on (aworkorderitemloan.loanunitid=aloanunit.id) " + ; + + var RoleSet = BizRoles.GetRoleSet(DefaultListAType); + AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; + DefaultColumns = new List() { + "WorkOrderSerialNumber", + "WorkOrderItemSequence", + "WorkOrderItemSummary", + "Customer", + "WorkOrderServiceDate", + "WorkOrderItemLoanUnit", + "WorkOrderItemLoanOutDate", + "WorkOrderItemLoanDueDate", + "WorkOrderItemLoanReturnDate" + + }; + DefaultSortBy = new Dictionary() { { "WorkOrderSerialNumber", "-" }, { "WorkOrderItemSequence", "+" }, { "WorkOrderItemLoanUnit", "+" } }; + FieldDefinitions = new List(); + + + /* + ██╗ ██████╗ █████╗ ███╗ ██╗ + ██║ ██╔═══██╗██╔══██╗████╗ ██║ + ██║ ██║ ██║███████║██╔██╗ ██║ + ██║ ██║ ██║██╔══██║██║╚██╗██║ + ███████╗╚██████╔╝██║ ██║██║ ╚████║ + */ + + #region WorkOrderItemLoan fields + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemLoanUnit", + FieldKey = "WorkOrderItemLoanUnit", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.WorkOrderItemLoan, + SqlIdColumnName = "aworkorderitemloan.id", + SqlValueColumnName = "aloanunit.name", + IsRowId = true + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemLoanRate", + FieldKey = "WorkOrderItemLoanRate", + UiFieldDataType = (int)UiFieldDataType.Enum, + EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(LoanUnitRateUnit).ToString()), + SqlValueColumnName = "aworkorderitemloan.rate" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemLoanNotes", + FieldKey = "WorkOrderItemLoanNotes", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorderitemloan.notes" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemLoanOutDate", + FieldKey = "WorkOrderItemLoanOutDate", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "aworkorderitemloan.outdate" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemLoanDueDate", + FieldKey = "WorkOrderItemLoanDueDate", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "aworkorderitemloan.duedate" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemLoanReturnDate", + FieldKey = "WorkOrderItemLoanReturnDate", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "aworkorderitemloan.returndate" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemLoanQuantity", + FieldKey = "WorkOrderItemLoanQuantity", + UiFieldDataType = (int)UiFieldDataType.Decimal, + SqlValueColumnName = "aworkorderitemloan.quantity" + }); + + + + + //META column + FieldDefinitions.Add(new DataListFieldDefinition + { + FieldKey = "metawoitemloanid", + UiFieldDataType = (int)UiFieldDataType.InternalId, + SqlIdColumnName = "aworkorderitemloan.id", + SqlValueColumnName = "aworkorderitemloan.id", + IsMeta = true + }); + + #endregion + + + + + /* + ██╗████████╗███████╗███╗ ███╗███████╗ + ██║╚══██╔══╝██╔════╝████╗ ████║██╔════╝ + ██║ ██║ █████╗ ██╔████╔██║███████╗ + ██║ ██║ ██╔══╝ ██║╚██╔╝██║╚════██║ + ██║ ██║ ███████╗██║ ╚═╝ ██║███████║ + ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝ + */ + #region WorkOrderItem fields + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemSummary", + FieldKey = "WorkOrderItemSummary", + AType = (int)AyaType.WorkOrderItem, + UiFieldDataType = (int)UiFieldDataType.Text, + SqlIdColumnName = "aworkorderitem.id", + SqlValueColumnName = "aworkorderitem.notes", + IsRowId = true + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "Sequence", + FieldKey = "WorkOrderItemSequence", + AType = (int)AyaType.WorkOrderItem, + UiFieldDataType = (int)UiFieldDataType.Integer, + SqlIdColumnName = "aworkorderitem.id", + SqlValueColumnName = "aworkorderitem.sequence" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemTechNotes", + FieldKey = "WorkOrderItemTechNotes", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorderitem.technotes" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "Tags", + FieldKey = "WorkOrderItemTags", + UiFieldDataType = (int)UiFieldDataType.Tags, + SqlValueColumnName = "aworkorderitem.tags" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemWorkOrderStatusID", + FieldKey = "WorkOrderItemWorkOrderStatusID", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.WorkOrderItemStatus, + SqlIdColumnName = "aworkorderitem.workorderitemstatusid", + SqlColorColumnName = "aworkorderitemstatus.color", + SqlValueColumnName = "aworkorderitemstatus.name" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemPriorityID", + FieldKey = "WorkOrderItemPriorityID", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.WorkOrderItemStatus, + SqlIdColumnName = "aworkorderitem.workorderitempriorityid", + SqlColorColumnName = "aworkorderitempriority.color", + SqlValueColumnName = "aworkorderitempriority.name" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemRequestDate", + FieldKey = "WorkOrderItemRequestDate", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "aworkorderitem.requestdate" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemWarrantyService", + FieldKey = "WorkOrderItemWarrantyService", + UiFieldDataType = (int)UiFieldDataType.Bool, + SqlValueColumnName = "aworkorderitem.warrantyservice" + }); + + + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom1", FieldKey = "workorderitemcustom1", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom2", FieldKey = "workorderitemcustom2", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom3", FieldKey = "workorderitemcustom3", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom4", FieldKey = "workorderitemcustom4", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom5", FieldKey = "workorderitemcustom5", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom6", FieldKey = "workorderitemcustom6", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom7", FieldKey = "workorderitemcustom7", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom8", FieldKey = "workorderitemcustom8", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom9", FieldKey = "workorderitemcustom9", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom10", FieldKey = "workorderitemcustom10", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom11", FieldKey = "workorderitemcustom11", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom12", FieldKey = "workorderitemcustom12", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom13", FieldKey = "workorderitemcustom13", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom14", FieldKey = "workorderitemcustom14", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom15", FieldKey = "workorderitemcustom15", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom16", FieldKey = "workorderitemcustom16", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + + + + + #endregion workorderitem fields + + + + /* + ██╗ ██╗ ██████╗ ██████╗ ██╗ ██╗ ██████╗ ██████╗ ██████╗ ███████╗██████╗ + ██║ ██║██╔═══██╗██╔══██╗██║ ██╔╝ ██╔═══██╗██╔══██╗██╔══██╗██╔════╝██╔══██╗ + ██║ █╗ ██║██║ ██║██████╔╝█████╔╝█████╗██║ ██║██████╔╝██║ ██║█████╗ ██████╔╝ + ██║███╗██║██║ ██║██╔══██╗██╔═██╗╚════╝██║ ██║██╔══██╗██║ ██║██╔══╝ ██╔══██╗ + ╚███╔███╔╝╚██████╔╝██║ ██║██║ ██╗ ╚██████╔╝██║ ██║██████╔╝███████╗██║ ██║ + ╚══╝╚══╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚══════╝╚═╝ ╚═╝ + */ + #region WorkOrder Header fields + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderSerialNumber", + FieldKey = "WorkOrderSerialNumber", + AType = (int)AyaType.WorkOrder, + UiFieldDataType = (int)UiFieldDataType.Integer, + SqlIdColumnName = "aworkorder.id", + SqlValueColumnName = "aworkorder.serial" + }); + + 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 = "WorkOrderStatus", + FieldKey = "WorkOrderStatus", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.WorkOrderStatus, + SqlIdColumnName = "aworkorder.laststatusid", + SqlColorColumnName = "aworkorderstatus.color", + SqlValueColumnName = "aworkorderstatus.name" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderSummary", + FieldKey = "workordernotes", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.notes" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "Tags", + FieldKey = "workordertags", + UiFieldDataType = (int)UiFieldDataType.Tags, + SqlValueColumnName = "aworkorder.tags" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + FieldKey = "Project", + TKey = "Project", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.User, + 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 = "aworkorder.internalreferencenumber" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderCustomerReferenceNumber", + FieldKey = "WorkOrderCustomerReferenceNumber", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.customerreferencenumber" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderCustomerContactName", + FieldKey = "WorkOrderCustomerContactName", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.customercontactname" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderServiceDate", + FieldKey = "WorkOrderServiceDate", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "aworkorder.servicedate" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderCloseByDate", + FieldKey = "WorkOrderCloseByDate", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "aworkorder.completebydate" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderInvoiceNumber", + FieldKey = "WorkOrderInvoiceNumber", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.invoicenumber" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderOnsite", + FieldKey = "WorkOrderOnsite", + UiFieldDataType = (int)UiFieldDataType.Bool, + SqlValueColumnName = "aworkorder.onsite" + }); + + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressPostalDeliveryAddress", + FieldKey = "workorderpostaddress", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.postaddress" + }); + + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressPostalCity", + FieldKey = "workorderpostcity", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.postcity" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressPostalStateProv", + FieldKey = "workorderpostregion", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.postregion" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressPostalCountry", + FieldKey = "workorderpostcountry", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.postcountry" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressPostalPostal", + FieldKey = "workorderpostcode", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.postcode" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressDeliveryAddress", + FieldKey = "workorderaddress", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.address" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressCity", + FieldKey = "workordercity", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.city" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressStateProv", + FieldKey = "workorderregion", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.region" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressCountry", + FieldKey = "workordercountry", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.country" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressLatitude", + FieldKey = "workorderlatitude", + UiFieldDataType = (int)UiFieldDataType.Decimal, + SqlValueColumnName = "aworkorder.latitude" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressLongitude", + FieldKey = "workorderlongitude", + UiFieldDataType = (int)UiFieldDataType.Decimal, + SqlValueColumnName = "aworkorder.longitude" + }); + + + /* + + await ExecQueryAsync("CREATE TABLE aworkorder (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, " + + "servicedate TIMESTAMP, completebydate TIMESTAMP, invoicenumber TEXT, customersignature TEXT, customersignaturename TEXT, customersignaturecaptured TIMESTAMP, " + + "techsignature TEXT, techsignaturename TEXT, techsignaturecaptured TIMESTAMP, durationtocompleted INTERVAL NOT NULL, onsite BOOL NOT NULL, contract TEXT, " + + "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) " + + ")");//n + */ + + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderCloseByDate", + FieldKey = "WorkOrderCloseByDate", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "aworkorder.closebydate" + }); + + + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom1", FieldKey = "workordercustom1", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom2", FieldKey = "workordercustom2", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom3", FieldKey = "workordercustom3", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom4", FieldKey = "workordercustom4", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom5", FieldKey = "workordercustom5", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom6", FieldKey = "workordercustom6", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom7", FieldKey = "workordercustom7", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom8", FieldKey = "workordercustom8", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom9", FieldKey = "workordercustom9", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom10", FieldKey = "workordercustom10", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom11", FieldKey = "workordercustom11", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom12", FieldKey = "workordercustom12", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom13", FieldKey = "workordercustom13", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom14", FieldKey = "workordercustom14", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom15", FieldKey = "workordercustom15", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom16", FieldKey = "workordercustom16", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + + #endregion + } + + + public List DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, string clientCriteria) + { + //This is required to filter out rows where there are no matching scheduled user otherwise we'd get all workorders and items regardless + List ret = new List(); + DataListFilterOption FilterOption = new DataListFilterOption() { Column = "metawoitemloanid" }; + FilterOption.Items.Add(new DataListColumnFilter() { value = "*NULL*", op = DataListFilterComparisonOperator.NotEqual }); + ret.Add(FilterOption); + return ret; + } + }//eoc +}//eons \ No newline at end of file diff --git a/server/AyaNova/DataList/WorkOrderItemOutsideServiceDataList.cs b/server/AyaNova/DataList/WorkOrderItemOutsideServiceDataList.cs new file mode 100644 index 00000000..36b64530 --- /dev/null +++ b/server/AyaNova/DataList/WorkOrderItemOutsideServiceDataList.cs @@ -0,0 +1,569 @@ +using System.Collections.Generic; +using AyaNova.Biz; +using AyaNova.Models; + +namespace AyaNova.DataList +{ + internal class WorkOrderItemOutsideServiceDataList : DataListProcessingBase, IDataListInternalCriteria + { + public WorkOrderItemOutsideServiceDataList() + { + DefaultListAType = AyaType.WorkOrder; + SQLFrom = "from aworkorder " + + "left join aworkorderstatus on (aworkorder.laststatusid = aworkorderstatus.id) " + + "left join acustomer on (aworkorder.customerid=acustomer.id) " + + "left join aheadoffice on (acustomer.headofficeid=aheadoffice.id) " + + "left join aproject on (aworkorder.projectid=aproject.id) " + + "left join acontract on (aworkorder.contractid=acontract.id)" + + "left join aworkorderitem on aworkorder.id=aworkorderitem.workorderid " + + "left join aworkorderitemstatus on (aworkorderitem.workorderitemstatusid = aworkorderitemstatus.id) " + + "left join aworkorderitempriority on (aworkorderitem.workorderitempriorityid = aworkorderitempriority.id) " + + //workorder item outsideservice + + "left join aworkorderitemoutsideservice on aworkorderitem.id=aworkorderitemoutsideservice.workorderitemid " + + "left join aunit on (aworkorderitemoutsideservice.unitid=aunit.id) " + + "left join avendor as vendto on (aworkorderitemoutsideservice.vendorsenttoid=vendto.id) " + + "left join avendor as vendvia on (aworkorderitemoutsideservice.vendorsentviaid=vendvia.id) " + ; + + var RoleSet = BizRoles.GetRoleSet(DefaultListAType); + AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; + DefaultColumns = new List() { + "WorkOrderSerialNumber", + "WorkOrderItemSequence", + "WorkOrderItemSummary", + "Customer", + "WorkOrderServiceDate", + "WorkOrderItemOutsideServiceUnit", + "WorkOrderItemOutsideServiceVendorSentToID", + "WorkOrderItemOutsideServiceDateSent", + "WorkOrderItemOutsideServiceDateETA", + "WorkOrderItemOutsideServiceDateReturned" + }; + DefaultSortBy = new Dictionary() { { "WorkOrderSerialNumber", "-" }, { "WorkOrderItemSequence", "+" }, { "WorkOrderItemOutsideServiceDateSent", "+" } }; + FieldDefinitions = new List(); + + + /* + ██████╗ ██╗ ██╗████████╗███████╗██╗██████╗ ███████╗ ███████╗███████╗██████╗ ██╗ ██╗██╗ ██████╗███████╗ + ██╔═══██╗██║ ██║╚══██╔══╝██╔════╝██║██╔══██╗██╔════╝ ██╔════╝██╔════╝██╔══██╗██║ ██║██║██╔════╝██╔════╝ + ██║ ██║██║ ██║ ██║ ███████╗██║██║ ██║█████╗ ███████╗█████╗ ██████╔╝██║ ██║██║██║ █████╗ + ██║ ██║██║ ██║ ██║ ╚════██║██║██║ ██║██╔══╝ ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║██║ ██╔══╝ + ╚██████╔╝╚██████╔╝ ██║ ███████║██║██████╔╝███████╗ ███████║███████╗██║ ██║ ╚████╔╝ ██║╚██████╗███████╗ + ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝╚═════╝ ╚══════╝ ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═════╝╚══════╝ + */ + + #region WorkOrderItemOutsideService fields + /* + l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceNotes", FieldKey = "WorkOrderItemOutsideServiceNotes", TKeySection = "WorkOrderItemOutsideServiceList" }); + l.Add(new FormField { TKey = "Unit", FieldKey = "WorkOrderItemOutsideServiceUnit", TKeySection = "WorkOrderItemOutsideServiceList" }); + l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceVendorSentToID", FieldKey = "WorkOrderItemOutsideServiceVendorSentToID", TKeySection = "WorkOrderItemOutsideServiceList" }); + l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceVendorSentViaID", FieldKey = "WorkOrderItemOutsideServiceVendorSentViaID", TKeySection = "WorkOrderItemOutsideServiceList" }); + l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceRMANumber", FieldKey = "WorkOrderItemOutsideServiceRMANumber", TKeySection = "WorkOrderItemOutsideServiceList" }); + l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceTrackingNumber", FieldKey = "WorkOrderItemOutsideServiceTrackingNumber", TKeySection = "WorkOrderItemOutsideServiceList" }); + l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceRepairCost", FieldKey = "WorkOrderItemOutsideServiceRepairCost", TKeySection = "WorkOrderItemOutsideServiceList" }); + l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceRepairPrice", FieldKey = "WorkOrderItemOutsideServiceRepairPrice", TKeySection = "WorkOrderItemOutsideServiceList" }); + l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceShippingCost", FieldKey = "WorkOrderItemOutsideServiceShippingCost", TKeySection = "WorkOrderItemOutsideServiceList" }); + l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceShippingPrice", FieldKey = "WorkOrderItemOutsideServiceShippingPrice", TKeySection = "WorkOrderItemOutsideServiceList" }); + l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceDateSent", FieldKey = "WorkOrderItemOutsideServiceDateSent", TKeySection = "WorkOrderItemOutsideServiceList" }); + l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceDateETA", FieldKey = "WorkOrderItemOutsideServiceDateETA", TKeySection = "WorkOrderItemOutsideServiceList" }); + l.Add(new FormField { TKey = "WorkOrderItemOutsideServiceDateReturned", FieldKey = "WorkOrderItemOutsideServiceDateReturned", TKeySection = "WorkOrderItemOutsideServiceList" }); + + "notes TEXT, unitid BIGINT NOT NULL REFERENCES aunit, vendorsenttoid BIGINT REFERENCES avendor, vendorsentviaid BIGINT REFERENCES avendor, rmanumber text, trackingnumber text, " + taxcodeid BIGINT REFERENCES ataxcode, repaircost DECIMAL(38,18) NOT NULL default 0, repairprice DECIMAL(38,18) NOT NULL default 0, shippingcost DECIMAL(38,18) NOT NULL default 0, + shippingprice DECIMAL(38,18) NOT NULL default 0, SentDate TIMESTAMP, etadate TIMESTAMP, returndate TIMESTAMP" + */ + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "Unit", + FieldKey = "WorkOrderItemOutsideServiceUnit", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.WorkOrderItemOutsideService, + SqlIdColumnName = "aworkorderitemoutsideservice.id", + SqlValueColumnName = "aunit.serial", + IsRowId = true + }); + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemOutsideServiceVendorSentToID", + FieldKey = "WorkOrderItemOutsideServiceVendorSentToID", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.Vendor, + SqlIdColumnName = "aworkorderitemoutsideservice.vendorsenttoid", + SqlValueColumnName = "vendto.name" + }); + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemOutsideServiceVendorSentViaID", + FieldKey = "WorkOrderItemOutsideServiceVendorSentViaID", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.Vendor, + SqlIdColumnName = "aworkorderitemoutsideservice.vendorsentviaid", + SqlValueColumnName = "vendvia.name" + }); + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemOutsideServiceRMANumber", + FieldKey = "WorkOrderItemOutsideServiceRMANumber", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorderitemoutsideservice.rmanumber" + }); + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemOutsideServiceTrackingNumber", + FieldKey = "WorkOrderItemOutsideServiceTrackingNumber", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorderitemoutsideservice.trackingnumber" + }); + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemOutsideServiceDateSent", + FieldKey = "WorkOrderItemOutsideServiceDateSent", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "aworkorderitemoutsideservice.SentDate" + }); + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemOutsideServiceDateETA", + FieldKey = "WorkOrderItemOutsideServiceDateETA", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "aworkorderitemoutsideservice.etadate" + }); + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemOutsideServiceDateReturned", + FieldKey = "WorkOrderItemOutsideServiceDateReturned", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "aworkorderitemoutsideservice.returndate" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemOutsideServiceNotes", + FieldKey = "WorkOrderItemOutsideServiceNotes", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorderitemoutsideservice.notes" + }); + + //Leaving dollar amounts off for now due to roles issue + // FieldDefinitions.Add(new DataListFieldDefinition + // { + // TKey = "WorkOrderItemOutsideServiceRepairCost", + // FieldKey = "WorkOrderItemOutsideServiceRepairCost", + // UiFieldDataType = (int)UiFieldDataType.Currency, + // SqlValueColumnName = "aworkorderitemoutsideservice.repaircost" + // }); + + + //META column + FieldDefinitions.Add(new DataListFieldDefinition + { + FieldKey = "metawoitemoutsideserviceid", + UiFieldDataType = (int)UiFieldDataType.InternalId, + SqlIdColumnName = "aworkorderitemoutsideservice.id", + SqlValueColumnName = "aworkorderitemoutsideservice.id", + IsMeta = true + }); + + #endregion + + + + + /* + ██╗████████╗███████╗███╗ ███╗███████╗ + ██║╚══██╔══╝██╔════╝████╗ ████║██╔════╝ + ██║ ██║ █████╗ ██╔████╔██║███████╗ + ██║ ██║ ██╔══╝ ██║╚██╔╝██║╚════██║ + ██║ ██║ ███████╗██║ ╚═╝ ██║███████║ + ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝ + */ + #region WorkOrderItem fields + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemSummary", + FieldKey = "WorkOrderItemSummary", + AType = (int)AyaType.WorkOrderItem, + UiFieldDataType = (int)UiFieldDataType.Text, + SqlIdColumnName = "aworkorderitem.id", + SqlValueColumnName = "aworkorderitem.notes", + IsRowId = true + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "Sequence", + FieldKey = "WorkOrderItemSequence", + AType = (int)AyaType.WorkOrderItem, + UiFieldDataType = (int)UiFieldDataType.Integer, + SqlIdColumnName = "aworkorderitem.id", + SqlValueColumnName = "aworkorderitem.sequence" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemTechNotes", + FieldKey = "WorkOrderItemTechNotes", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorderitem.technotes" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "Tags", + FieldKey = "WorkOrderItemTags", + UiFieldDataType = (int)UiFieldDataType.Tags, + SqlValueColumnName = "aworkorderitem.tags" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemWorkOrderStatusID", + FieldKey = "WorkOrderItemWorkOrderStatusID", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.WorkOrderItemStatus, + SqlIdColumnName = "aworkorderitem.workorderitemstatusid", + SqlColorColumnName = "aworkorderitemstatus.color", + SqlValueColumnName = "aworkorderitemstatus.name" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemPriorityID", + FieldKey = "WorkOrderItemPriorityID", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.WorkOrderItemStatus, + SqlIdColumnName = "aworkorderitem.workorderitempriorityid", + SqlColorColumnName = "aworkorderitempriority.color", + SqlValueColumnName = "aworkorderitempriority.name" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemRequestDate", + FieldKey = "WorkOrderItemRequestDate", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "aworkorderitem.requestdate" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderItemWarrantyService", + FieldKey = "WorkOrderItemWarrantyService", + UiFieldDataType = (int)UiFieldDataType.Bool, + SqlValueColumnName = "aworkorderitem.warrantyservice" + }); + + + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom1", FieldKey = "workorderitemcustom1", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom2", FieldKey = "workorderitemcustom2", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom3", FieldKey = "workorderitemcustom3", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom4", FieldKey = "workorderitemcustom4", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom5", FieldKey = "workorderitemcustom5", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom6", FieldKey = "workorderitemcustom6", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom7", FieldKey = "workorderitemcustom7", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom8", FieldKey = "workorderitemcustom8", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom9", FieldKey = "workorderitemcustom9", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom10", FieldKey = "workorderitemcustom10", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom11", FieldKey = "workorderitemcustom11", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom12", FieldKey = "workorderitemcustom12", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom13", FieldKey = "workorderitemcustom13", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom14", FieldKey = "workorderitemcustom14", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom15", FieldKey = "workorderitemcustom15", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderItemCustom16", FieldKey = "workorderitemcustom16", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorderitem.customfields", TKeySection = "WorkOrderItem" }); + + + + + #endregion workorderitem fields + + + + /* + ██╗ ██╗ ██████╗ ██████╗ ██╗ ██╗ ██████╗ ██████╗ ██████╗ ███████╗██████╗ + ██║ ██║██╔═══██╗██╔══██╗██║ ██╔╝ ██╔═══██╗██╔══██╗██╔══██╗██╔════╝██╔══██╗ + ██║ █╗ ██║██║ ██║██████╔╝█████╔╝█████╗██║ ██║██████╔╝██║ ██║█████╗ ██████╔╝ + ██║███╗██║██║ ██║██╔══██╗██╔═██╗╚════╝██║ ██║██╔══██╗██║ ██║██╔══╝ ██╔══██╗ + ╚███╔███╔╝╚██████╔╝██║ ██║██║ ██╗ ╚██████╔╝██║ ██║██████╔╝███████╗██║ ██║ + ╚══╝╚══╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚══════╝╚═╝ ╚═╝ + */ + #region WorkOrder Header fields + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderSerialNumber", + FieldKey = "WorkOrderSerialNumber", + AType = (int)AyaType.WorkOrder, + UiFieldDataType = (int)UiFieldDataType.Integer, + SqlIdColumnName = "aworkorder.id", + SqlValueColumnName = "aworkorder.serial" + }); + + 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 = "WorkOrderStatus", + FieldKey = "WorkOrderStatus", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.WorkOrderStatus, + SqlIdColumnName = "aworkorder.laststatusid", + SqlColorColumnName = "aworkorderstatus.color", + SqlValueColumnName = "aworkorderstatus.name" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderSummary", + FieldKey = "workordernotes", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.notes" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "Tags", + FieldKey = "workordertags", + UiFieldDataType = (int)UiFieldDataType.Tags, + SqlValueColumnName = "aworkorder.tags" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + FieldKey = "Project", + TKey = "Project", + UiFieldDataType = (int)UiFieldDataType.Text, + AType = (int)AyaType.User, + 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 = "aworkorder.internalreferencenumber" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderCustomerReferenceNumber", + FieldKey = "WorkOrderCustomerReferenceNumber", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.customerreferencenumber" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderCustomerContactName", + FieldKey = "WorkOrderCustomerContactName", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.customercontactname" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderServiceDate", + FieldKey = "WorkOrderServiceDate", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "aworkorder.servicedate" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderCloseByDate", + FieldKey = "WorkOrderCloseByDate", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "aworkorder.completebydate" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderInvoiceNumber", + FieldKey = "WorkOrderInvoiceNumber", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.invoicenumber" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderOnsite", + FieldKey = "WorkOrderOnsite", + UiFieldDataType = (int)UiFieldDataType.Bool, + SqlValueColumnName = "aworkorder.onsite" + }); + + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressPostalDeliveryAddress", + FieldKey = "workorderpostaddress", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.postaddress" + }); + + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressPostalCity", + FieldKey = "workorderpostcity", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.postcity" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressPostalStateProv", + FieldKey = "workorderpostregion", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.postregion" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressPostalCountry", + FieldKey = "workorderpostcountry", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.postcountry" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressPostalPostal", + FieldKey = "workorderpostcode", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.postcode" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressDeliveryAddress", + FieldKey = "workorderaddress", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.address" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressCity", + FieldKey = "workordercity", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.city" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressStateProv", + FieldKey = "workorderregion", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.region" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressCountry", + FieldKey = "workordercountry", + UiFieldDataType = (int)UiFieldDataType.Text, + SqlValueColumnName = "aworkorder.country" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressLatitude", + FieldKey = "workorderlatitude", + UiFieldDataType = (int)UiFieldDataType.Decimal, + SqlValueColumnName = "aworkorder.latitude" + }); + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "AddressLongitude", + FieldKey = "workorderlongitude", + UiFieldDataType = (int)UiFieldDataType.Decimal, + SqlValueColumnName = "aworkorder.longitude" + }); + + + /* + + await ExecQueryAsync("CREATE TABLE aworkorder (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, " + + "servicedate TIMESTAMP, completebydate TIMESTAMP, invoicenumber TEXT, customersignature TEXT, customersignaturename TEXT, customersignaturecaptured TIMESTAMP, " + + "techsignature TEXT, techsignaturename TEXT, techsignaturecaptured TIMESTAMP, durationtocompleted INTERVAL NOT NULL, onsite BOOL NOT NULL, contract TEXT, " + + "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) " + + ")");//n + */ + + + FieldDefinitions.Add(new DataListFieldDefinition + { + TKey = "WorkOrderCloseByDate", + FieldKey = "WorkOrderCloseByDate", + UiFieldDataType = (int)UiFieldDataType.DateTime, + SqlValueColumnName = "aworkorder.closebydate" + }); + + + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom1", FieldKey = "workordercustom1", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom2", FieldKey = "workordercustom2", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom3", FieldKey = "workordercustom3", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom4", FieldKey = "workordercustom4", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom5", FieldKey = "workordercustom5", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom6", FieldKey = "workordercustom6", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom7", FieldKey = "workordercustom7", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom8", FieldKey = "workordercustom8", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom9", FieldKey = "workordercustom9", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom10", FieldKey = "workordercustom10", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom11", FieldKey = "workordercustom11", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom12", FieldKey = "workordercustom12", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom13", FieldKey = "workordercustom13", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom14", FieldKey = "workordercustom14", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom15", FieldKey = "workordercustom15", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + FieldDefinitions.Add(new DataListFieldDefinition { TKey = "WorkOrderCustom16", FieldKey = "workordercustom16", IsCustomField = true, IsFilterable = false, IsSortable = false, SqlValueColumnName = "aworkorder.customfields" }); + + #endregion + } + + + public List DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, string clientCriteria) + { + //This is required to filter out rows where there are no matching scheduled user otherwise we'd get all workorders and items regardless + List ret = new List(); + DataListFilterOption FilterOption = new DataListFilterOption() { Column = "metawoitemoutsideserviceid" }; + FilterOption.Items.Add(new DataListColumnFilter() { value = "*NULL*", op = DataListFilterComparisonOperator.NotEqual }); + ret.Add(FilterOption); + return ret; + } + }//eoc +}//eons \ No newline at end of file