Automatic Update form OCA2FC Migrator

This commit is contained in:
Flectra Community Bot 2021-09-19 02:09:57 +00:00 committed by OCA2FC Migrator Bot
parent ed1fad8fd4
commit 8f58983ea0
8 changed files with 137 additions and 83 deletions

View File

@ -15,11 +15,11 @@ addon | version | summary
[account_payment_sale](account_payment_sale/) | 2.0.1.0.0| Adds payment mode on sale orders
[account_banking_pain_base](account_banking_pain_base/) | 2.0.1.0.0| Base module for PAIN file generation
[account_banking_mandate](account_banking_mandate/) | 2.0.1.1.0| Banking mandates
[account_payment_order](account_payment_order/) | 2.0.1.2.3| Account Payment Order
[account_payment_order](account_payment_order/) | 2.0.1.2.4| Account Payment Order
[account_payment_purchase_stock](account_payment_purchase_stock/) | 2.0.1.0.0| Integrate Account Payment Purchase with Stock
[account_banking_sepa_credit_transfer](account_banking_sepa_credit_transfer/) | 2.0.1.0.0| Create SEPA XML files for Credit Transfers
[account_payment_mode](account_payment_mode/) | 2.0.1.0.1| Account Payment Mode
[account_payment_partner](account_payment_partner/) | 2.0.1.3.0| Adds payment mode on partners and invoices
[account_payment_partner](account_payment_partner/) | 2.0.1.3.1| Adds payment mode on partners and invoices
[account_payment_order_return](account_payment_order_return/) | 2.0.1.0.1| Account Payment Order Return

View File

