Jump to content

Currency Decimal Accuracy


blazedd

Recommended Posts

On the `currencies.php` model there is a method `toDecimal` which is labeled as the "precision" of a currency. As I understand it the intention is to turn a float similar to "12.622222" into "12.62". The functionality it actually provides is via the AppModel->truncateDecimal method which is a `minimum` precision as per the documentation. This leads to raw pricing data without truncated precision as per the currency's database configuration.

 

For example USD pricing will result in:

{
     "id": "1",
     "pricing_id": "1",
     "package_id": "1",
     "term": "1",
     "period": "month",
     "price": "10.00",
     "setup_fee": "0.00",
     "cancel_fee": "0.00",
     "currency": "USD"
}

but pricing for GBP is

{
    "id": "1",
    "pricing_id": "1",
    "package_id": "1",
    "term": "1",
    "period": "month",
    "price": "6.9834",
    "setup_fee": "0.00",
    "cancel_fee": "0.00",
    "currency": "GBP"
}

I believe the frontend or view layer of Blesta is obfuscating this minor problem from being apparent. It's a significant issue for identifying the accurate pricing when the Blesta API is being consumed directly.

Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...