42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
import frappe
|
|
|
|
|
|
def execute():
|
|
frappe.reload_doc("events", "doctype", "offline_payment_method")
|
|
|
|
# Skip if the old columns don't exist (fresh install or already migrated)
|
|
if not frappe.db.has_column("Pohodex Event Manager Event", "enable_offline_payments"):
|
|
return
|
|
|
|
events_with_offline = frappe.get_all(
|
|
"Pohodex Event Manager Event",
|
|
filters={"enable_offline_payments": 1},
|
|
fields=["name", "offline_payment_label", "offline_payment_details", "collect_payment_proof"],
|
|
)
|
|
|
|
for event in events_with_offline:
|
|
title = event.offline_payment_label or "Offline Payment"
|
|
|
|
method = frappe.get_doc(
|
|
{
|
|
"doctype": "Offline Payment Method",
|
|
"title": title,
|
|
"event": event.name,
|
|
"enabled": 1,
|
|
"collect_payment_proof": event.collect_payment_proof,
|
|
"description": event.offline_payment_details,
|
|
}
|
|
)
|
|
method.insert(ignore_permissions=True)
|
|
|
|
# Link any existing Pohodex Event Manager Custom Fields scoped to "Offline Payment Form" for this event
|
|
custom_fields = frappe.get_all(
|
|
"Pohodex Event Manager Custom Field",
|
|
filters={"event": event.name, "applied_to": "Offline Payment Form"},
|
|
pluck="name",
|
|
)
|
|
for cf_name in custom_fields:
|
|
frappe.db.set_value("Pohodex Event Manager Custom Field", cf_name, "offline_payment_method", method.name)
|
|
|
|
frappe.reload_doc("events", "doctype", "buzz_event")
|