Skip to content

Commit b90e260

Browse files
committed
Fix checking that record exists
1 parent 5f7b9a4 commit b90e260

1 file changed

Lines changed: 9 additions & 5 deletions

File tree

OpenNumismat/Collection/Collection.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1064,18 +1064,22 @@ def __applyFilter(self):
10641064
super().setFilter(combinedFilter)
10651065

10661066
def isExist(self, record):
1067+
from_sql = ("FROM coins"
1068+
f" {self.JOIN_BUY_PRICES}"
1069+
f" {self.JOIN_SELL_PRICES}")
10671070
fields = ('title', 'value', 'unit', 'country', 'period', 'ruler',
10681071
'year', 'mint', 'mintmark', 'type', 'series', 'subjectshort',
1069-
'status', 'material', 'quality', 'paydate', 'payprice',
1070-
'saller', 'payplace', 'saledate', 'saleprice', 'buyer',
1071-
'saleplace', 'variety', 'obversevar', 'reversevar',
1072-
'edgevar')
1072+
'status', 'material', 'quality', 'buy_prices.date',
1073+
'buy_prices.price', 'buy_prices.counterparty',
1074+
'buy_prices.place', 'sell_prices.date', 'sell_prices.price',
1075+
'sell_prices.counterparty', 'sell_prices.place', 'variety',
1076+
'obversevar', 'reversevar', 'edgevar')
10731077
filterParts = [field + '=?' for field in fields]
10741078
sqlFilter = ' AND '.join(filterParts)
10751079

10761080
db = self.database()
10771081
query = QSqlQuery(db)
1078-
query.prepare("SELECT 1 FROM coins WHERE id<>? AND " + sqlFilter + " LIMIT 1")
1082+
query.prepare(f"SELECT 1 {from_sql} WHERE coins.id<>? AND {sqlFilter} LIMIT 1")
10791083
query.addBindValue(record.value('id'))
10801084
for field in fields:
10811085
query.addBindValue(record.value(field))

0 commit comments

Comments
 (0)