This commit is contained in:
2021-09-03 15:15:09 +00:00
parent d501ff4729
commit b486c00138
3 changed files with 105 additions and 56 deletions

View File

@@ -79,6 +79,7 @@ namespace AyaNova.Api.Controllers
ret.Add(new KeyValuePair<string, string>("coreall", "All Core AyaNova business object types")); ret.Add(new KeyValuePair<string, string>("coreall", "All Core AyaNova business object types"));
ret.Add(new KeyValuePair<string, string>("coreview", "All Core AyaNova business object types current user is allowed to view")); ret.Add(new KeyValuePair<string, string>("coreview", "All Core AyaNova business object types current user is allowed to view"));
ret.Add(new KeyValuePair<string, string>("coreedit", "All Core AyaNova business object types current user is allowed to edit")); ret.Add(new KeyValuePair<string, string>("coreedit", "All Core AyaNova business object types current user is allowed to edit"));
ret.Add(new KeyValuePair<string, string>("reportable", "All AyaNova business object types that are reportable"));
ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(UiFieldDataType).ToString()), "Types of data used in AyaNova for display and formatting UI purposes")); ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(UiFieldDataType).ToString()), "Types of data used in AyaNova for display and formatting UI purposes"));
ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(NotifyEventType).ToString()), "Notification event types")); ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(NotifyEventType).ToString()), "Notification event types"));
ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(NotifyDeliveryMethod).ToString()), "Notification delivery methods")); ret.Add(new KeyValuePair<string, string>(StringUtil.TrimTypeName(typeof(NotifyDeliveryMethod).ToString()), "Notification delivery methods"));
@@ -149,6 +150,37 @@ namespace AyaNova.Api.Controllers
} }
} }
} }
else if (keyNameInLowerCase == "reportable")
{
//reportable biz objects for report designer selection
var values = Enum.GetValues(typeof(AyaType));
foreach (AyaType t in values)
{
if (t.HasAttribute(typeof(ReportableBizObject)))
{
TranslationKeysToFetch.Add(t.ToString());
}
}
var LT = await TranslationBiz.GetSubsetStaticAsync(TranslationKeysToFetch, translationId);
foreach (AyaType t in values)
{
if (t.HasAttribute(typeof(ReportableBizObject)))
{
var tName = t.ToString();
string name = string.Empty;
if (LT.ContainsKey(tName))
{
name = LT[tName];
}
else
{
name = tName;
}
ReturnList.Add(new NameIdItem() { Name = name, Id = (long)t });
}
}
}
else if (keyNameInLowerCase == "coreview")//all core objects user can read else if (keyNameInLowerCase == "coreview")//all core objects user can read
{ {
@@ -231,7 +263,7 @@ namespace AyaNova.Api.Controllers
else if (keyNameInLowerCase == StringUtil.TrimTypeName(typeof(AyaType).ToString()).ToLowerInvariant()) else if (keyNameInLowerCase == StringUtil.TrimTypeName(typeof(AyaType).ToString()).ToLowerInvariant())
{ {
//this is intended primarily for developers, not for UI facing so no need to localize or pretty it up //this is intended primarily for developers, not for UI facing so no need to localize or pretty it up
//bullshit, it's just extra work not translated and developers only need the number, not the enumeration name which is for here only //bs, it's just extra work not translated and developers only need the number, not the enumeration name which is for here only
var values = Enum.GetValues(typeof(AyaType)); var values = Enum.GetValues(typeof(AyaType));

View File

@@ -23,115 +23,115 @@ namespace AyaNova.Biz
NoType = 0, NoType = 0,
Global = 1, Global = 1,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
Widget = 2, Widget = 2,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
User = 3, User = 3,
ServerState = 4, ServerState = 4,
License = 5, License = 5,
LogFile = 6, LogFile = 6,
PickListTemplate = 7, PickListTemplate = 7,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
Customer = 8, Customer = 8,
ServerJob = 9, ServerJob = 9,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
Contract = 10, Contract = 10,
TrialSeeder = 11, TrialSeeder = 11,
ServerMetrics = 12, ServerMetrics = 12,
Translation = 13, Translation = 13,
UserOptions = 14, UserOptions = 14,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
HeadOffice = 15, HeadOffice = 15,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
LoanUnit = 16, LoanUnit = 16,
FileAttachment = 17, FileAttachment = 17,
DataListSavedFilter = 18, DataListSavedFilter = 18,
FormCustom = 19, FormCustom = 19,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
Part = 20, Part = 20,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
PM = 21, PM = 21,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
PMItem = 22, PMItem = 22,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
QuoteItemExpense = 23, QuoteItemExpense = 23,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
QuoteItemLabor = 24, QuoteItemLabor = 24,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
Project = 25, Project = 25,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
PurchaseOrder = 26, PurchaseOrder = 26,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
Quote = 27, Quote = 27,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
QuoteItem = 28, QuoteItem = 28,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
QuoteItemLoan = 29, QuoteItemLoan = 29,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
QuoteItemPart = 30, QuoteItemPart = 30,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
Unit = 31, Unit = 31,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
UnitModel = 32, UnitModel = 32,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
Vendor = 33, Vendor = 33,
//--- WorkOrder //--- WorkOrder
[CoreBizObject] [CoreBizObject,ReportableBizObject]
WorkOrder = 34, WorkOrder = 34,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
WorkOrderItem = 35, WorkOrderItem = 35,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
WorkOrderItemExpense = 36, WorkOrderItemExpense = 36,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
WorkOrderItemLabor = 37, WorkOrderItemLabor = 37,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
WorkOrderItemLoan = 38, WorkOrderItemLoan = 38,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
WorkOrderItemPart = 39, WorkOrderItemPart = 39,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
WorkOrderItemPartRequest = 40, WorkOrderItemPartRequest = 40,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
WorkOrderItemScheduledUser = 41, WorkOrderItemScheduledUser = 41,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
WorkOrderItemTask = 42, WorkOrderItemTask = 42,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
WorkOrderItemTravel = 43, WorkOrderItemTravel = 43,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
WorkOrderItemUnit = 44, WorkOrderItemUnit = 44,
//--- //---
[CoreBizObject] [CoreBizObject,ReportableBizObject]
QuoteItemScheduledUser = 45, QuoteItemScheduledUser = 45,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
QuoteItemTask = 46, QuoteItemTask = 46,
GlobalOps = 47,//really only used for rights, not an object type of any kind GlobalOps = 47,//really only used for rights, not an object type of any kind
BizMetrics = 48,//deprecate? Not used for anything as of nov 2020 BizMetrics = 48,//deprecate? Not used for anything as of nov 2020
Backup = 49, Backup = 49,
Notification = 50, Notification = 50,
NotifySubscription = 51, NotifySubscription = 51,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
Reminder = 52, Reminder = 52,
UnitMeterReading = 53, UnitMeterReading = 53,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
CustomerServiceRequest = 54, CustomerServiceRequest = 54,
// ServiceBank = 55, // ServiceBank = 55,
OpsNotificationSettings = 56, OpsNotificationSettings = 56,
Report = 57, Report = 57,
DashboardView = 58, DashboardView = 58,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
CustomerNote = 59, CustomerNote = 59,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
Memo = 60, Memo = 60,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
Review = 61, Review = 61,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
ServiceRate = 62, ServiceRate = 62,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
TravelRate = 63, TravelRate = 63,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
TaxCode = 64, TaxCode = 64,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
PartAssembly = 65, PartAssembly = 65,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
PartWarehouse = 66, PartWarehouse = 66,
PartInventory = 67, PartInventory = 67,
DataListColumnView = 68, DataListColumnView = 68,
@@ -142,32 +142,34 @@ namespace AyaNova.Biz
WorkOrderItemOutsideService = 73, WorkOrderItemOutsideService = 73,
WorkOrderItemPriority = 74, WorkOrderItemPriority = 74,
WorkOrderItemStatus = 75, WorkOrderItemStatus = 75,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
QuoteItemTravel = 76, QuoteItemTravel = 76,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
QuoteItemUnit = 77, QuoteItemUnit = 77,
QuoteStatus = 78, QuoteStatus = 78,
QuoteItemOutsideService = 79, QuoteItemOutsideService = 79,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
PMItemExpense = 80, PMItemExpense = 80,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
PMItemLabor = 81, PMItemLabor = 81,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
PMItemLoan = 82, PMItemLoan = 82,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
PMItemPart = 83, PMItemPart = 83,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
PMItemPartRequest = 84, PMItemPartRequest = 84,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
PMItemScheduledUser = 85, PMItemScheduledUser = 85,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
PMItemTask = 86, PMItemTask = 86,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
PMItemTravel = 87, PMItemTravel = 87,
[CoreBizObject] [CoreBizObject,ReportableBizObject]
PMItemUnit = 88, PMItemUnit = 88,
PMItemOutsideService = 89, PMItemOutsideService = 89,
[ReportableBizObject]
PartInventoryDataList = 90,//for list/reporting only, synthetic object PartInventoryDataList = 90,//for list/reporting only, synthetic object
[ReportableBizObject]
PartInventoryRequestDataList = 91//for list/reporting only, synthetic object PartInventoryRequestDataList = 91//for list/reporting only, synthetic object

View File

@@ -0,0 +1,15 @@
using System;
namespace AyaNova.Biz
{
/// <summary>
/// Marker attribute indicating that an object is a reportable type
/// Used in <see cref="AyaType"/>
/// </summary>
[AttributeUsage(AttributeTargets.All)]
public class ReportableBizObjectAttribute : Attribute
{
//No code required, it's just a marker
//https://docs.microsoft.com/en-us/dotnet/standard/attributes/writing-custom-attributes
}
}//eons