fix: make transaction date of the oldest transaction as the last integration date (#22000)

* fix: make transaction date of the oldest transaction as the last integration date

* chore: remove blank line after docstring
This commit is contained in:
Mangesh-Khairnar 2020-05-28 13:33:58 +05:30 committed by GitHub
parent 0032d7765f
commit 706524f1ae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -124,10 +124,11 @@ def add_account_subtype(account_subtype):
@frappe.whitelist()
def sync_transactions(bank, bank_account):
last_sync_date = frappe.db.get_value("Bank Account", bank_account, "last_integration_date")
if last_sync_date:
start_date = formatdate(last_sync_date, "YYYY-MM-dd")
'''Sync transactions based on the last integration date as the start date, after the sync is completed
add the transaction date of the oldest transaction as the last integration date'''
last_transaction_date = frappe.db.get_value("Bank Account", bank_account, "last_integration_date")
if last_transaction_date:
start_date = formatdate(last_transaction_date, "YYYY-MM-dd")
else:
start_date = formatdate(add_months(today(), -12), "YYYY-MM-dd")
end_date = formatdate(today(), "YYYY-MM-dd")
@ -139,12 +140,14 @@ def sync_transactions(bank, bank_account):
for transaction in reversed(transactions):
result += new_bank_transaction(transaction)
frappe.logger().info("Plaid added {} new Bank Transactions from '{}' between {} and {}".format(
len(result), bank_account, start_date, end_date))
if result:
end_date = frappe.db.get_value('Bank Transaction', result.pop(), 'date')
frappe.db.set_value("Bank Account", bank_account, "last_integration_date", getdate(end_date))
frappe.logger().info("Plaid added {} new Bank Transactions from '{}' between {} and {}".format(
len(result), bank_account, start_date, end_date))
frappe.db.set_value("Bank Account", bank_account, "last_integration_date", end_date)
return result
except Exception:
frappe.log_error(frappe.get_traceback(), _("Plaid transactions sync error"))