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