This commit is contained in:
2022-03-02 00:55:34 +00:00
parent 3f867d4400
commit d5f1ac6880
2 changed files with 77 additions and 72 deletions

2
.vscode/launch.json vendored
View File

@@ -48,7 +48,7 @@
"AYANOVA_DATA_PATH": "c:\\temp\\ravendata", "AYANOVA_DATA_PATH": "c:\\temp\\ravendata",
"AYANOVA_USE_URLS": "http://*:7575;", "AYANOVA_USE_URLS": "http://*:7575;",
//"AYANOVA_PERMANENTLY_ERASE_DATABASE":"true", //"AYANOVA_PERMANENTLY_ERASE_DATABASE":"true",
"AYANOVA_SERVER_TEST_MODE": "false", "AYANOVA_SERVER_TEST_MODE": "true",
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-8", "AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-8",
//"AYANOVA_REPORT_RENDERING_TIMEOUT":"1", //"AYANOVA_REPORT_RENDERING_TIMEOUT":"1",
"AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small", "AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small",

View File

@@ -2464,8 +2464,8 @@ namespace AyaNova.Util
// //
public async Task SeedCustomerServiceRequestAsync(ILogger log, int count) public async Task SeedCustomerServiceRequestAsync(ILogger log, int count)
{ {
DateTime seedStartWindow = DateTime.Now.AddYears(-1); DateTime seedStartWindow = DateTime.Now.AddMonths(-1);
DateTime seedEndWindow = DateTime.Now.AddMonths(-11); DateTime seedEndWindow = DateTime.Now;
for (int x = 0; x < count; x++) for (int x = 0; x < count; x++)
{ {
@@ -2859,14 +2859,13 @@ namespace AyaNova.Util
var tempDate = seedStartWindow.AddDays(x); var tempDate = seedStartWindow.AddDays(x);
var tempHour = Fake.Random.Int(9, 17);//9am to 5 pm (except some times may be in different dst state so this will be out by an hour for example depending on time of year and time zone in question) var tempHour = Fake.Random.Int(9, 17);//9am to 5 pm (except some times may be in different dst state so this will be out by an hour for example depending on time of year and time zone in question)
var woDate = DesiredTimeInUtc(new DateTime(tempDate.Year, tempDate.Month, tempDate.Day, tempHour, 0, 0, DateTimeKind.Utc)); var woDate = DesiredTimeInUtc(new DateTime(tempDate.Year, tempDate.Month, tempDate.Day, tempHour, 0, 0, DateTimeKind.Utc));
bool isPast = (woDate.Subtract(DateTime.UtcNow).TotalDays < -7); bool olderThanOneWeekAgo = (woDate.Subtract(DateTime.UtcNow).TotalDays < -7);
bool isFutureDate = woDate > DateTime.UtcNow;
o.CreatedDate = woDate > DateTime.UtcNow ? DateTime.UtcNow : woDate;//no created dates in future but want a range of past dates to show off age of wo o.CreatedDate = woDate > DateTime.UtcNow ? DateTime.UtcNow : woDate;//no created dates in future but want a range of past dates to show off age of wo
o.CompleteByDate = woDate.AddDays(5); o.CompleteByDate = woDate.AddDays(5);
//todo: NEED TO SHOW OFF COMPLETION TIME WIDGETS ETC, so need a o.completeddate set that corresponds also to a completed status set
// o.CustomerContactName = "contact name here";
o.CustomerId = GetRandomCustomerId();//Fake.Random.Long(1, TotalSeededCustomers); o.CustomerId = GetRandomCustomerId();//Fake.Random.Long(1, TotalSeededCustomers);
using (AyContext ct = ServiceProviderProvider.DBContext) using (AyContext ct = ServiceProviderProvider.DBContext)
@@ -3086,48 +3085,51 @@ namespace AyaNova.Util
} }
//LABOR
var techId = RandomServiceTechUserId(); var techId = RandomServiceTechUserId();
var woItemLabor = new WorkOrderItemLabor() //LABOR
if (!isFutureDate)
{ {
UserId = techId,
ServiceRateQuantity = 1, var woItemLabor = new WorkOrderItemLabor()
ServiceStartDate = woDate,
ServiceStopDate = woDate.AddHours(1),
ServiceRateId = Fake.Random.Long(1, TotalSeededServiceRates),
ServiceDetails = Fake.Lorem.Sentence(null, 6)
};
woItem.Labors.Add(woItemLabor);
if (Fake.Random.Bool())//50%
{
woItemLabor = new WorkOrderItemLabor()
{ {
UserId = RandomServiceTechUserId(), UserId = techId,
ServiceRateQuantity = 2, ServiceRateQuantity = 1,
ServiceStartDate = woDate, ServiceStartDate = woDate,
ServiceStopDate = woDate.AddHours(1), ServiceStopDate = woDate.AddHours(1),
ServiceRateId = Fake.Random.Long(1, TotalSeededServiceRates), ServiceRateId = Fake.Random.Long(1, TotalSeededServiceRates),
ServiceDetails = Fake.Lorem.Sentence(null, 6) ServiceDetails = Fake.Lorem.Sentence(null, 6)
}; };
woItem.Labors.Add(woItemLabor); woItem.Labors.Add(woItemLabor);
} if (Fake.Random.Bool())//50%
//TRAVEL
if (Fake.Random.Bool())//50%
{
var woItemTravel = new WorkOrderItemTravel()
{ {
UserId = techId, woItemLabor = new WorkOrderItemLabor()
TravelRateQuantity = 1, {
TravelStartDate = woDate, UserId = RandomServiceTechUserId(),
TravelStopDate = woDate.AddHours(1), ServiceRateQuantity = 2,
TravelRateId = Fake.Random.Long(1, TotalSeededTravelRates), ServiceStartDate = woDate,
TravelDetails = Fake.Lorem.Sentence(null, 3), ServiceStopDate = woDate.AddHours(1),
Distance = Fake.Random.Int(1, 20) ServiceRateId = Fake.Random.Long(1, TotalSeededServiceRates),
}; ServiceDetails = Fake.Lorem.Sentence(null, 6)
woItem.Travels.Add(woItemTravel); };
woItem.Labors.Add(woItemLabor);
}
//TRAVEL
if (Fake.Random.Bool())//50%
{
var woItemTravel = new WorkOrderItemTravel()
{
UserId = techId,
TravelRateQuantity = 1,
TravelStartDate = woDate,
TravelStopDate = woDate.AddHours(1),
TravelRateId = Fake.Random.Long(1, TotalSeededTravelRates),
TravelDetails = Fake.Lorem.Sentence(null, 3),
Distance = Fake.Random.Int(1, 20)
};
woItem.Travels.Add(woItemTravel);
}
} }
//TASKS //TASKS
@@ -3138,8 +3140,8 @@ namespace AyaNova.Util
CompletedByUserId = techId, CompletedByUserId = techId,
Task = "Dis-assemble", Task = "Dis-assemble",
Sequence = 1, Sequence = 1,
Status = WorkOrderItemTaskCompletionType.Complete, Status = isFutureDate ? WorkOrderItemTaskCompletionType.Incomplete : WorkOrderItemTaskCompletionType.Complete,
CompletedDate = woDate.AddHours(1) CompletedDate = isFutureDate ? null : woDate.AddHours(1)
}; };
woItem.Tasks.Add(woItemTask); woItem.Tasks.Add(woItemTask);
@@ -3149,7 +3151,7 @@ namespace AyaNova.Util
Task = "Lubricate", Task = "Lubricate",
Sequence = 2, Sequence = 2,
Status = WorkOrderItemTaskCompletionType.NotApplicable, Status = WorkOrderItemTaskCompletionType.NotApplicable,
CompletedDate = woDate.AddHours(1) CompletedDate = isFutureDate ? null : woDate.AddHours(1)
}; };
woItem.Tasks.Add(woItemTask); woItem.Tasks.Add(woItemTask);
@@ -3159,8 +3161,8 @@ namespace AyaNova.Util
CompletedByUserId = techId, CompletedByUserId = techId,
Task = "Repair", Task = "Repair",
Sequence = 3, Sequence = 3,
Status = WorkOrderItemTaskCompletionType.Complete, Status = isFutureDate ? WorkOrderItemTaskCompletionType.Incomplete : WorkOrderItemTaskCompletionType.Complete,
CompletedDate = woDate.AddHours(1.5) CompletedDate = isFutureDate ? null : woDate.AddHours(1.5)
}; };
woItem.Tasks.Add(woItemTask); woItem.Tasks.Add(woItemTask);
@@ -3169,8 +3171,8 @@ namespace AyaNova.Util
CompletedByUserId = techId, CompletedByUserId = techId,
Task = "Re-assemble", Task = "Re-assemble",
Sequence = 4, Sequence = 4,
Status = WorkOrderItemTaskCompletionType.Complete, Status = isFutureDate ? WorkOrderItemTaskCompletionType.Incomplete : WorkOrderItemTaskCompletionType.Complete,
CompletedDate = woDate.AddHours(2) CompletedDate = isFutureDate ? null : woDate.AddHours(2)
}; };
woItem.Tasks.Add(woItemTask); woItem.Tasks.Add(woItemTask);
@@ -3179,8 +3181,8 @@ namespace AyaNova.Util
CompletedByUserId = techId, CompletedByUserId = techId,
Task = "Test and confirm repair", Task = "Test and confirm repair",
Sequence = 5, Sequence = 5,
Status = WorkOrderItemTaskCompletionType.Complete, Status = isFutureDate ? WorkOrderItemTaskCompletionType.Incomplete : WorkOrderItemTaskCompletionType.Complete,
CompletedDate = woDate.AddHours(2) CompletedDate = isFutureDate ? null : woDate.AddHours(2)
}; };
woItem.Tasks.Add(woItemTask); woItem.Tasks.Add(woItemTask);
} }
@@ -3188,39 +3190,42 @@ namespace AyaNova.Util
//EXPENSES //EXPENSES
if (Fake.Random.Int(1, 4) == 2)//25% chance if (!isFutureDate)
{ {
var cost = Fake.Random.Decimal(1, 10); if (Fake.Random.Int(1, 4) == 2)//25% chance
var woItemExpense = new WorkOrderItemExpense()
{ {
UserId = RandomServiceTechUserId(), var cost = Fake.Random.Decimal(1, 10);
//TotalCost = cost, var woItemExpense = new WorkOrderItemExpense()
ChargeAmount = MoneyUtil.Round(cost * 1.2m), {
ChargeToCustomer = true, UserId = RandomServiceTechUserId(),
ReimburseUser = true, //TotalCost = cost,
ChargeTaxCodeId = TCGoods, ChargeAmount = MoneyUtil.Round(cost * 1.2m),
Name = Fake.Commerce.ProductName() ChargeToCustomer = true,
ReimburseUser = true,
ChargeTaxCodeId = TCGoods,
Name = Fake.Commerce.ProductName()
}; };
woItem.Expenses.Add(woItemExpense); woItem.Expenses.Add(woItemExpense);
woItemExpense = new WorkOrderItemExpense() woItemExpense = new WorkOrderItemExpense()
{ {
UserId = RandomServiceTechUserId(), UserId = RandomServiceTechUserId(),
// TotalCost = cost * 2m, // TotalCost = cost * 2m,
ChargeAmount = MoneyUtil.Round(cost * 2.2m), ChargeAmount = MoneyUtil.Round(cost * 2.2m),
ChargeToCustomer = true, ChargeToCustomer = true,
ReimburseUser = true, ReimburseUser = true,
ChargeTaxCodeId = TCGoods, ChargeTaxCodeId = TCGoods,
Name = Fake.Commerce.ProductName() Name = Fake.Commerce.ProductName()
}; };
woItem.Expenses.Add(woItemExpense); woItem.Expenses.Add(woItemExpense);
}
} }
//OUTSIDE SERVICES //OUTSIDE SERVICES
if (Fake.Random.Int(1, 10) == 2)//10% chance if (!isFutureDate && Fake.Random.Int(1, 10) == 2)//10% chance
{ {
var ShippingCost = MoneyUtil.Round(Fake.Random.Decimal(5, 20)); var ShippingCost = MoneyUtil.Round(Fake.Random.Decimal(5, 20));
var RepairCost = MoneyUtil.Round(Fake.Random.Decimal(50, 1000)); var RepairCost = MoneyUtil.Round(Fake.Random.Decimal(50, 1000));
@@ -3326,7 +3331,7 @@ namespace AyaNova.Util
//All wo ending status //All wo ending status
//if it's in the past tag it with a completed type status //if it's in the past tag it with a completed type status
if (isPast) if (olderThanOneWeekAgo)
{ {
{ {
var WoState = new WorkOrderState() var WoState = new WorkOrderState()