public virtual void StornirajStavku(FinStavka originalStavka) { if (originalStavka == null) { throw new ArgumentNullException(nameof(originalStavka)); } ProveriStavkaPripadaNalogu(originalStavka); var stornoStavka = new FinStavka(originalStavka.IdKonto, -originalStavka.Iznos.Duguje, -originalStavka.Iznos.Potrazuje, null); ProknjiziStavku(stornoStavka); }
public virtual void UkloniStavku(FinStavka stavka) { if (stavka == null) { throw new ArgumentNullException(nameof(stavka)); } ProveriZakljucan(); if (!Obrisan && _stavke.Count <= 1) { throw new KnjizenjeException("Nalog mora imati bar jednu stavku"); } ProveriStavkaPripadaNalogu(stavka); Obavesti(new StavkaUklonjena(Id, stavka.Id, stavka.DatumKnjizenja, stavka.IdKonto, stavka.Iznos.Duguje, stavka.Iznos.Potrazuje, stavka.Opis)); }
public virtual void ProknjiziStavku(FinStavka stavka) { if (stavka == null) { throw new ArgumentNullException(nameof(stavka)); } if (stavka.Id == Guid.Empty) { throw new KnjizenjeException("Id stavke nije validan"); } if (_stavke.Any(x => x.Id == stavka.Id)) { throw new KnjizenjeException("Stavka je već proknjižena"); } ProveriZakljucan(); DateTime datumKnjizenja = DateTime.Today; Obavesti(new StavkaProknjizena(Id, stavka.Id, datumKnjizenja, stavka.IdKonto, stavka.Iznos.Duguje, stavka.Iznos.Potrazuje, stavka.Opis)); }
internal void Primeni(StavkaProknjizena evnt) { var stavka = new FinStavka(evnt.IdStavke, evnt.IdKonto, evnt.Duguje, evnt.Potrazuje, evnt.Opis, evnt.DatumKnjizenja); _stavke.Add(stavka); }