Fix error handling on aggregate status report

Previously the catch block was a little too aggressive. It was swallowing a
real error (since aggregate reports pass a float, not a decimal). Now we
prevent the original possible errors by converting no matter what the type is
and checking for zero/null values first.
Merge pull request #189 from dimagi/stock-status-fix

Fix error handling on aggregate status report