[FIX] Synchronise partner from statement line to accounting entries
We need to look at the reconcile_data to find the partner as the manual_partner_id can contain the information of an auxiliary linepull/788/head
parent
8c34bd0d89
commit
82eb24b736
|
@ -984,20 +984,38 @@ class AccountBankStatementLine(models.Model):
|
||||||
if self._context.get("skip_account_move_synchronization"):
|
if self._context.get("skip_account_move_synchronization"):
|
||||||
return
|
return
|
||||||
|
|
||||||
if not any(f_name in changed_fields for f_name in ("manual_partner_id",)):
|
# we actually check reconcile_data to find the partner of the liquidity lines
|
||||||
|
# because the written manual_partner_id is not always related to the liquidity
|
||||||
|
# line...
|
||||||
|
if not any(f_name in changed_fields for f_name in ("reconcile_data",)):
|
||||||
return
|
return
|
||||||
|
|
||||||
for st_line in self.with_context(skip_account_move_synchronization=True):
|
for st_line in self.with_context(skip_account_move_synchronization=True):
|
||||||
liquidity_lines, suspense_lines, _other_lines = st_line._seek_for_lines()
|
data = st_line.reconcile_data_info.get("data", [])
|
||||||
line_vals = {"partner_id": st_line.manual_partner_id.id}
|
partner_id = False
|
||||||
line_ids_commands = [(1, liquidity_lines.id, line_vals)]
|
for line_data in data:
|
||||||
if suspense_lines:
|
if line_data["kind"] == "liquidity":
|
||||||
line_ids_commands.append((1, suspense_lines.id, line_vals))
|
partner_id = (
|
||||||
st_line_vals = {"line_ids": line_ids_commands}
|
line_data.get("partner_id")
|
||||||
if st_line.move_id.partner_id != st_line.manual_partner_id:
|
and line_data.get("partner_id")[0]
|
||||||
st_line_vals["partner_id"] = st_line.manual_partner_id.id
|
or False
|
||||||
st_line.move_id.write(st_line_vals)
|
)
|
||||||
st_line.write({"partner_id": st_line.manual_partner_id.id})
|
break
|
||||||
|
if st_line.partner_id.id != partner_id:
|
||||||
|
(
|
||||||
|
liquidity_lines,
|
||||||
|
suspense_lines,
|
||||||
|
_other_lines,
|
||||||
|
) = st_line._seek_for_lines()
|
||||||
|
line_vals = {"partner_id": partner_id}
|
||||||
|
line_ids_commands = [(1, liquidity_lines.id, line_vals)]
|
||||||
|
if suspense_lines:
|
||||||
|
line_ids_commands.append((1, suspense_lines.id, line_vals))
|
||||||
|
st_line_vals = {"line_ids": line_ids_commands}
|
||||||
|
if st_line.move_id.partner_id.id != partner_id:
|
||||||
|
st_line_vals["partner_id"] = partner_id
|
||||||
|
st_line.move_id.write(st_line_vals)
|
||||||
|
st_line.write({"partner_id": partner_id})
|
||||||
|
|
||||||
def _synchronize_to_moves(self, changed_fields):
|
def _synchronize_to_moves(self, changed_fields):
|
||||||
"""We take advantage of this method to call the custom method that does
|
"""We take advantage of this method to call the custom method that does
|
||||||
|
|
Loading…
Reference in New Issue