From 6a38a2e72fc0a8eee3c0011f1859b3e7b575cfac Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Sat, 16 Jan 2021 15:37:47 +0000 Subject: [PATCH] --- server/AyaNova/biz/AyaFormFieldDefinitions.cs | 26 +++++++++++++++---- server/AyaNova/biz/PartBiz.cs | 16 +++++++++++- server/AyaNova/models/Part.cs | 1 - server/AyaNova/resource/de.json | 1 + server/AyaNova/resource/en.json | 1 + server/AyaNova/resource/es.json | 1 + server/AyaNova/resource/fr.json | 1 + server/AyaNova/util/AySchema.cs | 4 +-- 8 files changed, 42 insertions(+), 9 deletions(-) diff --git a/server/AyaNova/biz/AyaFormFieldDefinitions.cs b/server/AyaNova/biz/AyaFormFieldDefinitions.cs index b9846330..54a7b102 100644 --- a/server/AyaNova/biz/AyaFormFieldDefinitions.cs +++ b/server/AyaNova/biz/AyaFormFieldDefinitions.cs @@ -320,11 +320,11 @@ namespace AyaNova.Biz l.Add(new AyaFormFieldDefinition { TKey = "Tags", FieldKey = "Tags" }); l.Add(new AyaFormFieldDefinition { TKey = "Wiki", FieldKey = "Wiki" }); l.Add(new AyaFormFieldDefinition { TKey = "Attachments", FieldKey = "Attachments" }); - + l.Add(new AyaFormFieldDefinition { TKey = "LoanUnitSerial", FieldKey = "LoanUnitSerial" }); //Not a user editable field on form so no need to add it here //l.Add(new AyaFormFieldDefinition { TKey = "LoanUnitCurrentWorkOrderItemLoan", FieldKey = "LoanUnitCurrentWorkOrderItemLoan" }); - + //Note, rates are required but I'm allowing them to be hidden and will ensure client properly sets even if not visible, this is because many shops probably don't need all rates l.Add(new AyaFormFieldDefinition { TKey = "LoanUnitRateDay", FieldKey = "LoanUnitRateDay" }); l.Add(new AyaFormFieldDefinition { TKey = "LoanUnitRateHalfDay", FieldKey = "LoanUnitRateHalfDay" }); @@ -456,13 +456,29 @@ namespace AyaNova.Biz #region Part { List l = new List(); - l.Add(new AyaFormFieldDefinition { TKey = "Name", FieldKey = "Name", Hideable = false }); + l.Add(new AyaFormFieldDefinition { TKey = "PartName", FieldKey = "PartName" }); l.Add(new AyaFormFieldDefinition { TKey = "PartNotes", FieldKey = "Notes" }); l.Add(new AyaFormFieldDefinition { TKey = "Active", FieldKey = "Active", Hideable = false }); l.Add(new AyaFormFieldDefinition { TKey = "Tags", FieldKey = "Tags" }); l.Add(new AyaFormFieldDefinition { TKey = "Wiki", FieldKey = "Wiki" }); l.Add(new AyaFormFieldDefinition { TKey = "Attachments", FieldKey = "Attachments" }); + l.Add(new AyaFormFieldDefinition { TKey = "PartPartNumber", FieldKey = "PartPartNumber", Hideable = false }); + l.Add(new AyaFormFieldDefinition { TKey = "PartCost", FieldKey = "PartCost", Hideable = false }); + l.Add(new AyaFormFieldDefinition { TKey = "PartRetail", FieldKey = "PartRetail", Hideable = false }); + l.Add(new AyaFormFieldDefinition { TKey = "PartTrackSerialNumber", FieldKey = "PartTrackSerialNumber", Hideable = false }); + + l.Add(new AyaFormFieldDefinition { TKey = "PartManufacturerID", FieldKey = "PartManufacturerID" }); + l.Add(new AyaFormFieldDefinition { TKey = "PartManufacturerNumber", FieldKey = "PartManufacturerNumber" }); + l.Add(new AyaFormFieldDefinition { TKey = "PartWholesalerID", FieldKey = "PartWholesalerID" }); + l.Add(new AyaFormFieldDefinition { TKey = "PartWholesalerNumber", FieldKey = "PartWholesalerNumber" }); + l.Add(new AyaFormFieldDefinition { TKey = "PartAlternativeWholesalerID", FieldKey = "PartAlternativeWholesalerID" }); + l.Add(new AyaFormFieldDefinition { TKey = "PartAlternativeWholesalerNumber", FieldKey = "PartAlternativeWholesalerNumber" }); + l.Add(new AyaFormFieldDefinition { TKey = "UnitOfMeasure", FieldKey = "UnitOfMeasure" }); + l.Add(new AyaFormFieldDefinition { TKey = "PartUPC", FieldKey = "PartUPC" }); + + + l.Add(new AyaFormFieldDefinition { TKey = "PartCustom1", FieldKey = "PartCustom1", IsCustomField = true }); l.Add(new AyaFormFieldDefinition { TKey = "PartCustom2", FieldKey = "PartCustom2", IsCustomField = true }); l.Add(new AyaFormFieldDefinition { TKey = "PartCustom3", FieldKey = "PartCustom3", IsCustomField = true }); @@ -484,7 +500,7 @@ namespace AyaNova.Biz } #endregion - #region PartAssembly + #region PartAssembly { List l = new List(); @@ -939,7 +955,7 @@ namespace AyaNova.Biz l.Add(new AyaFormFieldDefinition { TKey = "CustomerServiceRequestRequestedBy", FieldKey = "CustomerServiceRequestRequestedBy" }); l.Add(new AyaFormFieldDefinition { TKey = "CustomerServiceRequestCustomerReferenceNumber", FieldKey = "CustomerServiceRequestCustomerReferenceNumber" }); l.Add(new AyaFormFieldDefinition { TKey = "CustomerServiceRequestStatus", FieldKey = "CustomerServiceRequestStatus" }); - l.Add(new AyaFormFieldDefinition { TKey = "CustomerServiceRequestPriority", FieldKey = "CustomerServiceRequestPriority" }); + l.Add(new AyaFormFieldDefinition { TKey = "CustomerServiceRequestPriority", FieldKey = "CustomerServiceRequestPriority" }); l.Add(new AyaFormFieldDefinition { TKey = "CustomerServiceRequestCustom1", FieldKey = "CustomerServiceRequestCustom1", IsCustomField = true }); diff --git a/server/AyaNova/biz/PartBiz.cs b/server/AyaNova/biz/PartBiz.cs index 1eee398f..0af7d0b8 100644 --- a/server/AyaNova/biz/PartBiz.cs +++ b/server/AyaNova/biz/PartBiz.cs @@ -208,7 +208,6 @@ namespace AyaNova.Biz searchParams.AddText(obj.Notes) .AddText(obj.Name) .AddText(obj.PartNumber) - .AddText(obj.PopUpNotes) .AddText(obj.ManufacturerNumber) .AddText(obj.WholeSalerNumber) .AddText(obj.AlternativeWholeSalerNumber) @@ -248,6 +247,21 @@ namespace AyaNova.Biz } } + //MIGRATE_OUTSTANDING awaiting inventory / biz rule to ensure serialized part can't be unserialized if there is any inventory + /* + BrokenRules.Assert("TrackSerialNumberRequired", + "Part.Error.MustTrackSerial", + "TrackSerialNumber", + !this.IsNew && value==false && PartHasSerialNumbers.GetItem(this.mID)); + + //case 1011 + BrokenRules.Assert("TrackSerialHasInventory", + "Part.Error.TrackSerialHasInventory", + "TrackSerialNumber", + !this.IsNew && value == true && PartInventoryValuesFetcher.GetItem(mID).QuantityOnHand>0); + + */ + //Any form customizations to validate? var FormCustomization = await ct.FormCustom.AsNoTracking().SingleOrDefaultAsync(x => x.FormKey == AyaType.Part.ToString()); diff --git a/server/AyaNova/models/Part.cs b/server/AyaNova/models/Part.cs index 939bd017..bb07aefa 100644 --- a/server/AyaNova/models/Part.cs +++ b/server/AyaNova/models/Part.cs @@ -25,7 +25,6 @@ namespace AyaNova.Models [Required] public string PartNumber { get; set; } - public string PopUpNotes { get; set; } public long? ManufacturerId { get; set; } public string ManufacturerNumber { get; set; } public long? WholeSalerId { get; set; } diff --git a/server/AyaNova/resource/de.json b/server/AyaNova/resource/de.json index 8a16b425..db796708 100644 --- a/server/AyaNova/resource/de.json +++ b/server/AyaNova/resource/de.json @@ -590,6 +590,7 @@ "PartNotes": "Anmerkungen", "PartPartNumber": "Teilenummer", "PartRetail": "Einzelhandel", + "PartCost":"Kosten", "PartTrackSerialNumber": "Seriennummer verfolgen", "PartUPC": "EAN", "PartWholesalerID": "Großhändler", diff --git a/server/AyaNova/resource/en.json b/server/AyaNova/resource/en.json index 21cb1cab..ea3214a0 100644 --- a/server/AyaNova/resource/en.json +++ b/server/AyaNova/resource/en.json @@ -590,6 +590,7 @@ "PartNotes": "Notes", "PartPartNumber": "Part Number", "PartRetail": "Retail", + "PartCost":"Cost", "PartTrackSerialNumber": "Track Serial Number", "PartUPC": "UPC", "PartWholesalerID": "Wholesaler", diff --git a/server/AyaNova/resource/es.json b/server/AyaNova/resource/es.json index a0ec968f..37a46d09 100644 --- a/server/AyaNova/resource/es.json +++ b/server/AyaNova/resource/es.json @@ -589,6 +589,7 @@ "PartNotes": "Notas", "PartPartNumber": "Número de pieza", "PartRetail": "Minorista", + "PartCost":"Coste", "PartTrackSerialNumber": "Seguimiento número de serie", "PartUPC": "UPC", "PartWholesalerID": "Mayorista", diff --git a/server/AyaNova/resource/fr.json b/server/AyaNova/resource/fr.json index dfccdb3c..38e7099a 100644 --- a/server/AyaNova/resource/fr.json +++ b/server/AyaNova/resource/fr.json @@ -590,6 +590,7 @@ "PartNotes": "Remarques", "PartPartNumber": "Numéro de pièce", "PartRetail": "Détail", + "PartCost":"Coût", "PartTrackSerialNumber": "Numéro de série de suivi", "PartUPC": "CUP", "PartWholesalerID": "Grossiste", diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index 84007e46..67817460 100644 --- a/server/AyaNova/util/AySchema.cs +++ b/server/AyaNova/util/AySchema.cs @@ -22,7 +22,7 @@ namespace AyaNova.Util //!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!! private const int DESIRED_SCHEMA_LEVEL = 15; - internal const long EXPECTED_COLUMN_COUNT = 667; + internal const long EXPECTED_COLUMN_COUNT = 666; internal const long EXPECTED_INDEX_COUNT = 115; //!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!! @@ -660,7 +660,7 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); //PART await ExecQueryAsync("CREATE TABLE apart (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name text, active bool not null, " + "notes text, wiki text, customfields text, tags varchar(255) ARRAY, " + - "partnumber text not null unique, popupnotes text, manufacturerid bigint REFERENCES avendor, manufacturernumber text, " + + "partnumber text not null unique, manufacturerid bigint REFERENCES avendor, manufacturernumber text, " + "wholesalerid bigint REFERENCES avendor, wholesalernumber text, alternativewholesalerid bigint REFERENCES avendor, alternativewholesalernumber text, " + "cost decimal(19,4) not null, retail decimal(19,4) not null, unitofmeasure text, upc text, trackserialnumber bool not null " + " )");