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

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

* fix: only save end date when transactions are returned
This commit is contained in:
Mangesh-Khairnar
2020-05-29 10:17:18 +05:30
committed by GitHub
parent 74ddc04031
commit 0fcb79f361

View File

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