[MIG]account_banking_sepa_direct_debit: Migration to 15.0

This commit is contained in:
manu
2022-04-08 13:34:25 +02:00
parent aba99e16ea
commit 449c238b0a
10 changed files with 87 additions and 76 deletions

View File

@@ -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",

View File

@@ -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>

View File

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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -10,3 +10,4 @@
* Pedro M. Baeza
* Sergio Teruel
* Carlos Roca
* Manuel Regidor <manuel.regidor@sygel.es>

View File

@@ -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>

View File

@@ -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(

View File

@@ -1,3 +1,4 @@
# generated from manifests external_dependencies
lxml
python-stdnum
unidecode