From c66a48b6415a7ccb5886644c83ae2659eefe7687 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Fri, 26 Aug 2022 20:40:44 +0000 Subject: [PATCH] --- devdocs/todo.txt | 8 +++++++- server/AyaNova/util/AySchema.cs | 35 +++++++++++++++++++++++++++++++-- server/AyaNova/util/License.cs | 12 ++++++++--- 3 files changed, 49 insertions(+), 6 deletions(-) diff --git a/devdocs/todo.txt b/devdocs/todo.txt index 9061812a..33dd557d 100644 --- a/devdocs/todo.txt +++ b/devdocs/todo.txt @@ -53,7 +53,7 @@ todo: IMPORTANT UPDATE manual, screenshots regarding Customer contact user and r Also license related info about how to free up a user for licensing and how users consume licenses todo: move the dbid to the very first position in the shareit order additional fields as only the first two will show in email and reporting -todo: register domain name myayanova.com for hanging subscriber servers off of +todo: register domain name (not sure of domain yet for certain, kicking around "onayanova.com" or "myayanova.com" or "atayanova.com") for hanging subscriber servers off of todo: update the test servers whichever are around, I've done my dev test.helloayanova.com, but should also do a261 and the eval ones @@ -61,6 +61,12 @@ todo: rockfish, need ability to add quantities to raven license options, once kn move the blocks of customer users stuff back into options again where it belongs, did it wrong before todo: research stuff below, then website stuff and move on +REVISIT PRICING: +This is interesting +The HaveAByte AyaNova hosting rate is $15 per month per scheduleable user, with a minimum of $100/month. It doesn’t matter which version you’re on, which options you have, or add-ons you have purchased, which parts you use, or don’t use. There is also a one-time setup fee of $299. That’s it! + +I'm thinking of reducing the price, 50 seems way too high for most people, perhaps we too can do a minimum per month and lower the per user costs? Maybe more around the 25-30 dollar range?? + L8ER >>>>>>>>>>>>>>>>>>>> diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index 08c24a23..529781fe 100644 --- a/server/AyaNova/util/AySchema.cs +++ b/server/AyaNova/util/AySchema.cs @@ -20,7 +20,7 @@ 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 = 6; + private const int DESIRED_SCHEMA_LEVEL = 7; internal const long EXPECTED_COLUMN_COUNT = 1377; internal const long EXPECTED_INDEX_COUNT = 161; @@ -1523,7 +1523,7 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); await ExecQueryAsync("ALTER TABLE auser ADD column allowlogin BOOL"); await ExecQueryAsync("UPDATE auser SET allowlogin=true WHERE active=true"); - + //english translations await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'AllowLogin', 'Allow login' FROM atranslation t where t.baselanguage = 'en'"); @@ -1536,9 +1536,40 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); //german translations await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'AllowLogin', 'Login erlauben' FROM atranslation t where t.baselanguage = 'de'"); await SetSchemaLevelAsync(++currentSchema); + } + ////////////////////////////////////////////////// + // + // 8.0.8 additions for license related display + // + if (currentSchema < 7) + { + LogUpdateMessage(log); + + //english translations + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ActiveTechUserCount', 'Active scheduleable Users' FROM atranslation t where t.baselanguage = 'en'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ActiveCustomerContactUserCount', 'Active Customer Contact login Users' FROM atranslation t where t.baselanguage = 'en'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ActiveInternalUserCount', 'Active internal Users' FROM atranslation t where t.baselanguage = 'en'"); + + //spanish translations + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ActiveTechUserCount', 'Técnico de horario activo Usuarios' FROM atranslation t where t.baselanguage = 'es'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ActiveCustomerContactUserCount', 'Usuarios de inicio de sesión de contacto de cliente activo' FROM atranslation t where t.baselanguage = 'es'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ActiveInternalUserCount', 'Usuarios internos activos' FROM atranslation t where t.baselanguage = 'es'"); + + //french translations + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ActiveTechUserCount', 'Utilisateurs planifiables actifs' FROM atranslation t where t.baselanguage = 'fr'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ActiveCustomerContactUserCount', 'Utilisateurs de connexion de contact client actifs' FROM atranslation t where t.baselanguage = 'fr'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ActiveInternalUserCount', 'Utilisateurs internes actifs' FROM atranslation t where t.baselanguage = 'fr'"); + + //german translations + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ActiveTechUserCount', 'Aktive planbare Benutzer' FROM atranslation t where t.baselanguage = 'de'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ActiveCustomerContactUserCount', 'Aktive Kundenkontakt-Login-Benutzer' FROM atranslation t where t.baselanguage = 'de'"); + await ExecQueryAsync("INSERT INTO atranslationitem(translationid,key,display) SELECT t.id, 'ActiveInternalUserCount', 'Aktive interne Benutzer' FROM atranslation t where t.baselanguage = 'de'"); + await SetSchemaLevelAsync(++currentSchema); + } + //######################################### //!!!!WARNING: BE SURE TO UPDATE THE DbUtil::EmptyBizDataFromDatabaseForSeedingOrImporting WHEN NEW TABLES ADDED!!!! diff --git a/server/AyaNova/util/License.cs b/server/AyaNova/util/License.cs index 4cfddb2e..d940a97f 100644 --- a/server/AyaNova/util/License.cs +++ b/server/AyaNova/util/License.cs @@ -453,9 +453,15 @@ namespace AyaNova.Core Feature = f.Feature, Count = f.Count }, - activeTechUserCount=AyaNova.Biz.UserBiz.ActiveTechUserCountAsync().Result, - activeCustomerContactUserCount=AyaNova.Biz.UserBiz.ActiveCustomerContactUserCountAsync().Result, - activeInternalUserCount=AyaNova.Biz.UserBiz.ActiveInternalUserCountAsync().Result + serverVersion = AyaNovaVersion.FullNameAndVersion, +#if (SUBSCRIPTION_BUILD) + build = "Subscription", +#else + build = "Perpetual", +#endif + activeTechUserCount = AyaNova.Biz.UserBiz.ActiveTechUserCountAsync().Result, + activeCustomerContactUserCount = AyaNova.Biz.UserBiz.ActiveCustomerContactUserCountAsync().Result, + activeInternalUserCount = AyaNova.Biz.UserBiz.ActiveInternalUserCountAsync().Result } }); return o;