예제 #1
0
        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);
        }
예제 #2
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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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");
        }
예제 #5
0
        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);
        }