implemented live price update in document view

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2025-12-03 21:50:57 +01:00
parent 74a1d526ae
commit 8197a0796c

View File

@@ -14,6 +14,23 @@
} = $props();
let editable = $derived(document.state == 1);
let sums = $derived.by(calcSums);
function calcSums(){
let data = {}
let net = 0;
let gross = 0;
for (let pos of Object.values(document.positions)){
let net_price = pos.unit_price * pos.amount;
let tax = +pos.tax;
data[tax] = net_price + (data[tax] ? data[tax] : 0);
net += net_price;
}
for (let [tax, price] of Object.entries(data)) gross += price * (+tax+100)/100;
data['net'] = net/100;
data['gross'] = (gross/100).toFixed(2);
return data;
}
async function updatePositions(resp){
let json = await resp.json();
@@ -73,9 +90,9 @@
<tr class="sums">
<td colspan="2"></td>
<td>{t('net_sum')}</td>
<td>{document.net_sum/100}&nbsp;{document.currency}</td>
<td>{sums['net']}&nbsp;{document.currency}</td>
<td colspan="2">{t('gross_sum')}</td>
<td>{document.gross_sum/100}&nbsp;{document.currency}</td>
<td>{sums['gross']}&nbsp;{document.currency}</td>
<td></td>
</tr>
</tbody>