PDV KIR: zaštita od duplog upisa dnevnog pazara maloprodaje
SacuvajDnevniPazarKir je upisivao ručni zbirni KIR zapis za dati dan bez provere da li već postoji — za razliku od auto-KIR-a iz pojedinačnih faktura (koji ima PostojiZaIzvor zaštitu), ovde ništa nije sprečavalo duplo klikanje/ponovni unos istog dana, što bi duplo precenilo PDV osnov u zvaničnoj evidenciji. Broj dokumenta (FISK-YYYYMMDD) je već deterministički po danu, pa se koristi kao prirodni ključ za proveru. Forma sad prikazuje upozorenje i sakriva dugme za upis ako je dan već zaveden.
This commit is contained in:
@@ -70,6 +70,9 @@ type PdvKirRepository interface {
|
||||
ObrisiPoIzvoru(ctx context.Context, izvor string, izvorID int64) error
|
||||
// PostojiZaIzvor vraća true ako postoji bar jedan zapis za dati izvor i izvorID
|
||||
PostojiZaIzvor(ctx context.Context, izvor string, izvorID int64) (bool, error)
|
||||
// PostojiPoBrojuDokumenta vraća true ako postoji zapis sa datim brojem dokumenta
|
||||
// (npr. zaštita od duplog unosa dnevnog pazara "FISK-YYYYMMDD")
|
||||
PostojiPoBrojuDokumenta(ctx context.Context, brojDokumenta string) (bool, error)
|
||||
}
|
||||
|
||||
// PdvKprRepository definiše operacije nad knjigom primljenih računa (KPR)
|
||||
|
||||
@@ -148,6 +148,18 @@ func (r *PdvKirRepo) PostojiZaIzvor(ctx context.Context, izvor string, izvorID i
|
||||
return n > 0, nil
|
||||
}
|
||||
|
||||
// PostojiPoBrojuDokumenta vraća true ako postoji KIR zapis sa datim brojem dokumenta
|
||||
func (r *PdvKirRepo) PostojiPoBrojuDokumenta(ctx context.Context, brojDokumenta string) (bool, error) {
|
||||
var n int
|
||||
err := r.db.QueryRowContext(ctx,
|
||||
"SELECT COUNT(*) FROM pdv_kir WHERE broj_dokumenta = ?", brojDokumenta,
|
||||
).Scan(&n)
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("ntech: PdvKirRepo.PostojiPoBrojuDokumenta: %w", err)
|
||||
}
|
||||
return n > 0, nil
|
||||
}
|
||||
|
||||
// izvorIliRucno vraća izvor ili podrazumevano „rucno" (izvor kolona je NOT NULL)
|
||||
func izvorIliRucno(izvor string) string {
|
||||
if izvor == "" {
|
||||
|
||||
Reference in New Issue
Block a user