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(); }
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(); }
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(); }