diff --git a/devdocs/pricing.md b/devdocs/pricing.md index 9bb128d5..fda7d3e8 100644 --- a/devdocs/pricing.md +++ b/devdocs/pricing.md @@ -194,7 +194,7 @@ TWO types makes the most sense after considering options: - One time fee, user can use indefinitely - self installed, hosted and maintained by customer - least profitable for us long term if they don't buy a maint. subscription -- Without maintenance subscription, eligable for Minor updates only to fix bugs no new features so in other words they buy 8.0.16 they can upgrade to any 8.0.X version release, but not 8.1 as it will be new features added that don't break backward compatibility +- Without maintenance subscription, eligable for Minor updates only to fix bugs no new features so in other words they buy 8.0.17 they can upgrade to any 8.0.X version release, but not 8.1 as it will be new features added that don't break backward compatibility - one-time payment, along with the option of a yearly maintenance fee. - This is basically our current model but we allow upgrades for subscribers - **HAS CODE IMPLICATIONS** upgrades need to check if allowed based on version number if no maintenance subscription _not_ on date of build. diff --git a/dist/install/windows/x64/lan.iss b/dist/install/windows/x64/lan.iss index b414d8ca..74a84842 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.16" +#define MyAppVersion "8.0.17" #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 c6b6a113..1e6a2197 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.16" +#define MyAppVersion "8.0.17" #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/changelog.md b/docs/8.0/ayanova/docs/changelog.md index ca7ca709..dee365d8 100644 --- a/docs/8.0/ayanova/docs/changelog.md +++ b/docs/8.0/ayanova/docs/changelog.md @@ -6,11 +6,17 @@ The most recent changes are written in the AyaNova manual [hosted on our website ## 2022 +### AyaNova 8.0.17 (2022-10-12) + +#### Fixed + +- Server: Report rendering would fail if Global setting Company physical address longitude or latitude were set to an empty string + ### AyaNova 8.0.16 (2022-10-12) #### Added -- Debug log level diagnostic information for troubleshooting report generation issues during technical support +- Server: Debug log level diagnostic information for troubleshooting report generation issues during technical support ### AyaNova 8.0.15 (2022-09-30) diff --git a/docs/8.0/ayanova/mkdocs.yml b/docs/8.0/ayanova/mkdocs.yml index 9905bc3d..29e0f97e 100644 --- a/docs/8.0/ayanova/mkdocs.yml +++ b/docs/8.0/ayanova/mkdocs.yml @@ -7,7 +7,7 @@ theme: site_name: AyaNova manual site_dir: '../../../server/AyaNova/wwwroot/docs' strict: true -copyright: Copyright © 2022 Ground Zero Tech-Works Inc. REV-2022-10-07 +copyright: Copyright © 2022 Ground Zero Tech-Works Inc. REV-2022-10-12 extra: generator: false # Extensions diff --git a/server/AyaNova/AyaNova.csproj b/server/AyaNova/AyaNova.csproj index 951d9ac0..3a6d7328 100644 --- a/server/AyaNova/AyaNova.csproj +++ b/server/AyaNova/AyaNova.csproj @@ -4,8 +4,8 @@ true - 8.0.16 - 8.0.16.0 + 8.0.17 + 8.0.17.0 ayanova.ico bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml 1591 diff --git a/server/AyaNova/biz/ReportBiz.cs b/server/AyaNova/biz/ReportBiz.cs index 69e53340..021b11db 100644 --- a/server/AyaNova/biz/ReportBiz.cs +++ b/server/AyaNova/biz/ReportBiz.cs @@ -658,7 +658,18 @@ namespace AyaNova.Biz } var HasPostalAddress = !string.IsNullOrWhiteSpace(ServerGlobalBizSettings.Cache.PostAddress) ? "true" : "false"; var HasStreetAddress = !string.IsNullOrWhiteSpace(ServerGlobalBizSettings.Cache.Address) ? "true" : "false"; - var serverMeta = $"{{ayApiUrl:`{apiUrl}`, HasSmallLogo:{HasSmallLogo}, HasMediumLogo:{HasMediumLogo}, HasLargeLogo:{HasLargeLogo},CompanyName: `{AyaNova.Core.License.ActiveKey.RegisteredTo}`,CompanyWebAddress:`{ServerGlobalBizSettings.Cache.WebAddress}`,CompanyEmailAddress:`{ServerGlobalBizSettings.Cache.EmailAddress}`,CompanyPhone1:`{ServerGlobalBizSettings.Cache.Phone1}`,CompanyPhone2:`{ServerGlobalBizSettings.Cache.Phone2}`,HasPostalAddress:{HasPostalAddress},CompanyPostAddress:`{ServerGlobalBizSettings.Cache.PostAddress}`,CompanyPostCity:`{ServerGlobalBizSettings.Cache.PostCity}`,CompanyPostRegion:`{ServerGlobalBizSettings.Cache.PostRegion}`,CompanyPostCountry:`{ServerGlobalBizSettings.Cache.PostCountry}`,CompanyPostCode:`{ServerGlobalBizSettings.Cache.PostCode}`,HasStreetAddress:{HasStreetAddress},CompanyAddress:`{ServerGlobalBizSettings.Cache.Address}`,CompanyCity:`{ServerGlobalBizSettings.Cache.City}`,CompanyRegion:`{ServerGlobalBizSettings.Cache.Region}`,CompanyCountry:`{ServerGlobalBizSettings.Cache.Country}`,CompanyLatitude:{ServerGlobalBizSettings.Cache.Latitude},CompanyLongitude:{ServerGlobalBizSettings.Cache.Longitude}}}"; + + //case 4209 + //latitude and longitude are the only nullable fields in global biz settings and need to be converted to empty strings if null + string sLatitude = "null"; + string sLongitude = "null"; + if (ServerGlobalBizSettings.Cache.Latitude != null) + sLatitude = ServerGlobalBizSettings.Cache.Latitude.ToString(); + if (ServerGlobalBizSettings.Cache.Longitude != null) + sLongitude = ServerGlobalBizSettings.Cache.Longitude.ToString(); + + + var serverMeta = $"{{ayApiUrl:`{apiUrl}`, HasSmallLogo:{HasSmallLogo}, HasMediumLogo:{HasMediumLogo}, HasLargeLogo:{HasLargeLogo},CompanyName: `{AyaNova.Core.License.ActiveKey.RegisteredTo}`,CompanyWebAddress:`{ServerGlobalBizSettings.Cache.WebAddress}`,CompanyEmailAddress:`{ServerGlobalBizSettings.Cache.EmailAddress}`,CompanyPhone1:`{ServerGlobalBizSettings.Cache.Phone1}`,CompanyPhone2:`{ServerGlobalBizSettings.Cache.Phone2}`,HasPostalAddress:{HasPostalAddress},CompanyPostAddress:`{ServerGlobalBizSettings.Cache.PostAddress}`,CompanyPostCity:`{ServerGlobalBizSettings.Cache.PostCity}`,CompanyPostRegion:`{ServerGlobalBizSettings.Cache.PostRegion}`,CompanyPostCountry:`{ServerGlobalBizSettings.Cache.PostCountry}`,CompanyPostCode:`{ServerGlobalBizSettings.Cache.PostCode}`,HasStreetAddress:{HasStreetAddress},CompanyAddress:`{ServerGlobalBizSettings.Cache.Address}`,CompanyCity:`{ServerGlobalBizSettings.Cache.City}`,CompanyRegion:`{ServerGlobalBizSettings.Cache.Region}`,CompanyCountry:`{ServerGlobalBizSettings.Cache.Country}`,CompanyLatitude:{sLatitude},CompanyLongitude:{sLongitude}}}"; log.LogDebug($"Preparing page: adding Report meta data"); @@ -670,7 +681,9 @@ namespace AyaNova.Biz CustomFieldsTemplate = FormCustomization.Template; } - //Report meta data + //Report meta data + + var reportMeta = $"{{Id:{report.Id},Name:`{report.Name}`,Notes:`{report.Notes}`,AType:`{report.AType}`,CustomFieldsDefinition:{CustomFieldsTemplate},DataListKey:`{reportRequest.DataListKey}`,SelectedRowIds: `{string.Join(",", reportRequest.SelectedRowIds)}`}}"; @@ -833,7 +846,7 @@ namespace AyaNova.Biz await JobsBiz.LogJobAsync(job.GId, json); } - + await JobsBiz.UpdateJobStatusAsync(job.GId, JobStatus.Failed); diff --git a/server/AyaNova/util/AyaNovaVersion.cs b/server/AyaNova/util/AyaNovaVersion.cs index 937a44a1..f1bda98b 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.16"; + public const string VersionString = "8.0.17"; public const string FullNameAndVersion = "AyaNova server " + VersionString; public const string CurrentApiVersion="v8"; }//eoc