Files
event-manager/event_manager/patches/migrate_offline_payment_to_methods.py
xadm 786cbc724f
CI / Server (push) Has been cancelled
Linters / Frappe Linter (push) Has been cancelled
Linters / Vulnerable Dependency Check (push) Has been cancelled
UI Tests / Playwright E2E Tests (push) Has been cancelled
Initialize fork and rebrand app to event_manager
2026-05-11 09:56:57 +02:00

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")