Skip to content

Commit 5b8c077

Browse files
authored
Merge pull request #790 from Som-Energia/FIX_dual_RBS_in_pdf_invoice
Arreglar la visualització del bo social partit a la factura en pdf
2 parents dd1dce2 + a37cbec commit 5b8c077

File tree

2 files changed

+29
-19
lines changed

2 files changed

+29
-19
lines changed

giscedata_facturacio_comer_som/giscedata_facturacio_report.py

+17-13
Original file line numberDiff line numberDiff line change
@@ -3266,28 +3266,32 @@ def get_sub_component_invoice_details_td_excess_power_quarterhours(self, fact, p
32663266
return data
32673267

32683268
def get_sub_component_invoice_details_td_bo_social_2023_data(self, fact, pol):
3269-
days = 0.0
3270-
price_per_day = 0.0
3271-
subtotal = 0.0
32723269
visible = False
3273-
iva = ""
3274-
3270+
rbs_price_per_days = {}
3271+
rbs_lines = []
32753272
for l in fact.linia_ids: # noqa: E741
32763273
if l.tipus in "altres" and l.invoice_line_id.product_id.code == "RBS":
3277-
days += l.quantity
3278-
price_per_day = l.price_unit
3279-
subtotal += l.price_subtotal
3280-
iva = get_iva_line(l)
3274+
if l.price_unit not in rbs_price_per_days:
3275+
line = {
3276+
"days": l.quantity,
3277+
"price_per_day": l.price_unit,
3278+
"subtotal": l.price_subtotal,
3279+
"iva": get_iva_line(l),
3280+
}
3281+
rbs_price_per_days[l.price_unit] = line
3282+
rbs_lines.append(line)
3283+
else:
3284+
line = rbs_price_per_days[l.price_unit]
3285+
line["days"] += l.quantity
3286+
line["subtotal"] += l.price_subtotal
32813287
visible = True
32823288

32833289
data = {
32843290
"is_visible": visible,
32853291
"number_of_columns": len(self.get_matrix_show_periods(pol)) + 1,
3286-
"days": days,
3287-
"price_per_day": price_per_day,
3288-
"subtotal": subtotal,
32893292
"iva_column": has_iva_column(fact),
3290-
"iva": iva,
3293+
"lines": rbs_lines,
3294+
"header_multi": len(rbs_lines),
32913295
}
32923296
return data
32933297

giscedata_facturacio_comer_som/report/components/invoice_details_td_bo_social_2023/invoice_details_td_bo_social_2023.mako

+12-6
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,19 @@
22
%if bs.is_visible:
33
<%
44
import locale
5+
first_pass = True
56
%>
6-
<tr class="tr_bold last_row">
7-
<td class="td_first concepte_td">${_(u"Bo social")}</td>
8-
<td class="detall_td" colspan="${bs.number_of_columns}">${_(u"%s dies x %s €/dia") % (int(bs.days), locale.str(locale.atof(formatLang(bs.price_per_day, digits=6))))}</td>
9-
<td class="subtotal">${_(u"%s") % formatLang(bs.subtotal)}</td>
10-
% if bs.iva_column:
11-
<td>${_(u"%s") % (bs.iva) }</td>
7+
% for l in bs.lines:
8+
<tr class="tr_bold ${'last_row' if bs.lines[-1] == l else ''}">
9+
% if first_pass:
10+
<td class="td_first concepte_td" rowspan=${bs.header_multi}>${_(u"Bo social")}</td>
11+
<%first_pass = False%>
1212
% endif
13+
<td class="detall_td" colspan="${bs.number_of_columns}">${_(u"%s dies x %s €/dia") % (int(l['days']), locale.str(locale.atof(formatLang(l['price_per_day'], digits=6))))}</td>
14+
<td class="subtotal">${_(u"%s") % formatLang(l['subtotal'])}</td>
15+
% if bs.iva_column:
16+
<td>${_(u"%s") % (l['iva']) }</td>
17+
% endif
1318
</tr>
19+
% endfor
1420
%endif

0 commit comments

Comments
 (0)