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
|
return
|
||||||
}
|
}
|
||||||
ctx := r.Context()
|
ctx := r.Context()
|
||||||
|
sada := time.Now()
|
||||||
|
|
||||||
nalozi, err := h.ProdajaRepo.Lista(ctx, "")
|
nalozi, err := h.ProdajaRepo.Lista(ctx, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -256,7 +257,8 @@ func (h *Handler) KirBackfillProdaje(w http.ResponseWriter, r *http.Request) {
|
|||||||
if klijent.Tip != "pravno" {
|
if klijent.Tip != "pravno" {
|
||||||
pib = klijent.JMBG
|
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 {
|
if _, e := h.PdvKirRepo.Kreiraj(ctx, &kir); e != nil {
|
||||||
slog.Error("backfill KIR: greška pri kreiranju zapisa", "prodaja_id", nd.ID, "error", e)
|
slog.Error("backfill KIR: greška pri kreiranju zapisa", "prodaja_id", nd.ID, "error", e)
|
||||||
continue
|
continue
|
||||||
|
|||||||
@@ -246,7 +246,7 @@ func (h *Handler) SacuvajProdaju(w http.ResponseWriter, r *http.Request) {
|
|||||||
if klijent.Tip != "pravno" {
|
if klijent.Tip != "pravno" {
|
||||||
pib = klijent.JMBG
|
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 {
|
if _, e := h.PdvKirRepo.Kreiraj(r.Context(), &kir); e != nil {
|
||||||
slog.Error("auto-upis u KIR nije uspeo", "prodaja_id", id, "error", e)
|
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
|
// 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
|
// (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.
|
// (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
|
id := nalog.ID
|
||||||
k := PdvKir{
|
k := PdvKir{
|
||||||
DatumPrometa: nalog.Datum,
|
DatumPrometa: nalog.Datum,
|
||||||
DatumKnjizenja: nalog.Datum,
|
DatumKnjizenja: datumKnjizenja,
|
||||||
BrojDokumenta: nalog.BrojNaloga,
|
BrojDokumenta: nalog.BrojNaloga,
|
||||||
KupacNaziv: kupacNaziv,
|
KupacNaziv: kupacNaziv,
|
||||||
KupacPib: kupacPib,
|
KupacPib: kupacPib,
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ func TestKirIzProdaje(t *testing.T) {
|
|||||||
{Kolicina: 1, CenaPoKomadu: 50, PdvStopa: 0},
|
{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 {
|
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)
|
t.Errorf("izvor=%q izvor_id=%v, očekivano prodaja/5", k.Izvor, k.IzvorID)
|
||||||
|
|||||||
Reference in New Issue
Block a user