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_USE_URLS": "http://*:7575;",
//"AYANOVA_PERMANENTLY_ERASE_DATABASE":"true",
"AYANOVA_SERVER_TEST_MODE": "false",
"AYANOVA_SERVER_TEST_MODE": "true",
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-8",
//"AYANOVA_REPORT_RENDERING_TIMEOUT":"1",
"AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small",

View File

@@ -2464,8 +2464,8 @@ namespace AyaNova.Util
//
public async Task SeedCustomerServiceRequestAsync(ILogger log, int count)
{
DateTime seedStartWindow = DateTime.Now.AddYears(-1);
DateTime seedEndWindow = DateTime.Now.AddMonths(-11);
DateTime seedStartWindow = DateTime.Now.AddMonths(-1);
DateTime seedEndWindow = DateTime.Now;
for (int x = 0; x < count; x++)
{
@@ -2859,14 +2859,13 @@ namespace AyaNova.Util
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 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.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);
using (AyContext ct = ServiceProviderProvider.DBContext)
@@ -3086,48 +3085,51 @@ namespace AyaNova.Util
}
//LABOR
var techId = RandomServiceTechUserId();
var woItemLabor = new WorkOrderItemLabor()
//LABOR
if (!isFutureDate)
{
UserId = techId,
ServiceRateQuantity = 1,
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()
var woItemLabor = new WorkOrderItemLabor()
{
UserId = RandomServiceTechUserId(),
ServiceRateQuantity = 2,
UserId = techId,
ServiceRateQuantity = 1,
ServiceStartDate = woDate,
ServiceStopDate = woDate.AddHours(1),
ServiceRateId = Fake.Random.Long(1, TotalSeededServiceRates),
ServiceDetails = Fake.Lorem.Sentence(null, 6)
};
woItem.Labors.Add(woItemLabor);
}
//TRAVEL
if (Fake.Random.Bool())//50%
{
var woItemTravel = new WorkOrderItemTravel()
if (Fake.Random.Bool())//50%
{
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);
woItemLabor = new WorkOrderItemLabor()
{
UserId = RandomServiceTechUserId(),
ServiceRateQuantity = 2,
ServiceStartDate = woDate,
ServiceStopDate = woDate.AddHours(1),
ServiceRateId = Fake.Random.Long(1, TotalSeededServiceRates),
ServiceDetails = Fake.Lorem.Sentence(null, 6)
};
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
@@ -3138,8 +3140,8 @@ namespace AyaNova.Util
CompletedByUserId = techId,
Task = "Dis-assemble",
Sequence = 1,
Status = WorkOrderItemTaskCompletionType.Complete,
CompletedDate = woDate.AddHours(1)
Status = isFutureDate ? WorkOrderItemTaskCompletionType.Incomplete : WorkOrderItemTaskCompletionType.Complete,
CompletedDate = isFutureDate ? null : woDate.AddHours(1)
};
woItem.Tasks.Add(woItemTask);
@@ -3149,7 +3151,7 @@ namespace AyaNova.Util
Task = "Lubricate",
Sequence = 2,
Status = WorkOrderItemTaskCompletionType.NotApplicable,
CompletedDate = woDate.AddHours(1)
CompletedDate = isFutureDate ? null : woDate.AddHours(1)
};
woItem.Tasks.Add(woItemTask);
@@ -3159,8 +3161,8 @@ namespace AyaNova.Util
CompletedByUserId = techId,
Task = "Repair",
Sequence = 3,
Status = WorkOrderItemTaskCompletionType.Complete,
CompletedDate = woDate.AddHours(1.5)
Status = isFutureDate ? WorkOrderItemTaskCompletionType.Incomplete : WorkOrderItemTaskCompletionType.Complete,
CompletedDate = isFutureDate ? null : woDate.AddHours(1.5)
};
woItem.Tasks.Add(woItemTask);
@@ -3169,8 +3171,8 @@ namespace AyaNova.Util
CompletedByUserId = techId,
Task = "Re-assemble",
Sequence = 4,
Status = WorkOrderItemTaskCompletionType.Complete,
CompletedDate = woDate.AddHours(2)
Status = isFutureDate ? WorkOrderItemTaskCompletionType.Incomplete : WorkOrderItemTaskCompletionType.Complete,
CompletedDate = isFutureDate ? null : woDate.AddHours(2)
};
woItem.Tasks.Add(woItemTask);
@@ -3179,8 +3181,8 @@ namespace AyaNova.Util
CompletedByUserId = techId,
Task = "Test and confirm repair",
Sequence = 5,
Status = WorkOrderItemTaskCompletionType.Complete,
CompletedDate = woDate.AddHours(2)
Status = isFutureDate ? WorkOrderItemTaskCompletionType.Incomplete : WorkOrderItemTaskCompletionType.Complete,
CompletedDate = isFutureDate ? null : woDate.AddHours(2)
};
woItem.Tasks.Add(woItemTask);
}
@@ -3188,39 +3190,42 @@ namespace AyaNova.Util
//EXPENSES
if (Fake.Random.Int(1, 4) == 2)//25% chance
if (!isFutureDate)
{
var cost = Fake.Random.Decimal(1, 10);
var woItemExpense = new WorkOrderItemExpense()
if (Fake.Random.Int(1, 4) == 2)//25% chance
{
UserId = RandomServiceTechUserId(),
//TotalCost = cost,
ChargeAmount = MoneyUtil.Round(cost * 1.2m),
ChargeToCustomer = true,
ReimburseUser = true,
ChargeTaxCodeId = TCGoods,
Name = Fake.Commerce.ProductName()
var cost = Fake.Random.Decimal(1, 10);
var woItemExpense = new WorkOrderItemExpense()
{
UserId = RandomServiceTechUserId(),
//TotalCost = cost,
ChargeAmount = MoneyUtil.Round(cost * 1.2m),
ChargeToCustomer = true,
ReimburseUser = true,
ChargeTaxCodeId = TCGoods,
Name = Fake.Commerce.ProductName()
};
woItem.Expenses.Add(woItemExpense);
};
woItem.Expenses.Add(woItemExpense);
woItemExpense = new WorkOrderItemExpense()
{
UserId = RandomServiceTechUserId(),
// TotalCost = cost * 2m,
ChargeAmount = MoneyUtil.Round(cost * 2.2m),
ChargeToCustomer = true,
ReimburseUser = true,
ChargeTaxCodeId = TCGoods,
Name = Fake.Commerce.ProductName()
woItemExpense = new WorkOrderItemExpense()
{
UserId = RandomServiceTechUserId(),
// TotalCost = cost * 2m,
ChargeAmount = MoneyUtil.Round(cost * 2.2m),
ChargeToCustomer = true,
ReimburseUser = true,
ChargeTaxCodeId = TCGoods,
Name = Fake.Commerce.ProductName()
};
woItem.Expenses.Add(woItemExpense);
};
woItem.Expenses.Add(woItemExpense);
}
}
//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 RepairCost = MoneyUtil.Round(Fake.Random.Decimal(50, 1000));
@@ -3326,7 +3331,7 @@ namespace AyaNova.Util
//All wo ending status
//if it's in the past tag it with a completed type status
if (isPast)
if (olderThanOneWeekAgo)
{
{
var WoState = new WorkOrderState()