This commit is contained in:
2021-09-14 20:11:39 +00:00
parent f5d22b8a46
commit e1dda2601d
4 changed files with 49 additions and 29 deletions

View File

@@ -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; }

View File

@@ -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; }

View 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

View File

@@ -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");