diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py index 38f5bd40844..5fc317358ba 100644 --- a/erpnext/stock/stock_ledger.py +++ b/erpnext/stock/stock_ledger.py @@ -406,23 +406,13 @@ def create_json_gz_file(data, doc, file_name=None) -> str: compressed_content = gzip.compress(encoded_content) if not file_name: - json_filename = f"{scrub(doc.doctype)}-{scrub(doc.name)}.json.gz" - _file = frappe.get_doc( - { - "doctype": "File", - "file_name": json_filename, - "attached_to_doctype": doc.doctype, - "attached_to_name": doc.name, - "attached_to_field": "reposting_data_file", - "content": compressed_content, - "is_private": 1, - } - ) - _file.save(ignore_permissions=True) - - return _file.file_url + return create_file(doc, compressed_content) else: file_doc = frappe.get_doc("File", file_name) + if "/frappe_s3_attachment." in file_doc.file_url: + file_doc.delete() + return create_file(doc, compressed_content) + path = file_doc.get_full_path() with open(path, "wb") as f: @@ -431,6 +421,24 @@ def create_json_gz_file(data, doc, file_name=None) -> str: return doc.reposting_data_file +def create_file(doc, compressed_content): + json_filename = f"{scrub(doc.doctype)}-{scrub(doc.name)}.json.gz" + _file = frappe.get_doc( + { + "doctype": "File", + "file_name": json_filename, + "attached_to_doctype": doc.doctype, + "attached_to_name": doc.name, + "attached_to_field": "reposting_data_file", + "content": compressed_content, + "is_private": 1, + } + ) + _file.save(ignore_permissions=True) + + return _file.file_url + + def get_items_to_be_repost(voucher_type=None, voucher_no=None, doc=None, reposting_data=None): if not reposting_data and doc and doc.reposting_data_file: reposting_data = get_reposting_data(doc.reposting_data_file)