36 lines
1.4 KiB
Python
36 lines
1.4 KiB
Python
from qrtr_account.models import Transaction, BankAccount, Account
|
|
from connection.models import Connection
|
|
|
|
|
|
def get_and_save_transactions(connection, start_date=None, end_date=None):
|
|
client = connection.connect()
|
|
transactions = client.get_transactions(start_date=start_date,
|
|
end_date=end_date)
|
|
if "error" in transactions:
|
|
return False
|
|
|
|
for trns in transactions:
|
|
Transaction.objects.update_or_create(
|
|
trans_id=trns.get("transaction_id"),
|
|
defaults={"authorized_date": trns.get("authorized_date"),
|
|
"trans_id": trns.get("transaction_id"),
|
|
"details": trns,
|
|
"bank": BankAccount.objects.get(acc_id=trns.get("account_id")),
|
|
"name": trns.get("name")})
|
|
return True
|
|
|
|
def pull_transactions(account_ids=[], exclude_ids=[], start_date=None,
|
|
end_date=None):
|
|
if account_ids:
|
|
accounts = Account.objects.filter(pk__in=account_ids).exclude(pk__in=exclude_ids)
|
|
else:
|
|
accounts = Account.objects.exclude(pk__in=exclude_ids)
|
|
|
|
for account in accounts:
|
|
connections = account.connection_set.all()
|
|
for connection in connections:
|
|
get_and_save_transactions(connection,
|
|
start_date=start_date, end_date=end_date)
|
|
|
|
|