コード例 #1
0
        public void TestFakturyWielopozycyjnej()

        {
            var factory = new InvoiceFactory(objectSpace);
            var faktura = factory.UtworzFakture(new string[] { "Gacie", "Skarpetki", "Skarpety" });

            Assert.IsNotNull(faktura, "nie utworzono faktury");
            Assert.AreEqual(3, faktura.PozycjeFaktury.Count());

            Assert.AreEqual("Gacie", faktura.PozycjeFaktury[0].Produkt.Nazwa);
            Assert.AreEqual("Skarpetki", faktura.PozycjeFaktury[1].Produkt.Nazwa);
            Assert.AreEqual("Skarpety", faktura.PozycjeFaktury[2].Produkt.Nazwa);

            Assert.AreEqual(100, faktura.PozycjeFaktury[0].WartoscNetto);
            Assert.AreEqual(33.33m, faktura.PozycjeFaktury[1].WartoscNetto);
            Assert.AreEqual(27.77, faktura.PozycjeFaktury[2].WartoscNetto);

            Assert.AreEqual(100 * 1.23, faktura.PozycjeFaktury[0].WartoscBrutto);
            Assert.AreEqual(33.33m * 1.07m, faktura.PozycjeFaktury[1].WartoscBrutto);
            Assert.AreEqual(27.77m * 1.07m, faktura.PozycjeFaktury[2].WartoscBrutto);

            Assert.AreEqual(100 * 1.23m + 33.33m * 1.07m + 27.77m * 1.07m, faktura.PozycjeFaktury.Sum(s => s.WartoscBrutto), "brutto pozycji i faktury nie jest zgodne");
            Assert.AreEqual(faktura.PozycjeFaktury.Sum(s => s.WartoscNetto), faktura.WartoscNetto, "netto pozycji i faktury nie jest zgodne");
            Assert.AreEqual(faktura.PozycjeFaktury.Sum(s => s.WartoscVAT), faktura.WartoscVAT, "vat pozycji i faktury nie jest zgodne");
            Assert.AreEqual(faktura.PozycjeFaktury.Sum(s => s.WartoscBrutto), faktura.WartoscBrutto, "brutto pozycji i faktury nie jest zgodne");

            faktura.Delete();
            objectSpace.CommitChanges();
        }
コード例 #2
0
        public void TestKorektyCalkowitej()
        {
            var factory = new InvoiceFactory(objectSpace);



            Faktura faktura = factory.UtworzFakture(new string[] { "Gacie", "Skarpetki", "Skarpety" });

            Assert.IsNotNull(faktura, "nie utworzono faktury");
            Assert.AreEqual(3, faktura.PozycjeFaktury.Count());
            faktura.PrzeliczSumy();
            objectSpace.CommitChanges();

            var liczbaFaktur = objectSpace.GetObjectsQuery <Faktura>().Count();

            Assert.AreEqual(1, liczbaFaktur);

            var sumaFaktur = objectSpace.GetObjectsQuery <Faktura>().Sum(b => b.WartoscBrutto);

            Assert.AreEqual(188.377m, sumaFaktur);


            var korekta = factory.UtworzKorekteCalkowita(faktura);

            korekta.PrzeliczSumy();
            objectSpace.CommitChanges();

            Assert.IsNotNull(korekta, "nie utworzono faktury korygujacej");
            Assert.AreEqual(3, korekta.PozycjeFaktury.Count());
            Assert.AreSame(faktura.Klient, korekta.Klient, "Faktura wystawiona innego klienta niz korekta");
            Assert.IsNotNull(faktura.PozycjeFaktury[0].PozycjaKorygujaca);

            Assert.AreEqual(faktura.PozycjeFaktury[0].WartoscBrutto, faktura.PozycjeFaktury[0].PozycjaKorygujaca.WartoscBrutto * -1);
            Assert.AreEqual(faktura.PozycjeFaktury[0].WartoscBrutto * -1, korekta.PozycjeFaktury[0].WartoscBrutto);
            Assert.AreEqual(faktura.WartoscBrutto * -1, korekta.WartoscBrutto, "Brutto korekty nie zeruje sie z bruttem faktury");

            var SumaFakturPoKorekcie = objectSpace.GetObjectsQuery <Faktura>().Sum(b => b.WartoscBrutto);

            Assert.AreEqual(0, SumaFakturPoKorekcie, "Brutto korekty nie zeruje sie z bruttem faktury by objectQuery");

            faktura.Delete();
            korekta.Delete();
            objectSpace.CommitChanges();
        }
