This commit is contained in:
2021-02-25 18:39:23 +00:00
parent d13fea35fe
commit a1946398b2
7 changed files with 38 additions and 24 deletions

View File

@@ -554,6 +554,7 @@ namespace AyaNova.Biz
l.Add(new FormField { TKey = "PurchaseOrderItemWorkOrderNumber", FieldKey = "Items.WorkorderItemPartRequestId" }); l.Add(new FormField { TKey = "PurchaseOrderItemWorkOrderNumber", FieldKey = "Items.WorkorderItemPartRequestId" });
l.Add(new FormField { TKey = "TaxCode", FieldKey = "Items.PurchaseTaxCodeId" }); l.Add(new FormField { TKey = "TaxCode", FieldKey = "Items.PurchaseTaxCodeId" });
l.Add(new FormField { TKey = "PurchaseOrderItemVendorPartNumber", FieldKey = "Items.VendorPartNumber" }); l.Add(new FormField { TKey = "PurchaseOrderItemVendorPartNumber", FieldKey = "Items.VendorPartNumber" });
l.Add(new FormField { TKey = "PurchaseOrderItemSerialNumbers", FieldKey = "Items.Serials" });
l.Add(new FormField { TKey = "PurchaseOrderCustom1", FieldKey = "PurchaseOrderCustom1", IsCustomField = true }); l.Add(new FormField { TKey = "PurchaseOrderCustom1", FieldKey = "PurchaseOrderCustom1", IsCustomField = true });
l.Add(new FormField { TKey = "PurchaseOrderCustom2", FieldKey = "PurchaseOrderCustom2", IsCustomField = true }); l.Add(new FormField { TKey = "PurchaseOrderCustom2", FieldKey = "PurchaseOrderCustom2", IsCustomField = true });

View File

@@ -623,11 +623,18 @@ namespace AyaNova.Biz
await PartBiz.RemoveSerialsAsync(oldItem.PartId, oldItem.Serials, ct, UserId); await PartBiz.RemoveSerialsAsync(oldItem.PartId, oldItem.Serials, ct, UserId);
await PartBiz.AppendSerialsAsync(newItem.PartId, newItem.Serials, ct, UserId); await PartBiz.AppendSerialsAsync(newItem.PartId, newItem.Serials, ct, UserId);
} }
continue;//on to next continue;//on to next
} }
//### BEFORE ADDING MORE CHECKS HERE MAKE SURE LOGIC WORKS WITH ABOVE ### //SERIALS CHANGED
if (oldItem.Serials != newItem.Serials)
{
await PartBiz.RemoveSerialsAsync(oldItem.PartId, oldItem.Serials, ct, UserId);
await PartBiz.AppendSerialsAsync(newItem.PartId, newItem.Serials, ct, UserId);
}
//### BEFORE ADDING MORE CHECKS HERE MAKE SURE LOGIC WORKS WITH ABOVE (and add continue statement) ###
} }
}//modified block }//modified block

View File

@@ -750,6 +750,7 @@
"PurchaseOrderItemUISaveWarning": "Möchten Sie wirklich speichern? Sobald dieser Datensatz gespeichert ist, wird er gesperrt und kann nicht mehr bearbeitet werden.", "PurchaseOrderItemUISaveWarning": "Möchten Sie wirklich speichern? Sobald dieser Datensatz gespeichert ist, wird er gesperrt und kann nicht mehr bearbeitet werden.",
"PurchaseOrderItemWorkOrderNumber": "Arbeitsauftragsnummer", "PurchaseOrderItemWorkOrderNumber": "Arbeitsauftragsnummer",
"PurchaseOrderItemVendorPartNumber": "Lieferantennummer", "PurchaseOrderItemVendorPartNumber": "Lieferantennummer",
"PurchaseOrderItemSerialNumbers": "Seriennummer",
"PurchaseOrderReceiptItems": "Einkaufsauftragseingang - Posten", "PurchaseOrderReceiptItems": "Einkaufsauftragseingang - Posten",
"PurchaseOrderReceiptPartRequestNotFound": "Teileanforderung nicht gefunden", "PurchaseOrderReceiptPartRequestNotFound": "Teileanforderung nicht gefunden",
"PurchaseOrderReceiptReceivedDate": "Empfangen am", "PurchaseOrderReceiptReceivedDate": "Empfangen am",

