personalMarketOrders.py (4174B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\market\personalMarketOrders.py 2 from carbonui import uiconst 3 from carbonui.primitives.container import Container 4 from eve.client.script.ui.control.eveLabel import EveLabelMedium, Label 5 from eve.client.script.ui.shared.market.orders import MarketOrders 6 from eve.common.lib import appConst 7 from eve.common.script.util.eveFormat import FmtISK 8 from localization import GetByLabel 9 10 class PersonalMarketOrders(MarketOrders): 11 12 def ApplyAttributes(self, attributes): 13 self.limits = sm.GetService('marketQuote').GetSkillLimits(None) 14 self.leftLimitsLabel = None 15 super(PersonalMarketOrders, self).ApplyAttributes(attributes) 16 17 def GetOrders(self): 18 return sm.GetService('marketQuote').GetMyOrders() 19 20 def ConstructBottomCont(self): 21 self.bottomCont = Container(name='bottomCont', parent=self, align=uiconst.TOBOTTOM, height=24, idx=0, clipChildren=True) 22 self.leftLimitsLabel = EveLabelMedium(parent=self.bottomCont, align=uiconst.TOLEFT, padding=4, tabs=[175, 500], state=uiconst.UI_NORMAL) 23 self.leftLimitsLabel2 = EveLabelMedium(parent=self.bottomCont, align=uiconst.TOLEFT, padding=4, state=uiconst.UI_NORMAL) 24 25 def UpdateOrderTotals(self, orders): 26 if orders is None: 27 return 28 self.totalEscrow = 0.0 29 self.totalLeft = 0.0 30 self.totalIncome = 0.0 31 self.totalExpenses = 0.0 32 for order in orders: 33 if order.bid: 34 self.totalExpenses += order.price * order.volRemaining 35 self.totalEscrow += order.escrow 36 self.totalLeft += order.volRemaining * order.price - order.escrow 37 else: 38 self.totalIncome += order.price * order.volRemaining 39 40 self.UpdateCounter(orders) 41 42 def UpdateCounter(self, orders = None): 43 if not self.limits or not self.leftLimitsLabel: 44 return 45 current = len(orders) 46 maxCount = self.limits['cnt'] 47 self.leftLimitsLabel.text = GetByLabel('UI/Market/Orders/OrdersRemaining', remaining=maxCount - current, maxCount=maxCount, escrow=FmtISK(self.totalEscrow, showFractionsAlways=False), totalLeft=FmtISK(self.totalLeft, showFractionsAlways=False), feeLimit=self.GetBrokersFeeForOrders(orders), accLimit=round(self.limits['acc'], 4) * 100, income=FmtISK(self.totalIncome, showFractionsAlways=False), expenses=FmtISK(self.totalExpenses, showFractionsAlways=False)) 48 askLimit = self.limits['ask'] 49 bidLimit = self.limits['bid'] 50 modLimit = self.limits['mod'] 51 visLimit = self.limits['vis'] 52 if askLimit == -1 and bidLimit == -1 and modLimit == -1 and visLimit == -1: 53 self.leftLimitsLabel2.text = GetByLabel('UI/Market/Orders/OrderRangesWithoutRemote') 54 else: 55 self.leftLimitsLabel2.text = GetByLabel('UI/Market/Orders/OrderRanges', askLimit=self.GetLimitText(askLimit), bidLimit=self.GetLimitText(bidLimit), modLimit=self.GetLimitText(modLimit), visLimit=self.GetLimitText(visLimit)) 56 self.bottomCont.height = max(20, self.leftLimitsLabel.textheight + 8, self.leftLimitsLabel2.textheight + 8) 57 58 def GetBrokersFeeForOrders(self, orders): 59 numValidOrders = 0 60 totalFee = 0 61 for eachOrder in orders: 62 fee = self.limits.GetBrokersFeeForLocation(eachOrder.stationID) 63 if fee is None: 64 continue 65 totalFee += fee * 100 66 numValidOrders += 1 67 68 if numValidOrders: 69 return round(totalFee / numValidOrders, 2) 70 else: 71 return appConst.marketCommissionPercentage 72 73 def GetLimitText(self, limit): 74 if limit == appConst.rangeStation: 75 text = GetByLabel('UI/Market/Orders/LimitedToStations') 76 elif limit == appConst.rangeSolarSystem: 77 text = GetByLabel('UI/Market/Orders/LimitedToSystem') 78 elif limit == appConst.rangeRegion: 79 text = GetByLabel('UI/Market/Orders/LimitedToRegions') 80 else: 81 text = GetByLabel('UI/Market/Orders/LimitedToJumps', jumps=limit) 82 return text