From ba29f5dbff07155a97b777615f9241397406ca9e Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 26 May 2022 18:59:37 +0000 Subject: [PATCH] --- devdocs/deploy.md | 2 +- devdocs/todo.txt | 17 ++++---------- dist/install/windows/x64/lan.iss | 2 +- dist/install/windows/x64/standalone.iss | 2 +- docs/8.0/ayanova/docs/beta.md | 4 ++-- docs/8.0/ayanova/docs/index.md | 2 +- docs/8.0/customer/docs/index.md | 2 +- server/AyaNova/DataList/LoanUnitDataList.cs | 16 ++++++------- server/AyaNova/biz/FormFieldReference.cs | 2 +- server/AyaNova/models/LoanUnit.cs | 6 ++--- 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 | 26 ++++++++++++++++----- server/AyaNova/util/AyaNovaVersion.cs | 2 +- server/AyaNova/util/Seeder.cs | 2 +- 17 files changed, 45 insertions(+), 44 deletions(-) diff --git a/devdocs/deploy.md b/devdocs/deploy.md index b7cca871..218b2990 100644 --- a/devdocs/deploy.md +++ b/devdocs/deploy.md @@ -6,7 +6,7 @@ If any packages have been changed in the release do a thorough security scan and ### Bump version numbers: -Search and replace 8.0.0-beta.6 +Search and replace 8.0.0-rc.1 webapp,server,launcher, v8migrate Client end ayanova-version.js, diff --git a/devdocs/todo.txt b/devdocs/todo.txt index aeb48193..301171dd 100644 --- a/devdocs/todo.txt +++ b/devdocs/todo.txt @@ -368,13 +368,6 @@ todo: 3 WINDOWS SINGLE LAUNCHER: ╚═════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ -todo: 1 test server license expired so goes to license request page even though there is data in it and when I enter the license request company name etc it says all data will be erased!? - must be something to do with expired license but no idea why it would say that fuckery! - It's deliberately coded this way in the client UI: if there is existing data and it's an expired *trial* then it will automatically prompt to erase db before it will even send the request - this is good, but confusing, maybe a better message indicating what's up? - Also docs need addition about this issue and process. - not a highly important thing, but should be noted in docs at least - ## MIGRATION ITEMS ███ ███ ██ ██████ ██████ █████ ████████ ███████ @@ -429,11 +422,6 @@ todo:3 todo: check out this SPA memory leak detector, it *does* have a login abi -TODO: 1 NOTE CLIENT/ SERVER/ DOCS ALL: Unit model select template doesn't offer UPC as a field nor does it in Unit though Unit's I guess maybe don't work that way, see v7 to confirm where UPC code was exposed - looks like this was forgotten - when enabled go back into unit model docs and UPC field and expand - -todo: 1 unit model discontinued date should be hidden until disconitnued is checked in client UI todo: 1 BUGBUG - loaner item has a default rate but it's not being used on work orders when selected probably also quotes and pm's as well. @@ -1088,9 +1076,12 @@ https://www.ayanova.com/download/next/ayanova-linux-x64-server.zip https://www.ayanova.com/download/next/ayanova-windows-x64-lan-setup.exe Current v8 docs home: https://www.ayanova.com/docs/next -BUILD 8.0.0-beta.6 CHANGES OF NOTE +BUILD 8.0.0-rc.1 CHANGES OF NOTE - Updated swashbuckle, JoseJWT, Microsoft.openAPI, puppeteersharp +- Unit model form only show discontinued date if discontinued is checked +- unit model form only show warranty length if lifetime warranty is *not* checked + diff --git a/dist/install/windows/x64/lan.iss b/dist/install/windows/x64/lan.iss index eff3de45..beee1791 100644 --- a/dist/install/windows/x64/lan.iss +++ b/dist/install/windows/x64/lan.iss @@ -1,7 +1,7 @@ ; LAN install for internal network use only #define MyAppName "AyaNova server" -#define MyAppVersion "8.0.0-beta.6" +#define MyAppVersion "8.0.0-rc.1" #define MyAppPublisher "Ground Zero Tech-Works, Inc." #define MyAppURL "https://ayanova.com/" #define MyAppLauncherExeName "ayanova-launcher.exe" diff --git a/dist/install/windows/x64/standalone.iss b/dist/install/windows/x64/standalone.iss index 9471380e..e4addcfd 100644 --- a/dist/install/windows/x64/standalone.iss +++ b/dist/install/windows/x64/standalone.iss @@ -3,7 +3,7 @@ ; external to lan requires different config #define MyAppName "AyaNova" -#define MyAppVersion "8.0.0-beta.6" +#define MyAppVersion "8.0.0-rc.1" #define MyAppPublisher "Ground Zero Tech-Works, Inc." #define MyAppURL "https://ayanova.com/" #define MyAppLauncherExeName "ayanova-launcher.exe" diff --git a/docs/8.0/ayanova/docs/beta.md b/docs/8.0/ayanova/docs/beta.md index 5d4c4570..523fe251 100644 --- a/docs/8.0/ayanova/docs/beta.md +++ b/docs/8.0/ayanova/docs/beta.md @@ -22,9 +22,9 @@ An important part of beta testing is also testing the documentation; if you find ![help](img/help.png) -## Beta version 8.0.0-beta.6 +## Beta version 8.0.0-rc.1 -Please keep in mind that AyaNova 8.0.0-beta.6 is a temporary time-limited beta release and is not meant for live use. +Please keep in mind that AyaNova 8.0.0-rc.1 is a temporary time-limited beta release and is not meant for live use. ## Suggested order of beta testing diff --git a/docs/8.0/ayanova/docs/index.md b/docs/8.0/ayanova/docs/index.md index 0e713b49..359a7771 100644 --- a/docs/8.0/ayanova/docs/index.md +++ b/docs/8.0/ayanova/docs/index.md @@ -24,4 +24,4 @@ Or check out our support forum [forum.ayanova.com](http://forum.ayanova.com/) --- -
Documentation version: 8.0.0-beta.6, Copyright © 2022 Ground Zero Tech-Works Inc.
+
Documentation version: 8.0.0-rc.1, Copyright © 2022 Ground Zero Tech-Works Inc.
diff --git a/docs/8.0/customer/docs/index.md b/docs/8.0/customer/docs/index.md index 58a83bed..06e81498 100644 --- a/docs/8.0/customer/docs/index.md +++ b/docs/8.0/customer/docs/index.md @@ -8,4 +8,4 @@ Please contact your service company administrator if you have additional questio --- -
Documentation version: 8.0.0-beta.6, Copyright © 2022 Ground Zero Tech-Works Inc.
+
Documentation version: 8.0.0-rc.1, Copyright © 2022 Ground Zero Tech-Works Inc.
diff --git a/server/AyaNova/DataList/LoanUnitDataList.cs b/server/AyaNova/DataList/LoanUnitDataList.cs index ad9fc8c0..3bdc5008 100644 --- a/server/AyaNova/DataList/LoanUnitDataList.cs +++ b/server/AyaNova/DataList/LoanUnitDataList.cs @@ -120,14 +120,14 @@ namespace AyaNova.DataList SqlValueColumnName = "aloanunit.rateyear" }); - FieldDefinitions.Add(new DataListFieldDefinition - { - TKey = "LoanUnitDefaultRate", - FieldKey = "LoanUnitDefaultRate", - UiFieldDataType = (int)UiFieldDataType.Enum, - EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(LoanUnitRateUnit).ToString()), - SqlValueColumnName = "aloanunit.defaultrate" - }); + // FieldDefinitions.Add(new DataListFieldDefinition + // { + // TKey = "LoanUnitDefaultRate", + // FieldKey = "LoanUnitDefaultRate", + // UiFieldDataType = (int)UiFieldDataType.Enum, + // EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(LoanUnitRateUnit).ToString()), + // SqlValueColumnName = "aloanunit.defaultrate" + // }); FieldDefinitions.Add(new DataListFieldDefinition { diff --git a/server/AyaNova/biz/FormFieldReference.cs b/server/AyaNova/biz/FormFieldReference.cs index 3ce85761..78043c7d 100644 --- a/server/AyaNova/biz/FormFieldReference.cs +++ b/server/AyaNova/biz/FormFieldReference.cs @@ -270,7 +270,7 @@ namespace AyaNova.Biz l.Add(new FormField { TKey = "LoanUnitRateWeekCost", FieldKey = "RateWeekCost" }); l.Add(new FormField { TKey = "LoanUnitRateMonthCost", FieldKey = "RateMonthCost" }); l.Add(new FormField { TKey = "LoanUnitRateYearCost", FieldKey = "RateYearCost" }); - l.Add(new FormField { TKey = "LoanUnitDefaultRate", FieldKey = "DefaultRate" }); + //l.Add(new FormField { TKey = "LoanUnitDefaultRate", FieldKey = "DefaultRate" }); l.Add(new FormField { TKey = "LoanUnitShadowUnit", FieldKey = "UnitId" }); l.Add(new FormField { TKey = "LoanUnitNotes", FieldKey = "Notes" }); l.Add(new FormField { TKey = "Tags", FieldKey = "Tags" }); diff --git a/server/AyaNova/models/LoanUnit.cs b/server/AyaNova/models/LoanUnit.cs index f91ddc36..42ae8039 100644 --- a/server/AyaNova/models/LoanUnit.cs +++ b/server/AyaNova/models/LoanUnit.cs @@ -56,8 +56,8 @@ namespace AyaNova.Models [Required] public decimal RateYearCost { get; set; } - [Required] - public LoanUnitRateUnit DefaultRate { get; set; } + // [Required] + // public LoanUnitRateUnit DefaultRate { get; set; } public long? UnitId { get; set; }//Shadow unit [NotMapped] @@ -82,7 +82,7 @@ namespace AyaNova.Models public LoanUnit() { Tags = new List(); - DefaultRate = LoanUnitRateUnit.Days; + // DefaultRate = LoanUnitRateUnit.Days; } [NotMapped, JsonIgnore] diff --git a/server/AyaNova/resource/de.json b/server/AyaNova/resource/de.json index c7fe576d..a0ff0773 100644 --- a/server/AyaNova/resource/de.json +++ b/server/AyaNova/resource/de.json @@ -515,7 +515,6 @@ "LoanUnitCustom7": "Angepasstes Feld 7", "LoanUnitCustom8": "Angepasstes Feld 8", "LoanUnitCustom9": "Angepasstes Feld 9", - "LoanUnitDefaultRate": "Standardrate", "LoanUnitList": "Leihposten", "LoanUnitName": "Name", "LoanUnitNotes": "Anmerkungen", diff --git a/server/AyaNova/resource/en.json b/server/AyaNova/resource/en.json index 6b63a09c..bdf8f676 100644 --- a/server/AyaNova/resource/en.json +++ b/server/AyaNova/resource/en.json @@ -515,7 +515,6 @@ "LoanUnitCustom7": "Custom7", "LoanUnitCustom8": "Custom8", "LoanUnitCustom9": "Custom9", - "LoanUnitDefaultRate": "Default rate", "LoanUnitList": "Loaner Items", "LoanUnitName": "Name", "LoanUnitNotes": "Notes", diff --git a/server/AyaNova/resource/es.json b/server/AyaNova/resource/es.json index 65c0e44e..9842cc8a 100644 --- a/server/AyaNova/resource/es.json +++ b/server/AyaNova/resource/es.json @@ -515,7 +515,6 @@ "LoanUnitCustom7": "Campo personalizado 7", "LoanUnitCustom8": "Campo personalizado 8", "LoanUnitCustom9": "Campo personalizado 9", - "LoanUnitDefaultRate": "Tasa de incumplimiento", "LoanUnitList": "Elementos préstamo", "LoanUnitName": "Nombre", "LoanUnitNotes": "Notas", diff --git a/server/AyaNova/resource/fr.json b/server/AyaNova/resource/fr.json index f9c43d6c..3361fdf7 100644 --- a/server/AyaNova/resource/fr.json +++ b/server/AyaNova/resource/fr.json @@ -515,7 +515,6 @@ "LoanUnitCustom7": "Champ personnalisé 7", "LoanUnitCustom8": "Champ personnalisé 8", "LoanUnitCustom9": "Champ personnalisé 9", - "LoanUnitDefaultRate": "Taux de défaut", "LoanUnitList": "Éléments de prêt", "LoanUnitName": "Nom", "LoanUnitNotes": "Remarques", diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index eb5f8a25..d86e8e29 100644 --- a/server/AyaNova/util/AySchema.cs +++ b/server/AyaNova/util/AySchema.cs @@ -20,9 +20,9 @@ namespace AyaNova.Util /////////// CHANGE THIS ON NEW SCHEMA UPDATE //////////////////// //!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImportingAsync WHEN NEW TABLES ADDED!!!! - private const int DESIRED_SCHEMA_LEVEL = 2; + private const int DESIRED_SCHEMA_LEVEL = 3; - internal const long EXPECTED_COLUMN_COUNT = 1360; + internal const long EXPECTED_COLUMN_COUNT = 1359; internal const long EXPECTED_INDEX_COUNT = 156; internal const long EXPECTED_CHECK_CONSTRAINTS = 549; internal const long EXPECTED_FOREIGN_KEY_CONSTRAINTS = 202; @@ -1298,23 +1298,37 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'UpdateExistingRecords', 'Actualizar registros existentes' FROM atranslation t where t.baselanguage = 'es'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'AdminImportUpdateWarning', 'Advertencia: está a punto de cambiar varios objetos de forma permanente.\r\n¿Está seguro?' FROM atranslation t where t.baselanguage = 'es'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'FileToImport', 'Archivo a importar' FROM atranslation t where t.baselanguage = 'es'"); - await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ProcessCompleted', 'Proceso completado' FROM atranslation t where t.baselanguage = 'es'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ProcessCompleted', 'Proceso completado' FROM atranslation t where t.baselanguage = 'es'"); //french translations await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ImportNewRecords', 'Importer de nouveaux enregistrements' FROM atranslation t where t.baselanguage = 'fr'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'UpdateExistingRecords', 'Mettre à jour les enregistrements existants' FROM atranslation t where t.baselanguage = 'fr'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'AdminImportUpdateWarning', 'Avertissement: vous êtes sur le point de modifier définitivement plusieurs objets.\r\nÊtes-vous sûr?' FROM atranslation t where t.baselanguage = 'fr'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'FileToImport', 'Fichier à importer' FROM atranslation t where t.baselanguage = 'fr'"); - await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ProcessCompleted', 'Processus terminé' FROM atranslation t where t.baselanguage = 'fr'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ProcessCompleted', 'Processus terminé' FROM atranslation t where t.baselanguage = 'fr'"); //german translations await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ImportNewRecords', 'Importieren Sie neue Datensätze' FROM atranslation t where t.baselanguage = 'de'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'UpdateExistingRecords', 'Aktualisieren Sie vorhandene Datensätze' FROM atranslation t where t.baselanguage = 'de'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'AdminImportUpdateWarning', 'Warnung: Sie sind dabei, mehrere Objekte dauerhaft zu ändern.\r\nSind Sie sicher?' FROM atranslation t where t.baselanguage = 'de'"); await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'FileToImport', 'Zu importierende Datei' FROM atranslation t where t.baselanguage = 'de'"); - await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ProcessCompleted', 'Prozess abgeschlossen' FROM atranslation t where t.baselanguage = 'de'"); - + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ProcessCompleted', 'Prozess abgeschlossen' FROM atranslation t where t.baselanguage = 'de'"); + await SetSchemaLevelAsync(++currentSchema); } + + //////////////////////////////////////////////// + // rc 1 remove default rate from loan unit + // + if (currentSchema < 3) + { + LogUpdateMessage(log); + await ExecQueryAsync("DELETE FROM atranslationitem where key = 'LoanUnitDefaultRate'"); + await ExecQueryAsync("ALTER TABLE aloanunit DROP COLUMN defaultrate;"); + await SetSchemaLevelAsync(++currentSchema); + } + + + //######################################### //!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!! diff --git a/server/AyaNova/util/AyaNovaVersion.cs b/server/AyaNova/util/AyaNovaVersion.cs index 2197b085..cade144c 100644 --- a/server/AyaNova/util/AyaNovaVersion.cs +++ b/server/AyaNova/util/AyaNovaVersion.cs @@ -5,7 +5,7 @@ namespace AyaNova.Util /// internal static class AyaNovaVersion { - public const string VersionString = "8.0.0-beta.6"; + public const string VersionString = "8.0.0-rc.1"; public const string FullNameAndVersion = "AyaNova server " + VersionString; public const string CurrentApiVersion="v8"; }//eoc diff --git a/server/AyaNova/util/Seeder.cs b/server/AyaNova/util/Seeder.cs index 34f11856..188e4991 100644 --- a/server/AyaNova/util/Seeder.cs +++ b/server/AyaNova/util/Seeder.cs @@ -2407,7 +2407,7 @@ namespace AyaNova.Util o.RateMonthCost = MoneyUtil.Round(o.RateMonth / 2); o.RateYear = MoneyUtil.Round(o.RateHour * 36.8m * 52); o.RateYearCost = MoneyUtil.Round(o.RateYear / 2); - o.DefaultRate = Fake.Random.Enum(); + //o.DefaultRate = Fake.Random.Enum(); using (AyContext ct = ServiceProviderProvider.DBContext)