View File

@@ -750,6 +750,7 @@
"PurchaseOrderItemUISaveWarning": "Are you sure you want to save?\r\nOnce this record is saved it will be locked and can no longer be edited.", "PurchaseOrderItemUISaveWarning": "Are you sure you want to save?\r\nOnce this record is saved it will be locked and can no longer be edited.",
"PurchaseOrderItemWorkOrderNumber": "WorkOrder #", "PurchaseOrderItemWorkOrderNumber": "WorkOrder #",
"PurchaseOrderItemVendorPartNumber": "Vendor number", "PurchaseOrderItemVendorPartNumber": "Vendor number",
"PurchaseOrderItemSerialNumbers": "Serial numbers",
"PurchaseOrderReceiptItems": "Purchase Order Receipt Items", "PurchaseOrderReceiptItems": "Purchase Order Receipt Items",
"PurchaseOrderReceiptPartRequestNotFound": "Part request not found", "PurchaseOrderReceiptPartRequestNotFound": "Part request not found",
"PurchaseOrderReceiptReceivedDate": "Received Date", "PurchaseOrderReceiptReceivedDate": "Received Date",

View File

@@ -749,6 +749,7 @@
"PurchaseOrderItemUISaveWarning": "¿Seguro que desea guardar? Una vez guardado, el registro quedará bloqueado y no podrá editarse.", "PurchaseOrderItemUISaveWarning": "¿Seguro que desea guardar? Una vez guardado, el registro quedará bloqueado y no podrá editarse.",
"PurchaseOrderItemWorkOrderNumber": "Núm. pedido", "PurchaseOrderItemWorkOrderNumber": "Núm. pedido",
"PurchaseOrderItemVendorPartNumber": "Proveedor Número", "PurchaseOrderItemVendorPartNumber": "Proveedor Número",
"PurchaseOrderItemSerialNumbers": "Números seriales",
"PurchaseOrderReceiptItems": "Elemento recibo orden de compra", "PurchaseOrderReceiptItems": "Elemento recibo orden de compra",
"PurchaseOrderReceiptPartRequestNotFound": "Solicitud de pieza no encontrada", "PurchaseOrderReceiptPartRequestNotFound": "Solicitud de pieza no encontrada",
"PurchaseOrderReceiptReceivedDate": "Recibido con fecha", "PurchaseOrderReceiptReceivedDate": "Recibido con fecha",

View File

@@ -750,6 +750,7 @@
"PurchaseOrderItemUISaveWarning": "Voulez-vous réellement sauvegarder ? Une fois l'enregistrement sauvegardé, il sera bloqué et ne pourra plus être modifié.", "PurchaseOrderItemUISaveWarning": "Voulez-vous réellement sauvegarder ? Une fois l'enregistrement sauvegardé, il sera bloqué et ne pourra plus être modifié.",
"PurchaseOrderItemWorkOrderNumber": "Bon de travail n°", "PurchaseOrderItemWorkOrderNumber": "Bon de travail n°",
"PurchaseOrderItemVendorPartNumber": "Fournisseur n°", "PurchaseOrderItemVendorPartNumber": "Fournisseur n°",
"PurchaseOrderItemSerialNumbers": "Numéros de série",
"PurchaseOrderReceiptItems": "Éléments de reçu de bon de commande", "PurchaseOrderReceiptItems": "Éléments de reçu de bon de commande",
"PurchaseOrderReceiptPartRequestNotFound": "Demande de pièce introuvable", "PurchaseOrderReceiptPartRequestNotFound": "Demande de pièce introuvable",
"PurchaseOrderReceiptReceivedDate": "Date de réception", "PurchaseOrderReceiptReceivedDate": "Date de réception",

