From c94acd9718123ffbd381f849dfee6f00b883007d Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Sat, 13 Apr 2019 03:19:34 +0300 Subject: [PATCH] If during price optimizations different items are converted into one, merge them --- gui/fitCommands/guiRebaseItems.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/gui/fitCommands/guiRebaseItems.py b/gui/fitCommands/guiRebaseItems.py index 8a69a78f5..fe8f67a05 100644 --- a/gui/fitCommands/guiRebaseItems.py +++ b/gui/fitCommands/guiRebaseItems.py @@ -3,9 +3,13 @@ import wx import eos.db import gui.mainFrame from gui import globalEvents as GE +from gui.fitCommands.helpers import CargoInfo from service.fit import Fit from .calc.fitRebaseItem import FitRebaseItemCommand from .calc.fitSetCharge import FitSetChargeCommand +from .calc.fitAddCargo import FitAddCargoCommand +from .calc.fitRemoveCargo import FitRemoveCargoCommand + class GuiRebaseItemsCommand(wx.Command): @@ -20,15 +24,20 @@ class GuiRebaseItemsCommand(wx.Command): def Do(self): fit = eos.db.getFit(self.fitID) for mod in fit.modules: - if mod.item is not None and mod.item.ID in self.rebaseMap: - self.internal_history.Submit(FitRebaseItemCommand(self.fitID, "modules", mod.modPosition, self.rebaseMap[mod.item.ID])) - if mod.charge is not None and mod.charge.ID in self.rebaseMap: - self.internal_history.Submit(FitSetChargeCommand(self.fitID, [mod.modPosition], self.rebaseMap[mod.charge.ID])) - for containerName in ("drones", "fighters", "implants", "boosters", "cargo"): + if mod.itemID in self.rebaseMap: + self.internal_history.Submit(FitRebaseItemCommand(self.fitID, "modules", mod.modPosition, self.rebaseMap[mod.itemID])) + if mod.chargeID in self.rebaseMap: + self.internal_history.Submit(FitSetChargeCommand(self.fitID, [mod.modPosition], self.rebaseMap[mod.chargeID])) + for containerName in ("drones", "fighters", "implants", "boosters"): container = getattr(fit, containerName) for obj in container: - if obj.item is not None and obj.item.ID in self.rebaseMap: - self.internal_history.Submit(FitRebaseItemCommand(self.fitID, containerName, container.index(obj), self.rebaseMap[obj.item.ID])) + if obj.itemID in self.rebaseMap: + self.internal_history.Submit(FitRebaseItemCommand(self.fitID, containerName, container.index(obj), self.rebaseMap[obj.itemID])) + for cargo in fit.cargo: + if cargo.itemID in self.rebaseMap: + amount = cargo.amount + self.internal_history.Submit(FitRemoveCargoCommand(fitID=self.fitID, cargoInfo=CargoInfo(itemID=cargo.itemID, amount=amount))) + self.internal_history.Submit(FitAddCargoCommand(fitID=self.fitID, cargoInfo=CargoInfo(itemID=self.rebaseMap[cargo.itemID], amount=amount))) if self.internal_history.Commands: eos.db.commit() Fit.getInstance().recalc(self.fitID)