Dinari: formatiranje iznosa u Alpine tabelama stavki (nova nabavka i prodaja) preko fmtDin

This commit is contained in:
2026-06-21 01:05:45 +02:00
parent f4a9c1eefe
commit aabe19639a
3 changed files with 23 additions and 9 deletions
+14
View File
@@ -181,6 +181,13 @@ document.addEventListener('alpine:init', () => {
}, },
ukupnoSvega() { ukupnoSvega() {
return this.stavke.reduce((z, s) => z + (parseFloat(s.kolicina) * parseFloat(s.cena) || 0), 0).toFixed(2) return this.stavke.reduce((z, s) => z + (parseFloat(s.kolicina) * parseFloat(s.cena) || 0), 0).toFixed(2)
},
// fmtDin formatira broj sa separatorom hiljada (tačka) i 2 decimale (zarez): 1234567.5 → "1.234.567,50"
fmtDin(v) {
const n = parseFloat(v) || 0
const [ceo, dec] = Math.abs(n).toFixed(2).split('.')
const saTackama = ceo.replace(/\B(?=(\d{3})+(?!\d))/g, '.')
return (n < 0 ? '-' : '') + saTackama + ',' + dec
} }
})) }))
@@ -327,6 +334,13 @@ document.addEventListener('alpine:init', () => {
ukupnoSvega() { ukupnoSvega() {
return this.stavke.reduce((z, s) => z + (parseFloat(s.kolicina) * parseFloat(s.cena) || 0), 0).toFixed(2) return this.stavke.reduce((z, s) => z + (parseFloat(s.kolicina) * parseFloat(s.cena) || 0), 0).toFixed(2)
}, },
// fmtDin formatira broj sa separatorom hiljada (tačka) i 2 decimale (zarez): 1234567.5 → "1.234.567,50"
fmtDin(v) {
const n = parseFloat(v) || 0
const [ceo, dec] = Math.abs(n).toFixed(2).split('.')
const saTackama = ceo.replace(/\B(?=(\d{3})+(?!\d))/g, '.')
return (n < 0 ? '-' : '') + saTackama + ',' + dec
},
otvoriModal() { otvoriModal() {
this.modal = true this.modal = true
this.modalGreska = '' this.modalGreska = ''
+5 -5
View File
@@ -130,7 +130,7 @@
min="0" step="0.01" :disabled="isMobile" style="width:100%;text-align:right;"> min="0" step="0.01" :disabled="isMobile" style="width:100%;text-align:right;">
</td> </td>
<td style="padding:8px 10px;text-align:right;font-size:14px;font-weight:500;color:var(--tekst-glavni);"> <td style="padding:8px 10px;text-align:right;font-size:14px;font-weight:500;color:var(--tekst-glavni);">
<span x-text="ukupnoStavke(stavka) + ' din'"></span> <span x-text="fmtDin(ukupnoStavke(stavka)) + ' din'"></span>
</td> </td>
<td style="padding:8px 10px;text-align:center;"> <td style="padding:8px 10px;text-align:center;">
<button type="button" @click="ukloniStavku(i)" <button type="button" @click="ukloniStavku(i)"
@@ -146,7 +146,7 @@
<tr style="border-top:0.5px solid var(--ivica);"> <tr style="border-top:0.5px solid var(--ivica);">
<td colspan="5" style="padding:10px 10px;text-align:right;font-size:13px;color:var(--tekst-sporedni);font-weight:500;">Ukupno:</td> <td colspan="5" style="padding:10px 10px;text-align:right;font-size:13px;color:var(--tekst-sporedni);font-weight:500;">Ukupno:</td>
<td style="padding:10px 10px;text-align:right;font-size:15px;font-weight:600;color:var(--tekst-glavni);"> <td style="padding:10px 10px;text-align:right;font-size:15px;font-weight:600;color:var(--tekst-glavni);">
<span x-text="ukupnoSvega() + ' din'"></span> <span x-text="fmtDin(ukupnoSvega()) + ' din'"></span>
</td> </td>
<td></td> <td></td>
</tr> </tr>
@@ -203,7 +203,7 @@
</div> </div>
</div> </div>
<div style="text-align:right;font-size:14px;font-weight:500;color:var(--tekst-glavni);"> <div style="text-align:right;font-size:14px;font-weight:500;color:var(--tekst-glavni);">
Ukupno: <span x-text="ukupnoStavke(stavka) + ' din'"></span> Ukupno: <span x-text="fmtDin(ukupnoStavke(stavka)) + ' din'"></span>
</div> </div>
</div> </div>
</div> </div>
@@ -213,7 +213,7 @@
+ Dodaj stavku + Dodaj stavku
</button> </button>
<div style="text-align:right;font-size:15px;font-weight:600;color:var(--tekst-glavni);padding:8px 4px;"> <div style="text-align:right;font-size:15px;font-weight:600;color:var(--tekst-glavni);padding:8px 4px;">
Ukupno: <span x-text="ukupnoSvega() + ' din'"></span> Ukupno: <span x-text="fmtDin(ukupnoSvega()) + ' din'"></span>
</div> </div>
</div> </div>
</div> </div>
@@ -251,7 +251,7 @@
</div> </div>
</template> </template>
<div style="text-align:right;font-size:13px;color:var(--tekst-sporedni);"> <div style="text-align:right;font-size:13px;color:var(--tekst-sporedni);">
Ukupno troškovi: <strong x-text="ukupanTrosak().toFixed(2) + ' din'"></strong> Ukupno troškovi: <strong x-text="fmtDin(ukupanTrosak()) + ' din'"></strong>
</div> </div>
</div> </div>
</template> </template>
+4 -4
View File
@@ -217,7 +217,7 @@
font-weight: 500; font-weight: 500;
color: var(--tekst-glavni); color: var(--tekst-glavni);
"> ">
<span x-text="ukupnoStavke(stavka) + ' din'"></span> <span x-text="fmtDin(ukupnoStavke(stavka)) + ' din'"></span>
</td> </td>
<td style="padding: 8px 10px; text-align: center"> <td style="padding: 8px 10px; text-align: center">
<button <button
@@ -265,7 +265,7 @@
font-weight: 600; font-weight: 600;
color: var(--tekst-glavni); color: var(--tekst-glavni);
"> ">
<span x-text="ukupnoSvega() + ' din'"></span> <span x-text="fmtDin(ukupnoSvega()) + ' din'"></span>
</td> </td>
<td></td> <td></td>
</tr> </tr>
@@ -390,7 +390,7 @@
font-weight: 500; font-weight: 500;
color: var(--tekst-glavni); color: var(--tekst-glavni);
"> ">
Ukupno: <span x-text="ukupnoStavke(stavka) + ' din'"></span> Ukupno: <span x-text="fmtDin(ukupnoStavke(stavka)) + ' din'"></span>
</div> </div>
</div> </div>
</div> </div>
@@ -403,7 +403,7 @@
color: var(--tekst-glavni); color: var(--tekst-glavni);
padding: 8px 4px; padding: 8px 4px;
"> ">
Ukupno: <span x-text="ukupnoSvega() + ' din'"></span> Ukupno: <span x-text="fmtDin(ukupnoSvega()) + ' din'"></span>
</div> </div>
</div> </div>
</div> </div>