From da37573b731443402ee68e0987af84a198847f65 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Sun, 12 Mar 2023 11:05:49 +0530 Subject: [PATCH] chore: delete remarks migration patch Versions higher than V14.18.2, 'remarks' will be moved in 'migrate_gl_to_payment_ledger' --- ...grate_remarks_from_gl_to_payment_ledger.py | 98 ------------------- 1 file changed, 98 deletions(-) delete mode 100644 erpnext/patches/v14_0/migrate_remarks_from_gl_to_payment_ledger.py diff --git a/erpnext/patches/v14_0/migrate_remarks_from_gl_to_payment_ledger.py b/erpnext/patches/v14_0/migrate_remarks_from_gl_to_payment_ledger.py deleted file mode 100644 index 9d216c4028..0000000000 --- a/erpnext/patches/v14_0/migrate_remarks_from_gl_to_payment_ledger.py +++ /dev/null @@ -1,98 +0,0 @@ -import frappe -from frappe import qb -from frappe.query_builder import CustomFunction -from frappe.query_builder.functions import Count, IfNull -from frappe.utils import flt - - -def execute(): - """ - Migrate 'remarks' field from 'tabGL Entry' to 'tabPayment Ledger Entry' - """ - - if frappe.reload_doc("accounts", "doctype", "payment_ledger_entry"): - - gle = qb.DocType("GL Entry") - ple = qb.DocType("Payment Ledger Entry") - - # Get empty PLE records - un_processed = ( - qb.from_(ple).select(Count(ple.name)).where((ple.remarks.isnull()) & (ple.delinked == 0)).run() - )[0][0] - - if un_processed: - print(f"Remarks for {un_processed} Payment Ledger records will be updated from GL Entry") - - ifelse = CustomFunction("IF", ["condition", "then", "else"]) - - processed = 0 - last_percent_update = 0 - batch_size = 1000 - last_name = None - - while True: - if last_name: - where_clause = (ple.name.gt(last_name)) & (ple.remarks.isnull()) & (ple.delinked == 0) - else: - where_clause = (ple.remarks.isnull()) & (ple.delinked == 0) - - # results are deterministic - names = ( - qb.from_(ple).select(ple.name).where(where_clause).orderby(ple.name).limit(batch_size).run() - ) - - if names: - last_name = names[-1][0] - - pl_entries = ( - qb.from_(ple) - .left_join(gle) - .on( - (ple.account == gle.account) - & (ple.party_type == gle.party_type) - & (ple.party == gle.party) - & (ple.voucher_type == gle.voucher_type) - & (ple.voucher_no == gle.voucher_no) - & ( - ple.against_voucher_type - == IfNull( - ifelse(gle.against_voucher_type == "", None, gle.against_voucher_type), gle.voucher_type - ) - ) - & ( - ple.against_voucher_no - == IfNull(ifelse(gle.against_voucher == "", None, gle.against_voucher), gle.voucher_no) - ) - & (ple.company == gle.company) - & ( - ((ple.account_type == "Receivable") & (ple.amount == (gle.debit - gle.credit))) - | (ple.account_type == "Payable") & (ple.amount == (gle.credit - gle.debit)) - ) - & (gle.remarks.notnull()) - & (gle.is_cancelled == 0) - ) - .select(ple.name) - .distinct() - .select( - gle.remarks.as_("gle_remarks"), - ) - .where(ple.name.isin(names)) - .run(as_dict=True) - ) - - if pl_entries: - for entry in pl_entries: - query = qb.update(ple).set(ple.remarks, entry.gle_remarks).where((ple.name == entry.name)) - query.run() - - frappe.db.commit() - - processed += len(pl_entries) - percentage = flt((processed / un_processed) * 100, 2) - if percentage - last_percent_update > 1: - print(f"{percentage}% ({processed}) PLE records updated") - last_percent_update = percentage - - else: - break - print("Remarks succesfully migrated")