Prodaja/Servis: broj naloga u formatu GGMM (godina-mesec), mesečni brojač

This commit is contained in:
2026-07-01 23:01:10 +02:00
parent 74d90cf2f2
commit fcae2ae441
4 changed files with 77 additions and 8 deletions
+7 -4
View File
@@ -20,10 +20,13 @@ func NoviProdajaRepo(db *sql.DB) *ProdajaRepo {
return &ProdajaRepo{db: db}
}
// SledeciBroj generiše sledeći broj naloga u formatu PR-GGGG-NNNN
// SledeciBroj generiše sledeći broj naloga u formatu PR-GGMM-NNNN
// (GG dvocifrena godina, MM mesec); brojač NNNN se resetuje svakog meseca
func (r *ProdajaRepo) SledeciBroj(ctx context.Context) (string, error) {
godina := time.Now().Year()
uzorak := fmt.Sprintf("PR-%d-%%", godina)
sada := time.Now()
// prefiks "PR-GGMM-" je dug 8 karaktera, pa brojač počinje od 9. karaktera
prefiks := fmt.Sprintf("PR-%02d%02d-", sada.Year()%100, int(sada.Month()))
uzorak := prefiks + "%"
var sledeci int
err := r.db.QueryRowContext(ctx, `
@@ -34,7 +37,7 @@ func (r *ProdajaRepo) SledeciBroj(ctx context.Context) (string, error) {
return "", fmt.Errorf("ntech: ProdajaRepo.SledeciBroj: %w", err)
}
return fmt.Sprintf("PR-%d-%04d", godina, sledeci), nil
return fmt.Sprintf("%s%04d", prefiks, sledeci), nil
}
// Lista vraća listu prodajnih naloga sa imenom klijenta, po zadatom filteru
+4 -4
View File
@@ -30,12 +30,12 @@ func NoviServisRepo(db *sql.DB) *ServisRepo {
return &ServisRepo{db: db}
}
// SledeciBroj generiše sledeći broj naloga u formatu SN-MMGG-NNN
// (MM mesec, GG dvocifrena godina); brojač NNN se resetuje svakog meseca
// SledeciBroj generiše sledeći broj naloga u formatu SN-GGMM-NNN
// (GG dvocifrena godina, MM mesec); brojač NNN se resetuje svakog meseca
func (r *ServisRepo) SledeciBroj(ctx context.Context) (string, error) {
sada := time.Now()
// prefiks "SN-MMGG-" je dug 8 karaktera, pa brojač počinje od 9. karaktera
prefiks := fmt.Sprintf("SN-%02d%02d-", int(sada.Month()), sada.Year()%100)
// prefiks "SN-GGMM-" je dug 8 karaktera, pa brojač počinje od 9. karaktera
prefiks := fmt.Sprintf("SN-%02d%02d-", sada.Year()%100, int(sada.Month()))
uzorak := prefiks + "%"
// COALESCE(MAX, 0)+1 → prvi nalog u mesecu dobija 001