private bool SaveExtraMeterLine(AdvancedVervangRegel rgl, bool BasisReplaced) { var result = true; if (rgl.VervangInfo.Wijzigstand == true) { result = false; } if (result) { switch (rgl.GekozenTegel.ProdSoort) { case ProductSoort.Dorpel: result &= addDorpelLine(rgl, BasisReplaced); break; case ProductSoort.Tegel: result &= addTegelLine(rgl, BasisReplaced); break; case ProductSoort.HoekProfiel: result &= addHoekLine(rgl, BasisReplaced); break; } } return(result); }
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); }
private bool addDorpelLine(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 dorpl = (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 (dorpl != null) { if (rgl.Status != StatusType.Basis || BasisReplaced) { curRuimte.GekozenAccenten.Add(dorpl); } var extMeters = new ExtraMeters { LinkedProduct = dorpl, 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.Dorpel }; curRuimte.AanvullendeMeters.Add(extMeters); } return(result); }
private void AddRemoveBtn_Click(object sender, RoutedEventArgs e) { DependencyObject tvi = null; var button = sender as Button; //walk up the tree to find the ListboxItem var mic = sender as MetersInvoerControl; if (button != null) { tvi = findParentTreeItem(button, typeof(ListBoxItem)); } else { tvi = findParentTreeItem(mic, typeof(ListBoxItem)); } //if not null cast the Dependancy object to type of Listbox item. if (tvi != null) { ListBoxItem lbi = tvi as ListBoxItem; //select it. lbi.IsSelected = true; } var regel = AccentenListBox.SelectedItem as AdvancedVervangRegel; if (regel != null && regel.Status == StatusType.Leeg) { regel.Status = StatusType.Toevoeging; var nwRegel = AdvancedVervangRegel.GetNewTegelRegel(AdvancedTegelSubCatInfo.GetTegelColl(InternData.TegelInput, InternData.BasisTegel.InwisselPrijs, InternData.BasisTegel.ProdSoort), InternData.GetFirstFreeIndex(), InternData.Regels.FirstOrDefault().Eenheid); InternData.Regels.Add(nwRegel); regel.VervangInfo.Wijzigstand = true; } else if (regel != null && regel.Status == StatusType.Toevoeging) { InternData.Regels.Remove(regel); if (InternData.Regels.Count == 1) { InternData.Regels.Add(AdvancedVervangRegel.GetNewTegelRegel(AdvancedTegelSubCatInfo.GetTegelColl(InternData.TegelInput, InternData.BasisTegel.InwisselPrijs, InternData.BasisTegel.ProdSoort), InternData.GetFirstFreeIndex(), InternData.Regels.FirstOrDefault().Eenheid)); } RecalcBasisMeters(); } OnPropertyChanged("CanAddDelete"); }
public void LoadContext(AdvancedTegelSubCatInfo Data) { InternData = Data; DataContext = this; var ruimte = Acumulator.Instance().BB.HuidigRuimte; if (ruimte.AanvullendeMeters.Where(a => a.LinkedSubCat == InternData.SubCatNR) != null && ruimte.AanvullendeMeters.Where(a => a.LinkedSubCat == InternData.SubCatNR).ToList().Count > 0) { Acumulator.Instance().BB.ShowWijzigBtn(true); LeesStand = true; foreach (var exM in ruimte.AanvullendeMeters) { if (exM.LinkedSubCat != InternData.SubCatNR) { continue; } if (exM.RegelIndex == 0) { var basisrgl = InternData.Regels.FirstOrDefault(r => r.Status == StatusType.Basis); if (basisrgl == null) { continue; } //basisrgl.Opmerking = exM.Opmerking; basisrgl.VervangInfo.Opmerking = exM.Opmerking; var bsTgl = basisrgl.VervangInfo.Tegels.FirstOrDefault(t => t.ProdSoort == ProductSoort.Tegel && t.ProductId == exM.LinkedProduct.ID); if (bsTgl != null) { bsTgl.IsGekozen = true; basisrgl.GekozenTegel = basisrgl.VervangInfo.Tegels.FirstOrDefault(t => t.ProductId == exM.LinkedProduct.ID); continue; } bsTgl = basisrgl.VervangInfo.Tegels.FirstOrDefault(h => h.ProdSoort == ProductSoort.HoekProfiel && h.ProductId == exM.LinkedHoekProf.ProfielID); if (bsTgl != null) { bsTgl.IsGekozen = true; basisrgl.GekozenTegel = basisrgl.VervangInfo.Tegels.FirstOrDefault(t => t.ProductId == exM.LinkedHoekProf.ProfielID); continue; } bsTgl = basisrgl.VervangInfo.Tegels.FirstOrDefault(d => d.ProdSoort == ProductSoort.Dorpel && d.ProductId == exM.LinkedProduct.ID); if (bsTgl != null) { bsTgl.IsGekozen = true; basisrgl.GekozenTegel = basisrgl.VervangInfo.Tegels.FirstOrDefault(t => t.ProductId == exM.LinkedProduct.ID); continue; } continue; } AdvancedVervangRegel freshRgl; freshRgl = InternData.Regels.FirstOrDefault(r => r.Status == StatusType.Leeg); if (freshRgl == null) { freshRgl = AdvancedVervangRegel.GetNewTegelRegel(AdvancedTegelSubCatInfo.GetTegelColl(InternData.TegelInput, InternData.BasisTegel.InwisselPrijs, exM.ProdSoort), InternData.GetFirstFreeIndex(), InternData.Regels.FirstOrDefault().Eenheid); InternData.Regels.Add(freshRgl); } freshRgl.Status = StatusType.Toevoeging; freshRgl.VervangInfo.Wijzigstand = false; //freshRgl.Opmerking = exM.Opmerking; freshRgl.VervangInfo.Opmerking = exM.Opmerking; if (exM.LinkedProduct != null) { var tglItem = freshRgl.VervangInfo.Tegels.FirstOrDefault(t => t.ProductId == exM.LinkedProduct.ID); if (tglItem != null) { tglItem.IsGekozen = true; freshRgl.GekozenTegel = tglItem; } } else if (exM.LinkedHoekProf != null) { var tglItem = freshRgl.VervangInfo.Tegels.FirstOrDefault(t => t.ProductId == exM.LinkedHoekProf.ProfielID); if (tglItem != null) { tglItem.IsGekozen = true; freshRgl.GekozenTegel = tglItem; } } freshRgl.VervangInfo.GekozenMeters = exM.Meters; var newEmptyrgl = AdvancedVervangRegel.GetNewTegelRegel(AdvancedTegelSubCatInfo.GetTegelColl(InternData.TegelInput, InternData.BasisTegel.InwisselPrijs, exM.ProdSoort), InternData.GetFirstFreeIndex(), InternData.Regels.FirstOrDefault().Eenheid); InternData.Regels.Add(newEmptyrgl); newEmptyrgl.Status = StatusType.Leeg; newEmptyrgl.VervangInfo.Wijzigstand = false; } } RecalcBasisMeters(); LeesStand = Acumulator.Instance().BB.IsCurrentComplete(); Acumulator.Instance().BB.ShowWijzigBtn(LeesStand); }