Пример #1
0
def get_transactions(bank, bank_account=None, start_date=None, end_date=None):
    access_token = None

    if bank_account:
        related_bank = frappe.db.get_values("Bank Account",
                                            bank_account,
                                            ["bank", "integration_id"],
                                            as_dict=True)
        access_token = frappe.db.get_value("Bank", related_bank[0].bank,
                                           "plaid_access_token")
        account_id = related_bank[0].integration_id
    else:
        access_token = frappe.db.get_value("Bank", bank, "plaid_access_token")
        account_id = None

    plaid = PlaidConnector(access_token)

    transactions = []
    try:
        transactions = plaid.get_transactions(start_date=start_date,
                                              end_date=end_date,
                                              account_id=account_id)
    except ItemError as e:
        if e.code == "ITEM_LOGIN_REQUIRED":
            msg = _("There was an error syncing transactions.") + " "
            msg += _(
                "Please refresh or reset the Plaid linking of the Bank {}."
            ).format(bank) + " "
            frappe.log_error(msg, title=_("Plaid Link Refresh Required"))

    return transactions
Пример #2
0
def add_institution(token, response):
	response = json.loads(response)

	plaid = PlaidConnector()
	access_token = plaid.get_access_token(token)
	bank = None

	if not frappe.db.exists("Bank", response["institution"]["name"]):
		try:
			bank = frappe.get_doc(
				{
					"doctype": "Bank",
					"bank_name": response["institution"]["name"],
					"plaid_access_token": access_token,
				}
			)
			bank.insert()
		except Exception:
			frappe.log_error("Plaid Link Error")
	else:
		bank = frappe.get_doc("Bank", response["institution"]["name"])
		bank.plaid_access_token = access_token
		bank.save()

	return bank
Пример #3
0
def get_transactions(bank, bank_account=None, start_date=None, end_date=None):
    access_token = None

    if bank_account:
        related_bank = frappe.db.get_values("Bank Account",
                                            bank_account,
                                            ["bank", "integration_id"],
                                            as_dict=True)
        access_token = frappe.db.get_value("Bank", related_bank[0].bank,
                                           "plaid_access_token")
        account_id = related_bank[0].integration_id

    else:
        access_token = frappe.db.get_value("Bank", bank, "plaid_access_token")
        account_id = None

    if not access_token:
        frappe.throw(_("Please link your bank with Plaid first."))

    plaid = PlaidConnector(access_token)
    transactions = plaid.get_transactions(start_date=start_date,
                                          end_date=end_date,
                                          account_id=account_id)

    return transactions
Пример #4
0
def get_transactions(bank, bank_account=None, start_date=None, end_date=None):
	access_token = None

	if bank_account:
		related_bank = frappe.db.get_values("Bank Account", bank_account, ["bank", "integration_id"], as_dict=True)
		access_token = frappe.db.get_value("Bank", related_bank[0].bank, "plaid_access_token")
		account_id = related_bank[0].integration_id

	else:
		access_token = frappe.db.get_value("Bank", bank, "plaid_access_token")
		account_id = None

	plaid = PlaidConnector(access_token)
	transactions = plaid.get_transactions(start_date=start_date, end_date=end_date, account_id=account_id)

	return transactions
Пример #5
0
def add_institution(token, response):
	response = json.loads(response)

	plaid = PlaidConnector()
	access_token = plaid.get_access_token(token)

	if not frappe.db.exists("Bank", response["institution"]["name"]):
		try:
			bank = frappe.get_doc({
				"doctype": "Bank",
				"bank_name": response["institution"]["name"],
				"plaid_access_token": access_token
			})
			bank.insert()
		except Exception:
			frappe.throw(frappe.get_traceback())

	else:
		bank = frappe.get_doc("Bank", response["institution"]["name"])
		bank.plaid_access_token = access_token
		bank.save()

	return bank
Пример #6
0
def get_link_token_for_update(access_token):
    plaid = PlaidConnector(access_token)
    return plaid.get_link_token(update_mode=True)
Пример #7
0
 def get_link_token():
     plaid = PlaidConnector()
     return plaid.get_link_token()