View File

@@ -238,7 +238,7 @@ namespace AyaNova.Util
await SeedLoanLoanUnitAsync(log, 5); await SeedLoanLoanUnitAsync(log, 5);
await SeedCustomerServiceRequestAsync(log, 5); await SeedCustomerServiceRequestAsync(log, 5);
await SeedPartWarehouseAsync(log, 5); await SeedPartWarehouseAsync(log, 5);
await SeedPartAsync(log, 20); await SeedPartAsync(log, 20, 5);
await SeedPartAssemblyAsync(log, 5); await SeedPartAssemblyAsync(log, 5);
await SeedPurchaseOrderAsync(log, 20); await SeedPurchaseOrderAsync(log, 20);
@@ -292,7 +292,7 @@ namespace AyaNova.Util
await SeedLoanLoanUnitAsync(log, 10); await SeedLoanLoanUnitAsync(log, 10);
await SeedCustomerServiceRequestAsync(log, 10); await SeedCustomerServiceRequestAsync(log, 10);
await SeedPartWarehouseAsync(log, 10); await SeedPartWarehouseAsync(log, 10);
await SeedPartAsync(log, 100); await SeedPartAsync(log, 100, 10);
await SeedPartAssemblyAsync(log, 5); await SeedPartAssemblyAsync(log, 5);
await SeedPurchaseOrderAsync(log, 30); await SeedPurchaseOrderAsync(log, 30);
@@ -357,7 +357,7 @@ namespace AyaNova.Util
await SeedLoanLoanUnitAsync(log, 15); await SeedLoanLoanUnitAsync(log, 15);
await SeedCustomerServiceRequestAsync(log, 15); await SeedCustomerServiceRequestAsync(log, 15);
await SeedPartWarehouseAsync(log, 15); await SeedPartWarehouseAsync(log, 15);
await SeedPartAsync(log, 200); await SeedPartAsync(log, 200, 15);
await SeedPartAssemblyAsync(log, 5); await SeedPartAssemblyAsync(log, 5);
await SeedPurchaseOrderAsync(log, 50); await SeedPurchaseOrderAsync(log, 50);
@@ -422,7 +422,7 @@ namespace AyaNova.Util
await SeedLoanLoanUnitAsync(log, 20); await SeedLoanLoanUnitAsync(log, 20);
await SeedCustomerServiceRequestAsync(log, 20); await SeedCustomerServiceRequestAsync(log, 20);
await SeedPartWarehouseAsync(log, 20); await SeedPartWarehouseAsync(log, 20);
await SeedPartAsync(log, 500); await SeedPartAsync(log, 500, 20);
await SeedPartAssemblyAsync(log, 5); await SeedPartAssemblyAsync(log, 5);
await SeedPurchaseOrderAsync(log, 200); await SeedPurchaseOrderAsync(log, 200);
@@ -1574,7 +1574,7 @@ namespace AyaNova.Util
////////////////////////////////////////////////////// //////////////////////////////////////////////////////
//PART //PART
// //
public async Task SeedPartAsync(ILogger log, int count) public async Task SeedPartAsync(ILogger log, int count, int maxQuantity)
{ {
for (int x = 0; x < count; x++) for (int x = 0; x < count; x++)
{ {
@@ -1616,23 +1616,23 @@ namespace AyaNova.Util
throw new System.Exception(err); throw new System.Exception(err);
} }
int OpeningInventoryLevel = Fake.Random.Number(1, maxQuantity);
PartInventoryBiz PartInventoryBizNess = PartInventoryBiz.GetBiz(ct); PartInventoryBiz PartInventoryBizNess = PartInventoryBiz.GetBiz(ct);
int OpeningInventoryLevel = 1; // 25% chance it has serial numbers
// 50% chance it has serial numbers if (Fake.Random.Number(0, 4) == 1)
if (Fake.Random.Number() == 1)
{ {
var serialCount = Fake.Random.Number(1, 5); var serialStart = Fake.Finance.Account(5).ToString();
for (int y = 0; y < serialCount; y++)
for (int y = 0; y < OpeningInventoryLevel; y++)
{ {
await ct.PartSerial.AddAsync(new PartSerial() { PartId = NewObject.Id, Serial = Fake.Finance.Account().ToString() + y.ToString() }); await ct.PartSerial.AddAsync(new PartSerial() { PartId = NewObject.Id, Serial = serialStart + "-" + y.ToString() });
} }
await ct.SaveChangesAsync(); await ct.SaveChangesAsync();
//ensure add enough inventory to cover serials
OpeningInventoryLevel = serialCount;
} }
OpeningInventoryLevel += Fake.Random.Number(1, 1000);
PartInventory partInventory = null; PartInventory partInventory = null;
//Add inventory into multiple warehouses for testing //Add inventory into multiple warehouses for testing
@@ -1643,14 +1643,16 @@ namespace AyaNova.Util
//add opening inventory //add opening inventory
partInventory = await PartInventoryBizNess.CreateAsync(new dtPartInventory() { PartId = NewObject.Id, PartWarehouseId = WarehouseNumber, Quantity = OpeningInventoryLevel, Description = "New part opening inventory" }); partInventory = await PartInventoryBizNess.CreateAsync(new dtPartInventory() { PartId = NewObject.Id, PartWarehouseId = WarehouseNumber, Quantity = OpeningInventoryLevel, Description = "New part opening inventory" });
//Example adjustments?
if (Fake.Random.Number(1, 10) == 1) // 10% adjusted
{
//make two adjustments to have some testing data //make two adjustments to have some testing data
if (partInventory != null) if (partInventory != null)
partInventory = await PartInventoryBizNess.CreateAsync(new dtPartInventory() { PartId = NewObject.Id, PartWarehouseId = WarehouseNumber, Quantity = -1, Description = "example adjustment" }); partInventory = await PartInventoryBizNess.CreateAsync(new dtPartInventory() { PartId = NewObject.Id, PartWarehouseId = WarehouseNumber, Quantity = -1, Description = "example adjustment" });
if (partInventory != null) if (partInventory != null)
partInventory = await PartInventoryBizNess.CreateAsync(new dtPartInventory() { PartId = NewObject.Id, PartWarehouseId = WarehouseNumber, Quantity = Fake.Random.Number(1, 100), Description = "example adjustment" }); partInventory = await PartInventoryBizNess.CreateAsync(new dtPartInventory() { PartId = NewObject.Id, PartWarehouseId = WarehouseNumber, Quantity = Fake.Random.Number(1, 3), Description = "example adjustment" });
}
if (partInventory == null) if (partInventory == null)
{ {
var err = $"Seeder::SeedPart - error creating {o.PartNumber} INVENTORY \r\n{PartInventoryBizNess.GetErrorsAsString()}"; var err = $"Seeder::SeedPart - error creating {o.PartNumber} INVENTORY \r\n{PartInventoryBizNess.GetErrorsAsString()}";
@@ -1761,7 +1763,7 @@ namespace AyaNova.Util
partId = Fake.Random.Long(1, TotalSeededParts); partId = Fake.Random.Long(1, TotalSeededParts);
} while (partsAdded.Contains(partId)); } while (partsAdded.Contains(partId));
partsAdded.Add(partId); partsAdded.Add(partId);
var qty = Fake.Random.Int(1, 100); var qty = Fake.Random.Int(1, 5);
var cost = Fake.Random.Decimal(1, 25); var cost = Fake.Random.Decimal(1, 25);
// 50% chance it has received serial numbers // 50% chance it has received serial numbers