price comparison improved
This commit is contained in:
parent
e06105942b
commit
d987f62471
3 changed files with 68 additions and 46 deletions
|
@ -16,9 +16,9 @@ def natural_sort_key(name):
|
|||
def get_external_price_comparisons(plan, appcat_price, currency, service_level):
|
||||
"""Get external price comparisons for a specific compute plan and service"""
|
||||
try:
|
||||
# Filter by service level if external price has one set
|
||||
# Filter by service level if external price has one set, ignore currency for comparison
|
||||
external_prices = ExternalPricePlans.objects.filter(
|
||||
compare_to=plan, service=appcat_price.service, currency=currency
|
||||
compare_to=plan, service=appcat_price.service
|
||||
).select_related("cloud_provider")
|
||||
|
||||
# Filter by service level if the external price has it configured
|
||||
|
@ -208,29 +208,28 @@ def pricelist(request):
|
|||
external_prices = get_external_price_comparisons(
|
||||
plan, appcat_price, currency, service_level
|
||||
)
|
||||
|
||||
for ext_price in external_prices:
|
||||
price_difference = float(ext_price.amount) - float(
|
||||
final_price
|
||||
)
|
||||
price_ratio = (
|
||||
float(ext_price.amount) / float(final_price)
|
||||
if final_price > 0
|
||||
else None
|
||||
# Calculate price difference using external price currency
|
||||
difference = ext_price.amount - final_price
|
||||
ratio = (
|
||||
ext_price.amount / final_price if final_price > 0 else 0
|
||||
)
|
||||
|
||||
external_comparisons.append(
|
||||
{
|
||||
"provider": ext_price.cloud_provider.name,
|
||||
"plan_name": ext_price.plan_name,
|
||||
"amount": ext_price.amount,
|
||||
"difference": price_difference,
|
||||
"ratio": price_ratio,
|
||||
"provider": ext_price.cloud_provider.name,
|
||||
"description": ext_price.description,
|
||||
"amount": ext_price.amount,
|
||||
"currency": ext_price.currency, # Use external price currency
|
||||
"vcpus": ext_price.vcpus,
|
||||
"ram": ext_price.ram,
|
||||
"storage": ext_price.storage,
|
||||
"replicas": ext_price.replicas,
|
||||
"difference": difference,
|
||||
"ratio": ratio,
|
||||
"source": ext_price.source,
|
||||
"date_retrieved": ext_price.date_retrieved,
|
||||
}
|
||||
)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue