예제 #1
0
        public void ReadXml(XmlReader reader)
        {
            reader.MoveToContent();
            ID = reader.GetAttribute("ID");
            var tmpvolgorde = 0;

            int.TryParse(reader.GetAttribute("volgorde"), out tmpvolgorde);
            volgorde      = tmpvolgorde;
            Omschrijving  = reader.GetAttribute("Omschrijving");
            LinkedMainCat = reader.GetAttribute("LinkedMainCat");
            LinkedSubCat  = reader.GetAttribute("LinkedSubCat");
            //var tmpPrijs = 0.0;
            //double.TryParse(reader.GetAttribute("Prijs"),out tmpPrijs);
            Prijs = ExpertMethods.CultureDeliminatorConverter(reader.GetAttribute("Prijs"));
            //var tmpToeslag = 0.0;
            //double.TryParse(reader.GetAttribute("VerpakkingsToeslag"),out tmpToeslag);
            VerpakkingsToeslag = ExpertMethods.CultureDeliminatorConverter(reader.GetAttribute("VerpakkingsToeslag"));
            var tmpLengt = 0;

            int.TryParse(reader.GetAttribute("Lengte"), out tmpLengt);
            Lengte = tmpLengt;
            var tmpBreedt = 0;

            int.TryParse(reader.GetAttribute("Breedte"), out tmpBreedt);
            Breedte     = tmpBreedt;
            ImgPath     = reader.GetAttribute("ImgPath");
            KleurCode   = reader.GetAttribute("KleurCode");
            Kleur       = reader.GetAttribute("Kleur");
            Naam        = reader.GetAttribute("Naam");
            productcode = reader.GetAttribute("productcode");
            var tmpKlVlg = 0;

            int.TryParse(reader.GetAttribute("kleurvolgorde"), out tmpKlVlg);
            kleurVolgorde = tmpKlVlg;
        }
예제 #2
0
        public void ReadXml(XmlReader reader)
        {
            reader.MoveToContent();
            //double oM;
            //double.TryParse(reader.GetAttribute("Meters"), out oM);
            Meters           = ExpertMethods.CultureDeliminatorConverter(reader.GetAttribute("Meters"));
            RegelIndex       = int.Parse(reader.GetAttribute("RegelIndex"));
            Opmerking        = reader.GetAttribute("Opmerking");
            LinkedSubCat     = reader.GetAttribute("LinkedSubCat");
            NabewerkingSetNR = reader.GetAttribute("NabewerkingSetNR");
            bool isb;

            bool.TryParse(reader.GetAttribute("IsBasis"), out isb);
            IsBasis = isb;
            //double oMp;
            //double.TryParse(reader.GetAttribute("Meerprijs"), out oMp);
            //Meerprijs = oMp;
            Meerprijs = ExpertMethods.CultureDeliminatorConverter(reader.GetAttribute("Meerprijs"));
            int prodEnum;

            if (int.TryParse(reader.GetAttribute("ProdSoort"), out prodEnum))
            {
                ProdSoort = (ProductSoort)prodEnum;
            }
            reader.Read();
            if (reader.MoveToContent() == XmlNodeType.Element && reader.LocalName == "LinkedProduct")
            {
                while (reader.MoveToContent() == XmlNodeType.Element && reader.LocalName == "LinkedProduct")
                {
                    Product p = new Product();
                    p.ReadXml(reader);
                    LinkedProduct = p;
                    reader.Read();
                }
                if (reader.LocalName == "LinkedProduct")
                {
                    reader.ReadEndElement();
                }
            }

            if (reader.MoveToContent() == XmlNodeType.Element && reader.LocalName == "LinkedHoekProf")
            {
                while (reader.MoveToContent() == XmlNodeType.Element && reader.LocalName == "LinkedHoekProf")
                {
                    HoekProfiel h = new HoekProfiel();
                    h.ReadXml(reader);
                    LinkedHoekProf = h;
                    reader.Read();
                }
                if (reader.LocalName == "LinkedHoekProf")
                {
                    reader.ReadEndElement();
                }
            }
        }
