fix: Resolved conflicts in patches
This commit is contained in:
parent
174104c0d4
commit
ce49e6ccf7
@ -340,4 +340,5 @@ erpnext.patches.v14_0.rearrange_company_fields
|
||||
erpnext.patches.v14_0.update_leave_notification_template
|
||||
erpnext.patches.v14_0.restore_einvoice_fields
|
||||
erpnext.patches.v13_0.update_sane_transfer_against
|
||||
erpnext.patches.v12_0.add_company_link_to_einvoice_settings
|
||||
erpnext.patches.v12_0.add_company_link_to_einvoice_settings
|
||||
erpnext.patches.v14_0.migrate_cost_center_allocations
|
||||
|
45
erpnext/patches/v14_0/migrate_cost_center_allocations.py
Normal file
45
erpnext/patches/v14_0/migrate_cost_center_allocations.py
Normal file
@ -0,0 +1,45 @@
|
||||
import frappe
|
||||
from frappe.utils import today
|
||||
|
||||
def execute():
|
||||
for dt in ("cost_center_allocation", "cost_center_allocation_percentage"):
|
||||
frappe.reload_doc('accounts', 'doctype', dt)
|
||||
|
||||
cc_allocations = get_existing_cost_center_allocations()
|
||||
create_new_cost_center_allocation_records(cc_allocations)
|
||||
|
||||
frappe.delete_doc('DocType', 'Distributed Cost Center', ignore_missing=True)
|
||||
|
||||
def create_new_cost_center_allocation_records(cc_allocations):
|
||||
for main_cc, allocations in cc_allocations.items():
|
||||
cca = frappe.new_doc("Cost Center Allocation")
|
||||
cca.main_cost_center = main_cc
|
||||
cca.valid_from = today()
|
||||
|
||||
for child_cc, percentage in allocations.items():
|
||||
cca.append("allocation_percentages", ({
|
||||
"cost_center": child_cc,
|
||||
"percentage": percentage
|
||||
}))
|
||||
|
||||
cca.save()
|
||||
cca.submit()
|
||||
|
||||
|
||||
def get_existing_cost_center_allocations():
|
||||
par = frappe.qb.DocType("Cost Center")
|
||||
child = frappe.qb.DocType("Distributed Cost Center")
|
||||
|
||||
records = (
|
||||
frappe.qb.from_(par)
|
||||
.inner_join(child).on(par.name == child.parent)
|
||||
.select(par.name, child.cost_center, child.percentage_allocation)
|
||||
.where(par.enable_distributed_cost_center == 1)
|
||||
).run(as_dict=True)
|
||||
|
||||
cc_allocations = frappe._dict()
|
||||
for d in records:
|
||||
cc_allocations.setdefault(d.name, frappe._dict())\
|
||||
.setdefault(d.cost_center, d.percentage_allocation)
|
||||
|
||||
return cc_allocations
|
Loading…
x
Reference in New Issue
Block a user