@ -8,7 +8,7 @@
{
"name": "Account Payment Order",
"version": "2.0.1.2.3",
"version": "2.0.1.2.4",
"license": "AGPL-3",
"author": "ACSONE SA/NV, "
"Therp BV, "

View File

@ -1,13 +1,16 @@
# Copyright 2019 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from flectra.tests.common import SavepointCase
from flectra.addons.account.tests.common import AccountTestInvoicingCommon
class TestAccountPayment(SavepointCase):
class TestAccountPayment(AccountTestInvoicingCommon):
@classmethod
def setUpClass(cls):
super(TestAccountPayment, cls).setUpClass()
def setUpClass(cls, chart_template_ref=None):
super().setUpClass(chart_template_ref=chart_template_ref)
cls.company = cls.company_data["company"]
cls.env.user.company_ids += cls.company
# MODELS
cls.account_payment_model = cls.env["account.payment"]
@ -16,17 +19,28 @@ class TestAccountPayment(SavepointCase):
# INSTANCES
# Payment methods
(
cls.inbound_payment_method_01,
cls.inbound_payment_method_02,
) = cls.payment_method_model.search([("payment_type", "=", "inbound")], limit=2)
cls.outbound_payment_method_01 = cls.payment_method_model.search(
[("payment_type", "=", "outbound")], limit=1
cls.inbound_payment_method_01 = cls.payment_method_model.create(
{
"name": "inbound",
"code": "IN",
"payment_type": "inbound",
}
)
cls.inbound_payment_method_02 = cls.inbound_payment_method_01.copy(
{
"name": "inbound 2",
"code": "IN2",
}
)
cls.outbound_payment_method_01 = cls.payment_method_model.create(
{
"name": "outbound",
"code": "OUT",
"payment_type": "outbound",
}
)
# Journals
cls.bank_journal = cls.account_journal_model.search(
[("type", "=", "bank")], limit=1
)
cls.bank_journal = cls.company_data["default_journal_bank"]
cls.bank_journal.inbound_payment_method_ids = [
(
6,
@ -62,8 +76,15 @@ class TestAccountPayment(SavepointCase):
self.assertFalse(self.inbound_payment_method_01.payment_order_only)
self.assertFalse(self.inbound_payment_method_02.payment_order_only)
self.assertFalse(self.bank_journal.inbound_payment_order_only)
new_account_payment = self.account_payment_model.new(
{"journal_id": self.bank_journal.id, "payment_type": "inbound", "amount": 1}
new_account_payment = self.account_payment_model.with_context(
default_company_id=self.company.id
).new(
{
"journal_id": self.bank_journal.id,
"payment_type": "inbound",
"amount": 1,
"company_id": self.company.id,
}
)
# check journals
journals = new_account_payment._get_default_journal()

View File

@ -6,59 +6,64 @@
from datetime import date, timedelta
from flectra.exceptions import UserError, ValidationError
from flectra.tests.common import Form, SavepointCase
from flectra.tests.common import Form
from flectra.addons.account.tests.common import AccountTestInvoicingCommon
class TestPaymentOrderInboundBase(SavepointCase):
class TestPaymentOrderInboundBase(AccountTestInvoicingCommon):
@classmethod
def setUpClass(cls):
self = cls
super().setUpClass()
self.env.user.company_id = self.env.ref("base.main_company").id
self.inbound_mode = self.env.ref(
"account_payment_mode.payment_mode_inbound_dd1"
)
self.invoice_line_account = self.env["account.account"].create(
def setUpClass(cls, chart_template_ref=None):
super().setUpClass(chart_template_ref=chart_template_ref)
cls.company = cls.company_data["company"]
cls.env.user.company_id = cls.company.id
cls.partner = cls.env["res.partner"].create(
{
"name": "Test account",
"code": "TEST1",
"user_type_id": self.env.ref("account.data_account_type_revenue").id,
"name": "Test Partner",
}
)
self.journal = self.env["account.journal"].search(
[("type", "=", "bank"), ("company_id", "=", self.env.user.company_id.id)],
limit=1,
cls.inbound_mode = cls.env["account.payment.mode"].create(
{
"name": "Test Direct Debit of customers",
"bank_account_link": "variable",
"payment_method_id": cls.env.ref(
"account.account_payment_method_manual_in"
).id,
"company_id": cls.company.id,
}
)
self.inbound_mode.variable_journal_ids = self.journal
cls.invoice_line_account = cls.company_data["default_account_revenue"]
cls.journal = cls.company_data["default_journal_bank"]
cls.inbound_mode.variable_journal_ids = cls.journal
# Make sure no others orders are present
self.domain = [
cls.domain = [
("state", "=", "draft"),
("payment_type", "=", "inbound"),
("company_id", "=", self.env.user.company_id.id),
("company_id", "=", cls.env.user.company_id.id),
]
self.payment_order_obj = self.env["account.payment.order"]
self.payment_order_obj.search(self.domain).unlink()
cls.payment_order_obj = cls.env["account.payment.order"]
cls.payment_order_obj.search(cls.domain).unlink()
# Create payment order
self.inbound_order = self.env["account.payment.order"].create(
cls.inbound_order = cls.env["account.payment.order"].create(
{
"payment_type": "inbound",
"payment_mode_id": self.inbound_mode.id,
"journal_id": self.journal.id,
"payment_mode_id": cls.inbound_mode.id,
"journal_id": cls.journal.id,
}
)
# Open invoice
self.invoice = self._create_customer_invoice(self)
self.invoice.action_post()
cls.invoice = cls._create_customer_invoice(cls)
cls.invoice.action_post()
# Add to payment order using the wizard
self.env["account.invoice.payment.line.multi"].with_context(
active_model="account.move", active_ids=self.invoice.ids
cls.env["account.invoice.payment.line.multi"].with_context(
active_model="account.move", active_ids=cls.invoice.ids
).create({}).run()
def _create_customer_invoice(self):
with Form(
self.env["account.move"].with_context(default_move_type="out_invoice")
) as invoice_form:
invoice_form.partner_id = self.env.ref("base.res_partner_4")
invoice_form.partner_id = self.partner
with invoice_form.invoice_line_ids.new() as invoice_line_form:
invoice_line_form.product_id = self.env.ref("product.product_product_4")
invoice_line_form.name = "product that cost 100"
@ -87,11 +92,8 @@ class TestPaymentOrderInbound(TestPaymentOrderInboundBase):
def test_creation(self):
payment_order = self.inbound_order
self.assertEqual(len(payment_order.ids), 1)
bank_journal = self.env["account.journal"].search(
[("type", "=", "bank")], limit=1
)
payment_order.write({"journal_id": bank_journal.id})
payment_order.write({"journal_id": self.journal.id})
self.assertEqual(len(payment_order.payment_line_ids), 1)
self.assertEqual(len(payment_order.bank_line_ids), 0)

View File

@ -6,49 +6,65 @@ from datetime import date, datetime, timedelta
from flectra import fields
from flectra.exceptions import UserError, ValidationError
from flectra.tests.common import TransactionCase
from flectra.addons.account.tests.common import AccountTestInvoicingCommon
class TestPaymentOrderOutbound(TransactionCase):
def setUp(self):
super(TestPaymentOrderOutbound, self).setUp()
self.env.user.company_id = self.env.ref("base.main_company").id
self.journal = self.env["account.journal"].search(
[("type", "=", "bank")], limit=1
class TestPaymentOrderOutbound(AccountTestInvoicingCommon):
@classmethod
def setUpClass(cls, chart_template_ref=None):
super().setUpClass(chart_template_ref=chart_template_ref)
cls.company = cls.company_data["company"]
cls.env.user.company_id = cls.company.id
cls.partner = cls.env["res.partner"].create(
{
"name": "Test Partner",
}
)
self.invoice_line_account = self.env["account.account"].create(
cls.invoice_line_account = cls.env["account.account"].create(
{
"name": "Test account",
"code": "TEST1",
"user_type_id": self.env.ref("account.data_account_type_expenses").id,
"user_type_id": cls.env.ref("account.data_account_type_expenses").id,
}
)
self.invoice = self._create_supplier_invoice()
self.invoice_02 = self._create_supplier_invoice()
self.mode = self.env.ref("account_payment_mode.payment_mode_outbound_ct1")
self.creation_mode = self.env.ref(
"account_payment_mode.payment_mode_outbound_dd1"
cls.mode = cls.env["account.payment.mode"].create(
{
"name": "Test Credit Transfer to Suppliers",
"company_id": cls.company.id,
"bank_account_link": "variable",
"payment_method_id": cls.env.ref(
"account.account_payment_method_manual_out"
).id,
}
)
self.bank_journal = self.env["account.journal"].search(
[("type", "=", "bank"), ("company_id", "=", self.env.user.company_id.id)],
limit=1,
cls.creation_mode = cls.env["account.payment.mode"].create(
{
"name": "Test Direct Debit of suppliers from Société Générale",
"company_id": cls.company.id,
"bank_account_link": "variable",
"payment_method_id": cls.env.ref(
"account.account_payment_method_manual_out"
).id,
}
)
cls.invoice = cls._create_supplier_invoice(cls)
cls.invoice_02 = cls._create_supplier_invoice(cls)
cls.bank_journal = cls.company_data["default_journal_bank"]
# Make sure no other payment orders are in the DB
self.domain = [
cls.domain = [
("state", "=", "draft"),
("payment_type", "=", "outbound"),
("company_id", "=", self.env.user.company_id.id),
("company_id", "=", cls.env.user.company_id.id),
]
self.env["account.payment.order"].search(self.domain).unlink()
cls.env["account.payment.order"].search(cls.domain).unlink()
def _create_supplier_invoice(self):
invoice = self.env["account.move"].create(
{
"partner_id": self.env.ref("base.res_partner_4").id,
"partner_id": self.partner.id,
"move_type": "in_invoice",
"payment_mode_id": self.env.ref(
"account_payment_mode.payment_mode_outbound_ct1"
).id,
"payment_mode_id": self.mode.id,
"invoice_date": fields.Date.today(),
"invoice_line_ids": [
(
@ -154,11 +170,8 @@ class TestPaymentOrderOutbound(TransactionCase):
payment_order = self.env["account.payment.order"].search(self.domain)
self.assertEqual(len(payment_order), 1)
bank_journal = self.env["account.journal"].search(
[("type", "=", "bank")], limit=1
)
payment_order.write({"journal_id": bank_journal.id})
payment_order.write({"journal_id": self.bank_journal.id})
self.assertEqual(len(payment_order.payment_line_ids), 1)
self.assertEqual(len(payment_order.bank_line_ids), 0)
@ -191,7 +204,7 @@ class TestPaymentOrderOutbound(TransactionCase):
{
"payment_type": "outbound",
"payment_mode_id": self.mode.id,
"journal_id": self.journal.id,
"journal_id": self.bank_journal.id,
}
)
with self.assertRaises(ValidationError):

View File

@ -6,7 +6,7 @@
{
"name": "Account Payment Partner",
"version": "2.0.1.3.0",
"version": "2.0.1.3.1",
"category": "Banking addons",
"license": "AGPL-3",
"summary": "Adds payment mode on partners and invoices",

View File

@ -56,7 +56,9 @@ class AccountMove(models.Model):
@api.depends("partner_id", "company_id")
def _compute_payment_mode(self):
for move in self:
move.payment_mode_id = False
move.payment_mode_id = move.payment_mode_id
if move.company_id and move.payment_mode_id.company_id != move.company_id:
move.payment_mode_id = False
if move.partner_id:
partner = move.with_company(move.company_id.id).partner_id
if move.move_type == "in_invoice":

View File

@ -282,7 +282,7 @@ class TestAccountPaymentPartner(SavepointCase):
self.assertFalse(invoice.partner_bank_id)
invoice.partner_id = False
self.assertEqual(invoice.payment_mode_id, self.payment_mode_model)
self.assertEqual(invoice.payment_mode_id, self.supplier_payment_mode_c2)
self.assertEqual(invoice.partner_bank_id, self.partner_bank_model)
def test_invoice_create_in_invoice(self):
@ -550,3 +550,19 @@ class TestAccountPaymentPartner(SavepointCase):
self.assertEqual(
out_invoice.partner_bank_filter_type_domain, out_invoice.bank_partner_id
)
def test_account_move_payment_mode_id_default(self):
payment_mode = self.env.ref("account_payment_mode.payment_mode_inbound_dd1")
field = self.env["ir.model.fields"].search(
[
("model_id.model", "=", self.move_model._name),
("name", "=", "payment_mode_id"),
]
)
move_form = Form(self.move_model.with_context(default_type="out_invoice"))
self.assertFalse(move_form.payment_mode_id)
self.env["ir.default"].create(
{"field_id": field.id, "json_value": payment_mode.id}
)
move_form = Form(self.move_model.with_context(default_type="out_invoice"))
self.assertEqual(move_form.payment_mode_id, payment_mode)