Izveštaji: prava zarada (cena - nabavna cena) za prodaju i servis
Nabavna cena se zamrzava na stavci prodaje i ugrađenom servisnom delu u trenutku unosa (migracija 101), umesto naknadnog join-a na trenutnu artikli.nabavna_cena. Tabela mesečnog prihoda sad prikazuje zaradu uz prodaju/servis/ukupno, a grafikon dobija preklopljene tamne barove (zarada) preko svetlih (ukupan prihod), odvojene za prodaju i servis.
This commit is contained in:
@@ -51,23 +51,41 @@
|
||||
<thead>
|
||||
<tr style="border-bottom:0.5px solid var(--ivica);">
|
||||
<th style="padding:8px 12px;text-align:left;font-size:12px;font-weight:500;color:var(--tekst-sporedni);">Mesec</th>
|
||||
<th style="padding:8px 12px;text-align:right;font-size:12px;font-weight:500;color:var(--tekst-sporedni);">Prodaja</th>
|
||||
<th style="padding:8px 12px;text-align:right;font-size:12px;font-weight:500;color:var(--tekst-sporedni);">Servis</th>
|
||||
<th style="padding:8px 12px;text-align:right;font-size:12px;font-weight:500;color:var(--tekst-sporedni);">Ukupno</th>
|
||||
<th style="padding:8px 12px;text-align:center;font-size:12px;font-weight:500;color:var(--tekst-sporedni);">Prodaja</th>
|
||||
<th style="padding:8px 12px;text-align:center;font-size:12px;font-weight:500;color:var(--tekst-sporedni);">Servis</th>
|
||||
<th style="padding:8px 12px;text-align:center;font-size:12px;font-weight:500;color:var(--tekst-sporedni);">Ukupno</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{range .MesecniPrihodi}}
|
||||
<tr style="border-bottom:0.5px solid var(--ivica);">
|
||||
<td style="padding:8px 12px;font-size:13px;color:var(--tekst-glavni);">{{.MesecPrikaz}}</td>
|
||||
<td style="padding:8px 12px;text-align:right;font-size:13px;color:var(--tekst-sporedni);">
|
||||
{{if gt .Prodaja 0.0}}{{dinariCeli .Prodaja}} din{{else}}—{{end}}
|
||||
<td style="padding:8px 12px;font-size:13px;color:var(--tekst-sporedni);">
|
||||
{{if gt .Prodaja 0.0}}
|
||||
<div style="display:grid;grid-template-columns:1fr auto 1fr;gap:6px;">
|
||||
<span style="text-align:right;">{{dinariCeli .Prodaja}} din</span>
|
||||
<span>-</span>
|
||||
<span style="text-align:left;">{{dinariCeli .ZaradaProdaja}} din</span>
|
||||
</div>
|
||||
{{else}}<div style="text-align:center;">—</div>{{end}}
|
||||
</td>
|
||||
<td style="padding:8px 12px;text-align:right;font-size:13px;color:var(--tekst-sporedni);">
|
||||
{{if gt .Servis 0.0}}{{dinariCeli .Servis}} din{{else}}—{{end}}
|
||||
<td style="padding:8px 12px;font-size:13px;color:var(--tekst-sporedni);">
|
||||
{{if gt .Servis 0.0}}
|
||||
<div style="display:grid;grid-template-columns:1fr auto 1fr;gap:6px;">
|
||||
<span style="text-align:right;">{{dinariCeli .Servis}} din</span>
|
||||
<span>-</span>
|
||||
<span style="text-align:left;">{{dinariCeli .ZaradaServis}} din</span>
|
||||
</div>
|
||||
{{else}}<div style="text-align:center;">—</div>{{end}}
|
||||
</td>
|
||||
<td style="padding:8px 12px;text-align:right;font-size:13px;font-weight:500;color:var(--tekst-glavni);">
|
||||
{{if gt .Ukupno 0.0}}{{dinariCeli .Ukupno}} din{{else}}—{{end}}
|
||||
<td style="padding:8px 12px;font-size:13px;font-weight:500;color:var(--tekst-glavni);">
|
||||
{{if gt .Ukupno 0.0}}
|
||||
<div style="display:grid;grid-template-columns:1fr auto 1fr;gap:6px;">
|
||||
<span style="text-align:right;">{{dinariCeli .Ukupno}} din</span>
|
||||
<span>-</span>
|
||||
<span style="text-align:left;">{{dinariCeli .Zarada}} din</span>
|
||||
</div>
|
||||
{{else}}<div style="text-align:center;">—</div>{{end}}
|
||||
</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
@@ -207,18 +225,40 @@
|
||||
labels: podaci.labele,
|
||||
datasets: [
|
||||
{
|
||||
label: 'Prodaja',
|
||||
label: 'Prodaja — ukupno',
|
||||
data: podaci.prodaja,
|
||||
backgroundColor: 'rgba(79, 126, 248, 0.75)',
|
||||
backgroundColor: 'rgba(79, 126, 248, 0.35)',
|
||||
borderRadius: 4,
|
||||
borderSkipped: false,
|
||||
stack: 'prodaja',
|
||||
order: 2,
|
||||
},
|
||||
{
|
||||
label: 'Servis',
|
||||
label: 'Servis — ukupno',
|
||||
data: podaci.servis,
|
||||
backgroundColor: 'rgba(22, 163, 74, 0.75)',
|
||||
backgroundColor: 'rgba(22, 163, 74, 0.35)',
|
||||
borderRadius: 4,
|
||||
borderSkipped: false,
|
||||
stack: 'servis',
|
||||
order: 2,
|
||||
},
|
||||
{
|
||||
label: 'Zarada — prodaja',
|
||||
data: podaci.zaradaProdaja,
|
||||
backgroundColor: 'rgba(29, 66, 168, 0.9)',
|
||||
borderRadius: 4,
|
||||
borderSkipped: false,
|
||||
stack: 'prodaja',
|
||||
order: 1,
|
||||
},
|
||||
{
|
||||
label: 'Zarada — servis',
|
||||
data: podaci.zaradaServis,
|
||||
backgroundColor: 'rgba(21, 94, 51, 0.9)',
|
||||
borderRadius: 4,
|
||||
borderSkipped: false,
|
||||
stack: 'servis',
|
||||
order: 1,
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -239,11 +279,12 @@
|
||||
},
|
||||
scales: {
|
||||
x: {
|
||||
stacked: false,
|
||||
stacked: true,
|
||||
ticks: { color: tekstBoja, font: { size: 11, family: 'DejaVu Sans, Ubuntu, system-ui, sans-serif' } },
|
||||
grid: { color: ivicaBoja }
|
||||
},
|
||||
y: {
|
||||
stacked: false,
|
||||
ticks: {
|
||||
color: tekstBoja,
|
||||
font: { size: 11, family: 'DejaVu Sans, Ubuntu, system-ui, sans-serif' },
|
||||
|
||||
Reference in New Issue
Block a user