This commit is contained in:
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
@@ -53,7 +53,7 @@
|
|||||||
"AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles",
|
"AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles",
|
||||||
"AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles",
|
"AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles",
|
||||||
"AYANOVA_FOLDER_TEMPORARY_SERVER_FILES": "c:\\temp\\RavenTestData\\tempfiles",
|
"AYANOVA_FOLDER_TEMPORARY_SERVER_FILES": "c:\\temp\\RavenTestData\\tempfiles",
|
||||||
"AYANOVA_SERVER_TEST_MODE": "true",
|
"AYANOVA_SERVER_TEST_MODE": "false",
|
||||||
"AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small",
|
"AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small",
|
||||||
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-7",
|
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-7",
|
||||||
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_13\\bin\\"
|
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_13\\bin\\"
|
||||||
|
|||||||
@@ -4917,13 +4917,64 @@ namespace AyaNova.Biz
|
|||||||
|
|
||||||
foreach (PMItemPart pmp in pmi.Parts)
|
foreach (PMItemPart pmp in pmi.Parts)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
//Check inventory, if insufficient, create part request for balance and make a part record for the available amount even if it's zero as a placeholder
|
||||||
|
//Exception to this: if this part/warehouse combo was already requested anywhere on this work order then we know it's already out of stock so just add it all
|
||||||
|
//as a part request
|
||||||
|
|
||||||
|
//Already requested part/warehouse combo? (means already out of stock effectively)
|
||||||
|
bool AlreadyRequestedOnThisWorkOrder = false;
|
||||||
|
|
||||||
|
foreach (var inventCheckItem in wo.Items)
|
||||||
|
{
|
||||||
|
foreach (var inventRequest in inventCheckItem.PartRequests)
|
||||||
|
{
|
||||||
|
if (inventRequest.PartId == pmp.PartId && inventRequest.PartWarehouseId == pmp.PartWarehouseId)
|
||||||
|
{
|
||||||
|
AlreadyRequestedOnThisWorkOrder = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (AlreadyRequestedOnThisWorkOrder) break;
|
||||||
|
}
|
||||||
|
|
||||||
|
decimal wipQuantity = pmp.Quantity;
|
||||||
|
decimal requestQuantity = 0;
|
||||||
|
|
||||||
|
if (AlreadyRequestedOnThisWorkOrder)
|
||||||
|
{
|
||||||
|
wipQuantity = 0;
|
||||||
|
requestQuantity = pmp.Quantity;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//not already requested, so check inventory, this is new
|
||||||
|
var CurrentInventory = await ct.PartInventory.AsNoTracking().OrderByDescending(m => m.EntryDate).FirstOrDefaultAsync(m => m.PartId == pmp.PartId && m.PartWarehouseId == pmp.PartWarehouseId);
|
||||||
|
if (CurrentInventory.Balance < pmp.Quantity)
|
||||||
|
{
|
||||||
|
//we will need a part request here and also need to reserve what there is available
|
||||||
|
wipQuantity = (decimal)CurrentInventory.Balance;
|
||||||
|
requestQuantity = pmp.Quantity - wipQuantity;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Add request if necessary
|
||||||
|
if (requestQuantity != 0)
|
||||||
|
{
|
||||||
|
var wipr = new WorkOrderItemPartRequest();
|
||||||
|
wipr.PartId = pmp.PartId;
|
||||||
|
wipr.PartWarehouseId = pmp.PartWarehouseId;
|
||||||
|
wipr.Quantity = requestQuantity;
|
||||||
|
woi.PartRequests.Add(wipr);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Add part
|
||||||
var wip = new WorkOrderItemPart();
|
var wip = new WorkOrderItemPart();
|
||||||
wip.Description = pmp.Description;
|
wip.Description = pmp.Description;
|
||||||
wip.PartId = pmp.PartId;
|
wip.PartId = pmp.PartId;
|
||||||
wip.PartWarehouseId = pmp.PartWarehouseId;
|
wip.PartWarehouseId = pmp.PartWarehouseId;
|
||||||
wip.PriceOverride = pmp.PriceOverride;
|
wip.PriceOverride = pmp.PriceOverride;
|
||||||
wip.Quantity = pmp.Quantity;
|
wip.Quantity = wipQuantity;
|
||||||
//wip.Serials=pmp.Serials;
|
|
||||||
wip.Tags = pmp.Tags;
|
wip.Tags = pmp.Tags;
|
||||||
wip.TaxPartSaleId = pmp.TaxPartSaleId;
|
wip.TaxPartSaleId = pmp.TaxPartSaleId;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user