This commit is contained in:
@@ -512,6 +512,23 @@ namespace AyaNova.Biz
|
|||||||
{
|
{
|
||||||
AddError(ApiErrorCode.API_SERVER_ERROR, "generalerror", $"Error updating inventory ({i.Description}):{pib.GetErrorsAsString()}");
|
AddError(ApiErrorCode.API_SERVER_ERROR, "generalerror", $"Error updating inventory ({i.Description}):{pib.GetErrorsAsString()}");
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!string.IsNullOrWhiteSpace(newItem.Serials))
|
||||||
|
{
|
||||||
|
//javascript version at UI for partserials entry
|
||||||
|
//let splitted = this.newSerial.split(/[\s,]+/).filter(Boolean); //filter Boolean is equivalent to array.filter(item => Boolean(item)) and it's to filter out nulls concisely from badly formatted strings
|
||||||
|
// splitted = [...splitted, ...this.obj];
|
||||||
|
// let uniqueItems = [...new Set(splitted)];
|
||||||
|
// uniqueItems.sort();
|
||||||
|
|
||||||
|
//c# version to replicate above
|
||||||
|
var serials = System.Text.RegularExpressions.Regex.Split(newItem.Serials, "[\\s,]+", System.Text.RegularExpressions.RegexOptions.IgnoreCase,
|
||||||
|
TimeSpan.FromMilliseconds(2000)).Select(x => x.Trim()).Where(x => !string.IsNullOrWhiteSpace(x)).Distinct().OrderBy(x => x).ToArray();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ namespace AyaNova.Models
|
|||||||
public long? WorkorderItemPartRequestId { get; set; }
|
public long? WorkorderItemPartRequestId { get; set; }
|
||||||
public long? PurchaseTaxCodeId { get; set; }
|
public long? PurchaseTaxCodeId { get; set; }
|
||||||
public string VendorPartNumber { get; set; }
|
public string VendorPartNumber { get; set; }
|
||||||
|
public string Serials { get; set; }
|
||||||
|
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public PurchaseOrder PurchaseOrder { get; set; }
|
public PurchaseOrder PurchaseOrder { get; set; }
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ namespace AyaNova.Util
|
|||||||
//!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!!
|
//!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!!
|
||||||
private const int DESIRED_SCHEMA_LEVEL = 15;
|
private const int DESIRED_SCHEMA_LEVEL = 15;
|
||||||
|
|
||||||
internal const long EXPECTED_COLUMN_COUNT = 735;
|
internal const long EXPECTED_COLUMN_COUNT = 736;
|
||||||
internal const long EXPECTED_INDEX_COUNT = 125;
|
internal const long EXPECTED_INDEX_COUNT = 125;
|
||||||
internal const long EXPECTED_CHECK_CONSTRAINTS = 328;
|
internal const long EXPECTED_CHECK_CONSTRAINTS = 328;
|
||||||
internal const long EXPECTED_FOREIGN_KEY_CONSTRAINTS = 70;
|
internal const long EXPECTED_FOREIGN_KEY_CONSTRAINTS = 70;
|
||||||
@@ -744,7 +744,7 @@ $BODY$ LANGUAGE PLPGSQL STABLE");
|
|||||||
await ExecQueryAsync("CREATE TABLE apurchaseorderitem (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, purchaseorderid BIGINT NOT NULL REFERENCES apurchaseorder ON DELETE CASCADE, " +
|
await ExecQueryAsync("CREATE TABLE apurchaseorderitem (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, purchaseorderid BIGINT NOT NULL REFERENCES apurchaseorder ON DELETE CASCADE, " +
|
||||||
"partid BIGINT NOT NULL REFERENCES apart, partwarehouseid BIGINT NOT NULL REFERENCES apartwarehouse, quantityordered DECIMAL(19,4) NOT NULL default 0, " +
|
"partid BIGINT NOT NULL REFERENCES apart, partwarehouseid BIGINT NOT NULL REFERENCES apartwarehouse, quantityordered DECIMAL(19,4) NOT NULL default 0, " +
|
||||||
"quantityreceived DECIMAL(19,4) NOT NULL default 0, purchaseordercost DECIMAL(19,4) NOT NULL default 0, receivedcost DECIMAL(19,4) NOT NULL default 0, " +
|
"quantityreceived DECIMAL(19,4) NOT NULL default 0, purchaseordercost DECIMAL(19,4) NOT NULL default 0, receivedcost DECIMAL(19,4) NOT NULL default 0, " +
|
||||||
"receiveddate TIMESTAMP, partrequestedbyid BIGINT REFERENCES auser, purchasetaxcodeid BIGINT REFERENCES ataxcode, vendorpartnumber TEXT " +
|
"receiveddate TIMESTAMP, partrequestedbyid BIGINT REFERENCES auser, purchasetaxcodeid BIGINT REFERENCES ataxcode, vendorpartnumber TEXT, serials TEXT " +
|
||||||
")");
|
")");
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1742,6 +1742,9 @@ namespace AyaNova.Util
|
|||||||
List<long> partsAdded = new List<long>();
|
List<long> partsAdded = new List<long>();
|
||||||
int partCount = Fake.Random.Int(1, 5);
|
int partCount = Fake.Random.Int(1, 5);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//simulate some items without tax codes
|
//simulate some items without tax codes
|
||||||
bool addTaxCode = (Fake.Random.Number(1, 4) != 3);
|
bool addTaxCode = (Fake.Random.Number(1, 4) != 3);
|
||||||
|
|
||||||
@@ -1761,6 +1764,19 @@ namespace AyaNova.Util
|
|||||||
var qty = Fake.Random.Int(1, 100);
|
var qty = Fake.Random.Int(1, 100);
|
||||||
var cost = Fake.Random.Decimal(1, 25);
|
var cost = Fake.Random.Decimal(1, 25);
|
||||||
|
|
||||||
|
// 50% chance it has received serial numbers
|
||||||
|
string serials = string.Empty;
|
||||||
|
if (isReceived && Fake.Random.Number() == 1)
|
||||||
|
{
|
||||||
|
var serialStart = Fake.Finance.Account().ToString();
|
||||||
|
for (int si = 0; si < qty; si++)
|
||||||
|
{
|
||||||
|
serials += serialStart + si.ToString() + ", ";
|
||||||
|
|
||||||
|
}
|
||||||
|
serials = serials.TrimEnd().TrimEnd(',');
|
||||||
|
}
|
||||||
|
|
||||||
o.Items.Add(new PurchaseOrderItem()
|
o.Items.Add(new PurchaseOrderItem()
|
||||||
{
|
{
|
||||||
PartId = partId,
|
PartId = partId,
|
||||||
@@ -1770,7 +1786,8 @@ namespace AyaNova.Util
|
|||||||
PurchaseOrderCost = cost,
|
PurchaseOrderCost = cost,
|
||||||
ReceivedCost = isReceived ? cost : 0,
|
ReceivedCost = isReceived ? cost : 0,
|
||||||
ReceivedDate = isReceived ? o.ExpectedReceiveDate : null,
|
ReceivedDate = isReceived ? o.ExpectedReceiveDate : null,
|
||||||
PurchaseTaxCodeId = addTaxCode ? 3 : null//sales and goods
|
PurchaseTaxCodeId = addTaxCode ? 3 : null,//sales and goods
|
||||||
|
Serials = serials
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user