From 7a0e12728d4fb4a399f23a7cc45de4831b91a805 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Mon, 10 May 2021 19:48:31 +0000 Subject: [PATCH] --- server/AyaNova/util/Seeder.cs | 79 +++++++++++++++++++++++++++-------- 1 file changed, 61 insertions(+), 18 deletions(-) diff --git a/server/AyaNova/util/Seeder.cs b/server/AyaNova/util/Seeder.cs index 58a8055a..f06fc66d 100644 --- a/server/AyaNova/util/Seeder.cs +++ b/server/AyaNova/util/Seeder.cs @@ -526,7 +526,7 @@ namespace AyaNova.Util } - + long TCSales = 0, TCGoods = 0, TCBoth = 0; ////////////////////////////////////////////////////// //Seed known / expected test data for tests/development @@ -1144,7 +1144,7 @@ namespace AyaNova.Util -///////////////////////////////////////////////////// + ///////////////////////////////////////////////////// //WorkOrderItemPriority { @@ -1154,7 +1154,7 @@ namespace AyaNova.Util stat.Active = true; stat.Color = "#c00000"; - + using (AyContext ct = ServiceProviderProvider.DBContext) { WorkOrderItemPriorityBiz biz = WorkOrderItemPriorityBiz.GetBiz(ct); @@ -1175,7 +1175,7 @@ namespace AyaNova.Util stat.Active = true; stat.Color = "#ff9900"; - + using (AyContext ct = ServiceProviderProvider.DBContext) { WorkOrderItemPriorityBiz biz = WorkOrderItemPriorityBiz.GetBiz(ct); @@ -1196,7 +1196,7 @@ namespace AyaNova.Util stat.Active = true; stat.Color = "#ffff00"; - + using (AyContext ct = ServiceProviderProvider.DBContext) { WorkOrderItemPriorityBiz biz = WorkOrderItemPriorityBiz.GetBiz(ct); @@ -1217,7 +1217,7 @@ namespace AyaNova.Util stat.Active = true; stat.Color = "#00ccff"; - + using (AyContext ct = ServiceProviderProvider.DBContext) { WorkOrderItemPriorityBiz biz = WorkOrderItemPriorityBiz.GetBiz(ct); @@ -1232,13 +1232,13 @@ namespace AyaNova.Util } } - { + { WorkOrderItemPriority stat = new WorkOrderItemPriority(); stat.Name = "30 days"; stat.Active = true; stat.Color = "#00ff00"; - + using (AyContext ct = ServiceProviderProvider.DBContext) { WorkOrderItemPriorityBiz biz = WorkOrderItemPriorityBiz.GetBiz(ct); @@ -1251,9 +1251,9 @@ namespace AyaNova.Util throw new System.Exception(err); } } - } + } + - } @@ -1264,7 +1264,7 @@ namespace AyaNova.Util ///////////////////////////////////////////////////// //TAX CODES - long TCSales = 0, TCGoods = 0, TCBoth = 0; + { { TaxCode tc = new TaxCode(); @@ -1386,6 +1386,7 @@ namespace AyaNova.Util public HashSet HashUserNames = new HashSet(); + public List ServiceUserIds = new List(); private int TotalSeededUsers = 0; public async Task SeedUserAsync( @@ -1457,6 +1458,10 @@ namespace AyaNova.Util { UserBiz biz = UserBiz.GetBiz(ct); var NewObject = await biz.CreateAsync(u); + if (u.UserType != UserType.NotService) + { + ServiceUserIds.Add(u.Id); + } TotalSeededUsers++; if (NewObject == null) { @@ -2404,9 +2409,15 @@ namespace AyaNova.Util } + + public long RandomServiceTechUserId() + { + return ServiceUserIds[Fake.Random.Int(1, ServiceUserIds.Count - 1)]; + } + private int TotalSeededWorkOrders = 0; ////////////////////////////////////////////////////// - //PURCHASE ORDER + //WORK ORDER // public async Task SeedWorkOrderAsync(ILogger log, int count) { @@ -2472,18 +2483,50 @@ namespace AyaNova.Util //add two users for testing var woItemScheduledUser = new WorkOrderItemScheduledUser() { - UserId = Fake.Random.Long(1, TotalSeededUsers), + UserId = RandomServiceTechUserId(), EstimatedQuantity = 1 }; woItem.ScheduledUsers.Add(woItemScheduledUser); woItemScheduledUser = new WorkOrderItemScheduledUser() { - UserId = Fake.Random.Long(1, TotalSeededUsers), + UserId = RandomServiceTechUserId(), EstimatedQuantity = 2 }; woItem.ScheduledUsers.Add(woItemScheduledUser); + + + //add two expenses for testing + var cost = Fake.Random.Decimal(1, 10); + var woItemExpense = new WorkOrderItemExpense() + { + UserId = RandomServiceTechUserId(), + TotalCost = cost, + ChargeAmount = cost * 1.2m, + ChargeToCustomer = true, + ReimburseUser = true, + ChargeTaxCodeId = TCGoods, + Name = Fake.Commerce.ProductName() + + }; + woItem.Expenses.Add(woItemExpense); + + woItemExpense = new WorkOrderItemExpense() + { + UserId = RandomServiceTechUserId(), + TotalCost = cost * 2m, + ChargeAmount = cost * 2.2m, + ChargeToCustomer = true, + ReimburseUser = true, + ChargeTaxCodeId = TCGoods, + Name = Fake.Commerce.ProductName() + + }; + woItem.Expenses.Add(woItemExpense); + + + o.Items.Add(woItem); } @@ -2492,7 +2535,7 @@ namespace AyaNova.Util var WoState = new WorkOrderState() { WorkOrderStatusId = (long)SeedWOStatus.NeedsToBeAssigned, - UserId = Fake.Random.Long(1, TotalSeededUsers), + UserId = RandomServiceTechUserId(), Created = ((DateTime)o.ServiceDate).AddMinutes(5) }; o.States.Add(WoState); @@ -2502,7 +2545,7 @@ namespace AyaNova.Util var WoState = new WorkOrderState() { WorkOrderStatusId = (long)SeedWOStatus.Scheduled, - UserId = Fake.Random.Long(1, TotalSeededUsers), + UserId = RandomServiceTechUserId(), Created = ((DateTime)o.ServiceDate).AddHours(1) }; o.States.Add(WoState); @@ -2512,7 +2555,7 @@ namespace AyaNova.Util var WoState = new WorkOrderState() { WorkOrderStatusId = (long)SeedWOStatus.ManagerApprovalRequired, - UserId = Fake.Random.Long(1, TotalSeededUsers), + UserId = RandomServiceTechUserId(), Created = ((DateTime)o.ServiceDate).AddHours(1).AddMinutes(5) }; o.States.Add(WoState); @@ -2521,7 +2564,7 @@ namespace AyaNova.Util var WoState = new WorkOrderState() { WorkOrderStatusId = (long)SeedWOStatus.Scheduled, - UserId = Fake.Random.Long(1, TotalSeededUsers), + UserId = RandomServiceTechUserId(), Created = ((DateTime)o.ServiceDate).AddHours(2) }; o.States.Add(WoState);