This commit is contained in:
2022-05-26 18:59:37 +00:00
parent 21655825b9
commit ba29f5dbff
17 changed files with 45 additions and 44 deletions

View File

@@ -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,

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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

View File

@@ -24,4 +24,4 @@ Or check out our support forum [forum.ayanova.com](http://forum.ayanova.com/)
---
<h6>Documentation version: 8.0.0-beta.6, Copyright &copy; 2022 Ground Zero Tech-Works Inc.</h6>
<h6>Documentation version: 8.0.0-rc.1, Copyright &copy; 2022 Ground Zero Tech-Works Inc.</h6>

View File

@@ -8,4 +8,4 @@ Please contact your service company administrator if you have additional questio
---
<h6>Documentation version: 8.0.0-beta.6, Copyright &copy; 2022 Ground Zero Tech-Works Inc.</h6>
<h6>Documentation version: 8.0.0-rc.1, Copyright &copy; 2022 Ground Zero Tech-Works Inc.</h6>

View File

@@ -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
{

View File

@@ -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" });

View File

@@ -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<string>();
DefaultRate = LoanUnitRateUnit.Days;
// DefaultRate = LoanUnitRateUnit.Days;
}
[NotMapped, JsonIgnore]

View File

@@ -515,7 +515,6 @@
"LoanUnitCustom7": "Angepasstes Feld 7",
"LoanUnitCustom8": "Angepasstes Feld 8",
"LoanUnitCustom9": "Angepasstes Feld 9",
"LoanUnitDefaultRate": "Standardrate",
"LoanUnitList": "Leihposten",
"LoanUnitName": "Name",
"LoanUnitNotes": "Anmerkungen",

View File

@@ -515,7 +515,6 @@
"LoanUnitCustom7": "Custom7",
"LoanUnitCustom8": "Custom8",
"LoanUnitCustom9": "Custom9",
"LoanUnitDefaultRate": "Default rate",
"LoanUnitList": "Loaner Items",
"LoanUnitName": "Name",
"LoanUnitNotes": "Notes",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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!!!!

View File

@@ -5,7 +5,7 @@ namespace AyaNova.Util
/// </summary>
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

View File

@@ -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<LoanUnitRateUnit>();
//o.DefaultRate = Fake.Random.Enum<LoanUnitRateUnit>();
using (AyContext ct = ServiceProviderProvider.DBContext)