Skip to content

Commit 5fdf321

Browse files
unaiberisanajuaristi
authored andcommitted
[IMP] account_invoice_section_repair: Improve error
1 parent 50e05d2 commit 5fdf321

File tree

1 file changed

+25
-37
lines changed

1 file changed

+25
-37
lines changed

account_invoice_section_repair/models/account_move.py

Lines changed: 25 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -14,46 +14,40 @@ class AccountMove(models.Model):
1414
def create(self, vals_list):
1515
if "from_repair_order" not in self.env.context:
1616
return super().create(vals_list)
17-
repairs_processed = self.env["repair.order"]
18-
pending_fee = True
17+
my_invoice_line_ids = []
18+
repairs_treated = self.env["repair.order"]
19+
fee_pending = True
1920
for vals in vals_list:
20-
updated_invoice_lines = []
21-
invoice_lines = vals.get("invoice_line_ids", [])
22-
for line_vals in invoice_lines:
23-
line_data = line_vals[2]
24-
if "repair_line_ids" in line_data:
21+
lines_vals = vals.get("invoice_line_ids")
22+
for line_vals in lines_vals:
23+
if "repair_line_ids" in line_vals[2]:
2524
repair_line = self.env["repair.line"].browse(
26-
line_data["repair_line_ids"][0][1]
25+
line_vals[2].get("repair_line_ids")[0][1]
2726
)
28-
repair_order = repair_line.repair_id
29-
if repair_order not in repairs_processed:
30-
pending_fee = True
31-
repairs_processed += repair_order
32-
updated_invoice_lines = self._prepare_repair_info_section(
33-
repair_order,
34-
updated_invoice_lines,
35-
add_fee=False,
36-
print_repair_info=True,
27+
if repair_line.repair_id not in repairs_treated:
28+
fee_pending = True
29+
repairs_treated += repair_line.repair_id
30+
my_invoice_line_ids = self._prepare_repair_info_section(
31+
repair_line.repair_id, my_invoice_line_ids, False, True
3732
)
38-
elif "repair_fee_ids" in line_data:
33+
elif "repair_fee_ids" in line_vals[2]:
3934
repair_fee = self.env["repair.fee"].browse(
40-
line_data["repair_fee_ids"][0][1]
35+
line_vals[2].get("repair_fee_ids")[0][1]
4136
)
42-
repair_order = repair_fee.repair_id
4337
print_repair_info = False
44-
if (repair_order not in repairs_processed) or pending_fee:
45-
if repair_order not in repairs_processed:
38+
if (repair_fee.repair_id not in repairs_treated) or fee_pending:
39+
if repair_fee.repair_id not in repairs_treated:
4640
print_repair_info = True
47-
repairs_processed += repair_order
48-
pending_fee = False
49-
updated_invoice_lines = self._prepare_repair_info_section(
50-
repair_order,
51-
updated_invoice_lines,
52-
add_fee=True,
53-
print_repair_info=print_repair_info,
41+
repairs_treated += repair_fee.repair_id
42+
fee_pending = False
43+
my_invoice_line_ids = self._prepare_repair_info_section(
44+
repair_fee.repair_id,
45+
my_invoice_line_ids,
46+
True,
47+
print_repair_info,
5448
)
55-
updated_invoice_lines.append(line_vals)
56-
vals["invoice_line_ids"] = updated_invoice_lines
49+
my_invoice_line_ids.append(line_vals)
50+
vals["invoice_line_ids"] = my_invoice_line_ids
5751
return super().create(vals_list)
5852

5953
def _prepare_repair_info_section(
@@ -89,28 +83,22 @@ def _prepare_values_for_repair(self, repair):
8983
return vals
9084

9185
def _get_repair_name_for_values(self, repair):
92-
9386
date_repair = self._convert_to_local_date(repair.date_repair, repair.user_id)
94-
9587
repair_name = _("Repair: %(repair)s, Date: %(date)s") % {
9688
"repair": repair.name,
9789
"date": date_repair,
9890
}
99-
10091
if repair.lot_id:
10192
repair_name = _("%(repair_name)s, Num. Serie: %(lot)s") % {
10293
"repair_name": repair_name,
10394
"lot": repair.lot_id.name,
10495
}
105-
10696
if repair.quotation_notes:
10797
quotation_notes = repair.convert_html_notes_to_char(repair.quotation_notes)
108-
10998
repair_name = _("%(repair_name)s\n%(notes)s") % {
11099
"repair_name": repair_name,
111100
"notes": quotation_notes,
112101
}
113-
114102
return repair_name
115103

116104
def _convert_to_local_date(self, mydate, user):

0 commit comments

Comments
 (0)