Merge feature/pdv-kir-datum-knjizenja-razdvajanje → develop
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user