public MetalViewModel(JobSetup js)
        {
            prevailingWage = js.ActualPrevailingWage == 0?0:(js.ActualPrevailingWage - laborRate) / laborRate;
            GetMetalDetailsFromGoogle(js.ProjectName);
            if (js.ProjectName == "Paraseal LG")
            {
                Metals      = GetMetalsLG();
                AddOnMetals = GetAddOnMetalsLG();
            }
            else
            {
                Metals      = GetMetals();
                AddOnMetals = GetAddOnMetals();
            }

            MiscMetals = GetMiscMetals();
            if (js.ProjectName == "Multicoat")
            {
                MiscMetals.Where(x => x.Name == "Nosing for Concrete risers").FirstOrDefault().Units = 0;
            }
            //if (js.ProjectName == "Paraseal LG")
            //{
            //    foreach (Metal item in Metals.Where(x=>x.Name.Contains("STAIR METAL")))
            //    {
            //        item.Units = 0;
            //    }
            //}
            CalculateCost(null);
            js.JobSetupChange += JobSetup_OnJobSetupChange;
        }
Esempio n. 2
0
        public void OnJobSetupChange(JobSetup Js)
        {
            if (Js == null)
            {
                return;
            }
            if (Js != null)
            {
                MetalName        = Js.MaterialName;
                isPrevailingWage = Js.IsPrevalingWage;
                isDiscount       = Js.HasDiscount;
                vendorName       = Js.VendorName;
                stairWidth       = Js.StairWidth;
                isFlash          = Js.IsFlashingRequired;
                riserCount       = Js.RiserCount;
                MaterialPerc     = getMaterialDiscount(Js.ProjectDelayFactor);
                prevailingWage   = Js.ActualPrevailingWage == 0?0:(Js.ActualPrevailingWage - laborRate) / laborRate;
                if (Js.HasSpecialPricing)
                {
                    ShowSpecialPriceColumn = System.Windows.Visibility.Visible;
                }
                else
                {
                    ShowSpecialPriceColumn = System.Windows.Visibility.Hidden;
                }
            }
            ObservableCollection <Metal> met = new ObservableCollection <Metal>();

            if (Js.ProjectName == "Paraseal LG")
            {
                met = GetMetalsLG();
            }
            else
            {
                met = GetMetals();
            }

            for (int i = 0; i < Metals.Count; i++)
            {
                double units      = Metals[i].Units;
                double sp         = Metals[i].SpecialMetalPricing;
                bool   isSelected = Metals[i].IsStairMetalChecked;

                Metals[i] = met[i];
                if (!Metals[i].Name.Contains("STAIR METAL"))
                {
                    Metals[i].Units = units;
                    Metals[i].IsStairMetalChecked = isSelected;
                }
                else
                {
                    Metals[i].IsStairMetalChecked = isSelected;
                }

                Metals[i].SpecialMetalPricing = sp;
            }
            ObservableCollection <AddOnMetal> addOnMet = new ObservableCollection <AddOnMetal>();

            if (Js.ProjectName == "Paraseal LG")
            {
                addOnMet = GetAddOnMetalsLG();
            }
            else
            {
                addOnMet = GetAddOnMetals();
            }

            for (int i = 0; i < AddOnMetals.Count; i++)
            {
                double units     = AddOnMetals[i].Units;
                double sp        = AddOnMetals[i].SpecialMetalPricing;
                bool   ischecked = AddOnMetals[i].IsMetalChecked;
                AddOnMetals[i] = addOnMet[i];
                if (!AddOnMetals[i].Name.Contains("STAIR METAL"))
                {
                    AddOnMetals[i].Units = units;
                }
                AddOnMetals[i].IsMetalChecked      = ischecked;
                AddOnMetals[i].SpecialMetalPricing = sp;
            }

            if (Js != null)
            {
                if (Js.ProjectName == "Multicoat")
                {
                    MiscMetals.Where(x => x.Name == "Nosing for Concrete risers").FirstOrDefault().Units = 0;
                }
                else
                {
                    MiscMetals[1].Units = getUnits(3);
                }
            }

            CalculateCost(null);
        }