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);
        }
Exemple #2
0
        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);
        }