diff --git a/internal/handler/pdv_kir.go b/internal/handler/pdv_kir.go index a421768..059a2ab 100644 --- a/internal/handler/pdv_kir.go +++ b/internal/handler/pdv_kir.go @@ -220,6 +220,7 @@ func (h *Handler) KirBackfillProdaje(w http.ResponseWriter, r *http.Request) { return } ctx := r.Context() + sada := time.Now() nalozi, err := h.ProdajaRepo.Lista(ctx, "") if err != nil { @@ -256,7 +257,8 @@ func (h *Handler) KirBackfillProdaje(w http.ResponseWriter, r *http.Request) { if klijent.Tip != "pravno" { pib = klijent.JMBG } - kir := model.KirIzProdaje(nd.ProdajniNalog, ss, klijent.PunoIme(), pib, klijent.Mesto) + // backfill upisuje stare naloge sa zakašnjenjem — datum_knjizenja je danas, ne datum prodaje + kir := model.KirIzProdaje(nd.ProdajniNalog, ss, klijent.PunoIme(), pib, klijent.Mesto, sada) if _, e := h.PdvKirRepo.Kreiraj(ctx, &kir); e != nil { slog.Error("backfill KIR: greška pri kreiranju zapisa", "prodaja_id", nd.ID, "error", e) continue diff --git a/internal/handler/prodaja.go b/internal/handler/prodaja.go index beab185..775c201 100644 --- a/internal/handler/prodaja.go +++ b/internal/handler/prodaja.go @@ -246,7 +246,7 @@ func (h *Handler) SacuvajProdaju(w http.ResponseWriter, r *http.Request) { if klijent.Tip != "pravno" { pib = klijent.JMBG } - kir := model.KirIzProdaje(nalog, stavke, klijent.PunoIme(), pib, klijent.Mesto) + kir := model.KirIzProdaje(nalog, stavke, klijent.PunoIme(), pib, klijent.Mesto, nalog.Datum) if _, e := h.PdvKirRepo.Kreiraj(r.Context(), &kir); e != nil { slog.Error("auto-upis u KIR nije uspeo", "prodaja_id", id, "error", e) } diff --git a/internal/model/pdv_evidencija.go b/internal/model/pdv_evidencija.go index bb2018f..4bebe6e 100644 --- a/internal/model/pdv_evidencija.go +++ b/internal/model/pdv_evidencija.go @@ -107,11 +107,14 @@ func (k *PdvKir) DodajNeto(osnovica, stopa float64) { // KirIzProdaje gradi KIR zapis iz prodaje: stavke se grupišu po PDV stopi // (20→opšta, 10→posebna, ostalo→oslobođeno). CenaPoKomadu je prodajna cena BEZ PDV // (neto), PDV se dodaje naviše — isti obrazac kao kod servisnih radova/delova. -func KirIzProdaje(nalog ProdajniNalog, stavke []StavkaProdaje, kupacNaziv, kupacPib, kupacMesto string) PdvKir { +// DatumPrometa je datum same prodaje (nalog.Datum); DatumKnjizenja je datum kada se +// ovaj KIR zapis stvarno upisuje u knjigu — za prodaju upisanu odmah to je isti trenutak, +// ali za naknadni backfill starih naloga upis kasni za periodom pa se prosleđuje posebno. +func KirIzProdaje(nalog ProdajniNalog, stavke []StavkaProdaje, kupacNaziv, kupacPib, kupacMesto string, datumKnjizenja time.Time) PdvKir { id := nalog.ID k := PdvKir{ DatumPrometa: nalog.Datum, - DatumKnjizenja: nalog.Datum, + DatumKnjizenja: datumKnjizenja, BrojDokumenta: nalog.BrojNaloga, KupacNaziv: kupacNaziv, KupacPib: kupacPib, diff --git a/internal/model/pdv_evidencija_test.go b/internal/model/pdv_evidencija_test.go index 864dcc8..d706367 100644 --- a/internal/model/pdv_evidencija_test.go +++ b/internal/model/pdv_evidencija_test.go @@ -19,7 +19,7 @@ func TestKirIzProdaje(t *testing.T) { {Kolicina: 1, CenaPoKomadu: 50, PdvStopa: 0}, } - k := KirIzProdaje(nalog, stavke, "Kupac doo", "123456789", "Niš") + k := KirIzProdaje(nalog, stavke, "Kupac doo", "123456789", "Niš", nalog.Datum) if k.Izvor != "prodaja" || k.IzvorID == nil || *k.IzvorID != 5 { t.Errorf("izvor=%q izvor_id=%v, očekivano prodaja/5", k.Izvor, k.IzvorID)