Do not try to fetch price for items which contain no market group according to CCP data

This commit is contained in:
DarkPhoenix
2019-02-13 00:54:56 +03:00
parent b0317ea560
commit 591dcffa43
7 changed files with 50 additions and 32 deletions

View File

@@ -133,7 +133,7 @@ class ItemCompare(wx.Panel):
except IndexError:
# Price
if sort == len(self.attrs) + 1:
func = lambda i: i.price.price if i.price.price != 0 else float("Inf")
func = lambda i: i.price if i.price != 0 else float("Inf")
# Something else
else:
self.sortReverse = False
@@ -168,7 +168,7 @@ class ItemCompare(wx.Panel):
self.paramList.SetItem(i, x + 1, valueUnit)
# Add prices
self.paramList.SetItem(i, len(self.attrs) + 1, formatAmount(item.price.price, 3, 3, 9, currency=True))
self.paramList.SetItem(i, len(self.attrs) + 1, formatAmount(item.price, 3, 3, 9, currency=True) if item.price else "")
self.paramList.RefreshRows()
self.Layout()

View File

@@ -100,32 +100,32 @@ class PriceViewFull(StatsView):
implant_price = 0
if fit:
ship_price = fit.ship.item.price.price
ship_price = fit.ship.item.price
if fit.modules:
for module in fit.modules:
if not module.isEmpty:
module_price += module.item.price.price
module_price += module.item.price
if fit.drones:
for drone in fit.drones:
drone_price += drone.item.price.price * drone.amount
drone_price += drone.item.price * drone.amount
if fit.fighters:
for fighter in fit.fighters:
fighter_price += fighter.item.price.price * fighter.amountActive
fighter_price += fighter.item.price * fighter.amountActive
if fit.cargo:
for cargo in fit.cargo:
cargo_price += cargo.item.price.price * cargo.amount
cargo_price += cargo.item.price * cargo.amount
if fit.boosters:
for booster in fit.boosters:
booster_price += booster.item.price.price
booster_price += booster.item.price
if fit.implants:
for implant in fit.implants:
implant_price += implant.item.price.price
implant_price += implant.item.price
total_price = 0

View File

@@ -94,32 +94,32 @@ class PriceViewMinimal(StatsView):
implant_price = 0
if fit:
ship_price = fit.ship.item.price.price
ship_price = fit.ship.item.price
if fit.modules:
for module in fit.modules:
if not module.isEmpty:
module_price += module.item.price.price
module_price += module.item.price
if fit.drones:
for drone in fit.drones:
drone_price += drone.item.price.price * drone.amount
drone_price += drone.item.price * drone.amount
if fit.fighters:
for fighter in fit.fighters:
fighter_price += fighter.item.price.price * fighter.amountActive
fighter_price += fighter.item.price * fighter.amountActive
if fit.cargo:
for cargo in fit.cargo:
cargo_price += cargo.item.price.price * cargo.amount
cargo_price += cargo.item.price * cargo.amount
if fit.boosters:
for booster in fit.boosters:
booster_price += booster.item.price.price
booster_price += booster.item.price
if fit.implants:
for implant in fit.implants:
implant_price += implant.item.price.price
implant_price += implant.item.price
fitting_price = module_price

View File

@@ -45,13 +45,19 @@ class Price(ViewColumn):
if stuff.isEmpty:
return ""
price = stuff.item.price
priceObj = stuff.item.priceObj
if not price or not price.isValid:
if not priceObj:
return ""
if not priceObj.isValid:
return False
# Fetch actual price as float to not modify its value on Price object
price = price.price
price = priceObj.price
if price == 0:
return ""
if isinstance(stuff, Drone) or isinstance(stuff, Cargo):
price *= stuff.amount