Mercurial > wow > itemauditor
comparison Core.lua @ 26:75d917ccd942
Fixed Bug #9 - If existing items have 0c invested, increase them all to match the first transaction that changes their price.
| author | Asa Ayers <Asa.Ayers@Gmail.com> |
|---|---|
| date | Wed, 14 Jul 2010 00:28:44 -0700 |
| parents | 554b30908b33 |
| children | 34daa46b644a |
comparison
equal
deleted
inserted
replaced
| 24:554b30908b33 | 26:75d917ccd942 |
|---|---|
| 164 end | 164 end |
| 165 ]] | 165 ]] |
| 166 elseif mailType == "CODPayment" then | 166 elseif mailType == "CODPayment" then |
| 167 itemName = msgSubject:gsub(utils.SubjectPatterns[mailType], function(item) return item end) | 167 itemName = msgSubject:gsub(utils.SubjectPatterns[mailType], function(item) return item end) |
| 168 | 168 |
| 169 results[mailType][itemName] = (results[mailType][itemName] or 0) - msgMoney | 169 results[mailType][itemName] = (results[mailType][itemName] or {total=0,count=0}) |
| 170 results[mailType][itemName].total = results[mailType][itemName].total - msgMoney | |
| 170 | 171 |
| 171 elseif mailType == "AHSuccess" then | 172 elseif mailType == "AHSuccess" then |
| 172 local invoiceType, itemName, playerName, bid, buyout, deposit, consignment = GetInboxInvoiceInfo(mailIndex); | 173 local invoiceType, itemName, playerName, bid, buyout, deposit, consignment = GetInboxInvoiceInfo(mailIndex); |
| 173 results[mailType][itemName] = (results[mailType][itemName] or 0) - deposit - buyout + consignment | 174 results[mailType][itemName] = (results[mailType][itemName] or {total=0,count=0}) |
| 175 results[mailType][itemName].total = results[mailType][itemName].total - deposit - buyout + consignment | |
| 176 | |
| 174 | 177 |
| 175 elseif mailType == "AHWon" then | 178 elseif mailType == "AHWon" then |
| 176 local invoiceType, itemName, playerName, bid, buyout, deposit, consignment = GetInboxInvoiceInfo(mailIndex); | 179 local invoiceType, itemName, playerName, bid, buyout, deposit, consignment = GetInboxInvoiceInfo(mailIndex); |
| 177 results[mailType][itemName] = (results[mailType][itemName] or 0) + bid | 180 results[mailType][itemName] = (results[mailType][itemName] or {total=0,count=0}) |
| 181 results[mailType][itemName].total = results[mailType][itemName].total + bid | |
| 182 | |
| 183 local count = select(3, GetInboxItem(1,1)) | |
| 184 results[mailType][itemName].count = results[mailType][itemName].count + count | |
| 178 elseif mailType == "AHExpired" or mailType == "AHCancelled" or mailType == "AHOutbid" then | 185 elseif mailType == "AHExpired" or mailType == "AHCancelled" or mailType == "AHOutbid" then |
| 179 -- These should be handled when you pay the deposit at the AH | 186 -- These should be handled when you pay the deposit at the AH |
| 180 else | 187 else |
| 181 -- self:Debug("Unhandled mail type: " .. mailType) | 188 -- self:Debug("Unhandled mail type: " .. mailType) |
| 182 -- self:Debug(msgSubject) | 189 -- self:Debug(msgSubject) |
| 183 end | 190 end |
| 184 | 191 |
| 185 end | 192 end |
| 186 | 193 |
| 187 for mailType, collection in pairs(results) do | 194 for mailType, collection in pairs(results) do |
| 188 for item, total in pairs(collection) do | 195 for item, data in pairs(collection) do |
| 189 self:Debug(format("|cFF00FF00MailScan|r: %s - %s - %s", mailType, item, total)) | 196 self:Debug(format("|cFF00FF00MailScan|r: %s - %s - %s x %s", mailType, item, data.total, data.count)) |
| 190 end | 197 end |
| 191 end | 198 end |
| 192 | 199 |
| 193 return results | 200 return results |
| 194 end | 201 end |
| 244 else | 251 else |
| 245 self:Debug('Failed to convert link' .. tostring(link)) | 252 self:Debug('Failed to convert link' .. tostring(link)) |
| 246 end | 253 end |
| 247 end | 254 end |
| 248 | 255 |
| 249 function addon:SaveValue(link, value) | 256 function addon:SaveValue(link, value, countChange) |
| 250 self:Debug(format("SaveValue(%s, %s)", tostring(link), value)) | 257 self:Debug("SaveValue(%s, %s, %s)", tostring(link), value, (countChange or 'default')) |
| 258 countChange = countChange or 0 | |
| 251 local item = nil | 259 local item = nil |
| 252 local realLink = self:GetSafeLink(link) | 260 local realLink = self:GetSafeLink(link) |
| 253 local itemName = nil | 261 local itemName = nil |
| 254 if realLink == nil then | 262 if realLink == nil then |
| 263 itemName = link | |
| 255 self:Debug('SaveValue: GetSafeLink failed, falling back to storing by name: ' .. tostring(itemName)) | 264 self:Debug('SaveValue: GetSafeLink failed, falling back to storing by name: ' .. tostring(itemName)) |
| 256 itemName = link | |
| 257 self.db.factionrealm.item_account[itemName] = (self.db.factionrealm.item_account[itemName] or 0) + value | 265 self.db.factionrealm.item_account[itemName] = (self.db.factionrealm.item_account[itemName] or 0) + value |
| 258 item = {invested = self.db.factionrealm.item_account[itemName], count = 1} | 266 item = {invested = self.db.factionrealm.item_account[itemName], count = 1} |
| 259 else | 267 else |
| 260 | 268 |
| 261 item = self:GetItem(realLink) | 269 item = self:GetItem(realLink) |
| 262 item.invested = item.invested + value | 270 item.invested = item.invested + value |
| 263 itemName = GetItemInfo(realLink) | 271 itemName = GetItemInfo(realLink) |
| 272 end | |
| 273 | |
| 274 if value > 0 and countChange > 0 and item.invested == value and item.count ~= countChange then | |
| 275 local costPerItem = value / countChange | |
| 276 value = costPerItem * item.count | |
| 277 item.invested = value | |
| 278 self:Print("You already owned %s %s with an unknown price, so they have also been updated to %s each", (item.count - countChange), itemName, self:FormatMoney(costPerItem)) | |
| 264 end | 279 end |
| 265 | 280 |
| 266 if abs(value) > 0 then | 281 if abs(value) > 0 then |
| 267 if item.invested < 0 then | 282 if item.invested < 0 then |
| 268 if self.db.profile.messages.cost_updates then | 283 if self.db.profile.messages.cost_updates then |
