private void WystawKorekteAction_Execute(object sender, SimpleActionExecuteEventArgs e) { IObjectSpace os = Application.CreateObjectSpace(); var factory = new InvoiceFactory(os); var wybranaFaktura = os.GetObject(View.CurrentObject as Faktura); var korekta = factory.UtworzKorekteCalkowita(wybranaFaktura); if (korekta != null) { string detailId = Application.FindDetailViewId(korekta.GetType()); DetailView detailView = Application.CreateDetailView(os, detailId, true, korekta); e.ShowViewParameters.CreatedView = detailView; e.ShowViewParameters.Context = TemplateContext.View; e.ShowViewParameters.TargetWindow = TargetWindow.Default; // po zamknieciu okna zostanie wywołane zdarzenie detailView.Closed += DetailView_Closed; } }
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(); }