mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-17 08:28:44 +00:00
fix(banking): handle blank password protected PDFs and negative amounts in CR/DR columns (backport #56690) (#56694)
fix(banking): handle blank password protected PDFs and negative amounts in CR/DR columns (#56690)
* fix(banking): strip signs from amount if column has CR/DR values
* fix(banking): try decrypting PDF with a blank password
(cherry picked from commit 300471da12)
Co-authored-by: Nikhil Kothari <nik.kothari22@live.com>
This commit is contained in:
@@ -829,7 +829,9 @@ def compute_final_transactions(transaction_rows: list, date_format: str, amount_
|
|||||||
|
|
||||||
if amount_format == 'Amount column has "CR"/"DR" values':
|
if amount_format == 'Amount column has "CR"/"DR" values':
|
||||||
amount = transaction_row.get("amount")
|
amount = transaction_row.get("amount")
|
||||||
float_amount = get_float_amount(amount)
|
|
||||||
|
# If the amount column has CR/DR in it - we should remove any signs (negative or positive) from the amount
|
||||||
|
float_amount = abs(get_float_amount(amount) or 0)
|
||||||
if "cr" in amount.lower():
|
if "cr" in amount.lower():
|
||||||
return 0, float_amount
|
return 0, float_amount
|
||||||
else:
|
else:
|
||||||
@@ -932,14 +934,18 @@ def extract_pdf_tables(content: bytes, password: str | None = None) -> list[dict
|
|||||||
from pypdf import PdfReader
|
from pypdf import PdfReader
|
||||||
|
|
||||||
reader = PdfReader(io.BytesIO(content))
|
reader = PdfReader(io.BytesIO(content))
|
||||||
if reader.is_encrypted and (not password or not reader.decrypt(password)):
|
if reader.is_encrypted:
|
||||||
frappe.throw(
|
# Try opening the PDF with a password - if no password is provided, try with a blank password
|
||||||
_(
|
if not password:
|
||||||
"This PDF is password protected. Please set the correct statement password on the"
|
password = ""
|
||||||
" Bank Account and try again."
|
if not reader.decrypt(password):
|
||||||
),
|
frappe.throw(
|
||||||
title=_("Password Required"),
|
_(
|
||||||
)
|
"This PDF is password protected. Please set the correct statement password on the"
|
||||||
|
" Bank Account and try again."
|
||||||
|
),
|
||||||
|
title=_("Password Required"),
|
||||||
|
)
|
||||||
|
|
||||||
text_settings = {"vertical_strategy": "text", "horizontal_strategy": "text"}
|
text_settings = {"vertical_strategy": "text", "horizontal_strategy": "text"}
|
||||||
tables = []
|
tables = []
|
||||||
|
|||||||
Reference in New Issue
Block a user