mirror of
https://github.com/OCA/account-reconcile.git
synced 2025-01-20 12:27:39 +02:00
[FIX] account_mass_reconcile : fix write-off with todays date
This commit is contained in:
@@ -177,7 +177,7 @@ class MassReconcileBase(models.AbstractModel):
|
||||
|
||||
move = self.env["account.move"].create(
|
||||
{
|
||||
"date": lines.env.context.get("date_p"),
|
||||
"date": lines.env.context.get("date_p") or fields.Date.today(),
|
||||
"journal_id": journal.id,
|
||||
"currency_id": currency.id,
|
||||
"line_ids": [(0, 0, write_off_vals), (0, 0, counter_part)],
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# © 2023 FactorLibre - Aritz Olea <aritz.olea@factorlibre.com>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from datetime import timedelta
|
||||
from datetime import date, timedelta
|
||||
|
||||
import odoo.tests
|
||||
from odoo import fields
|
||||
@@ -362,3 +362,62 @@ class TestScenarioReconcile(TestAccountReconciliationCommon):
|
||||
writeoff_line.move_id.journal_id.id,
|
||||
self.company_data["default_journal_misc"].id,
|
||||
)
|
||||
|
||||
def test_reconcile_with_writeoff_today(self):
|
||||
yesterday = date.today() - timedelta(days=1)
|
||||
invoice = self._create_invoice(
|
||||
move_type="out_invoice",
|
||||
invoice_amount=50,
|
||||
date_invoice=yesterday,
|
||||
auto_validate=True,
|
||||
)
|
||||
|
||||
receivable_account_id = invoice.partner_id.property_account_receivable_id.id
|
||||
# create payment
|
||||
payment = self.env["account.payment"].create(
|
||||
{
|
||||
"partner_type": "customer",
|
||||
"payment_type": "inbound",
|
||||
"partner_id": invoice.partner_id.id,
|
||||
"destination_account_id": receivable_account_id,
|
||||
"amount": 50.02,
|
||||
"journal_id": self.bank_journal.id,
|
||||
"date": yesterday,
|
||||
}
|
||||
)
|
||||
payment.action_post()
|
||||
|
||||
# create the mass reconcile record
|
||||
mass_rec = self.mass_rec_obj.create(
|
||||
{
|
||||
"name": "mass_reconcile_1",
|
||||
"account": invoice.partner_id.property_account_receivable_id.id,
|
||||
"reconcile_method": [
|
||||
(
|
||||
0,
|
||||
0,
|
||||
{
|
||||
"name": "mass.reconcile.simple.partner",
|
||||
"account_lost_id": self.company_data[
|
||||
"default_account_expense"
|
||||
].id,
|
||||
"account_profit_id": self.company_data[
|
||||
"default_account_revenue"
|
||||
].id,
|
||||
"journal_id": self.company_data["default_journal_misc"].id,
|
||||
"write_off": 0.05,
|
||||
"date_base_on": "actual",
|
||||
},
|
||||
)
|
||||
],
|
||||
}
|
||||
)
|
||||
# call the automatic reconciliation method
|
||||
mass_rec.run_reconcile()
|
||||
self.assertEqual("paid", invoice.payment_state)
|
||||
full_reconcile = invoice.line_ids.mapped("full_reconcile_id")
|
||||
writeoff_line = full_reconcile.reconciled_line_ids.filtered(
|
||||
lambda l: l.debit == 0.02
|
||||
)
|
||||
self.assertEqual(len(writeoff_line), 1)
|
||||
self.assertEqual(writeoff_line.date, fields.Date.today())
|
||||
|
||||
Reference in New Issue
Block a user