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:
@@ -13,6 +13,8 @@ type ArtikalRepository interface {
|
||||
DohvatiID(ctx context.Context, id int64) (*model.Artikal, error)
|
||||
Kreiraj(ctx context.Context, a *model.Artikal) (int64, error)
|
||||
Izmeni(ctx context.Context, a *model.Artikal) error
|
||||
// AzurirajCene menja samo nabavnu i prodajnu cenu (kalkulacija pri nabavci)
|
||||
AzurirajCene(ctx context.Context, id int64, nabavna, prodajna float64) error
|
||||
PremestiKategoriju(ctx context.Context, id int64, kategorijaID *int64) error
|
||||
Obrisi(ctx context.Context, id int64) error
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user