mirror of
https://github.com/OCA/bank-payment.git
synced 2025-02-02 10:37:31 +02:00
[MIG] account_payment_partner: Migration to 14.0
This commit is contained in:
committed by
Thomas Binsfeld
parent
cf6cee8a86
commit
d1fa981bd2
@@ -5,7 +5,7 @@
|
||||
|
||||
{
|
||||
"name": "Account Payment Partner",
|
||||
"version": "13.0.1.0.1",
|
||||
"version": "14.0.1.0.0",
|
||||
"category": "Banking addons",
|
||||
"license": "AGPL-3",
|
||||
"summary": "Adds payment mode on partners and invoices",
|
||||
|
||||
@@ -25,29 +25,29 @@ class AccountMove(models.Model):
|
||||
bank_account_required = fields.Boolean(
|
||||
related="payment_mode_id.payment_method_id.bank_account_required", readonly=True
|
||||
)
|
||||
invoice_partner_bank_id = fields.Many2one(
|
||||
compute="_compute_invoice_partner_bank",
|
||||
partner_bank_id = fields.Many2one(
|
||||
compute="_compute_partner_bank",
|
||||
store=True,
|
||||
ondelete="restrict",
|
||||
readonly=False,
|
||||
)
|
||||
|
||||
@api.depends("type")
|
||||
@api.depends("move_type")
|
||||
def _compute_payment_mode_filter_type_domain(self):
|
||||
for move in self:
|
||||
if move.type in ("out_invoice", "in_refund"):
|
||||
if move.move_type in ("out_invoice", "in_refund"):
|
||||
move.payment_mode_filter_type_domain = "inbound"
|
||||
elif move.type in ("in_invoice", "out_refund"):
|
||||
elif move.move_type in ("in_invoice", "out_refund"):
|
||||
move.payment_mode_filter_type_domain = "outbound"
|
||||
else:
|
||||
move.payment_mode_filter_type_domain = False
|
||||
|
||||
@api.depends("partner_id", "type")
|
||||
@api.depends("partner_id", "move_type")
|
||||
def _compute_partner_bank_filter_type_domain(self):
|
||||
for move in self:
|
||||
if move.type in ("out_invoice", "in_refund"):
|
||||
if move.move_type in ("out_invoice", "in_refund"):
|
||||
move.partner_bank_filter_type_domain = move.bank_partner_id
|
||||
elif move.type in ("in_invoice", "out_refund"):
|
||||
elif move.move_type in ("in_invoice", "out_refund"):
|
||||
move.partner_bank_filter_type_domain = move.commercial_partner_id
|
||||
else:
|
||||
move.partner_bank_filter_type_domain = False
|
||||
@@ -57,17 +57,17 @@ class AccountMove(models.Model):
|
||||
for move in self:
|
||||
move.payment_mode_id = False
|
||||
if move.partner_id:
|
||||
if move.type == "in_invoice":
|
||||
move.payment_mode_id = move.with_context(
|
||||
force_company=move.company_id.id
|
||||
if move.move_type == "in_invoice":
|
||||
move.payment_mode_id = move.with_company(
|
||||
move.company_id.id
|
||||
).partner_id.supplier_payment_mode_id
|
||||
elif move.type == "out_invoice":
|
||||
move.payment_mode_id = move.with_context(
|
||||
force_company=move.company_id.id
|
||||
elif move.move_type == "out_invoice":
|
||||
move.payment_mode_id = move.with_company(
|
||||
move.company_id.id
|
||||
).partner_id.customer_payment_mode_id
|
||||
|
||||
@api.depends("partner_id", "payment_mode_id")
|
||||
def _compute_invoice_partner_bank(self):
|
||||
def _compute_partner_bank(self):
|
||||
for move in self:
|
||||
# No bank account assignation is done for out_invoice as this is only
|
||||
# needed for printing purposes and it can conflict with
|
||||
@@ -80,7 +80,7 @@ class AccountMove(models.Model):
|
||||
bank_id = False
|
||||
if move.partner_id:
|
||||
pay_mode = move.payment_mode_id
|
||||
if move.type == "in_invoice":
|
||||
if move.move_type == "in_invoice":
|
||||
if (
|
||||
pay_mode
|
||||
and pay_mode.payment_type == "outbound"
|
||||
@@ -88,7 +88,7 @@ class AccountMove(models.Model):
|
||||
and move.commercial_partner_id.bank_ids
|
||||
):
|
||||
bank_id = get_bank_id()
|
||||
move.invoice_partner_bank_id = bank_id
|
||||
move.partner_bank_id = bank_id
|
||||
|
||||
# I think copying payment mode from invoice to refund by default
|
||||
# is a good idea because the most common way of "paying" a refund is to
|
||||
@@ -97,8 +97,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.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
|
||||
|
||||
@api.constrains("company_id", "payment_mode_id")
|
||||
@@ -115,8 +115,8 @@ class AccountMove(models.Model):
|
||||
|
||||
def partner_banks_to_show(self):
|
||||
self.ensure_one()
|
||||
if self.invoice_partner_bank_id:
|
||||
return self.invoice_partner_bank_id
|
||||
if self.partner_bank_id:
|
||||
return self.partner_bank_id
|
||||
if self.payment_mode_id.show_bank_account_from_journal:
|
||||
if self.payment_mode_id.bank_account_link == "fixed":
|
||||
return self.payment_mode_id.fixed_journal_id.bank_account_id
|
||||
@@ -132,4 +132,4 @@ class AccountMove(models.Model):
|
||||
or self.partner_id.valid_mandate_id.partner_bank_id
|
||||
)
|
||||
# Return this as empty recordset
|
||||
return self.invoice_partner_bank_id
|
||||
return self.partner_bank_id
|
||||
|
||||
@@ -12,3 +12,4 @@
|
||||
* `DynApps <https://www.dynapps.be>`_:
|
||||
|
||||
* Raf Ven <raf.ven@dynapps.be>
|
||||
* Marçal Isern <marsal.isern@qubiq.es>
|
||||
|
||||
@@ -30,7 +30,7 @@ class TestAccountPaymentPartner(common.SavepointCase):
|
||||
raise ValidationError(_("No Chart of Account Template has been defined !"))
|
||||
old_company = cls.env.user.company_id
|
||||
cls.env.user.company_id = cls.company_2.id
|
||||
cls.chart.try_loading_for_current_company()
|
||||
cls.chart.try_loading()
|
||||
cls.env.user.company_id = old_company.id
|
||||
|
||||
# refs
|
||||
@@ -112,7 +112,7 @@ class TestAccountPaymentPartner(common.SavepointCase):
|
||||
|
||||
cls.customer = (
|
||||
cls.env["res.partner"]
|
||||
.with_context(force_company=cls.company.id)
|
||||
.with_company(cls.company.id)
|
||||
.create(
|
||||
{
|
||||
"name": "Test customer",
|
||||
@@ -123,7 +123,7 @@ class TestAccountPaymentPartner(common.SavepointCase):
|
||||
|
||||
cls.supplier = (
|
||||
cls.env["res.partner"]
|
||||
.with_context(force_company=cls.company.id)
|
||||
.with_company(cls.company.id)
|
||||
.create(
|
||||
{
|
||||
"name": "Test supplier",
|
||||
@@ -145,8 +145,8 @@ class TestAccountPaymentPartner(common.SavepointCase):
|
||||
"company_id": cls.company_2.id,
|
||||
}
|
||||
)
|
||||
cls.supplier.with_context(
|
||||
force_company=cls.company_2.id
|
||||
cls.supplier.with_company(
|
||||
cls.company_2.id
|
||||
).supplier_payment_mode_id = cls.supplier_payment_mode_c2
|
||||
|
||||
cls.invoice_account = cls.env["account.account"].search(
|
||||
@@ -180,7 +180,7 @@ class TestAccountPaymentPartner(common.SavepointCase):
|
||||
cls.supplier_invoice = cls.move_model.create(
|
||||
{
|
||||
"partner_id": cls.supplier.id,
|
||||
"type": "in_invoice",
|
||||
"move_type": "in_invoice",
|
||||
"journal_id": cls.journal_c1.id,
|
||||
}
|
||||
)
|
||||
@@ -190,7 +190,7 @@ class TestAccountPaymentPartner(common.SavepointCase):
|
||||
{
|
||||
"partner_id": self.supplier.id,
|
||||
"journal_id": self.journal_purchase.id,
|
||||
"type": "in_invoice",
|
||||
"move_type": "in_invoice",
|
||||
"company_id": self.company.id,
|
||||
"payment_mode_id": self.env.ref(
|
||||
"account_payment_mode.payment_mode_outbound_ct1"
|
||||
@@ -215,7 +215,7 @@ class TestAccountPaymentPartner(common.SavepointCase):
|
||||
def test_create_partner(self):
|
||||
customer = (
|
||||
self.env["res.partner"]
|
||||
.with_context(force_company=self.company.id)
|
||||
.with_company(self.company.id)
|
||||
.create(
|
||||
{
|
||||
"name": "Test customer",
|
||||
@@ -224,16 +224,12 @@ class TestAccountPaymentPartner(common.SavepointCase):
|
||||
)
|
||||
)
|
||||
|
||||
self.assertEquals(
|
||||
customer.with_context(
|
||||
force_company=self.company.id
|
||||
).customer_payment_mode_id,
|
||||
self.assertEqual(
|
||||
customer.with_company(self.company.id).customer_payment_mode_id,
|
||||
self.customer_payment_mode,
|
||||
)
|
||||
self.assertEquals(
|
||||
customer.with_context(
|
||||
force_company=self.company_2.id
|
||||
).customer_payment_mode_id,
|
||||
self.assertEqual(
|
||||
customer.with_company(self.company_2.id).customer_payment_mode_id,
|
||||
self.payment_mode_model,
|
||||
)
|
||||
|
||||
@@ -242,17 +238,17 @@ class TestAccountPaymentPartner(common.SavepointCase):
|
||||
invoice = self.move_model.new(
|
||||
{
|
||||
"partner_id": self.customer.id,
|
||||
"type": "out_invoice",
|
||||
"move_type": "out_invoice",
|
||||
"company_id": self.company.id,
|
||||
}
|
||||
)
|
||||
self.assertEquals(invoice.payment_mode_id, self.customer_payment_mode)
|
||||
self.assertEqual(invoice.payment_mode_id, self.customer_payment_mode)
|
||||
|
||||
invoice.company_id = self.company_2
|
||||
self.assertEquals(invoice.payment_mode_id, self.payment_mode_model)
|
||||
self.assertEqual(invoice.payment_mode_id, self.payment_mode_model)
|
||||
|
||||
invoice.payment_mode_id = False
|
||||
self.assertFalse(invoice.invoice_partner_bank_id)
|
||||
self.assertFalse(invoice.partner_bank_id)
|
||||
|
||||
def test_in_invoice_onchange(self):
|
||||
# Test the onchange methods in invoice
|
||||
@@ -260,28 +256,28 @@ class TestAccountPaymentPartner(common.SavepointCase):
|
||||
invoice = self.move_model.new(
|
||||
{
|
||||
"partner_id": self.supplier.id,
|
||||
"type": "in_invoice",
|
||||
"move_type": "in_invoice",
|
||||
"company_id": self.company.id,
|
||||
}
|
||||
)
|
||||
self.assertEquals(invoice.payment_mode_id, self.supplier_payment_mode)
|
||||
self.assertEquals(invoice.invoice_partner_bank_id, self.supplier_bank)
|
||||
self.assertEqual(invoice.payment_mode_id, self.supplier_payment_mode)
|
||||
self.assertEqual(invoice.partner_bank_id, self.supplier_bank)
|
||||
|
||||
invoice.company_id = self.company_2
|
||||
self.assertEquals(invoice.payment_mode_id, self.supplier_payment_mode_c2)
|
||||
self.assertEquals(invoice.invoice_partner_bank_id, self.supplier_bank_2)
|
||||
self.assertEqual(invoice.payment_mode_id, self.supplier_payment_mode_c2)
|
||||
self.assertEqual(invoice.partner_bank_id, self.supplier_bank_2)
|
||||
|
||||
invoice.payment_mode_id = self.supplier_payment_mode
|
||||
self.assertTrue(invoice.invoice_partner_bank_id)
|
||||
self.assertTrue(invoice.partner_bank_id)
|
||||
|
||||
self.manual_out.bank_account_required = False
|
||||
|
||||
invoice.payment_mode_id = self.supplier_payment_mode_c2
|
||||
self.assertFalse(invoice.invoice_partner_bank_id)
|
||||
self.assertFalse(invoice.partner_bank_id)
|
||||
|
||||
invoice.partner_id = False
|
||||
self.assertEquals(invoice.payment_mode_id, self.payment_mode_model)
|
||||
self.assertEquals(invoice.invoice_partner_bank_id, self.partner_bank_model)
|
||||
self.assertEqual(invoice.payment_mode_id, self.payment_mode_model)
|
||||
self.assertEqual(invoice.partner_bank_id, self.partner_bank_model)
|
||||
|
||||
def test_invoice_create(self):
|
||||
invoice = self._create_invoice()
|
||||
@@ -289,14 +285,14 @@ class TestAccountPaymentPartner(common.SavepointCase):
|
||||
aml = invoice.line_ids.filtered(
|
||||
lambda l: l.account_id.user_type_id == self.acct_type_payable
|
||||
)
|
||||
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_constrains(self):
|
||||
with self.assertRaises(ValidationError):
|
||||
self.move_model.create(
|
||||
{
|
||||
"partner_id": self.supplier.id,
|
||||
"type": "in_invoice",
|
||||
"move_type": "in_invoice",
|
||||
"company_id": self.company.id,
|
||||
"payment_mode_id": self.supplier_payment_mode_c2.id,
|
||||
}
|
||||
@@ -306,7 +302,7 @@ class TestAccountPaymentPartner(common.SavepointCase):
|
||||
self.move_model.create(
|
||||
{
|
||||
"partner_id": self.supplier.id,
|
||||
"type": "in_invoice",
|
||||
"move_type": "in_invoice",
|
||||
"company_id": self.company.id,
|
||||
}
|
||||
)
|
||||
@@ -352,7 +348,7 @@ class TestAccountPaymentPartner(common.SavepointCase):
|
||||
|
||||
def test_invoice_refund(self):
|
||||
invoice = self._create_invoice()
|
||||
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.
|
||||
@@ -371,10 +367,8 @@ class TestAccountPaymentPartner(common.SavepointCase):
|
||||
refund_invoice_wizard.reverse_moves()["res_id"]
|
||||
)
|
||||
|
||||
self.assertEquals(refund_invoice.payment_mode_id, invoice.payment_mode_id)
|
||||
self.assertEquals(
|
||||
refund_invoice.invoice_partner_bank_id, invoice.invoice_partner_bank_id
|
||||
)
|
||||
self.assertEqual(refund_invoice.payment_mode_id, invoice.payment_mode_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})
|
||||
@@ -384,56 +378,50 @@ class TestAccountPaymentPartner(common.SavepointCase):
|
||||
|
||||
def test_partner_onchange(self):
|
||||
customer_invoice = self.move_model.create(
|
||||
{"partner_id": self.customer.id, "type": "out_invoice"}
|
||||
{"partner_id": self.customer.id, "move_type": "out_invoice"}
|
||||
)
|
||||
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": False, "type": "out_invoice"}
|
||||
self.assertEqual(self.supplier_invoice.partner_bank_id, self.supplier_bank)
|
||||
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": "in_invoice"}
|
||||
vals = {"partner_id": False, "move_type": "in_invoice"}
|
||||
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
|
||||
mode.payment_method_id.bank_account_required = True
|
||||
self.supplier_invoice.invoice_partner_bank_id = self.supplier_bank.id
|
||||
self.supplier_invoice.partner_bank_id = self.supplier_bank.id
|
||||
self.supplier_invoice.payment_mode_id = mode.id
|
||||
self.assertEqual(
|
||||
self.supplier_invoice.invoice_partner_bank_id, self.supplier_bank
|
||||
)
|
||||
self.assertEqual(self.supplier_invoice.partner_bank_id, self.supplier_bank)
|
||||
mode.payment_method_id.bank_account_required = False
|
||||
self.assertEqual(
|
||||
self.supplier_invoice.invoice_partner_bank_id, self.supplier_bank
|
||||
)
|
||||
self.assertEqual(self.supplier_invoice.partner_bank_id, self.supplier_bank)
|
||||
self.supplier_invoice.payment_mode_id = False
|
||||
self.assertFalse(self.supplier_invoice.invoice_partner_bank_id)
|
||||
self.assertFalse(self.supplier_invoice.partner_bank_id)
|
||||
|
||||
def test_print_report(self):
|
||||
self.supplier_invoice.invoice_partner_bank_id = self.supplier_bank.id
|
||||
self.supplier_invoice.partner_bank_id = self.supplier_bank.id
|
||||
report = self.env.ref("account.account_invoices")
|
||||
res = str(report.render_qweb_html(self.supplier_invoice.ids)[0])
|
||||
res = str(report._render_qweb_html(self.supplier_invoice.ids)[0])
|
||||
self.assertIn(self.supplier_bank.acc_number, res)
|
||||
payment_mode = self.supplier_payment_mode
|
||||
payment_mode.show_bank_account_from_journal = True
|
||||
self.supplier_invoice.payment_mode_id = payment_mode.id
|
||||
self.supplier_invoice.invoice_partner_bank_id = False
|
||||
res = str(report.render_qweb_html(self.supplier_invoice.ids)[0])
|
||||
self.supplier_invoice.partner_bank_id = False
|
||||
res = str(report._render_qweb_html(self.supplier_invoice.ids)[0])
|
||||
self.assertIn(self.journal_c1.bank_acc_number, res)
|
||||
payment_mode.bank_account_link = "variable"
|
||||
payment_mode.variable_journal_ids = [(6, 0, self.journal.ids)]
|
||||
res = str(report.render_qweb_html(self.supplier_invoice.ids)[0])
|
||||
res = str(report._render_qweb_html(self.supplier_invoice.ids)[0])
|
||||
self.assertIn(self.journal_bank.acc_number, res)
|
||||
|
||||
def test_filter_type_domain(self):
|
||||
in_invoice = self.move_model.create(
|
||||
{
|
||||
"partner_id": self.supplier.id,
|
||||
"type": "in_invoice",
|
||||
"move_type": "in_invoice",
|
||||
"journal_id": self.journal_c1.id,
|
||||
}
|
||||
)
|
||||
@@ -444,7 +432,7 @@ class TestAccountPaymentPartner(common.SavepointCase):
|
||||
out_refund = self.move_model.create(
|
||||
{
|
||||
"partner_id": self.customer.id,
|
||||
"type": "out_refund",
|
||||
"move_type": "out_refund",
|
||||
"journal_id": self.journal_c2.id,
|
||||
}
|
||||
)
|
||||
@@ -455,7 +443,7 @@ class TestAccountPaymentPartner(common.SavepointCase):
|
||||
in_refund = self.move_model.create(
|
||||
{
|
||||
"partner_id": self.supplier.id,
|
||||
"type": "in_refund",
|
||||
"move_type": "in_refund",
|
||||
"journal_id": self.journal_c1.id,
|
||||
}
|
||||
)
|
||||
@@ -466,7 +454,7 @@ class TestAccountPaymentPartner(common.SavepointCase):
|
||||
out_invoice = self.move_model.create(
|
||||
{
|
||||
"partner_id": self.customer.id,
|
||||
"type": "out_invoice",
|
||||
"move_type": "out_invoice",
|
||||
"journal_id": self.journal_c2.id,
|
||||
}
|
||||
)
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<field name="payment_mode_filter_type_domain" invisible="1" />
|
||||
<field name="partner_bank_filter_type_domain" invisible="1" />
|
||||
</xpath>
|
||||
<field name="invoice_partner_bank_id" position="attributes">
|
||||
<field name="partner_bank_id" position="attributes">
|
||||
<attribute name="domain">
|
||||
[('partner_id', '=', partner_bank_filter_type_domain),
|
||||
'|',('company_id', '=', company_id),('company_id', '=', False)]
|
||||
|
||||
Reference in New Issue
Block a user