forked from omicron/d2warehouse
fix storage_count to not count items that are removed from storage
This commit is contained in:
@@ -39,21 +39,22 @@ def storage_count(item: Item, stash: str) -> int | str:
|
||||
db = get_stash_db(stash)
|
||||
if item.is_simple:
|
||||
return db.execute(
|
||||
"SELECT COUNT(id) FROM item WHERE code = ?", (item.code,)
|
||||
"SELECT COUNT(id) FROM item WHERE code = ? AND deleted IS NULL",
|
||||
(item.code,),
|
||||
).fetchone()[0]
|
||||
elif item.quality == Quality.UNIQUE:
|
||||
return db.execute(
|
||||
"SELECT COUNT(id) FROM item INNER JOIN item_extra ON id = item_id WHERE code = ? AND unique_id = ?",
|
||||
"SELECT COUNT(id) FROM item INNER JOIN item_extra ON id = item_id WHERE code = ? AND unique_id = ? AND deleted IS NULL",
|
||||
(item.code, item.unique_id),
|
||||
).fetchone()[0]
|
||||
elif item.quality == Quality.SET:
|
||||
return db.execute(
|
||||
"SELECT COUNT(id) FROM item INNER JOIN item_extra ON id = item_id WHERE code = ? AND set_id = ?",
|
||||
"SELECT COUNT(id) FROM item INNER JOIN item_extra ON id = item_id WHERE code = ? AND set_id = ? AND deleted IS NULL",
|
||||
(item.code, item.set_id),
|
||||
).fetchone()[0]
|
||||
elif item.is_runeword:
|
||||
return db.execute(
|
||||
"SELECT COUNT(id) FROM item INNER JOIN item_extra ON id = item_id WHERE code = ? AND runeword_id = ?",
|
||||
"SELECT COUNT(id) FROM item INNER JOIN item_extra ON id = item_id WHERE code = ? AND runeword_id = ? AND deleted IS NULL",
|
||||
(item.code, item.runeword_id),
|
||||
).fetchone()[0]
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user