From d5f1ac6880fcca89ca390617b3bfc06436725752 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Wed, 2 Mar 2022 00:55:34 +0000 Subject: [PATCH] --- .vscode/launch.json | 2 +- server/AyaNova/util/Seeder.cs | 147 ++++++++++++++++++---------------- 2 files changed, 77 insertions(+), 72 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index d0cceaa8..f18b4927 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -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", diff --git a/server/AyaNova/util/Seeder.cs b/server/AyaNova/util/Seeder.cs index 84de92d6..8bd0ce4d 100644 --- a/server/AyaNova/util/Seeder.cs +++ b/server/AyaNova/util/Seeder.cs @@ -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()