Esempio n. 1
0
        private bool addTegelLine(AdvancedVervangRegel rgl, bool BasisReplaced)
        {
            var result    = true;
            var ctx       = Acumulator.Instance().ctx;
            var curRuimte = Acumulator.Instance().BB.HuidigRuimte;
            var lsc       = rgl.Status == StatusType.Basis ? InternData.SubCatNR : "Sub4Accent" + Ruimte.GenerateScbNr4Accent(InternData.SubCatNR).SCB_ID;

            var product = (from prdct in ctx.Productens
                           where prdct.PD_ID == rgl.GekozenTegel.ProductId
                           select new Product()
            {
                ID = prdct.PD_ID,
                volgorde = (int)prdct.volgorde,
                VerpakkingsToeslag = rgl.GekozenTegel.InstapPrijs,               //(double)prdct.verpakkingstoeslag,
                LinkedSubCat = lsc,
                LinkedMainCat = InternData.HCNR,
                Omschrijving = prdct.Omschrijving,
                Kleur = (from kleur in ctx.Kleurens
                         where kleur.K_ID == prdct.PKC_NR
                         select kleur.Omschrijving).FirstOrDefault().ToString(),
                kleurVolgorde = (from kleur in ctx.Kleurens
                                 where kleur.K_ID == prdct.PKC_NR
                                 select(int) kleur.volgorde).FirstOrDefault(),
                KleurCode = prdct.PKC_NR,
                Breedte = (int)prdct.breedte,
                Lengte = (int)prdct.lengte,
                ImgPath = prdct.ImagePath,
                productcode = prdct.productcode
            }).FirstOrDefault();

            if (product != null)
            {
                if (rgl.Status != StatusType.Basis || BasisReplaced)
                {
                    curRuimte.GekozenAccenten.Add(product);
                }

                var extMeters = new ExtraMeters
                {
                    LinkedProduct    = product,
                    LinkedSubCat     = InternData.SubCatNR,
                    Meters           = rgl.VervangInfo.GekozenMeters,
                    RegelIndex       = rgl.RegelIndex,
                    NabewerkingSetNR = rgl.GekozenTegel.NSNR,
                    IsBasis          = rgl.Status == StatusType.Basis ? !BasisReplaced : false,
                    Meerprijs        = rgl.GekozenTegel.PrijsPerMeter,
                    Opmerking        = rgl.VervangInfo.Opmerking,
                    ProdSoort        = ProductSoort.Tegel
                };

                curRuimte.AanvullendeMeters.Add(extMeters);
            }

            return(result);
        }
        private PaginaBlok MakeAccentBlok(Ruimte r, string MainCatNr)
        {
            var pBlok = new PaginaBlok(15);
            ///////////////
            var ctx   = Acumulator.Instance().ctx;
            var nabew = r.qryNabewerkingen(Acumulator.Instance().ctx);

            foreach (var ac in r.GekozenAccenten.Where(x => x.LinkedSubCat.StartsWith("Sub4Accent")))
            {
                if (MainCatNr == ac.LinkedMainCat)
                {
                    if (r.AanvullendeMeters.Count(x => x.LinkedProduct != null && x.LinkedProduct.ID == ac.ID && x.IsBasis == false) > 0)
                    {
                        var scb_ax_s = (from sc in ctx.SubCatPerPakkets
                                        where sc.SCBP_ID == ac.LinkedSubCat
                                        select sc.SCB_NR).FirstOrDefault();//

                        var scb_ax = "";
                        var foo    = "";

                        if (scb_ax_s != null)
                        {
                            scb_ax = scb_ax_s.ToString();
                            foo    = ac.LinkedSubCat;
                        }
                        else
                        {
                            scb_ax = ac.LinkedSubCat.StartsWith("Sub4Accent") ? ac.LinkedSubCat : "Sub4Accent" + Ruimte.GenerateScbNr4Accent(ac.LinkedSubCat).SCB_ID;
                            foo    = scb_ax;
                        }
                        //var bew_ax = r.GekozenBewerkingen.Where(b => b.LinkedSubcatNr == scb_ax).ToList();
                        var bew_ax = r.GekozenBewerkingen.Where(b => b.Kenmerk != null && b.Kenmerk.StartsWith(ac.ID + NabewerkingHandler.TranslateSubCat(scb_ax))).ToList();
                        if (bew_ax.Count == 0)
                        {
                            bew_ax = r.GekozenBewerkingen.Where(b => b.LinkedSubcatNr == NabewerkingHandler.TranslateSubCat(scb_ax)).ToList();
                        }
                        if (bew_ax.Count > 0)
                        {
                            var scpp_ax = nabew.Where(n => n.ID == foo).FirstOrDefault() as Classes.SubCatPerPakket;
                            var vExM    = r.AanvullendeMeters.FirstOrDefault(x => x.LinkedProduct != null && x.LinkedProduct.ID == ac.ID);

                            var    vAccTgl    = vExM.LinkedProduct;
                            string oms_ax     = "";
                            var    eenheid_ax = "m²";
                            if (scpp_ax != null)
                            {
                                oms_ax = (from c in ctx.Categorieëns
                                          join sbct in ctx.SubCats on c.C_ID equals sbct.C_NR
                                          where sbct.SCB_ID == scpp_ax.SubCatNR
                                          select c.Omschrijving).FirstOrDefault();

                                eenheid_ax = (from e in ctx.SubCats
                                              where e.SCB_ID == scpp_ax.SubCatNR
                                              select e.eenheidMETERS).FirstOrDefault();
                            }

                            if (oms_ax.ToLower().StartsWith("accent") == false)
                            {
                                pBlok.AddRegel(Environment.NewLine, Environment.NewLine, false);
                                pBlok.AddRegel(null, oms_ax, true);
                            }
                            var meters_ax = vExM.Meters;
                            pBlok.AddRegel(Math.Round(meters_ax, 2) + eenheid_ax, vAccTgl.productcode.TrimStart(' ') + " " + vAccTgl.Kleur + " " + vAccTgl.Breedte.ToString().Substring(0, 2) + "x" + vAccTgl.Lengte.ToString().Substring(0, 2) + "cm", false);
                            string lijm_ax = "", verwerking_ax = "";

                            foreach (var b in bew_ax.Where(x => x.NabewerkingSetNr == vExM.NabewerkingSetNR))
                            {
                                if (lijm_ax == "")
                                {
                                    lijm_ax = b.TextVoorZin;
                                }
                                else
                                {
                                    verwerking_ax = b.Omschrijving;
                                }
                            }
                            if (String.IsNullOrEmpty(lijm_ax))
                            {
                                var b = bew_ax.Where(x => x.BewerkingCat_NR == "NC1").FirstOrDefault();
                                if (b != null)
                                {
                                    lijm_ax = b.TextVoorZin;
                                }
                            }
                            if (String.IsNullOrEmpty(verwerking_ax))
                            {
                                var b = bew_ax.Where(x => x.BewerkingCat_NR != "NC1").FirstOrDefault();
                                if (b != null)
                                {
                                    verwerking_ax = b.Omschrijving;
                                }
                            }
                            string zin_ax = verwerking_ax + " verwerken met " + lijm_ax + " voeg";

                            pBlok.AddRegel(null, zin_ax, false);
                            var OpmText = vExM.Opmerking;
                            if (OpmText != null && OpmText.Count() > 45)
                            {
                                var za = OpmText.Substring(0, OpmText.IndexOf(' ', 45));
                                var zb = OpmText.Substring(za.Length + 1, OpmText.Length - za.Length - 1);
                                if (!String.IsNullOrEmpty(za))
                                {
                                    pBlok.AddRegel(null, za, false);
                                }
                                if (!String.IsNullOrEmpty(zb))
                                {
                                    pBlok.AddRegel(null, zb, false);
                                }
                            }
                            else
                            {
                                if (!String.IsNullOrEmpty(vExM.Opmerking))
                                {
                                    pBlok.AddRegel(null, vExM.Opmerking, false);
                                }
                            }
                        }
                    }
                }
            }
            //////////////
            return(pBlok);
        }
