This commit is contained in:
@@ -108,6 +108,7 @@ namespace AyaNova.Biz
|
|||||||
Backup = 49,
|
Backup = 49,
|
||||||
Notification = 50,
|
Notification = 50,
|
||||||
NotifySubscription = 51,
|
NotifySubscription = 51,
|
||||||
|
[CoreBizObject]
|
||||||
Reminder = 52,
|
Reminder = 52,
|
||||||
UnitMeterReading = 53,
|
UnitMeterReading = 53,
|
||||||
CustomerServiceRequest = 54,
|
CustomerServiceRequest = 54,
|
||||||
@@ -118,7 +119,9 @@ namespace AyaNova.Biz
|
|||||||
[CoreBizObject]
|
[CoreBizObject]
|
||||||
CustomerNote = 59,
|
CustomerNote = 59,
|
||||||
[CoreBizObject]
|
[CoreBizObject]
|
||||||
Memo = 60
|
Memo = 60,
|
||||||
|
[CoreBizObject]
|
||||||
|
Review = 61
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -104,6 +104,10 @@ namespace AyaNova.Biz
|
|||||||
return await ct.WorkOrderTemplateItem.AnyAsync(z => z.Id == id);
|
return await ct.WorkOrderTemplateItem.AnyAsync(z => z.Id == id);
|
||||||
case AyaType.Report:
|
case AyaType.Report:
|
||||||
return await ct.Report.AnyAsync(z => z.Id == id);
|
return await ct.Report.AnyAsync(z => z.Id == id);
|
||||||
|
case AyaType.Reminder:
|
||||||
|
return await ct.Reminder.AnyAsync(z => z.Id == id);
|
||||||
|
case AyaType.Review:
|
||||||
|
return await ct.Review.AnyAsync(z => z.Id == id);
|
||||||
default:
|
default:
|
||||||
throw new System.NotSupportedException($"AyaNova.Biz.BizObjectExistsInDatabase::ExistsAsync type {objectType.ToString()} is not supported");
|
throw new System.NotSupportedException($"AyaNova.Biz.BizObjectExistsInDatabase::ExistsAsync type {objectType.ToString()} is not supported");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,6 +88,12 @@ namespace AyaNova.Biz
|
|||||||
case AyaType.WorkOrderTemplate:
|
case AyaType.WorkOrderTemplate:
|
||||||
return new WorkOrderTemplateBiz(ct, userId, ServerBootConfig.AYANOVA_DEFAULT_TRANSLATION_ID, roles);
|
return new WorkOrderTemplateBiz(ct, userId, ServerBootConfig.AYANOVA_DEFAULT_TRANSLATION_ID, roles);
|
||||||
|
|
||||||
|
|
||||||
|
case AyaType.Reminder:
|
||||||
|
return new ReminderBiz(ct, userId, ServerBootConfig.AYANOVA_DEFAULT_TRANSLATION_ID, roles);
|
||||||
|
case AyaType.Review:
|
||||||
|
return new ReviewBiz(ct, userId, ServerBootConfig.AYANOVA_DEFAULT_TRANSLATION_ID, roles);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw new System.NotSupportedException($"AyaNova.BLL.BizObjectFactory::GetBizObject type {ayaType.ToString()} is not supported");
|
throw new System.NotSupportedException($"AyaNova.BLL.BizObjectFactory::GetBizObject type {ayaType.ToString()} is not supported");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ namespace AyaNova.Biz
|
|||||||
//but then I'm wondering if some items under workorder might have seperate roles...
|
//but then I'm wondering if some items under workorder might have seperate roles...
|
||||||
//maybe it's workorder by default unless something needs an override
|
//maybe it's workorder by default unless something needs an override
|
||||||
|
|
||||||
|
//BizRules will handle finer grained rights, this is just the big picture rights or default if no finer required
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
//CUSTOMER
|
//CUSTOMER
|
||||||
// (any change copy to customer notes, head office)
|
// (any change copy to customer notes, head office)
|
||||||
@@ -110,7 +112,7 @@ namespace AyaNova.Biz
|
|||||||
roles.Add(AyaType.PurchaseOrder, new BizRoleSet()
|
roles.Add(AyaType.PurchaseOrder, new BizRoleSet()
|
||||||
{
|
{
|
||||||
Change = AuthorizationRoles.InventoryFull | AuthorizationRoles.BizAdminFull | AuthorizationRoles.AccountingFull,
|
Change = AuthorizationRoles.InventoryFull | AuthorizationRoles.BizAdminFull | AuthorizationRoles.AccountingFull,
|
||||||
ReadFullRecord = AuthorizationRoles.DispatchFull | AuthorizationRoles.InventoryLimited | AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited,
|
ReadFullRecord = AuthorizationRoles.DispatchFull | AuthorizationRoles.InventoryLimited | AuthorizationRoles.BizAdminLimited | AuthorizationRoles.DispatchLimited,
|
||||||
Select = AuthorizationRoles.All
|
Select = AuthorizationRoles.All
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -594,7 +596,7 @@ namespace AyaNova.Biz
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
//MEMO
|
//MEMO
|
||||||
// (everyone but outside users Customer and HO can send and receive memos)
|
// (everyone but outside users Customer and HO can send and receive memos)
|
||||||
@@ -605,6 +607,26 @@ namespace AyaNova.Biz
|
|||||||
Select = AuthorizationRoles.AllInsideUserRoles,
|
Select = AuthorizationRoles.AllInsideUserRoles,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////
|
||||||
|
//REMINDER
|
||||||
|
// (everyone but outside users Customer and HO)
|
||||||
|
roles.Add(AyaType.Reminder, new BizRoleSet()
|
||||||
|
{
|
||||||
|
Change = AuthorizationRoles.AllInsideUserRoles,
|
||||||
|
ReadFullRecord = AuthorizationRoles.AllInsideUserRoles,
|
||||||
|
Select = AuthorizationRoles.AllInsideUserRoles,
|
||||||
|
});
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////
|
||||||
|
//REVIEW
|
||||||
|
// (everyone but outside users and follows object rights)
|
||||||
|
roles.Add(AyaType.Review, new BizRoleSet()
|
||||||
|
{
|
||||||
|
Change = AuthorizationRoles.AllInsideUserRoles,
|
||||||
|
ReadFullRecord = AuthorizationRoles.AllInsideUserRoles,
|
||||||
|
Select = AuthorizationRoles.AllInsideUserRoles,
|
||||||
|
});
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
#endregion all roles init
|
#endregion all roles init
|
||||||
|
|
||||||
|
|||||||
63
server/AyaNova/models/Reminder.cs
Normal file
63
server/AyaNova/models/Reminder.cs
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using AyaNova.Biz;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace AyaNova.Models
|
||||||
|
{
|
||||||
|
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
|
||||||
|
//otherwise the server will call it an invalid record if the field isn't sent from client
|
||||||
|
|
||||||
|
public class Reminder : ICoreBizObjectModel
|
||||||
|
{
|
||||||
|
public long Id { get; set; }
|
||||||
|
public uint Concurrency { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
|
public string Name { get; set; }
|
||||||
|
public bool Active { get; set; }
|
||||||
|
public string Notes { get; set; }
|
||||||
|
public string Wiki { get; set; }
|
||||||
|
public string CustomFields { get; set; }
|
||||||
|
public List<string> Tags { get; set; }
|
||||||
|
|
||||||
|
public DateTime? DateStarted { get; set; }
|
||||||
|
public DateTime? DateCompleted { get; set; }
|
||||||
|
public long? ReminderOverseerId { get; set; }
|
||||||
|
public string AccountNumber { get; set; }
|
||||||
|
|
||||||
|
public Reminder()
|
||||||
|
{
|
||||||
|
Tags = new List<string>();
|
||||||
|
DateStarted = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
|
||||||
|
[NotMapped, JsonIgnore]
|
||||||
|
public AyaType AyaType { get => AyaType.Reminder; }
|
||||||
|
|
||||||
|
}//eoc
|
||||||
|
|
||||||
|
}//eons
|
||||||
|
|
||||||
|
/*
|
||||||
|
DATES should be indexed for fast viewing
|
||||||
|
CREATE TABLE [dbo].[ASCHEDULEMARKER](
|
||||||
|
[AID] [uniqueidentifier] NOT NULL,
|
||||||
|
[ACREATED] [datetime] NOT NULL,
|
||||||
|
[ACREATOR] [uniqueidentifier] NOT NULL,
|
||||||
|
[AMODIFIER] [uniqueidentifier] NOT NULL,
|
||||||
|
[ANAME] [nvarchar](255) NULL,
|
||||||
|
[ANOTES] [ntext] NULL,
|
||||||
|
[AMODIFIED] [datetime] NULL,
|
||||||
|
[ASTARTDATE] [datetime] NULL,
|
||||||
|
[ASTOPDATE] [datetime] NULL,
|
||||||
|
[ASCHEDULEMARKERSOURCETYPE] [smallint] NULL,
|
||||||
|
[ASOURCEID] [uniqueidentifier] NOT NULL,
|
||||||
|
[AARGB] [int] NULL,
|
||||||
|
[AFOLLOWID] [uniqueidentifier] NULL,
|
||||||
|
[AFOLLOWTYPE] [smallint] NULL,
|
||||||
|
[ACOMPLETED] [bit] NOT NULL,
|
||||||
|
|
||||||
|
*/
|
||||||
62
server/AyaNova/models/Review.cs
Normal file
62
server/AyaNova/models/Review.cs
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using AyaNova.Biz;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace AyaNova.Models
|
||||||
|
{
|
||||||
|
//NOTE: Any non required field (nullable in DB) sb nullable here, i.e. decimal? not decimal,
|
||||||
|
//otherwise the server will call it an invalid record if the field isn't sent from client
|
||||||
|
|
||||||
|
public class Review : ICoreBizObjectModel
|
||||||
|
{
|
||||||
|
public long Id { get; set; }
|
||||||
|
public uint Concurrency { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
|
public string Name { get; set; }
|
||||||
|
public bool Active { get; set; }
|
||||||
|
public string Notes { get; set; }
|
||||||
|
public string Wiki { get; set; }
|
||||||
|
public string CustomFields { get; set; }
|
||||||
|
public List<string> Tags { get; set; }
|
||||||
|
|
||||||
|
public DateTime? DateStarted { get; set; }
|
||||||
|
public DateTime? DateCompleted { get; set; }
|
||||||
|
public long? ReviewOverseerId { get; set; }
|
||||||
|
public string AccountNumber { get; set; }
|
||||||
|
|
||||||
|
public Review()
|
||||||
|
{
|
||||||
|
Tags = new List<string>();
|
||||||
|
DateStarted = DateTime.UtcNow;
|
||||||
|
}
|
||||||
|
|
||||||
|
[NotMapped, JsonIgnore]
|
||||||
|
public AyaType AyaType { get => AyaType.Review; }
|
||||||
|
|
||||||
|
}//eoc
|
||||||
|
|
||||||
|
}//eons
|
||||||
|
/*
|
||||||
|
DATES should be indexed for fast viewing
|
||||||
|
CREATE TABLE [dbo].[ASCHEDULEMARKER](
|
||||||
|
[AID] [uniqueidentifier] NOT NULL,
|
||||||
|
[ACREATED] [datetime] NOT NULL,
|
||||||
|
[ACREATOR] [uniqueidentifier] NOT NULL,
|
||||||
|
[AMODIFIER] [uniqueidentifier] NOT NULL,
|
||||||
|
[ANAME] [nvarchar](255) NULL,
|
||||||
|
[ANOTES] [ntext] NULL,
|
||||||
|
[AMODIFIED] [datetime] NULL,
|
||||||
|
[ASTARTDATE] [datetime] NULL,
|
||||||
|
[ASTOPDATE] [datetime] NULL,
|
||||||
|
[ASCHEDULEMARKERSOURCETYPE] [smallint] NULL,
|
||||||
|
[ASOURCEID] [uniqueidentifier] NOT NULL,
|
||||||
|
[AARGB] [int] NULL,
|
||||||
|
[AFOLLOWID] [uniqueidentifier] NULL,
|
||||||
|
[AFOLLOWTYPE] [smallint] NULL,
|
||||||
|
[ACOMPLETED] [bit] NOT NULL,
|
||||||
|
|
||||||
|
*/
|
||||||
Reference in New Issue
Block a user