From 915f50a2ec2f3a0f1171d6e343e3f03ef59c5c26 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Mon, 18 Oct 2021 21:40:27 +0000 Subject: [PATCH] --- server/AyaNova/util/Seeder.cs | 571 +++++++++++++++++----------------- 1 file changed, 285 insertions(+), 286 deletions(-) diff --git a/server/AyaNova/util/Seeder.cs b/server/AyaNova/util/Seeder.cs index 8653bb19..28063f15 100644 --- a/server/AyaNova/util/Seeder.cs +++ b/server/AyaNova/util/Seeder.cs @@ -445,7 +445,7 @@ namespace AyaNova.Util await SeedPartAsync(log, 10000, 6000); await SeedPartAssemblyAsync(log, 500); await SeedPurchaseOrderAsync(log, 1000); - await SeedQuoteAsync(log, 1000); + await SeedQuoteAsync(log, 10); await SeedPMAsync(log, 3);//DO NOT want too many of these as they affect performance await SeedWorkOrderAsync(log, 3600, slevel); @@ -2853,8 +2853,7 @@ namespace AyaNova.Util } //SCHEDULED USERS - //not realistic, just to fill schedule forms with a nice even distribution - //four random techs plus a few others of known type + for (int a = 0; a < woItemCount; a++)//woItemCount works here { var randomStart = Fake.Random.Int(0, 5); var randomHours = Fake.Random.Int(1, 4); @@ -2870,94 +2869,94 @@ namespace AyaNova.Util woItem.ScheduledUsers.Add(woItemScheduledUser); } - { - var randomStart = Fake.Random.Int(0, 5); - var randomHours = Fake.Random.Int(1, 4); - var randomDays = Fake.Random.Int(0, 3); - var randomStop = randomStart + randomHours; - var woItemScheduledUser = new WorkOrderItemScheduledUser() - { - UserId = RandomServiceTechUserId(), - EstimatedQuantity = randomHours, - StartDate = woDate.AddHours(randomStart).AddDays(randomDays), - StopDate = woDate.AddHours(randomStop).AddDays(randomDays) - }; - woItem.ScheduledUsers.Add(woItemScheduledUser); - } + // { + // var randomStart = Fake.Random.Int(0, 5); + // var randomHours = Fake.Random.Int(1, 4); + // var randomDays = Fake.Random.Int(0, 3); + // var randomStop = randomStart + randomHours; + // var woItemScheduledUser = new WorkOrderItemScheduledUser() + // { + // UserId = RandomServiceTechUserId(), + // EstimatedQuantity = randomHours, + // StartDate = woDate.AddHours(randomStart).AddDays(randomDays), + // StopDate = woDate.AddHours(randomStop).AddDays(randomDays) + // }; + // woItem.ScheduledUsers.Add(woItemScheduledUser); + // } - { - var randomStart = Fake.Random.Int(0, 5); - var randomHours = Fake.Random.Int(1, 4); - var randomDays = Fake.Random.Int(0, 3); - var randomStop = randomStart + randomHours; - var woItemScheduledUser = new WorkOrderItemScheduledUser() - { - UserId = RandomServiceTechUserId(), - EstimatedQuantity = randomHours, - StartDate = woDate.AddHours(randomStart).AddDays(randomDays), - StopDate = woDate.AddHours(randomStop).AddDays(randomDays) - }; - woItem.ScheduledUsers.Add(woItemScheduledUser); - } + // { + // var randomStart = Fake.Random.Int(0, 5); + // var randomHours = Fake.Random.Int(1, 4); + // var randomDays = Fake.Random.Int(0, 3); + // var randomStop = randomStart + randomHours; + // var woItemScheduledUser = new WorkOrderItemScheduledUser() + // { + // UserId = RandomServiceTechUserId(), + // EstimatedQuantity = randomHours, + // StartDate = woDate.AddHours(randomStart).AddDays(randomDays), + // StopDate = woDate.AddHours(randomStop).AddDays(randomDays) + // }; + // woItem.ScheduledUsers.Add(woItemScheduledUser); + // } - { - var randomStart = Fake.Random.Int(0, 5); - var randomHours = Fake.Random.Int(1, 4); - var randomDays = Fake.Random.Int(0, 3); - var randomStop = randomStart + randomHours; - var woItemScheduledUser = new WorkOrderItemScheduledUser() - { - UserId = RandomServiceTechUserId(), - EstimatedQuantity = randomHours, - StartDate = woDate.AddHours(randomStart).AddDays(randomDays), - StopDate = woDate.AddHours(randomStop).AddDays(randomDays) - }; - woItem.ScheduledUsers.Add(woItemScheduledUser); - } + // { + // var randomStart = Fake.Random.Int(0, 5); + // var randomHours = Fake.Random.Int(1, 4); + // var randomDays = Fake.Random.Int(0, 3); + // var randomStop = randomStart + randomHours; + // var woItemScheduledUser = new WorkOrderItemScheduledUser() + // { + // UserId = RandomServiceTechUserId(), + // EstimatedQuantity = randomHours, + // StartDate = woDate.AddHours(randomStart).AddDays(randomDays), + // StopDate = woDate.AddHours(randomStop).AddDays(randomDays) + // }; + // woItem.ScheduledUsers.Add(woItemScheduledUser); + // } - if (y == 1) - { - //known tech and subcontractor on every item - var woItemScheduledUser = new WorkOrderItemScheduledUser() - { - UserId = KnownUserTechId, - EstimatedQuantity = 2, - StartDate = woDate, - StopDate = woDate.AddHours(2) - }; - woItem.ScheduledUsers.Add(woItemScheduledUser); + // if (y == 1) + // { + // //known tech and subcontractor on every item + // var woItemScheduledUser = new WorkOrderItemScheduledUser() + // { + // UserId = KnownUserTechId, + // EstimatedQuantity = 2, + // StartDate = woDate, + // StopDate = woDate.AddHours(2) + // }; + // woItem.ScheduledUsers.Add(woItemScheduledUser); - woItemScheduledUser = new WorkOrderItemScheduledUser() - { - UserId = KnownUserSubContractorId, - EstimatedQuantity = 2, - StartDate = woDate, - StopDate = woDate.AddHours(2) - }; - woItem.ScheduledUsers.Add(woItemScheduledUser); - } + // woItemScheduledUser = new WorkOrderItemScheduledUser() + // { + // UserId = KnownUserSubContractorId, + // EstimatedQuantity = 2, + // StartDate = woDate, + // StopDate = woDate.AddHours(2) + // }; + // woItem.ScheduledUsers.Add(woItemScheduledUser); + // } - if (y == 3) - { - //known restricted tech and subcontractor on some items - var woItemScheduledUser = new WorkOrderItemScheduledUser() - { - UserId = KnownUserTechRestrictedId, - EstimatedQuantity = 2, - StartDate = woDate, - StopDate = woDate.AddHours(2) - }; - woItem.ScheduledUsers.Add(woItemScheduledUser); + // if (y == 3) + // { + // //known restricted tech and subcontractor on some items + // var woItemScheduledUser = new WorkOrderItemScheduledUser() + // { + // UserId = KnownUserTechRestrictedId, + // EstimatedQuantity = 2, + // StartDate = woDate, + // StopDate = woDate.AddHours(2) + // }; + // woItem.ScheduledUsers.Add(woItemScheduledUser); - woItemScheduledUser = new WorkOrderItemScheduledUser() - { - UserId = KnownUserSubContractorRestrictedId, - EstimatedQuantity = 2, - StartDate = woDate, - StopDate = woDate.AddHours(2) - }; - woItem.ScheduledUsers.Add(woItemScheduledUser); - } + // woItemScheduledUser = new WorkOrderItemScheduledUser() + // { + // UserId = KnownUserSubContractorRestrictedId, + // EstimatedQuantity = 2, + // StartDate = woDate, + // StopDate = woDate.AddHours(2) + // }; + // woItem.ScheduledUsers.Add(woItemScheduledUser); + // } ///////////////////////////////////////// //PARTS @@ -2979,47 +2978,35 @@ namespace AyaNova.Util }; woItem.Parts.Add(woItemPart); - //PARTREQUESTS - var woItemPartRequest = new WorkOrderItemPartRequest() + //PARTREQUESTS + if (Fake.Random.Bool())//50% { + var woItemPartRequest = new WorkOrderItemPartRequest() + { - Quantity = 1, - PartId = Fake.Random.Long(1, TotalSeededParts), - PartWarehouseId = 1, - PurchaseOrderItemId = Fake.Random.Long(1, TotalSeededPurchaseOrders)//yes it's POITEM vs po but each po has at least one item so this will work - }; - woItem.PartRequests.Add(woItemPartRequest); + Quantity = 1, + PartId = Fake.Random.Long(1, TotalSeededParts), + PartWarehouseId = 1, + PurchaseOrderItemId = Fake.Random.Long(1, TotalSeededPurchaseOrders)//yes it's POITEM vs po but each po has at least one item so this will work + }; + woItem.PartRequests.Add(woItemPartRequest); + } - woItemPartRequest = new WorkOrderItemPartRequest() + + //LOANERS + if (Fake.Random.Bool())//50% { + var woItemLoan = new WorkOrderItemLoan() + { + OutDate = woDate.AddHours(1), + DueDate = woDate.AddHours(4), + Quantity = 4, + Rate = LoanUnitRateUnit.Hours, + LoanUnitId = Fake.Random.Long(1, TotalSeededLoanUnits) + }; + woItem.Loans.Add(woItemLoan); + } - Quantity = 1, - PartId = Fake.Random.Long(1, TotalSeededParts), - PartWarehouseId = 1 - }; - woItem.PartRequests.Add(woItemPartRequest); - - - //LOANERS - var woItemLoan = new WorkOrderItemLoan() - { - OutDate = woDate.AddHours(1), - DueDate = woDate.AddHours(4), - Quantity = 4, - Rate = LoanUnitRateUnit.Hours, - LoanUnitId = Fake.Random.Long(1, TotalSeededLoanUnits) - }; - woItem.Loans.Add(woItemLoan); - - woItemLoan = new WorkOrderItemLoan() - { - OutDate = woDate.AddHours(2), - DueDate = woDate.AddHours(3), - Quantity = 1, - Rate = LoanUnitRateUnit.Hours, - LoanUnitId = Fake.Random.Long(1, TotalSeededLoanUnits) - }; - woItem.Loans.Add(woItemLoan); //LABOR @@ -3034,217 +3021,229 @@ namespace AyaNova.Util ServiceDetails = Fake.Lorem.Sentence() }; woItem.Labors.Add(woItemLabor); - - woItemLabor = new WorkOrderItemLabor() + if (Fake.Random.Bool())//50% { - UserId = RandomServiceTechUserId(), - ServiceRateQuantity = 2, - ServiceStartDate = woDate, - ServiceStopDate = woDate.AddHours(1), - ServiceRateId = Fake.Random.Long(1, TotalSeededServiceRates), - ServiceDetails = Fake.Lorem.Sentence() - }; - woItem.Labors.Add(woItemLabor); - + woItemLabor = new WorkOrderItemLabor() + { + UserId = RandomServiceTechUserId(), + ServiceRateQuantity = 2, + ServiceStartDate = woDate, + ServiceStopDate = woDate.AddHours(1), + ServiceRateId = Fake.Random.Long(1, TotalSeededServiceRates), + ServiceDetails = Fake.Lorem.Sentence() + }; + woItem.Labors.Add(woItemLabor); + } //TRAVEL - 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(), - Distance = Fake.Random.Int(1, 20) - }; - woItem.Travels.Add(woItemTravel); - - woItemTravel = new WorkOrderItemTravel() - { - UserId = RandomServiceTechUserId(), - TravelRateQuantity = 2, - TravelStartDate = woDate, - TravelStopDate = woDate.AddHours(1), - TravelRateId = Fake.Random.Long(1, TotalSeededTravelRates), - TravelDetails = Fake.Lorem.Sentence(), - Distance = Fake.Random.Int(1, 20) - }; - woItem.Travels.Add(woItemTravel); + var woItemTravel = new WorkOrderItemTravel() + { + UserId = techId, + TravelRateQuantity = 1, + TravelStartDate = woDate, + TravelStopDate = woDate.AddHours(1), + TravelRateId = Fake.Random.Long(1, TotalSeededTravelRates), + TravelDetails = Fake.Lorem.Sentence(), + Distance = Fake.Random.Int(1, 20) + }; + woItem.Travels.Add(woItemTravel); + } //TASKS - var woItemTask = new WorkOrderItemTask() + if (Fake.Random.Int(1, 4) == 2)//25% chance of task { - CompletedByUserId = techId, - Task = "Dis-assemble", - Sequence = 1, - Status = WorkOrderItemTaskCompletionType.Complete, - CompletedDate = woDate.AddHours(1) - }; - woItem.Tasks.Add(woItemTask); + var woItemTask = new WorkOrderItemTask() + { + CompletedByUserId = techId, + Task = "Dis-assemble", + Sequence = 1, + Status = WorkOrderItemTaskCompletionType.Complete, + CompletedDate = woDate.AddHours(1) + }; + woItem.Tasks.Add(woItemTask); - woItemTask = new WorkOrderItemTask() - { - CompletedByUserId = techId, - Task = "Lubricate", - Sequence = 2, - Status = WorkOrderItemTaskCompletionType.NotApplicable, - CompletedDate = woDate.AddHours(1) - }; - woItem.Tasks.Add(woItemTask); + woItemTask = new WorkOrderItemTask() + { + CompletedByUserId = techId, + Task = "Lubricate", + Sequence = 2, + Status = WorkOrderItemTaskCompletionType.NotApplicable, + CompletedDate = woDate.AddHours(1) + }; + woItem.Tasks.Add(woItemTask); - woItemTask = new WorkOrderItemTask() - { - CompletedByUserId = techId, - Task = "Repair", - Sequence = 3, - Status = WorkOrderItemTaskCompletionType.Complete, - CompletedDate = woDate.AddHours(1.5) - }; - woItem.Tasks.Add(woItemTask); + woItemTask = new WorkOrderItemTask() + { + CompletedByUserId = techId, + Task = "Repair", + Sequence = 3, + Status = WorkOrderItemTaskCompletionType.Complete, + CompletedDate = woDate.AddHours(1.5) + }; + woItem.Tasks.Add(woItemTask); - woItemTask = new WorkOrderItemTask() - { - CompletedByUserId = techId, - Task = "Re-assemble", - Sequence = 4, - Status = WorkOrderItemTaskCompletionType.Complete, - CompletedDate = woDate.AddHours(2) - }; - woItem.Tasks.Add(woItemTask); - - woItemTask = new WorkOrderItemTask() - { - CompletedByUserId = techId, - Task = "Test and confirm repair", - Sequence = 5, - Status = WorkOrderItemTaskCompletionType.Complete, - CompletedDate = woDate.AddHours(2) - }; - woItem.Tasks.Add(woItemTask); + woItemTask = new WorkOrderItemTask() + { + CompletedByUserId = techId, + Task = "Re-assemble", + Sequence = 4, + Status = WorkOrderItemTaskCompletionType.Complete, + CompletedDate = woDate.AddHours(2) + }; + woItem.Tasks.Add(woItemTask); + woItemTask = new WorkOrderItemTask() + { + CompletedByUserId = techId, + Task = "Test and confirm repair", + Sequence = 5, + Status = WorkOrderItemTaskCompletionType.Complete, + CompletedDate = woDate.AddHours(2) + }; + woItem.Tasks.Add(woItemTask); + } //EXPENSES - 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 = 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 = 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 = cost * 2.2m, - ChargeToCustomer = true, - ReimburseUser = true, - ChargeTaxCodeId = TCGoods, - Name = Fake.Commerce.ProductName() + 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); + }; + woItem.Expenses.Add(woItemExpense); + } //OUTSIDE SERVICES - var ShippingCost = Fake.Random.Decimal(5, 20); - var RepairCost = Fake.Random.Decimal(50, 1000); - var woItemOutsideService = new WorkOrderItemOutsideService() + if (Fake.Random.Int(1, 10) == 2)//10% chance { - UnitId = GetRandomUnitForCustomer(o.CustomerId), - Notes = Fake.Lorem.Sentence(), - VendorSentToId = Fake.Random.Long(1, TotalSeededVendors), - VendorSentViaId = Fake.Random.Long(1, TotalSeededVendors), - RMANumber = "RMA" + Fake.Finance.Account(6), - TrackingNumber = "TR" + Fake.Finance.Account(8), - RepairCost = RepairCost, - RepairPrice = RepairCost * 1.5m, - ShippingCost = ShippingCost, - ShippingPrice = ShippingCost * 1.5m, - SentDate = woDate, - ETADate = woDate.AddDays(7), - ReturnDate = woDate.AddDays(8), - TaxCodeId = 1 - }; - woItem.OutsideServices.Add(woItemOutsideService); - - ShippingCost = Fake.Random.Decimal(5, 20); - RepairCost = Fake.Random.Decimal(50, 1000); - woItemOutsideService = new WorkOrderItemOutsideService() - { - UnitId = GetRandomUnitForCustomer(o.CustomerId), - Notes = Fake.Lorem.Sentence(), - VendorSentToId = Fake.Random.Long(1, TotalSeededVendors), - VendorSentViaId = Fake.Random.Long(1, TotalSeededVendors), - RMANumber = "RMA" + Fake.Finance.Account(6), - TrackingNumber = "TR" + Fake.Finance.Account(8), - RepairCost = RepairCost, - RepairPrice = RepairCost * 1.5m, - ShippingCost = ShippingCost, - ShippingPrice = ShippingCost * 1.5m, - SentDate = woDate, - ETADate = woDate.AddDays(7), - ReturnDate = woDate.AddDays(8), - TaxCodeId = 1 - }; - woItem.OutsideServices.Add(woItemOutsideService); + var ShippingCost = Fake.Random.Decimal(5, 20); + var RepairCost = Fake.Random.Decimal(50, 1000); + var woItemOutsideService = new WorkOrderItemOutsideService() + { + UnitId = GetRandomUnitForCustomer(o.CustomerId), + Notes = Fake.Lorem.Sentence(), + VendorSentToId = Fake.Random.Long(1, TotalSeededVendors), + VendorSentViaId = Fake.Random.Long(1, TotalSeededVendors), + RMANumber = "RMA" + Fake.Finance.Account(6), + TrackingNumber = "TR" + Fake.Finance.Account(8), + RepairCost = RepairCost, + RepairPrice = RepairCost * 1.5m, + ShippingCost = ShippingCost, + ShippingPrice = ShippingCost * 1.5m, + SentDate = woDate, + ETADate = woDate.AddDays(7), + ReturnDate = woDate.AddDays(8), + TaxCodeId = 1 + }; + woItem.OutsideServices.Add(woItemOutsideService); + } + // ShippingCost = Fake.Random.Decimal(5, 20); + // RepairCost = Fake.Random.Decimal(50, 1000); + // woItemOutsideService = new WorkOrderItemOutsideService() + // { + // UnitId = GetRandomUnitForCustomer(o.CustomerId), + // Notes = Fake.Lorem.Sentence(), + // VendorSentToId = Fake.Random.Long(1, TotalSeededVendors), + // VendorSentViaId = Fake.Random.Long(1, TotalSeededVendors), + // RMANumber = "RMA" + Fake.Finance.Account(6), + // TrackingNumber = "TR" + Fake.Finance.Account(8), + // RepairCost = RepairCost, + // RepairPrice = RepairCost * 1.5m, + // ShippingCost = ShippingCost, + // ShippingPrice = ShippingCost * 1.5m, + // SentDate = woDate, + // ETADate = woDate.AddDays(7), + // ReturnDate = woDate.AddDays(8), + // TaxCodeId = 1 + // }; + // woItem.OutsideServices.Add(woItemOutsideService); o.Items.Add(woItem); } //sample status changes + if (Fake.Random.Int(1, 4) == 2)//25% chance { - var WoState = new WorkOrderState() { - WorkOrderStatusId = (long)SeedWOStatus.NeedsToBeAssigned, - UserId = RandomServiceTechUserId(), - Created = ((DateTime)o.ServiceDate).AddMinutes(5) - }; - o.States.Add(WoState); + var WoState = new WorkOrderState() + { + WorkOrderStatusId = (long)SeedWOStatus.NeedsToBeAssigned, + UserId = RandomServiceTechUserId(), + Created = ((DateTime)o.ServiceDate).AddMinutes(5) + }; + o.States.Add(WoState); + } } + if (Fake.Random.Int(1, 4) == 2)//25% chance { - var WoState = new WorkOrderState() { - WorkOrderStatusId = (long)SeedWOStatus.Scheduled, - UserId = RandomServiceTechUserId(), - Created = ((DateTime)o.ServiceDate).AddHours(1) - }; - o.States.Add(WoState); + var WoState = new WorkOrderState() + { + WorkOrderStatusId = (long)SeedWOStatus.Scheduled, + UserId = RandomServiceTechUserId(), + Created = ((DateTime)o.ServiceDate).AddHours(1) + }; + o.States.Add(WoState); + } } + if (Fake.Random.Int(1, 4) == 2)//25% chance { - var WoState = new WorkOrderState() { - WorkOrderStatusId = (long)SeedWOStatus.ManagerApprovalRequired, - UserId = RandomServiceTechUserId(), - Created = ((DateTime)o.ServiceDate).AddHours(1).AddMinutes(5) - }; - o.States.Add(WoState); + var WoState = new WorkOrderState() + { + WorkOrderStatusId = (long)SeedWOStatus.ManagerApprovalRequired, + UserId = RandomServiceTechUserId(), + Created = ((DateTime)o.ServiceDate).AddHours(1).AddMinutes(5) + }; + o.States.Add(WoState); + } } + if (Fake.Random.Int(1, 4) == 2)//25% chance { - var WoState = new WorkOrderState() { - WorkOrderStatusId = (long)SeedWOStatus.Scheduled, - UserId = RandomServiceTechUserId(), - Created = ((DateTime)o.ServiceDate).AddHours(2) - }; - o.States.Add(WoState); - o.LastStatusId = WoState.WorkOrderStatusId; + var WoState = new WorkOrderState() + { + WorkOrderStatusId = (long)SeedWOStatus.Scheduled, + UserId = RandomServiceTechUserId(), + Created = ((DateTime)o.ServiceDate).AddHours(2) + }; + o.States.Add(WoState); + o.LastStatusId = WoState.WorkOrderStatusId; + } } + //All wo ending status //if it's in the past tag it with a completed type status if (isPast) {