예제 #3
0
        public void ReadXml(XmlReader reader)
        {
            reader.MoveToContent();
            ProfielType  = reader.GetAttribute("ProfielType");
            ProfielImg   = reader.GetAttribute("ProfielImg");
            Omschrijving = reader.GetAttribute("Omschrijving");
            ProfielID    = reader.GetAttribute("ProfielID");
            LinkedSubCat = reader.GetAttribute("LinkedSubCat");
            //var tmpMtrs = 0.0;
            //double.TryParse(reader.GetAttribute("Meters"),out tmpMtrs);
            Meters = ExpertMethods.CultureDeliminatorConverter(reader.GetAttribute("Meters"));
            var tmpVlg = 0;

            int.TryParse(reader.GetAttribute("volgorde"), out tmpVlg);
            volgorde = tmpVlg;
            //var tmpVerpToes = 0.0;
            //double.TryParse(reader.GetAttribute("VerpakkingsToeslag"),out tmpVerpToes);
            VerpakkingsToeslag = ExpertMethods.CultureDeliminatorConverter(reader.GetAttribute("VerpakkingsToeslag"));
            KleurCode          = reader.GetAttribute("KleurCode");
            Kleur = reader.GetAttribute("Kleur");
            var tmpKlVlg = 0;

            int.TryParse(reader.GetAttribute("KleurVolgorde"), out tmpKlVlg);
            KleurVolgorde = tmpKlVlg;

            int lenOut;

            if (int.TryParse(reader.GetAttribute("Lengte"), out lenOut))
            {
                Lengte = lenOut;
            }
            int breOut;

            if (int.TryParse(reader.GetAttribute("Breedte"), out breOut))
            {
                Breedte = breOut;
            }
            bool expmd;

            if (bool.TryParse(reader.GetAttribute("IsExpertMode"), out expmd))
            {
                IsExpertMode = expmd;
            }
        }
        private ExpertReceipt MakeBon()
        {
            var ctx    = Acumulator.Instance().ctx;
            var tmpBon = new ExpertReceipt();

            if (Acumulator.Instance().OTracker != null && Acumulator.Instance().OTracker.offerteRuimte_ != null)
            {
                GetInstapPrijzen();
                tmpBon.Clear();
                var bouwnr = (from b in Acumulator.Instance().ctx.Bouwnummers
                              where b.B_ID == Acumulator.Instance().Bouwnr
                              select b.Omschrijving).FirstOrDefault();
                tmpBon.AddArticle(bouwnr, -1, true);
                foreach (Ruimte r in Acumulator.Instance().OTracker.offerteRuimte_.Children)
                {
                    tmpBon.AddArticle(r.Omschrijving, -1, true);
                    if (r.GekozenPakket != null)
                    {
                        tmpBon.AddArticle("Pakket: " + r.GekozenPakket.Omschrijving, r.GekozenPakket.PrijsHuidig, false);
                    }
                    foreach (OptieKeuze op in r.GekozenOpties)
                    {
                        op.laad_verder();
                        var dorpelcat = (from dc in Acumulator.Instance().ctx.SubCatPerRuimteDeels
                                         where dc.R_NR == op.OptieID && dc.SCB_NR == "SCB13"
                                         select dc.R_NR).FirstOrDefault();

                        var prijs = 0.0;
                        if (r.GekozenPakket != null)
                        {
                            prijs = op.getMeerprijs(Acumulator.Instance().ctx, (r.GekozenPakket as PakketKeuze).PakketPrijsgroep_NR);
                        }
                        else
                        {
                            var basispakket = (from rpt in ctx.RuimtesPerTypes
                                               where rpt.R_NR == Acumulator.Instance().BB.HuidigRuimte.RuimteID
                                               select rpt.BasisPakket_NR).FirstOrDefault();
                            var optiebasisprijs = 0.0;
                            if (basispakket != null)
                            {
                                var basispakprijs = (from pr in ctx.MeerPrijzenRuimteOpties
                                                     where pr.R_NR == op.OptieID && pr.PP_NR == (from p in ctx.Pakkettens where p.P_ID == basispakket select p.PP_NR).FirstOrDefault()
                                                     select pr.meerprijs).FirstOrDefault();
                                if (basispakprijs != null)
                                {
                                    optiebasisprijs = Acumulator.Instance().BerekenEindPrijs((double)basispakprijs);
                                }
                            }
                            if (optiebasisprijs == 0)
                            {
                                optiebasisprijs = op.BasisPrijs;
                            }
                            prijs = optiebasisprijs;
                        }
                        tmpBon.AddArticle(op.Omschrijving, prijs, false);
                        if (dorpelcat != null && r.GekozenTegels.Count > 0)
                        {
                            if (!Acumulator.Instance().ProjFase.FilterDorpels)
                            {
                                var oms = r.GekozenTegels.Where(x => x.Omschrijving.Contains('€')).FirstOrDefault();
                                if (oms != null)
                                {
                                    var parts = oms.Omschrijving.Split('€');
                                    if (parts[1] != "0,00")
                                    {
                                        tmpBon.AddArticle("Meerprijs Dorpel", double.Parse(parts[1]), false);
                                    }
                                }
                            }
                        }
                    }
                    foreach (var exmtrs in r.AanvullendeMeters)
                    {
                        if (!exmtrs.IsBasis)
                        {
                            var accText  = exmtrs.LinkedProduct != null ?  exmtrs.LinkedProduct.Omschrijving : exmtrs.LinkedHoekProf != null ? exmtrs.LinkedHoekProf.Omschrijving : ""; // + ": " + exmtrs.Meters + " meter voor €" + exmtrs.Meerprijs.ToString() + " per meter";
                            var accPrijs = exmtrs.Meters * exmtrs.Meerprijs;                                                                                                            // +(exmtrs.LinkedProduct != null ? exmtrs.LinkedProduct.VerpakkingsToeslag : exmtrs.LinkedHoekProf != null ? exmtrs.LinkedHoekProf.VerpakkingsToeslag : 0.0);//0.0;
                            tmpBon.AddArticle(accText, accPrijs, false);
                        }
                        if (exmtrs.LinkedProduct != null)
                        {
                            ExpertMethods.instapPrijsCalc(exmtrs.LinkedProduct.ID, exmtrs.LinkedProduct.Omschrijving, instapChecklist, exmtrs.LinkedProduct.VerpakkingsToeslag, HeleDozenLijst);
                        }
                        else if (exmtrs.LinkedHoekProf != null)
                        {
                            ExpertMethods.instapPrijsCalc(exmtrs.LinkedHoekProf.ProfielID, exmtrs.LinkedHoekProf.Omschrijving, instapChecklist, exmtrs.LinkedHoekProf.VerpakkingsToeslag, HeleDozenLijst);
                        }
                    }

                    tmpBon.AddArticle("", -1, true);
                }
                var oruim = Acumulator.Instance().OTracker.offerteRuimte_;

                //instap prijzen aka afname hele dozen
                tmpBon.AddArticle("Afname hele dozen", -1, true);

                double dozenprijs = 0.0;
                foreach (var hd in HeleDozenLijst)
                {
                    tmpBon.AddArticle(hd.Key, hd.Value, false);
                    dozenprijs += hd.Value;
                }


                //if(oruim.Korting != null && oruim.Korting.KortingBedrag > 0.0)
                //{
                //    var kort = oruim.Korting.KortingBedrag * -1;
                //    tmpBon.AddArticle("Korting", kort,true );
                //}

                this.Setprijs(tmpBon.GetTotal());
            }
            return(tmpBon);
        }
