mirror of
https://github.com/OCA/bank-payment.git
synced 2025-02-02 10:37:31 +02:00
[MIG]account_banking_sepa_direct_debit: Migration to 15.0
This commit is contained in:
@@ -5,12 +5,22 @@
|
||||
{
|
||||
"name": "Account Banking SEPA Direct Debit",
|
||||
"summary": "Create SEPA files for Direct Debit",
|
||||
"version": "14.0.1.3.1",
|
||||
"version": "15.0.1.0.0",
|
||||
"license": "AGPL-3",
|
||||
"author": "Akretion, " "Tecnativa, " "Odoo Community Association (OCA)",
|
||||
"website": "https://github.com/OCA/bank-payment",
|
||||
"category": "Banking addons",
|
||||
"depends": ["account_banking_pain_base", "account_banking_mandate"],
|
||||
"external_dependencies": {
|
||||
"python": [
|
||||
"stdnum",
|
||||
],
|
||||
},
|
||||
"assets": {
|
||||
"web.assets_backend": [
|
||||
"/account_banking_sepa_direct_debit/static/src/css/report.css"
|
||||
],
|
||||
},
|
||||
"data": [
|
||||
"views/account_banking_mandate_view.xml",
|
||||
"views/res_config_settings.xml",
|
||||
|
||||
@@ -1,51 +1,37 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
<record id="payment_mode_inbound_sepa_dd1" model="account.payment.mode">
|
||||
<field name="name">SEPA Direct Debit of customers</field>
|
||||
<field name="company_id" ref="base.main_company" />
|
||||
<field name="bank_account_link">variable</field>
|
||||
<field name="payment_method_id" ref="sepa_direct_debit" />
|
||||
<field name="default_journal_ids" search="[('type', '=', 'sale')]" />
|
||||
</record>
|
||||
<record id="base.main_company" model="res.company">
|
||||
<field name="sepa_creditor_identifier">FR78ZZZ424242</field>
|
||||
</record>
|
||||
<!-- Azure Interior -->
|
||||
<record id="res_partner_12_mandate" model="account.banking.mandate">
|
||||
<field
|
||||
name="partner_bank_id"
|
||||
ref="account_payment_mode.res_partner_12_iban"
|
||||
/>
|
||||
<field name="format">sepa</field>
|
||||
<field name="type">recurrent</field>
|
||||
<field name="recurrent_sequence_type">first</field>
|
||||
<field name="signature_date" eval="time.strftime('%Y-01-01')" />
|
||||
<field name="state">valid</field>
|
||||
</record>
|
||||
<record id="base.res_partner_12" model="res.partner">
|
||||
<field
|
||||
name="customer_payment_mode_id"
|
||||
ref="payment_mode_inbound_sepa_dd1"
|
||||
/>
|
||||
</record>
|
||||
<!-- Deco Addict -->
|
||||
<record id="res_partner_2_mandate" model="account.banking.mandate">
|
||||
<field
|
||||
name="partner_bank_id"
|
||||
ref="account_payment_mode.res_partner_2_iban"
|
||||
/>
|
||||
<field name="format">sepa</field>
|
||||
<field name="type">recurrent</field>
|
||||
<field name="recurrent_sequence_type">first</field>
|
||||
<field name="signature_date" eval="time.strftime('%Y-%m-01')" />
|
||||
<field name="state">valid</field>
|
||||
</record>
|
||||
<record id="base.res_partner_2" model="res.partner">
|
||||
<field
|
||||
name="customer_payment_mode_id"
|
||||
ref="payment_mode_inbound_sepa_dd1"
|
||||
/>
|
||||
</record>
|
||||
</data>
|
||||
<odoo noupdate="1">
|
||||
<record id="payment_mode_inbound_sepa_dd1" model="account.payment.mode">
|
||||
<field name="name">SEPA Direct Debit of customers</field>
|
||||
<field name="company_id" ref="base.main_company" />
|
||||
<field name="bank_account_link">variable</field>
|
||||
<field name="payment_method_id" ref="sepa_direct_debit" />
|
||||
<field name="default_journal_ids" search="[('type', '=', 'sale')]" />
|
||||
</record>
|
||||
<record id="base.main_company" model="res.company">
|
||||
<field name="sepa_creditor_identifier">FR78ZZZ424242</field>
|
||||
</record>
|
||||
<!-- Azure Interior -->
|
||||
<record id="res_partner_12_mandate" model="account.banking.mandate">
|
||||
<field name="partner_bank_id" ref="account_payment_mode.res_partner_12_iban" />
|
||||
<field name="format">sepa</field>
|
||||
<field name="type">recurrent</field>
|
||||
<field name="recurrent_sequence_type">first</field>
|
||||
<field name="signature_date" eval="time.strftime('%Y-01-01')" />
|
||||
<field name="state">valid</field>
|
||||
</record>
|
||||
<record id="base.res_partner_12" model="res.partner">
|
||||
<field name="customer_payment_mode_id" ref="payment_mode_inbound_sepa_dd1" />
|
||||
</record>
|
||||
<!-- Deco Addict -->
|
||||
<record id="res_partner_2_mandate" model="account.banking.mandate">
|
||||
<field name="partner_bank_id" ref="account_payment_mode.res_partner_2_iban" />
|
||||
<field name="format">sepa</field>
|
||||
<field name="type">recurrent</field>
|
||||
<field name="recurrent_sequence_type">first</field>
|
||||
<field name="signature_date" eval="time.strftime('%Y-%m-01')" />
|
||||
<field name="state">valid</field>
|
||||
</record>
|
||||
<record id="base.res_partner_2" model="res.partner">
|
||||
<field name="customer_payment_mode_id" ref="payment_mode_inbound_sepa_dd1" />
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
@@ -6,7 +6,8 @@ from datetime import datetime
|
||||
|
||||
from dateutil.relativedelta import relativedelta
|
||||
|
||||
from odoo import _, api, exceptions, fields, models
|
||||
from odoo import _, api, fields, models
|
||||
from odoo.exceptions import UserError
|
||||
|
||||
NUMBER_OF_UNUSED_MONTHS_BEFORE_EXPIRY = 36
|
||||
|
||||
@@ -39,7 +40,6 @@ class AccountBankingMandate(models.Model):
|
||||
)
|
||||
scheme = fields.Selection(
|
||||
[("CORE", "Basic (CORE)"), ("B2B", "Enterprise (B2B)")],
|
||||
string="Scheme",
|
||||
default="CORE",
|
||||
tracking=80,
|
||||
)
|
||||
@@ -50,7 +50,7 @@ class AccountBankingMandate(models.Model):
|
||||
def _check_recurring_type(self):
|
||||
for mandate in self:
|
||||
if mandate.type == "recurrent" and not mandate.recurrent_sequence_type:
|
||||
raise exceptions.Warning(
|
||||
raise UserError(
|
||||
_("The recurrent mandate '%s' must have a sequence type.")
|
||||
% mandate.unique_mandate_reference
|
||||
)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Copyright 2020 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from odoo import fields, models
|
||||
from odoo import api, fields, models
|
||||
|
||||
|
||||
class AccountPaymentMethod(models.Model):
|
||||
@@ -33,3 +33,9 @@ class AccountPaymentMethod(models.Model):
|
||||
path = "account_banking_sepa_direct_debit/data/%s.xsd" % self.pain_version
|
||||
return path
|
||||
return super().get_xsd_file_path()
|
||||
|
||||
@api.model
|
||||
def _get_payment_method_information(self):
|
||||
res = super()._get_payment_method_information()
|
||||
res["sepa_direct_debit"] = {"mode": "multi", "domain": [("type", "=", "bank")]}
|
||||
return res
|
||||
|
||||
@@ -302,8 +302,7 @@ class AccountPaymentOrder(models.Model):
|
||||
"Automatically switched from <b>First</b> to "
|
||||
"<b>Recurring</b> when the debit order "
|
||||
"<a href=# data-oe-model=account.payment.order "
|
||||
"data-oe-id=%d>%s</a> has been marked as uploaded."
|
||||
)
|
||||
% (order.id, order.name)
|
||||
"data-oe-id=%d>{}</a> has been marked as uploaded."
|
||||
).format(order.id, order.name)
|
||||
)
|
||||
return res
|
||||
|
||||
@@ -11,5 +11,15 @@ def update_bank_journals(cr, registry):
|
||||
journals = ajo.search([("type", "=", "bank")])
|
||||
sdd = env.ref("account_banking_sepa_direct_debit.sepa_direct_debit")
|
||||
if sdd:
|
||||
journals.write({"inbound_payment_method_ids": [(4, sdd.id)]})
|
||||
journals.write(
|
||||
{
|
||||
"inbound_payment_method_line_ids": [
|
||||
(
|
||||
0,
|
||||
0,
|
||||
{"payment_method_id": sdd.id, "name": "SEPA Direct Debit"},
|
||||
)
|
||||
]
|
||||
}
|
||||
)
|
||||
return
|
||||
|
||||
@@ -10,3 +10,4 @@
|
||||
* Pedro M. Baeza
|
||||
* Sergio Teruel
|
||||
* Carlos Roca
|
||||
* Manuel Regidor <manuel.regidor@sygel.es>
|
||||
|
||||
@@ -1,17 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<template
|
||||
id="assets_common"
|
||||
name="account_banking_sepa_direct_debit pdf assets"
|
||||
inherit_id="web.report_assets_common"
|
||||
>
|
||||
<xpath expr="." position="inside">
|
||||
<link
|
||||
href="/account_banking_sepa_direct_debit/static/src/css/report.css"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
</xpath>
|
||||
</template>
|
||||
<!-- QWeb Report -->
|
||||
<record id="report_sepa_direct_debit_mandate" model="ir.actions.report">
|
||||
<field name="name">SEPA Mandate</field>
|
||||
|
||||
@@ -7,11 +7,11 @@ import base64
|
||||
from lxml import etree
|
||||
|
||||
from odoo import fields
|
||||
from odoo.tests.common import SavepointCase
|
||||
from odoo.tests.common import TransactionCase
|
||||
from odoo.tools import float_compare
|
||||
|
||||
|
||||
class TestSDDBase(SavepointCase):
|
||||
class TestSDDBase(TransactionCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super().setUpClass()
|
||||
@@ -89,6 +89,18 @@ class TestSDDBase(SavepointCase):
|
||||
"code": "BNKFC",
|
||||
"bank_account_id": cls.company_bank.id,
|
||||
"bank_id": cls.company_bank.bank_id.id,
|
||||
"inbound_payment_method_line_ids": [
|
||||
(
|
||||
0,
|
||||
0,
|
||||
{
|
||||
"payment_method_id": cls.env.ref(
|
||||
"account_banking_sepa_direct_debit.sepa_direct_debit"
|
||||
).id,
|
||||
"payment_account_id": cls.account_expense_company_B.id,
|
||||
},
|
||||
)
|
||||
],
|
||||
}
|
||||
)
|
||||
# update payment mode
|
||||
@@ -194,8 +206,7 @@ class TestSDDBase(SavepointCase):
|
||||
"code": "AJ-PURC",
|
||||
"type": "purchase",
|
||||
"company_id": cls.company_B.id,
|
||||
"payment_debit_account_id": cls.account_expense_company_B.id,
|
||||
"payment_credit_account_id": cls.account_expense_company_B.id,
|
||||
"default_account_id": cls.account_expense_company_B.id,
|
||||
}
|
||||
)
|
||||
cls.journal_sale_company_B = cls.env["account.journal"].create(
|
||||
@@ -204,8 +215,7 @@ class TestSDDBase(SavepointCase):
|
||||
"code": "AJ-SALE",
|
||||
"type": "sale",
|
||||
"company_id": cls.company_B.id,
|
||||
"payment_debit_account_id": cls.account_income_company_B.id,
|
||||
"payment_credit_account_id": cls.account_income_company_B.id,
|
||||
"default_account_id": cls.account_income_company_B.id,
|
||||
}
|
||||
)
|
||||
cls.journal_general_company_B = cls.env["account.journal"].create(
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# generated from manifests external_dependencies
|
||||
lxml
|
||||
python-stdnum
|
||||
unidecode
|
||||
|
||||
Reference in New Issue
Block a user