public void StornirajStavku_StavkaNePripadaNalogu_Greska() { var nalog = FinNalogHelper.NalogFromDb(callBase: true); nalog.Protected().SetupGet <List <FinStavka> >("_stavke").Returns(new List <FinStavka> { new FinStavka(Guid.NewGuid(), 1, 100, 0, "opis stavke 1", new DateTime(2018, 10, 30)), new FinStavka(Guid.NewGuid(), 2, 200, 0, "opis stavke 2", new DateTime(2018, 10, 30)) }); var stavka = new FinStavka(Guid.NewGuid(), 3, 300, 0, "opis stavke 3", new DateTime(2018, 10, 30)); Action storniraj = () => nalog.Object.StornirajStavku(stavka); Assert.Throws <KnjizenjeException>(storniraj); }
public async Task <bool> Handle(ProknjiziStavkuCommand cmd, CancellationToken cancellationToken) { var nalog = await nalogRepo.GetAsync(new FinNalogId(cmd.IdNaloga)); if (nalog == null) { throw new NalogNePostojiException(cmd.IdNaloga); } var stavka = new FinStavka(cmd.IdKonto, cmd.Duguje, cmd.Potrazuje, cmd.Opis); nalog.ProknjiziStavku(stavka); await nalogRepo.SaveAsync(nalog, cmd.CommandId, cmd.Version, cmd.UserId); return(true); }
public void ProknjiziStavku_DodajeEvent(decimal dug, decimal pot) { var nalog = FinNalogHelper.NalogFromDb(callBase: true); var stavka = new FinStavka(56, dug, pot, "opis proknjizene stavke"); nalog.Object.ProknjiziStavku(stavka); Assert.Equal(1, nalog.Object.UncommittedEvents.Count); Assert.Collection(nalog.Object.UncommittedEvents.OfType <StavkaProknjizena>(), e => { Assert.NotEqual(Guid.Empty, e.IdNaloga.Id); Assert.Equal(nalog.Object.Id, e.IdNaloga); Assert.NotEqual(Guid.Empty, e.IdStavke); Assert.Equal(DateTime.Today, e.DatumKnjizenja); Assert.Equal(stavka.IdKonto, e.IdKonto); Assert.Equal(stavka.Iznos.Duguje, e.Duguje); Assert.Equal(stavka.Iznos.Potrazuje, e.Potrazuje); Assert.Equal(stavka.Opis, e.Opis); }); }
public async Task <IList <FinStavka> > FormirajStavkeNalogaAsync(IEnumerable <StavkaIzvoda> stavkeIzvoda) { if (stavkeIzvoda == null) { throw new ArgumentNullException(nameof(stavkeIzvoda)); } if (!stavkeIzvoda.Any()) { return(new List <FinStavka>()); } string konto = "435"; string kontraKonto = "241"; var konta = await kontoRepo.GetIdBySifraAsync(konto, kontraKonto); var stavke = stavkeIzvoda.Select(x => { var stavka = new FinStavka(konta[konto], x.Duguje, x.Potrazuje, null); var kontraStavka = new FinStavka(konta[kontraKonto], x.Potrazuje, x.Duguje, null); return(new[] { stavka, kontraStavka }); }).SelectMany(x => x).ToList(); return(stavke); }