Popravka sidebara: kolaps, podmeni i HTMX navigacija
This commit is contained in:
@@ -11,11 +11,23 @@ type Artikal struct {
|
||||
Kolicina int
|
||||
KolicinMin int
|
||||
Lokacija string
|
||||
NabavnaCena float64
|
||||
ProdajnaCena float64
|
||||
PdvStopa float64
|
||||
Napomena string
|
||||
DatumUnosa time.Time
|
||||
}
|
||||
|
||||
// CenaBezPdv izračunava prodajnu cenu bez PDV-a
|
||||
func (a Artikal) CenaBezPdv() float64 {
|
||||
return a.ProdajnaCena / (1 + a.PdvStopa/100)
|
||||
}
|
||||
|
||||
// PdvIznos izračunava iznos PDV-a za jednu jedinicu
|
||||
func (a Artikal) PdvIznos() float64 {
|
||||
return a.ProdajnaCena - a.CenaBezPdv()
|
||||
}
|
||||
|
||||
// Kategorija predstavlja kategoriju artikala
|
||||
type Kategorija struct {
|
||||
ID int64
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
package model
|
||||
|
||||
import "time"
|
||||
import (
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
// Klijent predstavlja jednog klijenta — fizičko lice ili firmu
|
||||
type Klijent struct {
|
||||
ID int64
|
||||
Tip string
|
||||
Ime string
|
||||
Prezime string
|
||||
JMBG string
|
||||
NazivFirme string
|
||||
PIB string
|
||||
Telefon string
|
||||
@@ -14,3 +19,11 @@ type Klijent struct {
|
||||
Napomena string
|
||||
DatumUnosa time.Time
|
||||
}
|
||||
|
||||
// PunoIme vraća ime i prezime za fizičko lice, ili naziv firme za pravno
|
||||
func (k Klijent) PunoIme() string {
|
||||
if k.Tip == "pravno" {
|
||||
return k.NazivFirme
|
||||
}
|
||||
return strings.TrimSpace(k.Ime + " " + k.Prezime)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package model
|
||||
|
||||
import "time"
|
||||
|
||||
// Tipovi magacinskih promena
|
||||
const (
|
||||
PromenaUlazNabavka = "ulaz_nabavka"
|
||||
PromenaIzlazProdaja = "izlaz_prodaja"
|
||||
PromenaIzlazServis = "izlaz_servis"
|
||||
PromenaPovracaj = "povracaj"
|
||||
PromenaKorekcija = "korekcija"
|
||||
)
|
||||
|
||||
// MagacinskaPromenaSaDetaljem je promena stanja artikla sa nazivom artikla
|
||||
type MagacinskaPromenaSaDetaljem struct {
|
||||
ID int64
|
||||
ArtikalID int64
|
||||
ArtikalNaziv string
|
||||
TipPromene string
|
||||
ReferentniID int64
|
||||
PromenaKolicine int
|
||||
StanjePre int
|
||||
StanjePosle int
|
||||
KorisnikID *int64
|
||||
Napomena string
|
||||
Datum time.Time
|
||||
}
|
||||
@@ -4,12 +4,15 @@ import "time"
|
||||
|
||||
// ProdajniNalog predstavlja zaglavlje jedne prodaje
|
||||
type ProdajniNalog struct {
|
||||
ID int64
|
||||
KlijentID *int64
|
||||
BrojNaloga string
|
||||
Napomena string
|
||||
Ukupno float64
|
||||
Datum time.Time
|
||||
ID int64
|
||||
KlijentID *int64
|
||||
BrojNaloga string
|
||||
Napomena string
|
||||
Ukupno float64
|
||||
NacinPlacanja string
|
||||
Stornirano bool
|
||||
RazlogStorniranja string
|
||||
Datum time.Time
|
||||
}
|
||||
|
||||
// StavkaProdaje predstavlja jednu liniju (artikal) unutar prodaje
|
||||
@@ -20,6 +23,9 @@ type StavkaProdaje struct {
|
||||
Kolicina int
|
||||
CenaPoKomadu float64
|
||||
Ukupno float64
|
||||
PdvStopa float64
|
||||
PdvIznos float64
|
||||
CenaBezPdv float64
|
||||
}
|
||||
|
||||
// ProdajniNalogSaDetaljem je nalog sa nazivom klijenta — za prikaz u listi
|
||||
|
||||
@@ -29,6 +29,7 @@ var SviStatusi = []string{
|
||||
type ServisniNalog struct {
|
||||
ID int64
|
||||
KlijentID *int64
|
||||
TehnicarID *int64
|
||||
BrojNaloga string
|
||||
Uredjaj string
|
||||
SerijskiBroj string
|
||||
@@ -39,10 +40,32 @@ type ServisniNalog struct {
|
||||
CenaKonacna *float64
|
||||
Avans *float64
|
||||
Napomena string
|
||||
GarancijaDo *time.Time
|
||||
DatumPrijema time.Time
|
||||
DatumZavrsetka *time.Time
|
||||
}
|
||||
|
||||
// ServisniDeo predstavlja jedan artikal ugrađen u servisni nalog
|
||||
type ServisniDeo struct {
|
||||
ID int64
|
||||
NalogID int64
|
||||
ArtikalID int64
|
||||
Kolicina int
|
||||
CenaKomada float64
|
||||
Datum time.Time
|
||||
}
|
||||
|
||||
// Ukupno vraća ukupnu vrednost dela (kolicina × cena)
|
||||
func (d ServisniDeo) Ukupno() float64 {
|
||||
return float64(d.Kolicina) * d.CenaKomada
|
||||
}
|
||||
|
||||
// ServisniDeoSaArtiklom je servisni deo sa nazivom artikla — za prikaz
|
||||
type ServisniDeoSaArtiklom struct {
|
||||
ServisniDeo
|
||||
ArtikalNaziv string
|
||||
}
|
||||
|
||||
// ServisniNalogSaKlijentom proširuje ServisniNalog sa nazivom klijenta za prikaz u listi
|
||||
type ServisniNalogSaKlijentom struct {
|
||||
ServisniNalog
|
||||
@@ -57,6 +80,14 @@ func (n ServisniNalog) KlijentIDVrednost() int64 {
|
||||
return *n.KlijentID
|
||||
}
|
||||
|
||||
// TehnicarIDVrednost vraća vrednost TehnicarID pointera, ili 0 ako je nil
|
||||
func (n ServisniNalog) TehnicarIDVrednost() int64 {
|
||||
if n.TehnicarID == nil {
|
||||
return 0
|
||||
}
|
||||
return *n.TehnicarID
|
||||
}
|
||||
|
||||
// CenaOdStr vraća formatiranu procenu od, ili prazan string ako nije uneta
|
||||
func (n ServisniNalog) CenaOdStr() string {
|
||||
if n.CenaOd == nil {
|
||||
|
||||
Reference in New Issue
Block a user