Skip to content

Commit

Permalink
Merge PR #686 into 16.0
Browse files Browse the repository at this point in the history
Signed-off-by pedrobaeza
  • Loading branch information
OCA-git-bot committed Dec 12, 2024
2 parents 85e6cab + 0bd0681 commit 22194aa
Showing 1 changed file with 17 additions and 15 deletions.
32 changes: 17 additions & 15 deletions account_mass_reconcile/models/mass_reconcile.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,17 +150,17 @@ def _run_reconcile_method(self, reconcile_method):
return auto_rec_id.automatic_reconcile()

def run_reconcile(self):
def find_reconcile_ids(fieldname, move_line_ids):
def find_reconcile_ids(fieldname, move_line_ids, new_env):
if not move_line_ids:
return []
self.env.flush_all()
new_env.flush_all()
sql = """
SELECT DISTINCT %s FROM account_move_line
WHERE %s IS NOT NULL AND id in %s
"""
params = [AsIs(fieldname), AsIs(fieldname), tuple(move_line_ids)]
self.env.cr.execute(sql, params)
res = self.env.cr.fetchall()
new_env.cr.execute(sql, params)
res = new_env.cr.fetchall()
return [row[0] for row in res]

# we use a new cursor to be able to commit the reconciliation
Expand All @@ -169,10 +169,18 @@ def find_reconcile_ids(fieldname, move_line_ids):
# does not.

for rec in self:
ctx = self.env.context.copy()
ctx["commit_every"] = rec.account.company_id.reconciliation_commit_every
if ctx["commit_every"]:
new_cr = sql_db.db_connect(self.env.cr.dbname).cursor()
new_env = api.Environment(new_cr, self.env.uid, ctx)
else:
new_cr = self.env.cr
new_env = self.env
# SELECT FOR UPDATE the mass reconcile row ; this is done in order
# to avoid 2 processes on the same mass reconcile method.
try:
self.env.cr.execute(
new_env.cr.execute(
"SELECT id FROM account_mass_reconcile"
" WHERE id = %s"
" FOR UPDATE NOWAIT",
Expand All @@ -185,14 +193,6 @@ def find_reconcile_ids(fieldname, move_line_ids):
"please try again later."
)
) from e
ctx = self.env.context.copy()
ctx["commit_every"] = rec.account.company_id.reconciliation_commit_every
if ctx["commit_every"]:
new_cr = sql_db.db_connect(self.env.cr.dbname).cursor()
new_env = api.Environment(new_cr, self.env.uid, ctx)
else:
new_cr = self.env.cr
new_env = self.env

try:
all_ml_rec_ids = []
Expand All @@ -202,8 +202,10 @@ def find_reconcile_ids(fieldname, move_line_ids):

all_ml_rec_ids += ml_rec_ids

reconcile_ids = find_reconcile_ids("full_reconcile_id", all_ml_rec_ids)
self.env["mass.reconcile.history"].create(
reconcile_ids = find_reconcile_ids(
"full_reconcile_id", all_ml_rec_ids, new_env
)
new_env["mass.reconcile.history"].create(
{
"mass_reconcile_id": rec.id,
"date": fields.Datetime.now(),
Expand Down

0 comments on commit 22194aa

Please sign in to comment.