mirror of
https://github.com/OCA/bank-payment.git
synced 2025-02-02 10:37:31 +02:00
[IMP] account_payment_partner: Add refund_payment_mode_id to set in reverse moves (Adapt to 14.0)
This commit is contained in:
committed by
Marçal Isern
parent
cb1293b965
commit
3cb4f5651e
@@ -6,6 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 14.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-05-25 12:38+0000\n"
|
||||
"PO-Revision-Date: 2021-05-25 12:38+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -162,6 +164,11 @@ msgstr ""
|
||||
msgid "Payment Modes"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_payment_partner
|
||||
#: model:ir.model.fields,field_description:account_payment_partner.field_account_payment_mode__refund_payment_mode_id
|
||||
msgid "Payment mode for refunds"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_payment_partner
|
||||
#: model_terms:ir.ui.view,arch_db:account_payment_partner.view_move_line_form
|
||||
msgid "Payments"
|
||||
@@ -206,6 +213,13 @@ msgstr ""
|
||||
msgid "Supplier Payment Mode"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_payment_partner
|
||||
#: model:ir.model.fields,help:account_payment_partner.field_account_payment_mode__refund_payment_mode_id
|
||||
msgid ""
|
||||
"This payment mode will be used when doing refunds coming from the current "
|
||||
"payment mode."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_payment_partner
|
||||
#: code:addons/account_payment_partner/models/account_payment_mode.py:0
|
||||
#, python-format
|
||||
|
||||
@@ -8,16 +8,16 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 11.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-11-23 03:38+0000\n"
|
||||
"PO-Revision-Date: 2021-04-18 16:46+0000\n"
|
||||
"POT-Creation-Date: 2021-05-25 12:38+0000\n"
|
||||
"PO-Revision-Date: 2021-05-25 14:40+0200\n"
|
||||
"Last-Translator: Nelson Ramírez Sánchez <info@konos.cl>\n"
|
||||
"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n"
|
||||
"Language: es\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.3.2\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
|
||||
#. module: account_payment_partner
|
||||
#: model_terms:ir.ui.view,arch_db:account_payment_partner.account_payment_mode_form
|
||||
@@ -173,6 +173,11 @@ msgstr "Dominio de Tipo de Pago Modo Filtro"
|
||||
msgid "Payment Modes"
|
||||
msgstr "Modos de pago"
|
||||
|
||||
#. module: account_payment_partner
|
||||
#: model:ir.model.fields,field_description:account_payment_partner.field_account_payment_mode__refund_payment_mode_id
|
||||
msgid "Payment mode for refunds"
|
||||
msgstr "Modo de pago para rectificaciones"
|
||||
|
||||
#. module: account_payment_partner
|
||||
#: model_terms:ir.ui.view,arch_db:account_payment_partner.view_move_line_form
|
||||
msgid "Payments"
|
||||
@@ -221,6 +226,15 @@ msgstr "Mostrar en facturas nº de cuenta bancaria parcial o completo"
|
||||
msgid "Supplier Payment Mode"
|
||||
msgstr "Modo de pago de proveedor"
|
||||
|
||||
#. module: account_payment_partner
|
||||
#: model:ir.model.fields,help:account_payment_partner.field_account_payment_mode__refund_payment_mode_id
|
||||
msgid ""
|
||||
"This payment mode will be used when doing refunds coming from the current "
|
||||
"payment mode."
|
||||
msgstr ""
|
||||
"Este modo de pago se utilizará cuando se realicen facturas rectificativas provenientes "
|
||||
"del modo de pago actual."
|
||||
|
||||
#. module: account_payment_partner
|
||||
#: code:addons/account_payment_partner/models/account_payment_mode.py:0
|
||||
#, python-format
|
||||
|
||||
@@ -58,23 +58,24 @@ class AccountMove(models.Model):
|
||||
for move in self:
|
||||
move.payment_mode_id = False
|
||||
if move.partner_id:
|
||||
partner = move.with_context(force_company=move.company_id.id).partner_id
|
||||
if move.type == "in_invoice":
|
||||
partner = move.with_company(move.company_id.id).partner_id
|
||||
if move.move_type == "in_invoice":
|
||||
move.payment_mode_id = partner.supplier_payment_mode_id
|
||||
elif move.type == "out_invoice":
|
||||
elif move.move_type == "out_invoice":
|
||||
move.payment_mode_id = partner.customer_payment_mode_id
|
||||
elif (
|
||||
move.type in ["out_refund", "in_refund"] and move.reversed_entry_id
|
||||
move.move_type in ["out_refund", "in_refund"]
|
||||
and move.reversed_entry_id
|
||||
):
|
||||
move.payment_mode_id = (
|
||||
move.reversed_entry_id.payment_mode_id.refund_payment_mode_id
|
||||
)
|
||||
elif not move.reversed_entry_id:
|
||||
if move.type == "out_refund":
|
||||
if move.move_type == "out_refund":
|
||||
move.payment_mode_id = (
|
||||
partner.customer_payment_mode_id.refund_payment_mode_id
|
||||
)
|
||||
elif move.type == "in_refund":
|
||||
elif move.move_type == "in_refund":
|
||||
move.payment_mode_id = (
|
||||
partner.supplier_payment_mode_id.refund_payment_mode_id
|
||||
)
|
||||
@@ -106,8 +107,8 @@ class AccountMove(models.Model):
|
||||
def _reverse_move_vals(self, default_values, cancel=True):
|
||||
move_vals = super()._reverse_move_vals(default_values, cancel=cancel)
|
||||
move_vals["payment_mode_id"] = self.payment_mode_id.refund_payment_mode_id.id
|
||||
if self.type == "in_invoice":
|
||||
move_vals["invoice_partner_bank_id"] = self.invoice_partner_bank_id.id
|
||||
if self.move_type == "in_invoice":
|
||||
move_vals["partner_bank_id"] = self.partner_bank_id.id
|
||||
return move_vals
|
||||
|
||||
def partner_banks_to_show(self):
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
|
||||
|
||||
from odoo import _, fields
|
||||
from odoo.exceptions import ValidationError
|
||||
from odoo.exceptions import UserError, ValidationError
|
||||
from odoo.fields import Date
|
||||
from odoo.tests.common import Form, SavepointCase
|
||||
|
||||
|
||||
@@ -192,11 +193,12 @@ class TestAccountPaymentPartner(SavepointCase):
|
||||
}
|
||||
)
|
||||
|
||||
def _create_invoice(self, default_type, partner):
|
||||
def _create_invoice(self, default_move_type, partner):
|
||||
move_form = Form(
|
||||
self.env["account.move"].with_context(default_type=default_type)
|
||||
self.env["account.move"].with_context(default_move_type=default_move_type)
|
||||
)
|
||||
move_form.partner_id = partner
|
||||
move_form.invoice_date = Date.today()
|
||||
with move_form.invoice_line_ids.new() as line_form:
|
||||
line_form.product_id = self.env.ref("product.product_product_4")
|
||||
line_form.name = "product that cost 100"
|
||||
@@ -274,7 +276,9 @@ class TestAccountPaymentPartner(SavepointCase):
|
||||
self.assertEqual(invoice.partner_bank_id, self.partner_bank_model)
|
||||
|
||||
def test_invoice_create_in_invoice(self):
|
||||
invoice = self._create_invoice(default_type="in_invoice", partner=self.supplier)
|
||||
invoice = self._create_invoice(
|
||||
default_move_type="in_invoice", partner=self.supplier
|
||||
)
|
||||
invoice.action_post()
|
||||
aml = invoice.line_ids.filtered(
|
||||
lambda l: l.account_id.user_type_id == self.acct_type_payable
|
||||
@@ -283,28 +287,32 @@ class TestAccountPaymentPartner(SavepointCase):
|
||||
|
||||
def test_invoice_create_out_invoice(self):
|
||||
invoice = self._create_invoice(
|
||||
default_type="out_invoice", partner=self.customer
|
||||
default_move_type="out_invoice", partner=self.customer
|
||||
)
|
||||
invoice.action_post()
|
||||
aml = invoice.line_ids.filtered(
|
||||
lambda l: l.account_id.user_type_id == self.acct_type_receivable
|
||||
)
|
||||
self.assertEquals(invoice.payment_mode_id, aml[0].payment_mode_id)
|
||||
self.assertEqual(invoice.payment_mode_id, aml[0].payment_mode_id)
|
||||
|
||||
def test_invoice_create_out_refund(self):
|
||||
self.manual_out.bank_account_required = False
|
||||
invoice = self._create_invoice(default_type="out_refund", partner=self.customer)
|
||||
invoice = self._create_invoice(
|
||||
default_move_type="out_refund", partner=self.customer
|
||||
)
|
||||
invoice.action_post()
|
||||
self.assertEquals(
|
||||
self.assertEqual(
|
||||
invoice.payment_mode_id,
|
||||
self.customer.customer_payment_mode_id.refund_payment_mode_id,
|
||||
)
|
||||
|
||||
def test_invoice_create_in_refund(self):
|
||||
self.manual_in.bank_account_required = False
|
||||
invoice = self._create_invoice(default_type="in_refund", partner=self.supplier)
|
||||
invoice = self._create_invoice(
|
||||
default_move_type="in_refund", partner=self.supplier
|
||||
)
|
||||
invoice.action_post()
|
||||
self.assertEquals(
|
||||
self.assertEqual(
|
||||
invoice.payment_mode_id,
|
||||
self.supplier.supplier_payment_mode_id.refund_payment_mode_id,
|
||||
)
|
||||
@@ -371,8 +379,10 @@ class TestAccountPaymentPartner(SavepointCase):
|
||||
self.supplier_payment_mode.company_id = self.company_2
|
||||
|
||||
def test_invoice_in_refund(self):
|
||||
invoice = self._create_invoice(default_type="in_invoice", partner=self.supplier)
|
||||
invoice.invoice_partner_bank_id = False
|
||||
invoice = self._create_invoice(
|
||||
default_move_type="in_invoice", partner=self.supplier
|
||||
)
|
||||
invoice.partner_bank_id = False
|
||||
invoice.action_post()
|
||||
# Lets create a refund invoice for invoice_1.
|
||||
# I refund the invoice Using Refund Button.
|
||||
@@ -390,19 +400,17 @@ class TestAccountPaymentPartner(SavepointCase):
|
||||
refund_invoice = self.move_model.browse(
|
||||
refund_invoice_wizard.reverse_moves()["res_id"]
|
||||
)
|
||||
self.assertEquals(
|
||||
self.assertEqual(
|
||||
refund_invoice.payment_mode_id,
|
||||
invoice.payment_mode_id.refund_payment_mode_id,
|
||||
)
|
||||
self.assertEquals(
|
||||
refund_invoice.invoice_partner_bank_id, invoice.invoice_partner_bank_id
|
||||
)
|
||||
self.assertEqual(refund_invoice.partner_bank_id, invoice.partner_bank_id)
|
||||
|
||||
def test_invoice_out_refund(self):
|
||||
invoice = self._create_invoice(
|
||||
default_type="out_invoice", partner=self.customer
|
||||
default_move_type="out_invoice", partner=self.customer
|
||||
)
|
||||
invoice.invoice_partner_bank_id = False
|
||||
invoice.partner_bank_id = False
|
||||
invoice.action_post()
|
||||
# Lets create a refund invoice for invoice_1.
|
||||
# I refund the invoice Using Refund Button.
|
||||
@@ -421,13 +429,11 @@ class TestAccountPaymentPartner(SavepointCase):
|
||||
refund_invoice_wizard.reverse_moves()["res_id"]
|
||||
)
|
||||
|
||||
self.assertEquals(
|
||||
self.assertEqual(
|
||||
refund_invoice.payment_mode_id,
|
||||
invoice.payment_mode_id.refund_payment_mode_id,
|
||||
)
|
||||
self.assertEquals(
|
||||
refund_invoice.invoice_partner_bank_id, invoice.invoice_partner_bank_id
|
||||
)
|
||||
self.assertEqual(refund_invoice.partner_bank_id, invoice.partner_bank_id)
|
||||
|
||||
def test_partner(self):
|
||||
self.customer.write({"customer_payment_mode_id": self.customer_payment_mode.id})
|
||||
@@ -441,27 +447,25 @@ class TestAccountPaymentPartner(SavepointCase):
|
||||
)
|
||||
self.assertEqual(customer_invoice.payment_mode_id, self.customer_payment_mode)
|
||||
|
||||
self.assertEqual(
|
||||
self.supplier_invoice.invoice_partner_bank_id, self.supplier_bank
|
||||
)
|
||||
vals = {"partner_id": self.customer.id, "type": "out_refund"}
|
||||
self.assertEqual(self.supplier_invoice.partner_bank_id, self.supplier_bank)
|
||||
vals = {"partner_id": self.customer.id, "move_type": "out_refund"}
|
||||
invoice = self.move_model.new(vals)
|
||||
self.assertEquals(invoice.payment_mode_id, self.supplier_payment_mode)
|
||||
vals = {"partner_id": self.supplier.id, "type": "in_refund"}
|
||||
self.assertEqual(invoice.payment_mode_id, self.supplier_payment_mode)
|
||||
vals = {"partner_id": self.supplier.id, "move_type": "in_refund"}
|
||||
invoice = self.move_model.new(vals)
|
||||
self.assertEquals(invoice.payment_mode_id, self.customer_payment_mode)
|
||||
vals = {"partner_id": False, "type": "out_invoice"}
|
||||
self.assertEqual(invoice.payment_mode_id, self.customer_payment_mode)
|
||||
vals = {"partner_id": False, "move_type": "out_invoice"}
|
||||
invoice = self.move_model.new(vals)
|
||||
self.assertFalse(invoice.payment_mode_id)
|
||||
vals = {"partner_id": False, "type": "out_refund"}
|
||||
vals = {"partner_id": False, "move_type": "out_refund"}
|
||||
invoice = self.move_model.new(vals)
|
||||
self.assertFalse(invoice.invoice_partner_bank_id)
|
||||
vals = {"partner_id": False, "type": "in_invoice"}
|
||||
self.assertFalse(invoice.partner_bank_id)
|
||||
vals = {"partner_id": False, "move_type": "in_invoice"}
|
||||
invoice = self.move_model.new(vals)
|
||||
self.assertFalse(invoice.invoice_partner_bank_id)
|
||||
vals = {"partner_id": False, "type": "in_refund"}
|
||||
self.assertFalse(invoice.partner_bank_id)
|
||||
vals = {"partner_id": False, "move_type": "in_refund"}
|
||||
invoice = self.move_model.new(vals)
|
||||
self.assertFalse(invoice.invoice_partner_bank_id)
|
||||
self.assertFalse(invoice.partner_bank_id)
|
||||
|
||||
def test_onchange_payment_mode_id(self):
|
||||
mode = self.supplier_payment_mode
|
||||
|
||||
Reference in New Issue
Block a user