feat(nabavka): kalkulacija — formiranje prodajne cene pri nabavci (Faza B)

Po stavci nabavke: marža% (predpopunjena globalnom iz podešavanja,
kalkulacija_marza) i prodajna cena = nabavna × (1+marža/100) × (1+PDV/100),
živo računato u Alpine, izmenjivo. Na čuvanje se ažurira nabavna+prodajna
cena artikla (ArtikalRepo.AzurirajCene) i upiše nivelacija 'kalkulacija';
prazna/nulta prodajna se preskače. ArtikliJSON nosi pdv_stopa. Postavka
podrazumevane marže u Podešavanja → Sistem.
This commit is contained in:
2026-06-14 10:13:56 +02:00
parent a466f591b6
commit 97683534ac
7 changed files with 139 additions and 11 deletions
+10
View File
@@ -147,6 +147,16 @@ func (r *ArtikalRepo) Izmeni(ctx context.Context, a *model.Artikal) error {
return nil
}
// AzurirajCene menja samo nabavnu i prodajnu cenu artikla (kalkulacija pri prijemu robe).
func (r *ArtikalRepo) AzurirajCene(ctx context.Context, id int64, nabavna, prodajna float64) error {
_, err := r.db.ExecContext(ctx,
"UPDATE artikli SET nabavna_cena = ?, prodajna_cena = ? WHERE id = ?", nabavna, prodajna, id)
if err != nil {
return fmt.Errorf("ntech: ArtikalRepo.AzurirajCene: %w", err)
}
return nil
}
// PremestiKategoriju menja samo kategoriju artikla (premeštanje u drugu kategoriju).
// kategorijaID može biti nil — tada artikal ostaje bez kategorije.
func (r *ArtikalRepo) PremestiKategoriju(ctx context.Context, id int64, kategorijaID *int64) error {