Esempio n. 3
0
        private bool addHoekLine(AdvancedVervangRegel rgl, bool BasisReplaced)
        {
            var result    = true;
            var ctx       = Acumulator.Instance().ctx;
            var curRuimte = Acumulator.Instance().BB.HuidigRuimte;
            var lsc       = rgl.Status == StatusType.Basis ? InternData.SubCatNR : "Sub4Accent" + Ruimte.GenerateScbNr4Accent(InternData.SubCatNR).SCB_ID;


            var hoekprof = (from prf in ctx.Productens
                            where prf.PD_ID == rgl.GekozenTegel.ProductId
                            select new HoekProfiel()
            {
                ProfielID = prf.PD_ID,
                volgorde = (int)prf.volgorde,
                VerpakkingsToeslag = rgl.GekozenTegel.InstapPrijs,
                LinkedSubCat = lsc,
                Omschrijving = prf.Omschrijving,
                Kleur = (from kleur in ctx.Kleurens
                         where kleur.K_ID == prf.PKC_NR
                         select kleur.Omschrijving).FirstOrDefault().ToString(),
                KleurVolgorde = (from kleur in ctx.Kleurens
                                 where kleur.K_ID == prf.PKC_NR
                                 select(int) kleur.volgorde).FirstOrDefault(),
                KleurCode = prf.PKC_NR,
                Breedte = (int)prf.breedte,
                Lengte = (int)prf.lengte,
                ProfielImg = prf.ImagePath,
                Meters = rgl.VervangInfo.GekozenMeters,
                IsExpertMode = true,
            }).FirstOrDefault();

            if (hoekprof != null)
            {
                if (rgl.Status != StatusType.Basis || BasisReplaced)
                {
                    curRuimte.GekozenProfielen.Add(hoekprof);
                }



                var extMeters = new ExtraMeters
                {
                    LinkedHoekProf   = hoekprof,
                    LinkedSubCat     = InternData.SubCatNR,
                    Meters           = rgl.VervangInfo.GekozenMeters,
                    RegelIndex       = rgl.RegelIndex,
                    NabewerkingSetNR = rgl.GekozenTegel.NSNR,
                    IsBasis          = rgl.Status == StatusType.Basis ? !BasisReplaced : false,
                    Meerprijs        = rgl.GekozenTegel.PrijsPerMeter,
                    Opmerking        = rgl.VervangInfo.Opmerking,
                    ProdSoort        = ProductSoort.HoekProfiel
                };
                curRuimte.AanvullendeMeters.Add(extMeters);
            }

            return(result);
        }