diff --git a/docsource/modules160-170.rst b/docsource/modules160-170.rst
index 9f267f11a03d..01665fcb675f 100644
--- a/docsource/modules160-170.rst
+++ b/docsource/modules160-170.rst
@@ -722,31 +722,39 @@ Module coverage 16.0 -> 17.0
+---------------------------------------------------+----------------------+-------------------------------------------------+
| payment_adyen | | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
-| payment_aps | |No DB layout changes. |
+| payment_alipay | Done |Handled in payment script |
++---------------------------------------------------+----------------------+-------------------------------------------------+
+| payment_aps | Nothing to do |No DB layout changes. |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| payment_asiapay | | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| payment_authorize | | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
-| payment_buckaroo | |No DB layout changes. |
+| payment_buckaroo | Nothing to do |No DB layout changes. |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| payment_custom | Done | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
-| payment_demo | | |
+| payment_demo | Done | |
++---------------------------------------------------+----------------------+-------------------------------------------------+
+| payment_flutterwave | Nothing to do |No DB layout changes. |
+---------------------------------------------------+----------------------+-------------------------------------------------+
-| payment_flutterwave | |No DB layout changes. |
+| payment_mercado_pago | Nothing to do |No DB layout changes. |
+---------------------------------------------------+----------------------+-------------------------------------------------+
-| payment_mercado_pago | |No DB layout changes. |
+| payment_mollie | Nothing to do |No DB layout changes. |
+---------------------------------------------------+----------------------+-------------------------------------------------+
-| payment_mollie | |No DB layout changes. |
+| payment_ogone | Done |Handled in payment script |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| payment_paypal | Nothing to do | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
-| payment_razorpay | |No DB layout changes. |
+| payment_payulatam | Done |Handled in payment script |
++---------------------------------------------------+----------------------+-------------------------------------------------+
+| payment_payumoney | Done |Handled in payment script |
++---------------------------------------------------+----------------------+-------------------------------------------------+
+| payment_razorpay | Nothing to do |No DB layout changes. |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| |new| payment_razorpay_oauth | | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
-| payment_sips | |No DB layout changes. |
+| payment_sips | Nothing to do |No DB layout changes. |
+---------------------------------------------------+----------------------+-------------------------------------------------+
| payment_stripe | Done | |
+---------------------------------------------------+----------------------+-------------------------------------------------+
diff --git a/openupgrade_scripts/scripts/payment/17.0.2.0/noupdate_changes_work.xml b/openupgrade_scripts/scripts/payment/17.0.2.0/noupdate_changes_work.xml
index a1b519922619..6d822af05ae1 100644
--- a/openupgrade_scripts/scripts/payment/17.0.2.0/noupdate_changes_work.xml
+++ b/openupgrade_scripts/scripts/payment/17.0.2.0/noupdate_changes_work.xml
@@ -352,6 +352,7 @@
+
+
+ [('company_id', 'parent_of', company_ids)]
+
[('company_id', 'parent_of', company_ids)]
diff --git a/openupgrade_scripts/scripts/payment/17.0.2.0/post-migration.py b/openupgrade_scripts/scripts/payment/17.0.2.0/post-migration.py
index 60f1ff41886a..b0bd19eabd54 100644
--- a/openupgrade_scripts/scripts/payment/17.0.2.0/post-migration.py
+++ b/openupgrade_scripts/scripts/payment/17.0.2.0/post-migration.py
@@ -4,6 +4,537 @@
from openupgradelib import openupgrade
+from odoo import Command
+
+_PROVIDER_CODE_MAPPING = {
+ "adyen": "payment.payment_provider_adyen",
+ "alipay": "payment_alipay.payment_provider_alipay",
+ "aps": "payment.payment_provider_aps",
+ "asiapay": "payment.payment_provider_asiapay",
+ "authorize": "payment.payment_provider_authorize",
+ "buckaroo": "payment.payment_provider_buckaroo",
+ # This one should be handled in payment_custom OpenUpgrade script
+ # "custom": "payment.payment_provider_transfer",
+ # This one should be handled in payment_demo OpenUpgrade script
+ # "demo": "payment.payment_provider_demo",
+ "flutterwave": "payment.payment_provider_flutterwave",
+ "mercado_pago": "payment.payment_provider_mercado_pago",
+ "mollie": "payment.payment_provider_mollie",
+ "ogone": "payment_ogone.payment_provider_ogone",
+ "paypal": "payment.payment_provider_paypal",
+ "payulatam": "payment_payulatam.payment_provider_payulatam",
+ "payumoney": "payment_payumoney.payment_provider_payumoney",
+ "razorpay": "payment.payment_provider_razorpay",
+ "sips": "payment.payment_provider_sips",
+ "stripe": "payment.payment_provider_stripe",
+ "xendit": "payment.payment_provider_xendit",
+}
+
+
+def _get_provider_payment_method(env):
+ return {
+ "payment.payment_provider_adyen": [
+ Command.set(
+ [
+ env.ref("payment.payment_method_ach_direct_debit").id,
+ env.ref("payment.payment_method_affirm").id,
+ env.ref("payment.payment_method_afterpay").id,
+ env.ref("payment.payment_method_alipay").id,
+ env.ref("payment.payment_method_alipay_hk").id,
+ env.ref("payment.payment_method_alma").id,
+ env.ref("payment.payment_method_bacs_direct_debit").id,
+ env.ref("payment.payment_method_bancontact").id,
+ env.ref("payment.payment_method_benefit").id,
+ env.ref("payment.payment_method_bizum").id,
+ env.ref("payment.payment_method_blik").id,
+ env.ref("payment.payment_method_card").id,
+ env.ref("payment.payment_method_cash_app_pay").id,
+ env.ref("payment.payment_method_clearpay").id,
+ env.ref("payment.payment_method_dana").id,
+ env.ref("payment.payment_method_duitnow").id,
+ env.ref("payment.payment_method_elo").id,
+ env.ref("payment.payment_method_eps").id,
+ env.ref("payment.payment_method_fpx").id,
+ env.ref("payment.payment_method_gcash").id,
+ env.ref("payment.payment_method_giropay").id,
+ env.ref("payment.payment_method_gopay").id,
+ env.ref("payment.payment_method_hipercard").id,
+ env.ref("payment.payment_method_ideal").id,
+ env.ref("payment.payment_method_kakaopay").id,
+ env.ref("payment.payment_method_klarna").id,
+ env.ref("payment.payment_method_klarna_paynow").id,
+ env.ref("payment.payment_method_klarna_pay_over_time").id,
+ env.ref("payment.payment_method_knet").id,
+ env.ref("payment.payment_method_mbway").id,
+ env.ref("payment.payment_method_mobile_pay").id,
+ env.ref("payment.payment_method_momo").id,
+ env.ref("payment.payment_method_multibanco").id,
+ env.ref("payment.payment_method_napas_card").id,
+ env.ref("payment.payment_method_online_banking_czech_republic").id,
+ env.ref("payment.payment_method_online_banking_india").id,
+ env.ref("payment.payment_method_online_banking_slovakia").id,
+ env.ref("payment.payment_method_online_banking_thailand").id,
+ env.ref("payment.payment_method_open_banking").id,
+ env.ref("payment.payment_method_p24").id,
+ env.ref("payment.payment_method_paybright").id,
+ env.ref("payment.payment_method_paysafecard").id,
+ env.ref("payment.payment_method_paynow").id,
+ env.ref("payment.payment_method_paypal").id,
+ env.ref("payment.payment_method_paytm").id,
+ env.ref("payment.payment_method_paytrail").id,
+ env.ref("payment.payment_method_pix").id,
+ env.ref("payment.payment_method_promptpay").id,
+ env.ref("payment.payment_method_ratepay").id,
+ env.ref("payment.payment_method_samsung_pay").id,
+ env.ref("payment.payment_method_sepa_direct_debit").id,
+ env.ref("payment.payment_method_sofort").id,
+ env.ref("payment.payment_method_swish").id,
+ env.ref("payment.payment_method_touch_n_go").id,
+ env.ref("payment.payment_method_trustly").id,
+ env.ref("payment.payment_method_twint").id,
+ env.ref("payment.payment_method_upi").id,
+ env.ref("payment.payment_method_vipps").id,
+ env.ref("payment.payment_method_wallets_india").id,
+ env.ref("payment.payment_method_walley").id,
+ env.ref("payment.payment_method_wechat_pay").id,
+ env.ref("payment.payment_method_zip").id,
+ ]
+ )
+ ],
+ "payment_alipay.payment_provider_alipay": [
+ Command.set(
+ [
+ env.ref("payment.payment_method_card").id,
+ env.ref("payment.payment_method_rabbit_line_pay").id,
+ env.ref("payment.payment_method_truemoney").id,
+ env.ref("payment.payment_method_boost").id,
+ env.ref("payment.payment_method_touch_n_go").id,
+ env.ref("payment.payment_method_gcash").id,
+ env.ref("payment.payment_method_billease").id,
+ env.ref("payment.payment_method_bpi").id,
+ env.ref("payment.payment_method_maya").id,
+ env.ref("payment.payment_method_dana").id,
+ env.ref("payment.payment_method_akulaku").id,
+ env.ref("payment.payment_method_kredivo").id,
+ env.ref("payment.payment_method_kakaopay").id,
+ env.ref("payment.payment_method_naver_pay").id,
+ env.ref("payment.payment_method_toss_pay").id,
+ env.ref("payment.payment_method_alipay").id,
+ env.ref("payment.payment_method_alipay_hk").id,
+ env.ref("payment.payment_method_dolfin").id,
+ env.ref("payment.payment_method_grabpay").id,
+ env.ref("payment.payment_method_gopay").id,
+ env.ref("payment.payment_method_linkaja").id,
+ env.ref("payment.payment_method_ovo").id,
+ env.ref("payment.payment_method_paypay").id,
+ env.ref("payment.payment_method_zalopay").id,
+ env.ref("payment.payment_method_bangkok_bank").id,
+ env.ref("payment.payment_method_bank_of_ayudhya").id,
+ env.ref("payment.payment_method_krungthai_bank").id,
+ env.ref("payment.payment_method_scb").id,
+ env.ref("payment.payment_method_blik").id,
+ env.ref("payment.payment_method_gsb").id,
+ env.ref("payment.payment_method_kasikorn_bank").id,
+ env.ref("payment.payment_method_promptpay").id,
+ env.ref("payment.payment_method_paynow").id,
+ env.ref("payment.payment_method_bni").id,
+ env.ref("payment.payment_method_mandiri").id,
+ env.ref("payment.payment_method_maybank").id,
+ env.ref("payment.payment_method_cimb_niaga").id,
+ env.ref("payment.payment_method_bsi").id,
+ env.ref("payment.payment_method_qris").id,
+ env.ref("payment.payment_method_pix").id,
+ env.ref("payment.payment_method_bancontact").id,
+ env.ref("payment.payment_method_giropay").id,
+ env.ref("payment.payment_method_ideal").id,
+ env.ref("payment.payment_method_payu").id,
+ env.ref("payment.payment_method_p24").id,
+ env.ref("payment.payment_method_sofort").id,
+ env.ref("payment.payment_method_eps").id,
+ env.ref("payment.payment_method_bancomat_pay").id,
+ env.ref("payment.payment_method_brankas").id,
+ env.ref("payment.payment_method_pay_easy").id,
+ env.ref("payment.payment_method_fpx").id,
+ ]
+ )
+ ],
+ "payment.payment_provider_aps": [
+ Command.set(
+ [
+ env.ref("payment.payment_method_card").id,
+ env.ref("payment.payment_method_mada").id,
+ env.ref("payment.payment_method_knet").id,
+ env.ref("payment.payment_method_meeza").id,
+ env.ref("payment.payment_method_naps").id,
+ env.ref("payment.payment_method_omannet").id,
+ env.ref("payment.payment_method_benefit").id,
+ ]
+ )
+ ],
+ "payment.payment_provider_asiapay": [
+ Command.set(
+ [
+ env.ref("payment.payment_method_card").id,
+ env.ref("payment.payment_method_alipay").id,
+ env.ref("payment.payment_method_wechat_pay").id,
+ env.ref("payment.payment_method_poli").id,
+ env.ref("payment.payment_method_afterpay").id,
+ env.ref("payment.payment_method_clearpay").id,
+ env.ref("payment.payment_method_humm").id,
+ env.ref("payment.payment_method_zip").id,
+ env.ref("payment.payment_method_paypal").id,
+ env.ref("payment.payment_method_atome").id,
+ env.ref("payment.payment_method_pace").id,
+ env.ref("payment.payment_method_shopback").id,
+ env.ref("payment.payment_method_grabpay").id,
+ env.ref("payment.payment_method_samsung_pay").id,
+ env.ref("payment.payment_method_hoolah").id,
+ env.ref("payment.payment_method_boost").id,
+ env.ref("payment.payment_method_duitnow").id,
+ env.ref("payment.payment_method_touch_n_go").id,
+ env.ref("payment.payment_method_bancnet").id,
+ env.ref("payment.payment_method_gcash").id,
+ env.ref("payment.payment_method_paynow").id,
+ env.ref("payment.payment_method_linepay").id,
+ env.ref("payment.payment_method_bangkok_bank").id,
+ env.ref("payment.payment_method_krungthai_bank").id,
+ env.ref("payment.payment_method_uob").id,
+ env.ref("payment.payment_method_scb").id,
+ env.ref("payment.payment_method_bank_of_ayudhya").id,
+ env.ref("payment.payment_method_kasikorn_bank").id,
+ env.ref("payment.payment_method_rabbit_line_pay").id,
+ env.ref("payment.payment_method_truemoney").id,
+ env.ref("payment.payment_method_fpx").id,
+ env.ref("payment.payment_method_fps").id,
+ env.ref("payment.payment_method_hd").id,
+ env.ref("payment.payment_method_maybank").id,
+ env.ref("payment.payment_method_pay_id").id,
+ env.ref("payment.payment_method_promptpay").id,
+ env.ref("payment.payment_method_techcom").id,
+ env.ref("payment.payment_method_tienphong").id,
+ env.ref("payment.payment_method_ttb").id,
+ env.ref("payment.payment_method_upi").id,
+ env.ref("payment.payment_method_vietcom").id,
+ env.ref("payment.payment_method_tendopay").id,
+ env.ref("payment.payment_method_alipay_hk").id,
+ env.ref("payment.payment_method_bharatqr").id,
+ env.ref("payment.payment_method_momo").id,
+ env.ref("payment.payment_method_octopus").id,
+ env.ref("payment.payment_method_maya").id,
+ env.ref("payment.payment_method_uatp").id,
+ env.ref("payment.payment_method_tenpay").id,
+ env.ref("payment.payment_method_enets").id,
+ env.ref("payment.payment_method_jkopay").id,
+ env.ref("payment.payment_method_payme").id,
+ env.ref("payment.payment_method_tmb").id,
+ ]
+ )
+ ],
+ "payment.payment_provider_authorize": [
+ Command.set(
+ [
+ env.ref("payment.payment_method_ach_direct_debit").id,
+ env.ref("payment.payment_method_card").id,
+ ]
+ )
+ ],
+ "payment.payment_provider_buckaroo": [
+ Command.set(
+ [
+ env.ref("payment.payment_method_bancontact").id,
+ env.ref("payment.payment_method_bank_reference").id,
+ env.ref("payment.payment_method_card").id,
+ env.ref("payment.payment_method_paypal").id,
+ env.ref("payment.payment_method_ideal").id,
+ env.ref("payment.payment_method_afterpay_riverty").id,
+ env.ref("payment.payment_method_sepa_direct_debit").id,
+ env.ref("payment.payment_method_alipay").id,
+ env.ref("payment.payment_method_wechat_pay").id,
+ env.ref("payment.payment_method_klarna").id,
+ env.ref("payment.payment_method_trustly").id,
+ env.ref("payment.payment_method_sofort").id,
+ env.ref("payment.payment_method_in3").id,
+ env.ref("payment.payment_method_tinka").id,
+ env.ref("payment.payment_method_billink").id,
+ env.ref("payment.payment_method_kbc_cbc").id,
+ env.ref("payment.payment_method_belfius").id,
+ env.ref("payment.payment_method_giropay").id,
+ env.ref("payment.payment_method_p24").id,
+ env.ref("payment.payment_method_poste_pay").id,
+ env.ref("payment.payment_method_eps").id,
+ env.ref("payment.payment_method_cartes_bancaires").id,
+ ]
+ )
+ ],
+ # This one should be handled in payment_demo migration scripts
+ # "payment.payment_provider_demo":
+ # [Command.set([
+ # env.ref('payment_demo.payment_method_demo').id,
+ # ])],
+ "payment.payment_provider_flutterwave": [
+ Command.set(
+ [
+ env.ref("payment.payment_method_card").id,
+ env.ref("payment.payment_method_mpesa").id,
+ env.ref("payment.payment_method_mobile_money").id,
+ env.ref("payment.payment_method_bank_transfer").id,
+ env.ref("payment.payment_method_bank_account").id,
+ env.ref("payment.payment_method_credit").id,
+ env.ref("payment.payment_method_paypal").id,
+ env.ref("payment.payment_method_ussd").id,
+ ]
+ )
+ ],
+ "payment.payment_provider_mercado_pago": [
+ Command.set(
+ [
+ env.ref("payment.payment_method_card").id,
+ env.ref("payment.payment_method_bank_transfer").id,
+ env.ref("payment.payment_method_paypal").id,
+ ]
+ )
+ ],
+ "payment.payment_provider_mollie": [
+ Command.set(
+ [
+ env.ref("payment.payment_method_bancontact").id,
+ env.ref("payment.payment_method_bank_transfer").id,
+ env.ref("payment.payment_method_belfius").id,
+ env.ref("payment.payment_method_card").id,
+ env.ref("payment.payment_method_eps").id,
+ env.ref("payment.payment_method_giropay").id,
+ env.ref("payment.payment_method_ideal").id,
+ env.ref("payment.payment_method_kbc_cbc").id,
+ env.ref("payment.payment_method_paypal").id,
+ env.ref("payment.payment_method_paysafecard").id,
+ env.ref("payment.payment_method_p24").id,
+ env.ref("payment.payment_method_sofort").id,
+ env.ref("payment.payment_method_twint").id,
+ ]
+ )
+ ],
+ "payment_ogone.payment_provider_ogone": [
+ Command.set(
+ [
+ env.ref("payment.payment_method_card").id,
+ env.ref("payment.payment_method_bancontact").id,
+ env.ref("payment.payment_method_belfius").id,
+ env.ref("payment.payment_method_bizum").id,
+ env.ref("payment.payment_method_klarna_paynow").id,
+ env.ref("payment.payment_method_klarna_pay_over_time").id,
+ env.ref("payment.payment_method_paypal").id,
+ env.ref("payment.payment_method_sofort").id,
+ env.ref("payment.payment_method_twint").id,
+ env.ref("payment.payment_method_axis").id,
+ env.ref("payment.payment_method_eps").id,
+ env.ref("payment.payment_method_paypal").id,
+ env.ref("payment.payment_method_sofort").id,
+ env.ref("payment.payment_method_paylib").id,
+ env.ref("payment.payment_method_p24").id,
+ ]
+ )
+ ],
+ "payment.payment_provider_paypal": [
+ Command.set(
+ [
+ env.ref("payment.payment_method_paypal").id,
+ ]
+ )
+ ],
+ "payment_payulatam.payment_provider_payulatam": [
+ Command.set(
+ [
+ env.ref("payment.payment_method_card").id,
+ env.ref("payment.payment_method_pix").id,
+ env.ref("payment.payment_method_bank_reference").id,
+ env.ref("payment.payment_method_bank_transfer").id,
+ env.ref("payment.payment_method_pse").id,
+ ]
+ )
+ ],
+ "payment_payumoney.payment_provider_payumoney": [
+ Command.set(
+ [
+ env.ref("payment.payment_method_card").id,
+ env.ref("payment.payment_method_netbanking").id,
+ env.ref("payment.payment_method_emi").id,
+ env.ref("payment.payment_method_upi").id,
+ ]
+ )
+ ],
+ "payment.payment_provider_razorpay": [
+ Command.set(
+ [
+ env.ref("payment.payment_method_card").id,
+ env.ref("payment.payment_method_netbanking").id,
+ env.ref("payment.payment_method_upi").id,
+ env.ref("payment.payment_method_wallets_india").id,
+ ]
+ )
+ ],
+ "payment.payment_provider_sepa_direct_debit": [
+ Command.set(
+ [
+ env.ref("payment.payment_method_sepa_direct_debit").id,
+ ]
+ )
+ ],
+ "payment.payment_provider_sips": [
+ Command.set(
+ [
+ env.ref("payment.payment_method_card").id,
+ env.ref("payment.payment_method_ideal").id,
+ env.ref("payment.payment_method_sofort").id,
+ env.ref("payment.payment_method_giropay").id,
+ env.ref("payment.payment_method_kbc_cbc").id,
+ env.ref("payment.payment_method_paypal").id,
+ env.ref("payment.payment_method_samsung_pay").id,
+ env.ref("payment.payment_method_bancontact").id,
+ env.ref("payment.payment_method_lyfpay").id,
+ env.ref("payment.payment_method_lydia").id,
+ env.ref("payment.payment_method_floa_bank").id,
+ env.ref("payment.payment_method_cofidis").id,
+ env.ref("payment.payment_method_frafinance").id,
+ ]
+ )
+ ],
+ "payment.payment_provider_stripe": [
+ Command.set(
+ [
+ env.ref("payment.payment_method_ach_direct_debit").id,
+ env.ref("payment.payment_method_affirm").id,
+ env.ref("payment.payment_method_afterpay").id,
+ env.ref("payment.payment_method_alipay").id,
+ env.ref("payment.payment_method_bacs_direct_debit").id,
+ env.ref("payment.payment_method_bancontact").id,
+ env.ref("payment.payment_method_becs_direct_debit").id,
+ env.ref("payment.payment_method_boleto").id,
+ env.ref("payment.payment_method_card").id,
+ env.ref("payment.payment_method_cash_app_pay").id,
+ env.ref("payment.payment_method_clearpay").id,
+ env.ref("payment.payment_method_eps").id,
+ env.ref("payment.payment_method_fpx").id,
+ env.ref("payment.payment_method_giropay").id,
+ env.ref("payment.payment_method_grabpay").id,
+ env.ref("payment.payment_method_ideal").id,
+ env.ref("payment.payment_method_klarna").id,
+ env.ref("payment.payment_method_mobile_pay").id,
+ env.ref("payment.payment_method_multibanco").id,
+ env.ref("payment.payment_method_p24").id,
+ env.ref("payment.payment_method_paynow").id,
+ env.ref("payment.payment_method_paypal").id,
+ env.ref("payment.payment_method_pix").id,
+ env.ref("payment.payment_method_promptpay").id,
+ env.ref("payment.payment_method_revolut_pay").id,
+ env.ref("payment.payment_method_sepa_direct_debit").id,
+ env.ref("payment.payment_method_sofort").id,
+ env.ref("payment.payment_method_upi").id,
+ env.ref("payment.payment_method_wechat_pay").id,
+ env.ref("payment.payment_method_zip").id,
+ ]
+ )
+ ],
+ # This one should be handled in payment_custom migration scripts
+ # "payment.payment_provider_transfer":
+ # [Command.set([
+ # env.ref('payment_custom.payment_method_wire_transfer').id,
+ # ])],
+ "payment.payment_provider_xendit": [
+ Command.set(
+ [
+ env.ref("payment.payment_method_7eleven").id,
+ env.ref("payment.payment_method_akulaku").id,
+ env.ref("payment.payment_method_bank_bca").id,
+ env.ref("payment.payment_method_bank_permata").id,
+ env.ref("payment.payment_method_billease").id,
+ env.ref("payment.payment_method_bni").id,
+ env.ref("payment.payment_method_bri").id,
+ env.ref("payment.payment_method_bsi").id,
+ env.ref("payment.payment_method_card").id,
+ env.ref("payment.payment_method_cashalo").id,
+ env.ref("payment.payment_method_cebuana").id,
+ env.ref("payment.payment_method_cimb_niaga").id,
+ env.ref("payment.payment_method_dana").id,
+ env.ref("payment.payment_method_gcash").id,
+ env.ref("payment.payment_method_grabpay").id,
+ env.ref("payment.payment_method_jeniuspay").id,
+ env.ref("payment.payment_method_kredivo").id,
+ env.ref("payment.payment_method_linkaja").id,
+ env.ref("payment.payment_method_mandiri").id,
+ env.ref("payment.payment_method_maya").id,
+ env.ref("payment.payment_method_ovo").id,
+ env.ref("payment.payment_method_qris").id,
+ env.ref("payment.payment_method_shopeepay").id,
+ ]
+ )
+ ],
+ }
+
+
+def _get_provider_module_id(env):
+ return {
+ env.ref("base.module_payment_adyen").id: "payment.payment_provider_adyen",
+ env.ref("base.module_payment_aps").id: "payment.payment_provider_aps",
+ env.ref("base.module_payment_asiapay").id: "payment.payment_provider_asiapay",
+ env.ref(
+ "base.module_payment_authorize"
+ ).id: "payment.payment_provider_authorize",
+ env.ref("base.module_payment_buckaroo").id: "payment.payment_provider_buckaroo",
+ # This one should be handled in payment_demo OpenUpgrade script
+ # env.ref("base.module_payment_demo").id: "payment.payment_provider_demo",
+ env.ref(
+ "base.module_payment_flutterwave"
+ ).id: "payment.payment_provider_flutterwave",
+ env.ref(
+ "base.module_payment_mercado_pago"
+ ).id: "payment.payment_provider_mercado_pago",
+ env.ref("base.module_payment_mollie").id: "payment.payment_provider_mollie",
+ env.ref("base.module_payment_paypal").id: "payment.payment_provider_paypal",
+ env.ref("base.module_payment_razorpay").id: "payment.payment_provider_razorpay",
+ env.ref(
+ "base.module_payment_sepa_direct_debit"
+ ).id: "payment.payment_provider_sepa_direct_debit",
+ env.ref("base.module_payment_sips").id: "payment.payment_provider_sips",
+ env.ref("base.module_payment_stripe").id: "payment.payment_provider_stripe",
+ # This one should be handled in payment_custom OpenUpgrade script
+ # env.ref("base.module_payment_custom").id: "payment.payment_provider_transfer",
+ env.ref("base.module_payment_xendit").id: "payment.payment_provider_xendit",
+ env.ref(
+ "base.module_payment_alipay"
+ ).id: "payment_alipay.payment_provider_alipay",
+ env.ref("base.module_payment_ogone").id: "payment_ogone.payment_provider_ogone",
+ env.ref(
+ "base.module_payment_payulatam"
+ ).id: "payment_payulatam.payment_provider_payulatam",
+ env.ref(
+ "base.module_payment_payumoney"
+ ).id: "payment_payumoney.payment_provider_payumoney",
+ }
+
+
+def _fill_provider_payment_method(env):
+ providers = env["payment.provider"].search([])
+ external_ids = providers.get_external_id()
+ _PROVIDER_MODULE_MAPPING = _get_provider_module_id(env)
+ _PROVIDER_PAYMENT_METHOD = _get_provider_payment_method(env)
+ for provider in providers:
+ provider_xml_id = False
+ if external_ids.get(provider.id, False) in _PROVIDER_PAYMENT_METHOD.keys():
+ provider_xml_id = external_ids.get(provider.id, False)
+ elif provider.code:
+ provider_xml_id = _PROVIDER_CODE_MAPPING.get(provider.code, False)
+ elif provider.module_id:
+ provider_xml_id = _PROVIDER_MODULE_MAPPING.get(provider.module_id.id)
+
+ if provider_xml_id:
+ provider.write(
+ {
+ "payment_method_ids": _PROVIDER_PAYMENT_METHOD.get(
+ provider_xml_id, False
+ )
+ }
+ )
+
def _fill_payment_method(env):
PaymentProvider = env["payment.provider"]
@@ -43,6 +574,7 @@ def _fill_payment_method(env):
@openupgrade.migrate()
def migrate(env, version):
openupgrade.load_data(env, "payment", "17.0.2.0/noupdate_changes_work.xml")
+ _fill_provider_payment_method(env)
openupgrade.delete_records_safely_by_xml_id(
env, ["payment.payment_transaction_user_rule"]
)
diff --git a/openupgrade_scripts/scripts/payment_custom/17.0.2.0/post-migration.py b/openupgrade_scripts/scripts/payment_custom/17.0.2.0/post-migration.py
index 102823915677..4e6c309adb7c 100644
--- a/openupgrade_scripts/scripts/payment_custom/17.0.2.0/post-migration.py
+++ b/openupgrade_scripts/scripts/payment_custom/17.0.2.0/post-migration.py
@@ -3,7 +3,17 @@
from openupgradelib import openupgrade
+from odoo import Command
+
@openupgrade.migrate()
def migrate(env, version):
- openupgrade.load_data(env, "payment_custom", "17.0.2.0/noupdate_changes.xml")
+ # Instead of loading noupdate_changes we apply method_ids on all payment.provider
+ # with custom code (since in multi-company scenario, they can get duplicated)
+ env["payment.provider"].search([("code", "=", "custom")]).write(
+ {
+ "payment_method_ids": [
+ Command.set([env.ref("payment_custom.payment_method_wire_transfer").id])
+ ],
+ }
+ )
diff --git a/openupgrade_scripts/scripts/payment_demo/17.0.2.0/noupdate_changes.xml b/openupgrade_scripts/scripts/payment_demo/17.0.2.0/noupdate_changes.xml
index f134bdbe59c8..b3ee897dd311 100644
--- a/openupgrade_scripts/scripts/payment_demo/17.0.2.0/noupdate_changes.xml
+++ b/openupgrade_scripts/scripts/payment_demo/17.0.2.0/noupdate_changes.xml
@@ -4,7 +4,9 @@
True
True
+
test
diff --git a/openupgrade_scripts/scripts/payment_demo/17.0.2.0/post-migration.py b/openupgrade_scripts/scripts/payment_demo/17.0.2.0/post-migration.py
new file mode 100644
index 000000000000..8681134fc50f
--- /dev/null
+++ b/openupgrade_scripts/scripts/payment_demo/17.0.2.0/post-migration.py
@@ -0,0 +1,21 @@
+# Copyright 2025 Le Filament (https://le-filament.com)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from openupgradelib import openupgrade
+
+from odoo import Command
+
+
+@openupgrade.migrate()
+def migrate(env, version):
+ openupgrade.load_data(env, "payment_demo", "17.0.2.0/noupdate_changes.xml")
+ # Instead of loading from noupdate_changes we apply method_ids on all
+ # payment.provider with custom code
+ # (since in multi-company scenario, they can get duplicated)
+ env["payment.provider"].search([("code", "=", "demo")]).write(
+ {
+ "payment_method_ids": [
+ Command.set([env.ref("payment_demo.payment_method_demo").id])
+ ],
+ }
+ )
diff --git a/openupgrade_scripts/scripts/payment_demo/17.0.2.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/payment_demo/17.0.2.0/upgrade_analysis_work.txt
new file mode 100644
index 000000000000..fae75f70da28
--- /dev/null
+++ b/openupgrade_scripts/scripts/payment_demo/17.0.2.0/upgrade_analysis_work.txt
@@ -0,0 +1,11 @@
+---Models in module 'payment_demo'---
+---Fields in module 'payment_demo'---
+---XML records in module 'payment_demo'---
+NEW ir.ui.view: payment_demo.express_checkout_form
+NEW ir.ui.view: payment_demo.express_inline_form
+NEW ir.ui.view: payment_demo.payment_details
+NEW ir.ui.view: payment_demo.payment_method_form
+NEW ir.ui.view: payment_demo.token_form
+DEL ir.ui.view: payment_demo.verified_token_checkmark
+NEW payment.method: payment_demo.payment_method_demo (noupdate)
+# NOTHING TO DO: views and new payment.method loaded by ORM