This commit is contained in:
@@ -898,6 +898,7 @@ namespace AyaNova.Biz
|
||||
l.Add(new FormField { TKey = "WorkOrderItemExpenseList", FieldKey = "WorkOrderItemExpenseList", TKeySection = "WorkOrderItem", Requireable = false });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemLaborList", FieldKey = "WorkOrderItemLaborList", TKeySection = "WorkOrderItem", Requireable = false });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemTravelList", FieldKey = "WorkOrderItemTravelList", TKeySection = "WorkOrderItem", Requireable = false });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemTaskList", FieldKey = "WorkOrderItemTaskList", TKeySection = "WorkOrderItem", Requireable = false });
|
||||
|
||||
//WORKORDER ITEM SCHEDULED USER
|
||||
l.Add(new FormField { TKey = "WorkOrderItemScheduledUserEstimatedQuantity", FieldKey = "WorkOrderItemScheduledUserEstimatedQuantity", TKeySection = "WorkOrderItemScheduledUser" });
|
||||
@@ -959,6 +960,15 @@ namespace AyaNova.Biz
|
||||
l.Add(new FormField { TKey = "LineTotal", FieldKey = "TravelLineTotalViz", TKeySection = "WorkOrderItemTravels" });
|
||||
|
||||
|
||||
//WORKORDER ITEM TASKS
|
||||
l.Add(new FormField { TKey = "Sequence", FieldKey = "WorkOrderItemTaskSequence", TKeySection = "WorkOrderItemTask" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemTaskTaskID", FieldKey = "WorkOrderItemTaskTaskID", TKeySection = "WorkOrderItemTask" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType", FieldKey = "WorkOrderItemTaskWorkOrderItemTaskCompletionType", TKeySection = "WorkOrderItemTask" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemTaskUser", FieldKey = "WorkOrderItemTaskUser", TKeySection = "WorkOrderItemTask" });
|
||||
l.Add(new FormField { TKey = "WorkOrderItemTaskCompletedDate", FieldKey = "WorkOrderItemTaskCompletedDate", TKeySection = "WorkOrderItemTask" });
|
||||
|
||||
|
||||
|
||||
_formFields.Add(AyaType.WorkOrder.ToString(), l);
|
||||
|
||||
}
|
||||
|
||||
@@ -729,6 +729,8 @@ namespace AyaNova.Biz
|
||||
//
|
||||
public async Task<JArray> GetReportData(long[] idList)
|
||||
{
|
||||
|
||||
|
||||
JArray ReportData = new JArray();
|
||||
while (idList.Any())
|
||||
{
|
||||
@@ -741,6 +743,13 @@ namespace AyaNova.Biz
|
||||
//order the results back into original
|
||||
var orderedList = from id in batch join z in batchResults on id equals z.Id select z;
|
||||
|
||||
|
||||
|
||||
//TODO: ##HERE## SEE ContractBiz for example implementation; will need to pre-cache some translation keys for enum lists etc, for example:
|
||||
// private async Task TaskPopulateVizFields(WorkOrderItemTask o, List<NameIdItem> taskCompletionTypeEnumList = null)
|
||||
|
||||
|
||||
|
||||
foreach (WorkOrder w in orderedList)
|
||||
{
|
||||
//populate entire workorder graph
|
||||
@@ -3983,11 +3992,19 @@ namespace AyaNova.Biz
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//VIZ POPULATE
|
||||
//
|
||||
private async Task TaskPopulateVizFields(WorkOrderItemTask o)
|
||||
private async Task TaskPopulateVizFields(WorkOrderItemTask o, List<NameIdItem> taskCompletionTypeEnumList = null)
|
||||
{
|
||||
await Task.CompletedTask;
|
||||
// if (o.WorkOrderOverseerId != null)
|
||||
// o.WorkOrderOverseerViz = await ct.User.AsNoTracking().Where(x => x.Id == o.WorkOrderOverseerId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
if (o.CompletedByUserId != null)
|
||||
o.CompletedByUserViz = await ct.User.AsNoTracking().Where(x => x.Id == o.CompletedByUserId).Select(x => x.Name).FirstOrDefaultAsync();
|
||||
|
||||
if (taskCompletionTypeEnumList == null)
|
||||
taskCompletionTypeEnumList = await AyaNova.Api.Controllers.EnumListController.GetEnumList(
|
||||
StringUtil.TrimTypeName(typeof(WorkorderItemTaskCompletionType).ToString()),
|
||||
UserTranslationId,
|
||||
CurrentUserRoles);
|
||||
|
||||
o.StatusViz = taskCompletionTypeEnumList.Where(x => x.Id == (long)o.Status).Select(x => x.Name).First();
|
||||
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -4256,7 +4273,7 @@ namespace AyaNova.Biz
|
||||
TravelRate Rate = null;
|
||||
if (o.TravelRateId != null)
|
||||
Rate = await ct.TravelRate.AsNoTracking().FirstOrDefaultAsync(x => x.Id == o.TravelRateId);
|
||||
o.TravelRateViz=Rate.Name;
|
||||
o.TravelRateViz = Rate.Name;
|
||||
TaxCode Tax = null;
|
||||
if (o.TaxCodeSaleId != null)
|
||||
Tax = await ct.TaxCode.AsNoTracking().FirstOrDefaultAsync(z => z.Id == o.TaxCodeSaleId);
|
||||
|
||||
@@ -12,12 +12,18 @@ namespace AyaNova.Models
|
||||
public long Id { get; set; }
|
||||
public uint Concurrency { get; set; }
|
||||
|
||||
public int DisplayOrder { get; set; } = 0;
|
||||
//public int DisplayOrder { get; set; } = 0;
|
||||
public int Sequence { get; set; }
|
||||
|
||||
[Required]
|
||||
public string Task { get; set; }
|
||||
[Required]
|
||||
public WorkorderItemTaskCompletionType Status { get; set; } = WorkorderItemTaskCompletionType.Incomplete;
|
||||
[NotMapped]
|
||||
public string StatusViz { get; set; }
|
||||
public long? CompletedByUserId { get; set; }
|
||||
[NotMapped]
|
||||
public string CompletedByUserViz { get; set; }
|
||||
public DateTime? CompletedDate { get; set; }
|
||||
|
||||
//UTILITY FIELDS
|
||||
|
||||
@@ -1566,6 +1566,8 @@
|
||||
"WorkOrderItemTaskObject": "Arbeitsauftragsposten - Aufgabe",
|
||||
"WorkOrderItemTaskTaskID": "Aufgabe",
|
||||
"WorkOrderItemTaskWorkOrderItemTaskCompletionType": "Status",
|
||||
"WorkOrderItemTaskUser":"Benutzer",
|
||||
"WorkOrderItemTaskCompletedDate":"Fertigstellungstermin",
|
||||
"WorkOrderItemTravelDistance": "Distanz",
|
||||
"WorkOrderItemTravelList": "Reiseposten",
|
||||
"WorkOrderItemTravelNoChargeQuantity": "Ohne Gebühren - Menge",
|
||||
|
||||
@@ -1566,6 +1566,8 @@
|
||||
"WorkOrderItemTaskObject": "WorkOrder item task",
|
||||
"WorkOrderItemTaskTaskID": "Task",
|
||||
"WorkOrderItemTaskWorkOrderItemTaskCompletionType": "Status",
|
||||
"WorkOrderItemTaskUser":"User",
|
||||
"WorkOrderItemTaskCompletedDate":"Completed",
|
||||
"WorkOrderItemTravelDistance": "Distance",
|
||||
"WorkOrderItemTravelList": "Travels",
|
||||
"WorkOrderItemTravelNoChargeQuantity": "No Charge Quantity",
|
||||
|
||||
@@ -1566,6 +1566,8 @@
|
||||
"WorkOrderItemTaskObject": "Tarea elemento de pedido",
|
||||
"WorkOrderItemTaskTaskID": "Tarea",
|
||||
"WorkOrderItemTaskWorkOrderItemTaskCompletionType": "Estado",
|
||||
"WorkOrderItemTaskUser":"Usuario",
|
||||
"WorkOrderItemTaskCompletedDate":"Fecha completada",
|
||||
"WorkOrderItemTravelDistance": "Distancia",
|
||||
"WorkOrderItemTravelList": "Elementos desplazamiento",
|
||||
"WorkOrderItemTravelNoChargeQuantity": "Cantidad sin cargo",
|
||||
|
||||
@@ -1566,6 +1566,8 @@
|
||||
"WorkOrderItemTaskObject": "Tâche d'élément de bon de travail",
|
||||
"WorkOrderItemTaskTaskID": "Tâche",
|
||||
"WorkOrderItemTaskWorkOrderItemTaskCompletionType": "État",
|
||||
"WorkOrderItemTaskUser":"Utilisateur",
|
||||
"WorkOrderItemTaskCompletedDate":"Date de fin",
|
||||
"WorkOrderItemTravelDistance": "Distance",
|
||||
"WorkOrderItemTravelList": "Éléments de déplacement",
|
||||
"WorkOrderItemTravelNoChargeQuantity": "Quantité non facturée",
|
||||
|
||||
@@ -816,7 +816,7 @@ $BODY$ LANGUAGE PLPGSQL STABLE");
|
||||
|
||||
//WORKORDERITEM TASK
|
||||
await ExecQueryAsync("CREATE TABLE aworkorderitemtask (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, workorderitemid BIGINT NOT NULL REFERENCES aworkorderitem (id), "
|
||||
+ "displayorder INTEGER NOT NULL DEFAULT 0, task text NOT NULL, status INTEGER NOT NULL DEFAULT 1, completedbyuserid BIGINT REFERENCES auser, completeddate TIMESTAMP"
|
||||
+ "sequence INTEGER NOT NULL DEFAULT 0, task text NOT NULL, status INTEGER NOT NULL DEFAULT 1, completedbyuserid BIGINT REFERENCES auser, completeddate TIMESTAMP"
|
||||
+ ")");
|
||||
|
||||
//WORKORDERITEM TRAVEL
|
||||
|
||||
@@ -2525,9 +2525,10 @@ namespace AyaNova.Util
|
||||
|
||||
|
||||
//LABOR
|
||||
var techId = RandomServiceTechUserId();
|
||||
var woItemLabor = new WorkOrderItemLabor()
|
||||
{
|
||||
UserId = RandomServiceTechUserId(),
|
||||
UserId = techId,
|
||||
ServiceRateQuantity = 1,
|
||||
ServiceStartDate = woDate,
|
||||
ServiceStopDate = woDate.AddHours(1),
|
||||
@@ -2552,7 +2553,7 @@ namespace AyaNova.Util
|
||||
//TRAVEL
|
||||
var woItemTravel = new WorkOrderItemTravel()
|
||||
{
|
||||
UserId = RandomServiceTechUserId(),
|
||||
UserId = techId,
|
||||
TravelRateQuantity = 1,
|
||||
TravelStartDate = woDate,
|
||||
TravelStopDate = woDate.AddHours(1),
|
||||
@@ -2574,6 +2575,60 @@ namespace AyaNova.Util
|
||||
};
|
||||
woItem.Travels.Add(woItemTravel);
|
||||
|
||||
//TASKS
|
||||
var woItemTask = new WorkOrderItemTask()
|
||||
{
|
||||
CompletedByUserId = techId,
|
||||
Task = "Dis-assemble",
|
||||
Sequence = 1,
|
||||
Status = WorkorderItemTaskCompletionType.Complete,
|
||||
CompletedDate = woDate.AddHours(1)
|
||||
};
|
||||
woItem.Tasks.Add(woItemTask);
|
||||
|
||||
woItemTask = new WorkOrderItemTask()
|
||||
{
|
||||
CompletedByUserId = techId,
|
||||
Task = "Lubricate",
|
||||
Sequence = 2,
|
||||
Status = WorkorderItemTaskCompletionType.NotApplicable,
|
||||
CompletedDate = woDate.AddHours(1)
|
||||
};
|
||||
woItem.Tasks.Add(woItemTask);
|
||||
|
||||
|
||||
woItemTask = new WorkOrderItemTask()
|
||||
{
|
||||
CompletedByUserId = techId,
|
||||
Task = "Repair",
|
||||
Sequence = 3,
|
||||
Status = WorkorderItemTaskCompletionType.Complete,
|
||||
CompletedDate = woDate.AddHours(1.5)
|
||||
};
|
||||
woItem.Tasks.Add(woItemTask);
|
||||
|
||||
woItemTask = new WorkOrderItemTask()
|
||||
{
|
||||
CompletedByUserId = techId,
|
||||
Task = "Re-assemble",
|
||||
Sequence = 4,
|
||||
Status = WorkorderItemTaskCompletionType.Complete,
|
||||
CompletedDate = woDate.AddHours(2)
|
||||
};
|
||||
woItem.Tasks.Add(woItemTask);
|
||||
|
||||
woItemTask = new WorkOrderItemTask()
|
||||
{
|
||||
CompletedByUserId = techId,
|
||||
Task = "Test and confirm repair",
|
||||
Sequence = 5,
|
||||
Status = WorkorderItemTaskCompletionType.Complete,
|
||||
CompletedDate = woDate.AddHours(2)
|
||||
};
|
||||
woItem.Tasks.Add(woItemTask);
|
||||
|
||||
|
||||
|
||||
|
||||
//EXPENSES
|
||||
var cost = Fake.Random.Decimal(1, 10);
|
||||
|
||||
Reference in New Issue
Block a user