mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-14 15:11:52 +00:00
Merge pull request #56252 from mihir-kandoi/pg-savepoint-guards
fix(postgres): savepoint-guard swallow-and-continue insert paths
This commit is contained in:
@@ -113,6 +113,8 @@ def add_bank_accounts(response: str | dict, bank: str | dict, company: str):
|
||||
|
||||
if not existing_bank_account:
|
||||
try:
|
||||
# savepoint so a failed insert doesn't poison the transaction on postgres
|
||||
frappe.db.savepoint("plaid_bank_account")
|
||||
gl_account = frappe.get_doc(
|
||||
{
|
||||
"doctype": "Account",
|
||||
@@ -142,12 +144,14 @@ def add_bank_accounts(response: str | dict, bank: str | dict, company: str):
|
||||
|
||||
result.append(new_account.name)
|
||||
except frappe.UniqueValidationError:
|
||||
frappe.db.rollback(save_point="plaid_bank_account") # preserve transaction in postgres
|
||||
frappe.msgprint(
|
||||
_("Bank account {0} already exists and could not be created again").format(
|
||||
account["name"]
|
||||
)
|
||||
)
|
||||
except Exception:
|
||||
frappe.db.rollback(save_point="plaid_bank_account") # preserve transaction in postgres
|
||||
frappe.log_error("Plaid Link Error")
|
||||
frappe.throw(
|
||||
_("There was an error creating Bank Account while linking with Plaid."),
|
||||
|
||||
@@ -567,6 +567,7 @@ def create_bank_account(args, demo=False):
|
||||
}
|
||||
)
|
||||
try:
|
||||
frappe.db.savepoint("create_bank_account")
|
||||
doc = bank_account.insert()
|
||||
|
||||
if args.get("set_default"):
|
||||
@@ -583,6 +584,7 @@ def create_bank_account(args, demo=False):
|
||||
except RootNotEditable:
|
||||
frappe.throw(frappe._("Bank account cannot be named as {0}").format(args.get("bank_account")))
|
||||
except frappe.DuplicateEntryError:
|
||||
frappe.db.rollback(save_point="create_bank_account") # preserve transaction in postgres
|
||||
# bank account same as a CoA entry
|
||||
pass
|
||||
|
||||
|
||||
Reference in New Issue
Block a user