This commit is contained in:
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
@@ -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",
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user