コード例 #3
0
        public void TestKorektyCzesciowej()
        {
            IList <PozycjaFakturyDC> listaPozycjiFaktury = new List <PozycjaFakturyDC>();

            listaPozycjiFaktury.Add(new PozycjaFakturyDC()
            {
                Produkt = objectSpace.FindObject <Produkt>(new BinaryOperator(nameof(Produkt.Nazwa), "Gacie")),
                Ilosc   = 5,
                CenaJednostkowaNetto = 30
            });
            listaPozycjiFaktury.Add(new PozycjaFakturyDC()
            {
                Produkt = objectSpace.FindObject <Produkt>(new BinaryOperator(nameof(Produkt.Nazwa), "Skarpetki")),
                Ilosc   = 5,
                CenaJednostkowaNetto = 10
            });;

            listaPozycjiFaktury.Add(new PozycjaFakturyDC()
            {
                Produkt = objectSpace.FindObject <Produkt>(new BinaryOperator(nameof(Produkt.Nazwa), "Skarpety")),
                Ilosc   = 5,
                CenaJednostkowaNetto = 20
            });;


            var factory = new InvoiceFactory(objectSpace);
            var faktura = factory.UtworzFakture(listaPozycjiFaktury);

            objectSpace.CommitChanges();
            Assert.IsNotNull(faktura, "nie utworzono faktury");
            Assert.AreEqual(3, faktura.PozycjeFaktury.Count());
            Assert.AreEqual(345, faktura.WartoscBrutto);

            IList <PozycjaKorygujacaFakturyDC> listaPozycjiDoSkorygowania = new List <PozycjaKorygujacaFakturyDC>();
            var korektaPusta = factory.UtworzKorekte(faktura, listaPozycjiDoSkorygowania);

            Assert.IsNull(korektaPusta, "Utworzono korektę chociaż nie powinno");
            if (korektaPusta != null)
            {
                korektaPusta.Delete();
            }

            objectSpace.CommitChanges();

            listaPozycjiDoSkorygowania.Add(new PozycjaKorygujacaFakturyDC()
            {
                Produkt = objectSpace.FindObject <Produkt>(new BinaryOperator(nameof(Produkt.Nazwa), "Gacie")),
                Ilosc   = 0,
                CenaJednostkowaNetto = 30
            });
            listaPozycjiDoSkorygowania.Add(new PozycjaKorygujacaFakturyDC()
            {
                Produkt = objectSpace.FindObject <Produkt>(new BinaryOperator(nameof(Produkt.Nazwa), "Skarpetki")),
                Ilosc   = 0,
                CenaJednostkowaNetto = 10
            });

            listaPozycjiDoSkorygowania.Add(new PozycjaKorygujacaFakturyDC()
            {
                Produkt = objectSpace.FindObject <Produkt>(new BinaryOperator(nameof(Produkt.Nazwa), "Skarpety")),
                Ilosc   = 0,
                CenaJednostkowaNetto = 20
            });

            var korekta = factory.UtworzKorekte(faktura, listaPozycjiDoSkorygowania);

            Assert.IsNotNull(korekta, "nie utworzono faktury korygujacej");
            Assert.AreSame(faktura.Klient, korekta.Klient, "Faktura wystawiona innego klienta niz korekta");

            korekta.PrzeliczSumy();
            objectSpace.CommitChanges();

            Assert.AreEqual(3, korekta.PozycjeFaktury.Count(), "Korekta częsciowa ma zła liczbę pozycji");

            var SumaFakturPoKorekcie = objectSpace.GetObjectsQuery <Faktura>().Sum(b => b.WartoscBrutto);

            Assert.AreEqual(0, SumaFakturPoKorekcie, "Brutto korekty nie zeruje sie z bruttem faktury by objectQuery");

            faktura.Delete();
            korekta.Delete();
            objectSpace.CommitChanges();
        }