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 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
@@ -2980,6 +2979,8 @@ namespace AyaNova.Util
woItem.Parts.Add(woItemPart);
//PARTREQUESTS
if (Fake.Random.Bool())//50%
{
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
};
woItem.PartRequests.Add(woItemPartRequest);
woItemPartRequest = new WorkOrderItemPartRequest()
{
Quantity = 1,
PartId = Fake.Random.Long(1, TotalSeededParts),
PartWarehouseId = 1
};
woItem.PartRequests.Add(woItemPartRequest);
}
//LOANERS
if (Fake.Random.Bool())//50%
{
var woItemLoan = new WorkOrderItemLoan()
{
OutDate = woDate.AddHours(1),
@@ -3010,16 +3005,8 @@ namespace AyaNova.Util
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,7 +3021,8 @@ namespace AyaNova.Util
ServiceDetails = Fake.Lorem.Sentence()
};
woItem.Labors.Add(woItemLabor);
if (Fake.Random.Bool())//50%
{
woItemLabor = new WorkOrderItemLabor()
{
UserId = RandomServiceTechUserId(),
@@ -3045,10 +3033,12 @@ namespace AyaNova.Util
ServiceDetails = Fake.Lorem.Sentence()
};
woItem.Labors.Add(woItemLabor);
}
//TRAVEL
if (Fake.Random.Bool())//50%
{
var woItemTravel = new WorkOrderItemTravel()
{
UserId = techId,
@@ -3060,20 +3050,11 @@ namespace AyaNova.Util
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);
}
//TASKS
if (Fake.Random.Int(1, 4) == 2)//25% chance of task
{
var woItemTask = new WorkOrderItemTask()
{
CompletedByUserId = techId,
@@ -3124,11 +3105,13 @@ namespace AyaNova.Util
CompletedDate = woDate.AddHours(2)
};
woItem.Tasks.Add(woItemTask);
}
//EXPENSES
if (Fake.Random.Int(1, 4) == 2)//25% chance
{
var cost = Fake.Random.Decimal(1, 10);
var woItemExpense = new WorkOrderItemExpense()
{
@@ -3155,9 +3138,12 @@ namespace AyaNova.Util
};
woItem.Expenses.Add(woItemExpense);
}
//OUTSIDE SERVICES
if (Fake.Random.Int(1, 10) == 2)//10% chance
{
var ShippingCost = Fake.Random.Decimal(5, 20);
var RepairCost = Fake.Random.Decimal(50, 1000);
var woItemOutsideService = new WorkOrderItemOutsideService()
@@ -3178,32 +3164,34 @@ namespace AyaNova.Util
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);
}
// 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()
{
@@ -3213,7 +3201,10 @@ namespace AyaNova.Util
};
o.States.Add(WoState);
}
}
if (Fake.Random.Int(1, 4) == 2)//25% chance
{
{
var WoState = new WorkOrderState()
{
@@ -3223,7 +3214,10 @@ namespace AyaNova.Util
};
o.States.Add(WoState);
}
}
if (Fake.Random.Int(1, 4) == 2)//25% chance
{
{
var WoState = new WorkOrderState()
{
@@ -3233,6 +3227,9 @@ namespace AyaNova.Util
};
o.States.Add(WoState);
}
}
if (Fake.Random.Int(1, 4) == 2)//25% chance
{
{
var WoState = new WorkOrderState()
{
@@ -3244,7 +3241,9 @@ namespace AyaNova.Util
o.LastStatusId = WoState.WorkOrderStatusId;
}
}
//All wo ending status
//if it's in the past tag it with a completed type status
if (isPast)
{