account_banking_mandate_sale: black, isort, etc.

This commit is contained in:
Alexis de Lattre
2020-12-24 10:41:40 +01:00
parent a052dcf1a3
commit c8c39ae654
4 changed files with 43 additions and 38 deletions

View File

@@ -2,21 +2,20 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{ {
'name': 'Account Banking Mandate Sale', "name": "Account Banking Mandate Sale",
'version': '14.0.1.0.0', "version": "14.0.1.0.0",
'category': 'Banking addons', "category": "Banking addons",
'license': 'AGPL-3', "license": "AGPL-3",
'summary': "Adds mandates on sale orders", "summary": "Adds mandates on sale orders",
'author': "Odoo Community Association (OCA), " "author": "Odoo Community Association (OCA), " "Akretion",
"Akretion", "website": "https://github.com/OCA/bank-payment",
'website': 'https://github.com/OCA/bank-payment', "depends": [
'depends': [ "account_payment_sale",
'account_payment_sale', "sale_commercial_partner",
'sale_commercial_partner', "account_banking_mandate",
'account_banking_mandate',
], ],
'data': [ "data": [
'views/sale_order.xml', "views/sale_order.xml",
], ],
'installable': True, "installable": True,
} }

View File

@@ -10,35 +10,40 @@ class SaleOrder(models.Model):
# This field commercial_partner_id should be moved # This field commercial_partner_id should be moved
# in an OCA base module named for example sale_commercial_partner # in an OCA base module named for example sale_commercial_partner
mandate_id = fields.Many2one( mandate_id = fields.Many2one(
'account.banking.mandate', "account.banking.mandate",
string='Direct Debit Mandate', string="Direct Debit Mandate",
ondelete='restrict', ondelete="restrict",
check_company=True, check_company=True,
readonly=False, readonly=False,
domain="[('partner_id', '=', commercial_partner_id), ('state', 'in', ('draft', 'valid')), ('company_id', '=', company_id)]", domain="[('partner_id', '=', commercial_partner_id), "
"('state', 'in', ('draft', 'valid')), "
"('company_id', '=', company_id)]",
) )
mandate_required = fields.Boolean( mandate_required = fields.Boolean(
related='payment_mode_id.payment_method_id.mandate_required', related="payment_mode_id.payment_method_id.mandate_required",
) )
def _prepare_invoice(self): def _prepare_invoice(self):
"""Copy mandate from sale order to invoice""" """Copy mandate from sale order to invoice"""
vals = super()._prepare_invoice() vals = super()._prepare_invoice()
vals['mandate_id'] = self.mandate_id.id or False vals["mandate_id"] = self.mandate_id.id or False
return vals return vals
@api.depends("partner_id") @api.depends("partner_id")
def _compute_payment_mode(self): def _compute_payment_mode(self):
"""Select by default the first valid mandate of the partner""" """Select by default the first valid mandate of the partner"""
super()._compute_payment_mode() super()._compute_payment_mode()
abm_obj = self.env['account.banking.mandate'] abm_obj = self.env["account.banking.mandate"]
for order in self: for order in self:
if order.mandate_required and order.partner_id: if order.mandate_required and order.partner_id:
mandate = abm_obj.search([ mandate = abm_obj.search(
('state', '=', 'valid'), [
('partner_id', '=', order.commercial_partner_id.id), ("state", "=", "valid"),
('company_id', '=', order.company_id.id), ("partner_id", "=", order.commercial_partner_id.id),
], limit=1) ("company_id", "=", order.company_id.id),
],
limit=1,
)
order.mandate_id = mandate or False order.mandate_id = mandate or False
else: else:
order.mandate_id = False order.mandate_id = False

View File

@@ -1,21 +1,22 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<!-- <!--
© 2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>) © 2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
--> -->
<odoo> <odoo>
<record id="view_order_form" model="ir.ui.view"> <record id="view_order_form" model="ir.ui.view">
<field name="name">account_banking_mandate_sale.sale_order.form</field> <field name="name">account_banking_mandate_sale.sale_order.form</field>
<field name="model">sale.order</field> <field name="model">sale.order</field>
<field name="inherit_id" ref="account_payment_sale.view_order_form"/> <field name="inherit_id" ref="account_payment_sale.view_order_form" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name="fiscal_position_id" position="after"> <field name="fiscal_position_id" position="after">
<field name="commercial_partner_id" invisible="1"/> <field name="commercial_partner_id" invisible="1" />
<field name="mandate_id" <field
attrs="{'invisible': [('mandate_required', '=', False)]}"/> name="mandate_id"
<field name="mandate_required" invisible="1"/> attrs="{'invisible': [('mandate_required', '=', False)]}"
/>
<field name="mandate_required" invisible="1" />
</field> </field>
</field> </field>
</record> </record>

View File

@@ -1,15 +1,15 @@
# Copyright 2016-2020 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>) # Copyright 2016-2020 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import api, models from odoo import models
class SaleAdvancePaymentInv(models.TransientModel): class SaleAdvancePaymentInv(models.TransientModel):
_inherit = 'sale.advance.payment.inv' _inherit = "sale.advance.payment.inv"
def _prepare_invoice_values(self, order, name, amount, so_line): def _prepare_invoice_values(self, order, name, amount, so_line):
"""Copy mandate from sale order to invoice""" """Copy mandate from sale order to invoice"""
vals = super()._prepare_invoice_values(order, name, amount, so_line) vals = super()._prepare_invoice_values(order, name, amount, so_line)
if order.mandate_id: if order.mandate_id:
vals['mandate_id'] = order.mandate_id.id vals["mandate_id"] = order.mandate_id.id
return vals return vals