예제 #5
0
        private void GenerateReport(bool saveneeded, DateTime printDatum)
        {
            //var bitmapImage = new BitmapImage();

            //bitmapImage.UriSource = new Uri("Images/logo-payoff-online.jpg",UriKind.Relative);
            byte[] bytes;
            // Get an Image Stream
            using (var ms = ImageTools.Helpers.Extensions.GetLocalResourceStream(new Uri("Images/logo-payoff-online.jpg", UriKind.Relative)))
            {
                // reset the stream pointer to the beginning
                ms.Seek(0, 0);
                //read the stream into a byte array
                bytes = new byte[ms.Length];
                ms.Read(bytes, 0, bytes.Length);
            }
            //data now holds the bytes of the image
            if (bytes != null)
            {
                using (MemoryStream ms = new MemoryStream(bytes, 0, bytes.Length))
                {
                    BitmapImage im = new BitmapImage();
                    im.SetSource(ms);
                    var BlueprintImg = new Image();
                    BlueprintImg.Source = im;
                    BlueprintImg.Width  = 266;
                    HeaderGrid.Children.Add(BlueprintImg);
                    BlueprintImg.SetValue(Grid.ColumnProperty, 0);
                    BlueprintImg.SetValue(Grid.RowSpanProperty, 2);
                    BlueprintImg.SetValue(Grid.RowProperty, 0);
                    BlueprintImg.Margin = new Thickness(45, 63, 15, 0);
                    BlueprintImg.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
                    BlueprintImg.VerticalAlignment   = System.Windows.VerticalAlignment.Top;
                }
            }

            //Header
            var ctx  = Acumulator.Instance().ctx;
            var inst = Acumulator.Instance();

            //	TBKlantnaam.Text += Acumulator.Instance().GebruikersNaam;
            //	TBDatum.Text += DateTime.Now.ToShortDateString();
            var instapChecklist = new Dictionary <String, int>();

            HeleDozenLijst.Clear();
            MakeHeader();
            MakeFooter(saveneeded, printDatum);
            ///
            if (inst.OTracker != null && inst.OTracker.offerteRuimte_ != null)
            {
                foreach (Ruimte r in inst.OTracker.offerteRuimte_.Children)
                {
                    foreach (var p in r.GekozenTegels)
                    {
                        if (instapChecklist.ContainsKey(p.ID))
                        {
                            instapChecklist[p.ID] += 1;
                        }
                        else
                        {
                            instapChecklist.Add(p.ID, 1);
                        }
                    }
                    foreach (var p in r.GekozenProfielen)
                    {
                        if (instapChecklist.ContainsKey(p.ProfielID))
                        {
                            instapChecklist[p.ProfielID] += 1;
                        }
                        else
                        {
                            instapChecklist.Add(p.ProfielID, 1);
                        }
                    }
                }


                double totaalprijs = 0;
                foreach (Ruimte r in inst.OTracker.offerteRuimte_.Children)
                {
                    if (r.GekozenPakket != null)
                    {
                        AddArticle(inst.MaakStartZin(r.Omschrijving), -1, true);
                        AddArticle(inst.MaakStartZin("Pakket: " + r.GekozenPakket.Omschrijving), r.GekozenPakket.PrijsHuidig, true);
                    }
                    foreach (OptieKeuze op in r.GekozenOpties)
                    {
                        op.laad_verder();
                        var dorpelcat = (from dc in ctx.SubCatPerRuimteDeels
                                         where dc.R_NR == op.OptieID && dc.SCB_NR == "SCB13"
                                         select dc.R_NR).FirstOrDefault();



                        var tmptotPrijs = 0.0;
                        if (r.GekozenPakket != null)
                        {
                            tmptotPrijs += op.getMeerprijs(ctx, r.GekozenPakket.PakketPrijsgroep_NR);
                        }
                        else
                        {
                            var basispakket = (from rpt in ctx.RuimtesPerTypes
                                               where rpt.R_NR == inst.BB.HuidigRuimte.RuimteID
                                               select rpt.BasisPakket_NR).FirstOrDefault();
                            var optiebasisprijs = 0.0;
                            if (basispakket != null)
                            {
                                var basispakprijs = (from pr in ctx.MeerPrijzenRuimteOpties
                                                     where pr.R_NR == op.OptieID && pr.PP_NR == (from p in ctx.Pakkettens where p.P_ID == basispakket select p.PP_NR).FirstOrDefault()
                                                     select pr.meerprijs).FirstOrDefault();
                                if (basispakprijs != null)
                                {
                                    optiebasisprijs = inst.BerekenEindPrijs((double)basispakprijs);
                                }
                            }
                            if (optiebasisprijs == 0)
                            {
                                optiebasisprijs = op.BasisPrijs;
                            }
                            tmptotPrijs = optiebasisprijs;
                        }
                        AddArticle(inst.MaakStartZin(op.Omschrijving), tmptotPrijs, false);
                        totaalprijs += tmptotPrijs;
                        if (dorpelcat != null && r.GekozenTegels.Count > 0)
                        {
                            if (!inst.ProjFase.FilterDorpels)
                            {
                                var oms = r.GekozenTegels.Where(x => x.Omschrijving.Contains('€')).FirstOrDefault();
                                if (oms != null)
                                {
                                    var parts = oms.Omschrijving.Split('€');
                                    if (parts[1] != "0,00")
                                    {
                                        AddArticle("Meerprijs Dorpel", double.Parse(parts[1]), false);
                                        totaalprijs += double.Parse(parts[1]);
                                    }
                                }
                            }
                        }
                    }
                    foreach (var exmtrs in r.AanvullendeMeters)
                    {
                        if (!exmtrs.IsBasis)
                        {
                            exmtrs.ProdSoort = exmtrs.LinkedSubCat != null && (exmtrs.LinkedSubCat == "SCB13" || exmtrs.LinkedSubCat == "SCB18") ? ProductSoort.Dorpel : exmtrs.ProdSoort;

                            var eenheidsText = exmtrs.ProdSoort == ProductSoort.HoekProfiel ? "m x €" : exmtrs.ProdSoort == ProductSoort.Dorpel ? "st x €" : "m² x €";
                            var accText      = (
                                exmtrs.LinkedProduct != null ?
                                exmtrs.LinkedProduct.Omschrijving :
                                (
                                    exmtrs.LinkedHoekProf != null ?
                                    exmtrs.LinkedHoekProf.Omschrijving : ""
                                )
                                )
                                               + " (" + exmtrs.Meters + eenheidsText + exmtrs.Meerprijs.ToString() + ")";
                            var accPrijs = exmtrs.Meters * exmtrs.Meerprijs;
                            if (exmtrs.LinkedProduct != null)
                            {
                                ExpertMethods.instapPrijsCalc(exmtrs.LinkedProduct.ID, exmtrs.LinkedProduct.Omschrijving, instapChecklist, exmtrs.LinkedProduct.VerpakkingsToeslag, HeleDozenLijst);
                            }
                            else if (exmtrs.LinkedHoekProf != null)
                            {
                                ExpertMethods.instapPrijsCalc(exmtrs.LinkedHoekProf.ProfielID, exmtrs.LinkedHoekProf.Omschrijving, instapChecklist, exmtrs.LinkedHoekProf.VerpakkingsToeslag, HeleDozenLijst);
                            }
                            totaalprijs += accPrijs;
                            AddArticle(accText, accPrijs, false);
                        }
                    }
                    AddArticle("", -1, true);
                }
                //afname van hele dozen
                AddArticle("Afname Hele Dozen", -1, true);
                double dozenprijs = 0.0;
                foreach (var hd in HeleDozenLijst)
                {
                    AddArticle(hd.Key, hd.Value, false);
                    dozenprijs += hd.Value;
                }
                AddArticle("", -1, true);
                AddArticle("subtotaal afname hele dozen", dozenprijs, true);
                totaalprijs += dozenprijs;
                //
                //

                MakeTotals();
            }
        }