This commit is contained in:
@@ -60,31 +60,11 @@ namespace AyaNova.Api.Controllers
|
||||
{
|
||||
//trying ad-hoc join https://entityframeworkcore.com/querying-data-joining
|
||||
|
||||
var w=await ct.WorkOrderItemScheduledUser.Join(ct.WorkOrderItem,x=>x.WorkOrderItemId==)
|
||||
var wo = await ct.ViewSchedulePersonalWorkOrder.Where(x => x.SchedUserId == UserId)
|
||||
.Select(x => new PersonalScheduleListItem() { Id = x.WoItemSchedUserId, Color = ColorFromWOItem(x, p), Start = x.StartDate, End = x.StopDate, Type = AyaType.WorkOrderItemScheduledUser, })
|
||||
.ToListAsync();
|
||||
|
||||
|
||||
// var w = await ct.WorkOrder.AsSplitQuery().AsNoTracking()
|
||||
// .Include(s => s.States)
|
||||
// .Include(w => w.Items.OrderBy(item => item.Sequence))
|
||||
// .ThenInclude(wi => wi.Expenses)
|
||||
// .Include(w => w.Items)
|
||||
// .ThenInclude(wi => wi.Labors)
|
||||
// .Include(w => w.Items)
|
||||
// .ThenInclude(wi => wi.Loans)
|
||||
// .Include(w => w.Items)
|
||||
// .ThenInclude(wi => wi.Parts)
|
||||
// .Include(w => w.Items)
|
||||
// .ThenInclude(wi => wi.PartRequests)
|
||||
// .Include(w => w.Items)
|
||||
// .ThenInclude(wi => wi.ScheduledUsers)
|
||||
// .Include(w => w.Items)
|
||||
// .ThenInclude(wi => wi.Tasks.OrderBy(t => t.Sequence))
|
||||
// .Include(w => w.Items)
|
||||
// .ThenInclude(wi => wi.Travels)
|
||||
// .Include(w => w.Items)
|
||||
// .ThenInclude(wi => wi.Units)
|
||||
// .Include(w => w.Items)
|
||||
// .ThenInclude(wi => wi.OutsideServices)
|
||||
// .SingleOrDefaultAsync(z => z.Id == UserId);
|
||||
}
|
||||
|
||||
|
||||
@@ -92,6 +72,21 @@ namespace AyaNova.Api.Controllers
|
||||
|
||||
}
|
||||
|
||||
private string ColorFromWOItem(ViewSchedulePersonalWorkOrder v, PersonalScheduleParams p)
|
||||
{
|
||||
switch (p.ColorSource)
|
||||
{
|
||||
case PersonalScheduleWorkOrderColorSource.WorkOrderStatus:
|
||||
return v.WorkOrderStatusColor;
|
||||
case PersonalScheduleWorkOrderColorSource.WorkOrderItemStatus:
|
||||
return v.WorkOrderItemStatusColor;
|
||||
case PersonalScheduleWorkOrderColorSource.WorkOrderItemPriority:
|
||||
return v.WorkOrderItemPriorityColor;
|
||||
}
|
||||
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
|
||||
public enum PersonalScheduleWorkOrderColorSource : int
|
||||
{
|
||||
@@ -111,8 +106,8 @@ namespace AyaNova.Api.Controllers
|
||||
|
||||
public class PersonalScheduleListItem
|
||||
{
|
||||
public DateTime Start { get; set; }
|
||||
public DateTime End { get; set; }
|
||||
public DateTime? Start { get; set; }
|
||||
public DateTime? End { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string Color { get; set; }
|
||||
public AyaType Type { get; set; }
|
||||
|
||||
@@ -124,6 +124,7 @@ namespace AyaNova.Models
|
||||
public virtual DbSet<ViewPartInventoryList> ViewPartInventoryList { get; set; }
|
||||
public virtual DbSet<ViewUnfulfilledPartRequestList> ViewUnfulfilledPartRequestList { get; set; }
|
||||
public virtual DbSet<ViewPartInventoryRequestList> ViewPartInventoryRequestList { get; set; }
|
||||
public virtual DbSet<ViewSchedulePersonalWorkOrder> ViewSchedulePersonalWorkOrder { get; set; }
|
||||
|
||||
|
||||
|
||||
|
||||
22
server/AyaNova/models/ViewSchedulePersonalWorkOrder.cs
Normal file
22
server/AyaNova/models/ViewSchedulePersonalWorkOrder.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using System;
|
||||
|
||||
namespace AyaNova.Models
|
||||
{
|
||||
//Note this is how to define a View backed model with no key (id)
|
||||
|
||||
[Microsoft.EntityFrameworkCore.Keyless]
|
||||
public class ViewSchedulePersonalWorkOrder
|
||||
{
|
||||
public long WoItemSchedUserId { get; set; }
|
||||
public long SchedUserId { get; set; }
|
||||
public DateTime? StartDate { get; set; }
|
||||
public DateTime? StopDate { get; set; }
|
||||
public long Serial { get; set; }
|
||||
public string CustomerName { get; set; }
|
||||
public string WorkOrderStatusColor { get; set; }
|
||||
public string WorkOrderItemStatusColor { get; set; }
|
||||
public string WorkOrderItemPriorityColor { get; set; }
|
||||
|
||||
}//eoc
|
||||
}//eons
|
||||
|
||||
@@ -1195,17 +1195,19 @@ $BODY$ LANGUAGE PLPGSQL STABLE");
|
||||
|
||||
//SCHEDULE VIEWS
|
||||
//PERSONAL WORKORDERS
|
||||
await ExecQueryAsync("CREATE VIEW viewschedulepersonalworkorder AS SELECT "
|
||||
+ "AWORKORDERITEMSCHEDULEDUSER.ID, "
|
||||
await ExecQueryAsync("CREATE VIEW VIEWSCHEDULEPERSONALWORKORDER AS SELECT "
|
||||
+ "AWORKORDERITEMSCHEDULEDUSER.ID AS WOITEMSCHEDUSERID, "
|
||||
+ "AWORKORDERITEMSCHEDULEDUSER.USERID AS SCHEDUSERID, "
|
||||
+ "AWORKORDERITEMSCHEDULEDUSER.STARTDATE, "
|
||||
+ "AWORKORDERITEMSCHEDULEDUSER.STOPDATE, "
|
||||
+ "AWORKORDER.SERIAL, "
|
||||
+ "AWORKORDER.SERIAL, ACUSTOMER.NAME AS CUSTOMERNAME "
|
||||
+ "AWORKORDERSTATUS.COLOR AS WORKORDERSTATUSCOLOR, "
|
||||
+ "AWORKORDERITEMSTATUS.COLOR AS WORKORDERITEMSTATUSCOLOR, "
|
||||
+ "AWORKORDERITEMPRIORITY.COLOR AS WORKORDERITEMPRIORITYCOLOR "
|
||||
+ "FROM AWORKORDERITEMSCHEDULEDUSER "
|
||||
+ "LEFT JOIN AWORKORDERITEM ON AWORKORDERITEMSCHEDULEDUSER.WORKORDERITEMID = AWORKORDERITEM.ID "
|
||||
+ "LEFT JOIN AWORKORDER ON AWORKORDERITEM.WORKORDERID = AWORKORDER.ID "
|
||||
+ "LEFT JOIN ACUSTOMER ON AWORKORDER.CUSTOMERID = ACUSTOMER.ID "
|
||||
+ "LEFT JOIN AWORKORDERSTATUS ON AWORKORDER.LASTSTATUSID = AWORKORDERSTATUS.ID "
|
||||
+ "LEFT JOIN AWORKORDERITEMSTATUS ON AWORKORDERITEM.WORKORDERITEMSTATUSID = AWORKORDERITEMSTATUS.ID "
|
||||
+ "LEFT JOIN AWORKORDERITEMPRIORITY ON AWORKORDERITEM.WORKORDERITEMPRIORITYID = AWORKORDERITEMPRIORITY.ID");
|
||||
|
||||
Reference in New Issue
Block a user