This commit is contained in:
2021-10-18 21:40:27 +00:00
parent 46e85bf928
commit 915f50a2ec

View File

@@ -445,7 +445,7 @@ namespace AyaNova.Util
await SeedPartAsync(log, 10000, 6000); await SeedPartAsync(log, 10000, 6000);
await SeedPartAssemblyAsync(log, 500); await SeedPartAssemblyAsync(log, 500);
await SeedPurchaseOrderAsync(log, 1000); 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 SeedPMAsync(log, 3);//DO NOT want too many of these as they affect performance
await SeedWorkOrderAsync(log, 3600, slevel); await SeedWorkOrderAsync(log, 3600, slevel);
@@ -2853,8 +2853,7 @@ namespace AyaNova.Util
} }
//SCHEDULED USERS //SCHEDULED USERS
//not realistic, just to fill schedule forms with a nice even distribution for (int a = 0; a < woItemCount; a++)//woItemCount works here
//four random techs plus a few others of known type
{ {
var randomStart = Fake.Random.Int(0, 5); var randomStart = Fake.Random.Int(0, 5);
var randomHours = Fake.Random.Int(1, 4); var randomHours = Fake.Random.Int(1, 4);
@@ -2870,94 +2869,94 @@ namespace AyaNova.Util
woItem.ScheduledUsers.Add(woItemScheduledUser); woItem.ScheduledUsers.Add(woItemScheduledUser);
} }
{ // {
var randomStart = Fake.Random.Int(0, 5); // var randomStart = Fake.Random.Int(0, 5);
var randomHours = Fake.Random.Int(1, 4); // var randomHours = Fake.Random.Int(1, 4);
var randomDays = Fake.Random.Int(0, 3); // var randomDays = Fake.Random.Int(0, 3);
var randomStop = randomStart + randomHours; // var randomStop = randomStart + randomHours;
var woItemScheduledUser = new WorkOrderItemScheduledUser() // var woItemScheduledUser = new WorkOrderItemScheduledUser()
{ // {
UserId = RandomServiceTechUserId(), // UserId = RandomServiceTechUserId(),
EstimatedQuantity = randomHours, // EstimatedQuantity = randomHours,
StartDate = woDate.AddHours(randomStart).AddDays(randomDays), // StartDate = woDate.AddHours(randomStart).AddDays(randomDays),
StopDate = woDate.AddHours(randomStop).AddDays(randomDays) // StopDate = woDate.AddHours(randomStop).AddDays(randomDays)
}; // };
woItem.ScheduledUsers.Add(woItemScheduledUser); // woItem.ScheduledUsers.Add(woItemScheduledUser);
} // }
{ // {
var randomStart = Fake.Random.Int(0, 5); // var randomStart = Fake.Random.Int(0, 5);
var randomHours = Fake.Random.Int(1, 4); // var randomHours = Fake.Random.Int(1, 4);
var randomDays = Fake.Random.Int(0, 3); // var randomDays = Fake.Random.Int(0, 3);
var randomStop = randomStart + randomHours; // var randomStop = randomStart + randomHours;
var woItemScheduledUser = new WorkOrderItemScheduledUser() // var woItemScheduledUser = new WorkOrderItemScheduledUser()
{ // {
UserId = RandomServiceTechUserId(), // UserId = RandomServiceTechUserId(),
EstimatedQuantity = randomHours, // EstimatedQuantity = randomHours,
StartDate = woDate.AddHours(randomStart).AddDays(randomDays), // StartDate = woDate.AddHours(randomStart).AddDays(randomDays),
StopDate = woDate.AddHours(randomStop).AddDays(randomDays) // StopDate = woDate.AddHours(randomStop).AddDays(randomDays)
}; // };
woItem.ScheduledUsers.Add(woItemScheduledUser); // woItem.ScheduledUsers.Add(woItemScheduledUser);
} // }
{ // {
var randomStart = Fake.Random.Int(0, 5); // var randomStart = Fake.Random.Int(0, 5);
var randomHours = Fake.Random.Int(1, 4); // var randomHours = Fake.Random.Int(1, 4);
var randomDays = Fake.Random.Int(0, 3); // var randomDays = Fake.Random.Int(0, 3);
var randomStop = randomStart + randomHours; // var randomStop = randomStart + randomHours;
var woItemScheduledUser = new WorkOrderItemScheduledUser() // var woItemScheduledUser = new WorkOrderItemScheduledUser()
{ // {
UserId = RandomServiceTechUserId(), // UserId = RandomServiceTechUserId(),
EstimatedQuantity = randomHours, // EstimatedQuantity = randomHours,
StartDate = woDate.AddHours(randomStart).AddDays(randomDays), // StartDate = woDate.AddHours(randomStart).AddDays(randomDays),
StopDate = woDate.AddHours(randomStop).AddDays(randomDays) // StopDate = woDate.AddHours(randomStop).AddDays(randomDays)
}; // };
woItem.ScheduledUsers.Add(woItemScheduledUser); // woItem.ScheduledUsers.Add(woItemScheduledUser);
} // }
if (y == 1) // if (y == 1)
{ // {
//known tech and subcontractor on every item // //known tech and subcontractor on every item
var woItemScheduledUser = new WorkOrderItemScheduledUser() // var woItemScheduledUser = new WorkOrderItemScheduledUser()
{ // {
UserId = KnownUserTechId, // UserId = KnownUserTechId,
EstimatedQuantity = 2, // EstimatedQuantity = 2,
StartDate = woDate, // StartDate = woDate,
StopDate = woDate.AddHours(2) // StopDate = woDate.AddHours(2)
}; // };
woItem.ScheduledUsers.Add(woItemScheduledUser); // woItem.ScheduledUsers.Add(woItemScheduledUser);
woItemScheduledUser = new WorkOrderItemScheduledUser() // woItemScheduledUser = new WorkOrderItemScheduledUser()
{ // {
UserId = KnownUserSubContractorId, // UserId = KnownUserSubContractorId,
EstimatedQuantity = 2, // EstimatedQuantity = 2,
StartDate = woDate, // StartDate = woDate,
StopDate = woDate.AddHours(2) // StopDate = woDate.AddHours(2)
}; // };
woItem.ScheduledUsers.Add(woItemScheduledUser); // woItem.ScheduledUsers.Add(woItemScheduledUser);
} // }
if (y == 3) // if (y == 3)
{ // {
//known restricted tech and subcontractor on some items // //known restricted tech and subcontractor on some items
var woItemScheduledUser = new WorkOrderItemScheduledUser() // var woItemScheduledUser = new WorkOrderItemScheduledUser()
{ // {
UserId = KnownUserTechRestrictedId, // UserId = KnownUserTechRestrictedId,
EstimatedQuantity = 2, // EstimatedQuantity = 2,
StartDate = woDate, // StartDate = woDate,
StopDate = woDate.AddHours(2) // StopDate = woDate.AddHours(2)
}; // };
woItem.ScheduledUsers.Add(woItemScheduledUser); // woItem.ScheduledUsers.Add(woItemScheduledUser);
woItemScheduledUser = new WorkOrderItemScheduledUser() // woItemScheduledUser = new WorkOrderItemScheduledUser()
{ // {
UserId = KnownUserSubContractorRestrictedId, // UserId = KnownUserSubContractorRestrictedId,
EstimatedQuantity = 2, // EstimatedQuantity = 2,
StartDate = woDate, // StartDate = woDate,
StopDate = woDate.AddHours(2) // StopDate = woDate.AddHours(2)
}; // };
woItem.ScheduledUsers.Add(woItemScheduledUser); // woItem.ScheduledUsers.Add(woItemScheduledUser);
} // }
///////////////////////////////////////// /////////////////////////////////////////
//PARTS //PARTS
@@ -2980,6 +2979,8 @@ namespace AyaNova.Util
woItem.Parts.Add(woItemPart); woItem.Parts.Add(woItemPart);
//PARTREQUESTS //PARTREQUESTS
if (Fake.Random.Bool())//50%
{
var woItemPartRequest = new WorkOrderItemPartRequest() var woItemPartRequest = new WorkOrderItemPartRequest()
{ {
@@ -2989,18 +2990,12 @@ namespace AyaNova.Util
PurchaseOrderItemId = Fake.Random.Long(1, TotalSeededPurchaseOrders)//yes it's POITEM vs po but each po has at least one item so this will work 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); woItem.PartRequests.Add(woItemPartRequest);
}
woItemPartRequest = new WorkOrderItemPartRequest()
{
Quantity = 1,
PartId = Fake.Random.Long(1, TotalSeededParts),
PartWarehouseId = 1
};
woItem.PartRequests.Add(woItemPartRequest);
//LOANERS //LOANERS
if (Fake.Random.Bool())//50%
{
var woItemLoan = new WorkOrderItemLoan() var woItemLoan = new WorkOrderItemLoan()
{ {
OutDate = woDate.AddHours(1), OutDate = woDate.AddHours(1),
@@ -3010,16 +3005,8 @@ namespace AyaNova.Util
LoanUnitId = Fake.Random.Long(1, TotalSeededLoanUnits) LoanUnitId = Fake.Random.Long(1, TotalSeededLoanUnits)
}; };
woItem.Loans.Add(woItemLoan); 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 //LABOR
@@ -3034,7 +3021,8 @@ namespace AyaNova.Util
ServiceDetails = Fake.Lorem.Sentence() ServiceDetails = Fake.Lorem.Sentence()
}; };
woItem.Labors.Add(woItemLabor); woItem.Labors.Add(woItemLabor);
if (Fake.Random.Bool())//50%
{
woItemLabor = new WorkOrderItemLabor() woItemLabor = new WorkOrderItemLabor()
{ {
UserId = RandomServiceTechUserId(), UserId = RandomServiceTechUserId(),
@@ -3045,10 +3033,12 @@ namespace AyaNova.Util
ServiceDetails = Fake.Lorem.Sentence() ServiceDetails = Fake.Lorem.Sentence()
}; };
woItem.Labors.Add(woItemLabor); woItem.Labors.Add(woItemLabor);
}
//TRAVEL //TRAVEL
if (Fake.Random.Bool())//50%
{
var woItemTravel = new WorkOrderItemTravel() var woItemTravel = new WorkOrderItemTravel()
{ {
UserId = techId, UserId = techId,
@@ -3060,20 +3050,11 @@ namespace AyaNova.Util
Distance = Fake.Random.Int(1, 20) Distance = Fake.Random.Int(1, 20)
}; };
woItem.Travels.Add(woItemTravel); 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);
//TASKS //TASKS
if (Fake.Random.Int(1, 4) == 2)//25% chance of task
{
var woItemTask = new WorkOrderItemTask() var woItemTask = new WorkOrderItemTask()
{ {
CompletedByUserId = techId, CompletedByUserId = techId,
@@ -3124,11 +3105,13 @@ namespace AyaNova.Util
CompletedDate = woDate.AddHours(2) CompletedDate = woDate.AddHours(2)
}; };
woItem.Tasks.Add(woItemTask); woItem.Tasks.Add(woItemTask);
}
//EXPENSES //EXPENSES
if (Fake.Random.Int(1, 4) == 2)//25% chance
{
var cost = Fake.Random.Decimal(1, 10); var cost = Fake.Random.Decimal(1, 10);
var woItemExpense = new WorkOrderItemExpense() var woItemExpense = new WorkOrderItemExpense()
{ {
@@ -3155,9 +3138,12 @@ namespace AyaNova.Util
}; };
woItem.Expenses.Add(woItemExpense); woItem.Expenses.Add(woItemExpense);
}
//OUTSIDE SERVICES //OUTSIDE SERVICES
if (Fake.Random.Int(1, 10) == 2)//10% chance
{
var ShippingCost = Fake.Random.Decimal(5, 20); var ShippingCost = Fake.Random.Decimal(5, 20);
var RepairCost = Fake.Random.Decimal(50, 1000); var RepairCost = Fake.Random.Decimal(50, 1000);
var woItemOutsideService = new WorkOrderItemOutsideService() var woItemOutsideService = new WorkOrderItemOutsideService()
@@ -3178,32 +3164,34 @@ namespace AyaNova.Util
TaxCodeId = 1 TaxCodeId = 1
}; };
woItem.OutsideServices.Add(woItemOutsideService); woItem.OutsideServices.Add(woItemOutsideService);
}
ShippingCost = Fake.Random.Decimal(5, 20); // ShippingCost = Fake.Random.Decimal(5, 20);
RepairCost = Fake.Random.Decimal(50, 1000); // RepairCost = Fake.Random.Decimal(50, 1000);
woItemOutsideService = new WorkOrderItemOutsideService() // woItemOutsideService = new WorkOrderItemOutsideService()
{ // {
UnitId = GetRandomUnitForCustomer(o.CustomerId), // UnitId = GetRandomUnitForCustomer(o.CustomerId),
Notes = Fake.Lorem.Sentence(), // Notes = Fake.Lorem.Sentence(),
VendorSentToId = Fake.Random.Long(1, TotalSeededVendors), // VendorSentToId = Fake.Random.Long(1, TotalSeededVendors),
VendorSentViaId = Fake.Random.Long(1, TotalSeededVendors), // VendorSentViaId = Fake.Random.Long(1, TotalSeededVendors),
RMANumber = "RMA" + Fake.Finance.Account(6), // RMANumber = "RMA" + Fake.Finance.Account(6),
TrackingNumber = "TR" + Fake.Finance.Account(8), // TrackingNumber = "TR" + Fake.Finance.Account(8),
RepairCost = RepairCost, // RepairCost = RepairCost,
RepairPrice = RepairCost * 1.5m, // RepairPrice = RepairCost * 1.5m,
ShippingCost = ShippingCost, // ShippingCost = ShippingCost,
ShippingPrice = ShippingCost * 1.5m, // ShippingPrice = ShippingCost * 1.5m,
SentDate = woDate, // SentDate = woDate,
ETADate = woDate.AddDays(7), // ETADate = woDate.AddDays(7),
ReturnDate = woDate.AddDays(8), // ReturnDate = woDate.AddDays(8),
TaxCodeId = 1 // TaxCodeId = 1
}; // };
woItem.OutsideServices.Add(woItemOutsideService); // woItem.OutsideServices.Add(woItemOutsideService);
o.Items.Add(woItem); o.Items.Add(woItem);
} }
//sample status changes //sample status changes
if (Fake.Random.Int(1, 4) == 2)//25% chance
{
{ {
var WoState = new WorkOrderState() var WoState = new WorkOrderState()
{ {
@@ -3213,7 +3201,10 @@ namespace AyaNova.Util
}; };
o.States.Add(WoState); o.States.Add(WoState);
} }
}
if (Fake.Random.Int(1, 4) == 2)//25% chance
{
{ {
var WoState = new WorkOrderState() var WoState = new WorkOrderState()
{ {
@@ -3223,7 +3214,10 @@ namespace AyaNova.Util
}; };
o.States.Add(WoState); o.States.Add(WoState);
} }
}
if (Fake.Random.Int(1, 4) == 2)//25% chance
{
{ {
var WoState = new WorkOrderState() var WoState = new WorkOrderState()
{ {
@@ -3233,6 +3227,9 @@ namespace AyaNova.Util
}; };
o.States.Add(WoState); o.States.Add(WoState);
} }
}
if (Fake.Random.Int(1, 4) == 2)//25% chance
{
{ {
var WoState = new WorkOrderState() var WoState = new WorkOrderState()
{ {
@@ -3244,7 +3241,9 @@ namespace AyaNova.Util
o.LastStatusId = WoState.WorkOrderStatusId; o.LastStatusId = WoState.WorkOrderStatusId;
} }
}
//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 (isPast)
{ {