mirror of
https://github.com/OCA/bank-payment.git
synced 2025-02-02 10:37:31 +02:00
@@ -10,16 +10,26 @@ class PurchaseOrder(models.Model):
|
||||
|
||||
supplier_partner_bank_id = fields.Many2one(
|
||||
comodel_name="res.partner.bank",
|
||||
compute="_compute_payment_mode",
|
||||
readonly=False,
|
||||
store=True,
|
||||
precompute=True,
|
||||
string="Supplier Bank Account",
|
||||
domain="[('partner_id', '=', partner_id)]",
|
||||
domain="[('partner_id', '=', partner_id), ('company_id', 'in', [False, company_id])]",
|
||||
check_company=True,
|
||||
help="Select the bank account of your supplier on which your company "
|
||||
"should send the payment. This field is copied from the partner "
|
||||
"and will be copied to the supplier invoice.",
|
||||
)
|
||||
payment_mode_id = fields.Many2one(
|
||||
comodel_name="account.payment.mode",
|
||||
compute="_compute_payment_mode",
|
||||
readonly=False,
|
||||
store=True,
|
||||
precompute=True,
|
||||
string="Payment Mode",
|
||||
domain="[('payment_type', '=', 'outbound')]",
|
||||
domain="[('payment_type', '=', 'outbound'), ('company_id', '=', company_id)]",
|
||||
check_company=True,
|
||||
)
|
||||
|
||||
@api.model
|
||||
@@ -31,15 +41,14 @@ class PurchaseOrder(models.Model):
|
||||
or False
|
||||
)
|
||||
|
||||
@api.onchange("partner_id", "company_id")
|
||||
def onchange_partner_id(self):
|
||||
ret = super().onchange_partner_id()
|
||||
if self.partner_id:
|
||||
self.supplier_partner_bank_id = self._get_default_supplier_partner_bank(
|
||||
self.partner_id
|
||||
)
|
||||
self.payment_mode_id = self.partner_id.supplier_payment_mode_id
|
||||
else:
|
||||
self.supplier_partner_bank_id = False
|
||||
self.payment_mode_id = False
|
||||
return ret
|
||||
@api.depends("partner_id", "company_id")
|
||||
def _compute_payment_mode(self):
|
||||
for order in self:
|
||||
if order.partner_id:
|
||||
order.supplier_partner_bank_id = (
|
||||
order._get_default_supplier_partner_bank(order.partner_id)
|
||||
)
|
||||
order.payment_mode_id = order.partner_id.supplier_payment_mode_id
|
||||
else:
|
||||
order.supplier_partner_bank_id = False
|
||||
order.payment_mode_id = False
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# Copyright 2017 Tecnativa - Vicent Cubells
|
||||
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
|
||||
|
||||
from odoo import fields
|
||||
from odoo import Command, fields
|
||||
from odoo.tests import TransactionCase, tagged
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ class TestAccountPaymentPurchase(TransactionCase):
|
||||
"name": "Test buy product",
|
||||
"uom_id": cls.uom_id,
|
||||
"uom_po_id": cls.uom_id,
|
||||
"seller_ids": [(0, 0, {"partner_id": cls.partner.id})],
|
||||
"seller_ids": [Command.create({"partner_id": cls.partner.id})],
|
||||
}
|
||||
)
|
||||
cls.purchase = cls.env["purchase.order"].create(
|
||||
@@ -58,9 +58,7 @@ class TestAccountPaymentPurchase(TransactionCase):
|
||||
"partner_id": cls.partner.id,
|
||||
"payment_mode_id": cls.payment_mode.id,
|
||||
"order_line": [
|
||||
(
|
||||
0,
|
||||
0,
|
||||
Command.create(
|
||||
{
|
||||
"name": "Test line",
|
||||
"product_qty": 1.0,
|
||||
@@ -68,7 +66,7 @@ class TestAccountPaymentPurchase(TransactionCase):
|
||||
"product_uom": cls.uom_id,
|
||||
"date_planned": fields.Datetime.today(),
|
||||
"price_unit": 1.0,
|
||||
},
|
||||
}
|
||||
)
|
||||
],
|
||||
}
|
||||
|
||||
@@ -9,11 +9,7 @@
|
||||
<field name="inherit_id" ref="purchase.purchase_order_form" />
|
||||
<field name="arch" type="xml">
|
||||
<field name="payment_term_id" position="after">
|
||||
<field
|
||||
name="payment_mode_id"
|
||||
domain="[('payment_type', '=', 'outbound')]"
|
||||
widget="selection"
|
||||
/>
|
||||
<field name="payment_mode_id" />
|
||||
<field name="supplier_partner_bank_id" />
|
||||
</field>
|
||||
</field>
|
||||
|
||||
Reference in New Issue
Block a user