Servis: automatski upis u KIR pri preuzimanju (ako je firma PDV obveznik)
Pri prelasku u Preuzeto, radovi i delovi se automatski knjiže u KIR (20% PDV, opšta stopa). Preskaču se predložene stavke i odbijene popravke.
This commit is contained in:
@@ -1988,6 +1988,59 @@ func (h *Handler) PromeniStatus(w http.ResponseWriter, r *http.Request) {
|
|||||||
h.fiskalizujServis(r.Context(), id, klijent, nacin, iznos)
|
h.fiskalizujServis(r.Context(), id, klijent, nacin, iznos)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// automatski upis u KIR ako je firma PDV obveznik
|
||||||
|
if h.modulUkljucen(r.Context(), "pdv") {
|
||||||
|
nalog, _ := h.ServisRepo.DohvatiID(r.Context(), id)
|
||||||
|
if nalog != nil && !nalog.PopravkaOdbijena {
|
||||||
|
kupacNaziv, kupacPib, kupacMesto := "", "", ""
|
||||||
|
if nalog.KlijentID != nil {
|
||||||
|
if k, e := h.KlijentiRepo.DohvatiID(r.Context(), *nalog.KlijentID); e == nil {
|
||||||
|
kupacNaziv = k.PunoIme()
|
||||||
|
kupacPib = k.PIB
|
||||||
|
kupacMesto = k.Mesto
|
||||||
|
}
|
||||||
|
}
|
||||||
|
radovi, _ := h.ServisniRadoviRepo.DohvatiZaNalog(r.Context(), id)
|
||||||
|
delovi, _ := h.ServisniDeloviRepo.DohvatiZaNalog(r.Context(), id)
|
||||||
|
|
||||||
|
kir := model.PdvKir{
|
||||||
|
DatumPrometa: time.Now(),
|
||||||
|
DatumKnjizenja: time.Now(),
|
||||||
|
BrojDokumenta: nalog.BrojNaloga,
|
||||||
|
KupacNaziv: kupacNaziv,
|
||||||
|
KupacPib: kupacPib,
|
||||||
|
KupacMesto: kupacMesto,
|
||||||
|
Izvor: "servis",
|
||||||
|
IzvorID: &id,
|
||||||
|
}
|
||||||
|
for _, r := range radovi {
|
||||||
|
if r.Predlozeno {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
osnovica := r.Ukupno() / 1.2 // 20% PDV
|
||||||
|
pdv := r.Ukupno() - osnovica
|
||||||
|
kir.OsnovicaOpsta += osnovica
|
||||||
|
kir.PdvOpsta += pdv
|
||||||
|
kir.Ukupno += r.Ukupno()
|
||||||
|
}
|
||||||
|
for _, d := range delovi {
|
||||||
|
if d.Predlozeno {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
osnovica := d.Ukupno() / 1.2
|
||||||
|
pdv := d.Ukupno() - osnovica
|
||||||
|
kir.OsnovicaOpsta += osnovica
|
||||||
|
kir.PdvOpsta += pdv
|
||||||
|
kir.Ukupno += d.Ukupno()
|
||||||
|
}
|
||||||
|
if kir.Ukupno > 0 {
|
||||||
|
if _, e := h.PdvKirRepo.Kreiraj(r.Context(), &kir); e != nil {
|
||||||
|
slog.Error("auto-upis u KIR za servis nije uspeo", "servis_id", id, "error", e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
http.Redirect(w, r, "/servis/"+strconv.FormatInt(id, 10)+"?sacuvano=1", http.StatusSeeOther)
|
http.Redirect(w, r, "/servis/"+strconv.FormatInt(id, 10)+"?sacuvano=1", http.StatusSeeOther)
|
||||||
|
|||||||
Reference in New Issue
Block a user