Rank: Newbie
Groups: Authorized User, Developers Joined: 12/16/2025(UTC) Posts: 0
|
Hi, Katie. We've encountered this error when trying to see the Annual Sales report, it shows nothing on the chart, but the error log shows this: 12/29/2025 8:44:49 AM Error An error has occurred at https://store.centrodyne.../Report/AnnualSalesChart IP ADDRESS: 31.5.93.223 View less Exception: Input string was not in a correct format. Stack Trace: at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) at System.Number.ParseDecimal(String value, NumberStyles options, NumberFormatInfo numfmt) at System.Convert.ToDecimal(String value) at AbleCommerce.Areas.Admin.Controllers.ReportController.AnnualSalesChart(Int32 startYear, Int32 endYear) in C:\TEMP\WEBSTORE\20251215\AbleCommerce-9.0.11-b9287-WAP\Website\Areas\Admin\Controllers\ReportController.cs:line 354 at lambda_method(Closure , ControllerBase , Object[] ) at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c.<BeginInvokeSynchronousActionMethod>b__9_0(IAsyncResult asyncResult, ActionInvocation innerInvokeState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass11_0.<InvokeActionMethodFilterAsynchronouslyRecursive>b__0() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass11_2.<InvokeActionMethodFilterAsynchronouslyRecursive>b__2() at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass7_0.<BeginInvokeActionMethodWithFilters>b__1(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_6.<BeginInvokeAction>b__4() at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_1.<BeginInvokeAction>b__1(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) at System.Web.Mvc.Controller.<>c.<BeginExecuteCore>b__152_1(IAsyncResult asyncResult, ExecuteCoreState innerState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) at System.Web.Mvc.Controller.<>c.<BeginExecute>b__151_2(IAsyncResult asyncResult, Controller controller) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() at System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) at System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) at System.Web.Mvc.MvcHandler.<>c.<BeginProcessRequest>b__20_1(IAsyncResult asyncResult, ProcessRequestState innerState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End() at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
|
|
|
|
|
|
Rank: Advanced Member
Groups: System, Administrators, Developers, Registered, HelpDesk Joined: 10/29/2018(UTC) Posts: 503
Thanks: 4 times Was thanked: 36 time(s) in 35 post(s)
|
Hi Michael, I'll have to do some digging to see what's happening in the Report controller. I'm not able to reproduce this on a stock install of AbleCommerce 9.0.11. A couple questions - 1) Is this an upgraded installation? Is so, from what version? 2) What happens when you access the https://store.centrodyne...Admin/Report/AnnualSales page? Do you see any data below the chart? What years are displaying in the drop down? 3) Can you export the data to a CSV? Thanks for your help. |
Thanks for your support!
Katie Secure eCommerce Software and Hosting |
|
|
|
|
|
Rank: Newbie
Groups: Authorized User, Developers Joined: 12/16/2025(UTC) Posts: 0
|
1) Yes, from 9.0.7 to 9.0.11.9287 2) Yes, I see data below the chart, 2023-2025 (see schreeshot) 3) Yes (see attachment)  Screenshot 2025-12-30 at 15.51.34.png (112kb) downloaded 3 time(s). ANNUAL_SALES(from_2023_to_2025)_20251230_095225.txt (1kb) downloaded 3 time(s).Edited by user Tuesday, December 30, 2025 8:01:29 AM(UTC)
| Reason: Not specified
|
|
|
|
|
|
Rank: Advanced Member
Groups: System, Administrators, Developers, Registered, HelpDesk Joined: 10/29/2018(UTC) Posts: 503
Thanks: 4 times Was thanked: 36 time(s) in 35 post(s)
|
Hi Michael,
Thank you for taking the time to upload screenshots and an export. It looks like the issue is only that the graph isn't displaying.
Can you view other reports and see that the graphic charts are working fine?
|
Thanks for your support!
Katie Secure eCommerce Software and Hosting |
|
|
|
|
|
Rank: Newbie
Groups: Authorized User, Developers Joined: 12/16/2025(UTC) Posts: 0
|
Yes, Monthly Sales and Sales Over Time reports are showing the graph.
|
|
|
|
|
|
Rank: Advanced Member
Groups: System, Administrators, Developers, Registered, HelpDesk Joined: 10/29/2018(UTC) Posts: 503
Thanks: 4 times Was thanked: 36 time(s) in 35 post(s)
|
Hi Michael,
I've asked a developer to look into this.
I'm not able to reproduce the issue myself.
|
Thanks for your support!
Katie Secure eCommerce Software and Hosting |
|
|
|
|
|
Rank: Advanced Member
Groups: System, Administrators, Developers, Registered, HelpDesk Joined: 10/29/2018(UTC) Posts: 503
Thanks: 4 times Was thanked: 36 time(s) in 35 post(s)
|
Hi Michael, The developer said that the data has been customized to output USD, and that is the reason for the chart not appearing. His comments below: Quote:I see the exported data shared by the client and it seems that they have customized the code. TheTotalSales values include a currency prefix, like "USD $10,000.65" which isn't in the stock AbleCommerce. In code, we are cleaning up $ and comma (,) but the USD remains there, resulting in an exception.
So they also need to cleanup the USD for the chart data like this:
dataRow.TotalSales = dataRow.TotalSales.Replace("$", string.Empty); dataRow.TotalSales = dataRow.TotalSales.Replace(",", string.Empty); dataRow.TotalSales = dataRow.TotalSales.Replace("USD", string.Empty); |
Thanks for your support!
Katie Secure eCommerce Software and Hosting |
|
|
|
|
|
Rank: Newbie
Groups: Authorized User, Developers Joined: 12/16/2025(UTC) Posts: 0
|
Hi, Katie.
Your developer is right, but I still think this a minor bug that needs to be fixed as a patch or recompiled CommerceBuilder. The AnnualSales chart starts with this line "IList<AnnualSalesData> rawData = GetAnnualSalesData();" which translates to "return ReportDataSource.GetAnnualSalesData(1900, 2099);", where AnnualSalesData contains the TotalSales string returned by this method ReportDataSource.GetAnnualSalesData (CommerceBuilder) along with the rest. As long as the option "Show ISO Code" is "do not show" in the Advanced Options of the Edit Currency dialog (Admin -> Configure -> Store -> Currencies page), all chart reports are fine. If a different option is selected, in my case "show before currency formatted" being selected then AnnualSales chart isn't working, but the other two are just fine (Monthly Sales, Sales Over Time) even though ISO code is shown for each record.
In my opinion, this should be in your next list of fixes.
Thanks again for your help, much appreciated.
|
|
|
|
|
|
Rank: Advanced Member
Groups: System, Administrators, Developers, Registered, HelpDesk Joined: 10/29/2018(UTC) Posts: 503
Thanks: 4 times Was thanked: 36 time(s) in 35 post(s)
|
Michael,
You are absolutely right! This is a bug. I was able to reproduce it by turning on the advanced setting to show the ISO code.
It is logged as a bug and will be fixed in the next release.
For reference:
Issue #2370 -> Enabling the ISO code for a currency will break the graph shown on the Annual Sales report
Thank you so much for reporting this, and I'm sorry it took so long to determine the cause. It's not a setting that is commonly used, so I totally missed it. |
Thanks for your support!
Katie Secure eCommerce Software and Hosting |
|
|
|
|
|
Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.
Important Information:
The AbleCommerce Forums uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close