Пример #1
0
        public override ObservableCollection <SystemMaterial> GetSystemMaterial()
        {
            ObservableCollection <SystemMaterial> smCollection = new ObservableCollection <SystemMaterial>();
            int k = 0;

            foreach (string key in materialNames.Keys)
            {
                SystemMaterial sm = getSMObject(k, key, materialNames[key]);
                smCollection.Add(sm);
                if (key == "Resistite textured knockdown finish (smooth or regular per customer)Gray" ||
                    key == "CUSTOM TEXTURE SKIP TROWEL (RESISTITE SMOOTH GRAY)")
                {
                    k = k + 2;
                }
                else
                {
                    k++;
                }
                if (key == "RP FABRIC 10 INCH WIDE X (300 LF)")
                {
                    sm.VerticalProductionRate = 100 * (1 + prPerc);
                    sm.VerticalSqft           = deckPerimeter;
                    sm.Hours          = deckPerimeter / sm.VerticalProductionRate;
                    sm.LaborExtension = (sm.SetupMinCharge + sm.Hours) * laborRate;
                    sm.LaborUnitPrice = sm.LaborExtension / (riserCount + totalSqft);
                }
            }
            double minLCharge = 0;

            double.TryParse(materialDetails[k][6].ToString(), out minLCharge);
            LaborMinChargeMinSetup = minLCharge;

            return(smCollection);
        }
        //Calculate for "Add for Safe Grip Additive"
        public override void calculateRLqty()
        {
            //base.calculateRLqty();
            double val1=0, val2 = 0;
            SystemMaterial sysmat = SystemMaterials.Where(x => x.Name == "SC-70 clear acrylic lacquer 200-300 sq ft per gallon").FirstOrDefault();
            if (sysmat!=null)
            {
                val1 = sysmat.IsMaterialChecked ? sysmat.Qty : 0;
            }
            sysmat = SystemMaterials.Where(x => x.Name == "SC-10 solid color sealer IN LIEU of SC-70").FirstOrDefault();
            if (sysmat != null)
            {
                val2 = sysmat.IsMaterialChecked ? sysmat.Qty : 0;

            }

            sysmat = SystemMaterials.Where(x => x.Name == "Add for Safe Grip Additive").FirstOrDefault();
            if (sysmat!=null)
            {
                bool ischecked = sysmat.IsMaterialChecked;
                sysmat.Qty = val1 + val2;
                sysmat.IsMaterialChecked = ischecked;
            }
            //CalculateLaborMinCharge(false);
        }
        public override void setExceptionValues(object s)
        {
            SystemMaterial item = SystemMaterials.Where(x => x.Name == "Plywood 3/4 & blocking (# of 4x8 sheets)").FirstOrDefault();

            if (item != null)
            {
                item.SMSqftH = item.Qty * 32;

                item.Hours = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, 0, 0);

                item.LaborExtension = item.Hours == 0?0:item.Hours > item.SetupMinCharge ? item.Hours * laborRate : item.SetupMinCharge * laborRate;
                item.LaborUnitPrice = item.LaborExtension / item.Qty;
            }
            item = SystemMaterials.Where(x => x.Name == "Stucco Material Remove and replace (LF)").FirstOrDefault();
            if (item != null)
            {
                item.SMSqftH = item.Qty;

                item.Hours = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, 0, 0);

                item.LaborExtension = item.Hours == 0 ? 0 : item.Hours > item.SetupMinCharge ? item.Hours * laborRate : item.SetupMinCharge * laborRate;
                item.LaborUnitPrice = item.LaborExtension / item.Qty;
            }

            item = SystemMaterials.Where(x => x.Name == "EXTRA STAIR NOSING").FirstOrDefault();
            if (item != null)
            {
                item.StairSqft = item.Qty;

                item.Hours = CalculateHrs(0, 0, item.StairSqft, item.StairsProductionRate);

                item.LaborExtension = item.Hours == 0 ? 0 : item.Hours > item.SetupMinCharge ? item.Hours * laborRate : item.SetupMinCharge * laborRate;
                item.LaborUnitPrice = (TotalSqftPlywood + totalSqft + riserCount) == 0?0:item.LaborExtension / (TotalSqftPlywood + totalSqft + riserCount);
            }
        }
        public override void setExceptionValues(object s)
        {
            if (SystemMaterials.Count != 0)
            {
                SystemMaterial item = SystemMaterials.Where(x => x.Name == "UNIVERSAL OUTLET").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqft = item.Qty;
                    item.Hours  = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);

                    item.LaborExtension = (item.Hours != 0) ? (item.SetupMinCharge + item.Hours) * laborRate : 0;
                    item.LaborUnitPrice = item.LaborExtension / (riserCount + totalSqft);
                }

                item = SystemMaterials.Where(x => x.Name == "TOTAL DRAIN 2' x 50' ( In lieu of rock & pipe) \"LINEAR FEET\"").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqftH = item.Qty;
                    item.SMSqft  = item.Qty;
                    item.Hours   = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);

                    item.LaborExtension = item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice = item.LaborExtension / item.Qty;
                }
            }
            //CalculateLaborMinCharge(false);
        }
        //calculateQTY for 9801 ACCELERATOR
        public override void calculateRLqty()
        {
            if (SystemMaterials.Count == 0)
            {
                return;
            }
            double qty = 0;

            foreach (var item in SystemMaterials)
            {
                if (item.Name == "7013 SC BASE COAT/ 5 GAL PAILS 30 MILS" ||
                    item.Name == "7016 - AR - SC INTERMEDIATE/ 5 GAL PAILS 20 MILS" ||
                    item.Name == "7016 SC TOP COAT/ 5 GAL PAILS 16 MILS" ||
                    item.Name == "SECOND INTERMEDIATE COAT FOR HIGH TRAFFIC")
                {
                    if (item.IsMaterialChecked)
                    {
                        qty = qty + item.Qty;
                    }
                }
            }
            SystemMaterial sysmat = SystemMaterials.Where(x => x.Name == "9801 ACCELERATOR").FirstOrDefault();

            sysmat.Qty = sysmat.Coverage == 0?0: qty / sysmat.Coverage;
            sysmat     = SystemMaterials.Where(x => x.Name == "SLOPING FOR TREADS IF NOT PROVIDED FOR IN FRAMING (MOST CASES NEED SLOPE)").FirstOrDefault();
            if (sysmat != null)
            {
                //double myVal = 0;
                sysmat.SMUnits = riserCount.ToString();
                //double.TryParse(sysmat.SMUnits,out myVal);
                sysmat.Qty = sysmat.Coverage == 0?0: riserCount / sysmat.Coverage;
            }
            //CalculateLaborMinCharge(false);
        }
Пример #6
0
        //calculate for Desert Crete
        public override void calculateRLqty()
        {
            double         val1 = 0, val2 = 0;
            SystemMaterial sysMat = SystemMaterials.Where(x => x.Name == "PARATERM BAR LF (TOP ONLY- STANDARD INSTALL)").FirstOrDefault();

            if (sysMat != null)
            {
                val1 = sysMat.IsMaterialChecked ? sysMat.Qty : 0;
            }
            sysMat = SystemMaterials.Where(x => x.Name == "EXTRA PARATERM BAR LF (BOTTOM OR SIDES)").FirstOrDefault();
            if (sysMat != null)
            {
                val2 = sysMat.IsMaterialChecked ? sysMat.Qty : 0;
            }
            sysMat = SystemMaterials.Where(x => x.Name == "PINS & LOADS").FirstOrDefault();
            if (sysMat != null)
            {
                bool ischecked;
                ischecked  = sysMat.IsMaterialChecked;
                sysMat.Qty = sysMat.SMSqft / sysMat.Coverage + (val1 + val2) / 2;
                sysMat.IsMaterialChecked = ischecked;
            }
            sysMat = SystemMaterials.Where(x => x.Name == "PARASEAL LG ROLLS (4X24)").FirstOrDefault();
            if (sysMat != null)
            {
                OtherItem olm = OtherMaterials.Where(x => x.Name == "Linear footage for seams if needed for submerged conditions")
                                .FirstOrDefault();
                if (olm != null)
                {
                    olm.Quantity  = Math.Round(sysMat.Qty * 28, 2);
                    olm.LQuantity = Math.Round(sysMat.Qty * 28, 2);
                }
            }
        }
        //calculateQTY for 9801 ACCELERATOR
        public override void calculateRLqty()
        {
            double qty = 0;

            foreach (var item in SystemMaterials)
            {
                if (item.Name == "7013 SC BASE COAT/ 5 GAL PAILS 40 MILS" ||
                    item.Name == "7016 - AR - INTERMEDIATE COAT / 5 GAL PAILS 20 MILS" || item.Name == "7016 - AL - SC TOP COAT / 5 GAL PAILS 16 MILS")
                {
                    if (item.IsMaterialChecked)
                    {
                        qty = qty + item.Qty;
                    }
                }
            }
            SystemMaterial sysmat    = SystemMaterials.Where(x => x.Name == "9801 ACCELERATOR").FirstOrDefault();
            bool           ischecked = sysmat.IsMaterialChecked;

            sysmat.Qty = qty / sysmat.Coverage;
            sysmat.IsMaterialChecked = ischecked;

            sysmat = SystemMaterials.Where(x => x.Name == "SLOPING FOR TREADS IF NOT PROVIDED FOR IN FRAMING (MOST CASES NEED SLOPE)").FirstOrDefault();
            if (sysmat != null)
            {
                ischecked      = sysmat.IsMaterialChecked;
                sysmat.SMUnits = riserCount.ToString();
                //double.TryParse(sysmat.SMUnits, out myVal);
                sysmat.Qty = riserCount / sysmat.Coverage;
                sysmat.IsMaterialChecked = ischecked;
            }
        }
        public override void setCheckBoxes()
        {
            //base.setCheckBoxes();
            bool isSpecified = false;

            if (IsJobSpecifiedByArchitect != null)
            {
                isSpecified = (bool)IsJobSpecifiedByArchitect;
            }


            SystemMaterial sysmat = SystemMaterials.Where(x => x.Name == "BASE COAT Desert Crete poly base mixed with water").FirstOrDefault();

            sysmat.IsMaterialChecked = isSpecified;
            sysmat.IsMaterialEnabled = isSpecified;

            sysmat = SystemMaterials.Where(x => x.Name == "BASE COAT 50 lb Desert Crete Level Max 20/30").FirstOrDefault();
            sysmat.IsMaterialChecked = !isSpecified;
            sysmat.IsMaterialEnabled = !isSpecified;

            foreach (SystemMaterial item in SystemMaterials)
            {
                if (item.Name == "2.5 Galvanized Lathe (18 s.f.)" || item.Name == "Staples")
                {
                    item.IsMaterialChecked = getCheckboxCheckStatus(item.Name);
                }
            }
        }
        public override double CalculateLabrExtn(double calhrs, double setupMin, string matName)
        {
            if (matName == "Dustless grind")
            {
                SystemMaterial sysMat = SystemMaterials.Where(x => x.Name == matName).FirstOrDefault();
                if (sysMat!=null)
                {
                    sysMat.LaborUnitPrice = 0.25;

                }

                return totalSqft * 0.25;
            }
            else
            {
                if (calhrs == 0)
                {
                    return 0;
                }
                else
                    return setupMin > calhrs ? setupMin * laborRate : calhrs * laborRate;
            }
            

        }
        //calculate for Desert Crete
        public override void calculateRLqty()
        {
            //base.calculateRLqty();
            double         val1 = 0, val2 = 0;
            SystemMaterial sysmat = SystemMaterials.Where(x => x.Name == "BASE COAT 50 lb Desert Crete Level Max 20/30").FirstOrDefault();

            if (sysmat != null)
            {
                val1 = sysmat.IsMaterialChecked ? sysmat.Qty : 0;
            }
            sysmat = SystemMaterials.Where(x => x.Name == "TEXTURE Desert Crete poly base texture mixed Polymer #550 (1-1/4GAL per BAG)").FirstOrDefault();
            if (sysmat != null)
            {
                val2 = sysmat.IsMaterialChecked ? sysmat.Qty : 0;
            }

            sysmat = SystemMaterials.Where(x => x.Name == "Desert Crete Liquid Polymer #550 mixed 50/50 with water").FirstOrDefault();
            if (sysmat != null)
            {
                double calVal = ((0.31 * val2) + val1 / 2.5 / 2);
                if (IsJobSpecifiedByArchitect != null)
                {
                    sysmat.Qty = (bool)IsJobSpecifiedByArchitect ? 0.31 * val2 : calVal;
                }
            }
            //CalculateLaborMinCharge(false);
        }
        public override void setExceptionValues(object s)
        {
            if (SystemMaterials.Count != 0)
            {
                SystemMaterial item = SystemMaterials.Where(x => x.Name == "Plywood 3/4 & blocking (# of 4x8 sheets)").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqftH = item.Qty * 32;

                    item.Hours = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);

                    item.LaborExtension = item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice = item.LaborExtension / item.Qty;
                }
                item = SystemMaterials.Where(x => x.Name == "Stucco Material Remove and replace (LF)").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqftH = item.Qty;

                    item.Hours             = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);
                    item.MaterialExtension = item.SpecialMaterialPricing == 0 ? item.Qty * item.MaterialPrice : item.Qty * item.SpecialMaterialPricing;
                    item.LaborExtension    = item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice    = item.LaborExtension / item.Qty;
                }
            }
            calculateRLqty();
            //CalculateLaborMinCharge(false);
        }
        public override void setExceptionValues(object s)
        {
            //base.setExceptionValues();
            if (SystemMaterials.Count != 0)
            {
                SystemMaterial item = SystemMaterials.Where(x => x.Name == "LARGE CRACK REPAIR").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqftH = item.Qty;
                    item.SMSqft  = item.Qty;

                    //item.IsMaterialChecked = item.Qty>0?true:false;
                    item.Hours          = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);
                    item.LaborExtension = item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice = item.LaborExtension / (riserCount + totalSqft);
                }

                item = SystemMaterials.Where(x => x.Name == "BUBBLE REPAIR (MEASURE SQ FT)").FirstOrDefault();
                if (item != null)
                {
                    //item.IsMaterialChecked = item.Qty > 0 ? true : false;
                    item.SMSqftH        = item.Qty;
                    item.SMSqft         = item.Qty;
                    item.Hours          = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);
                    item.LaborExtension = item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice = item.LaborExtension / (riserCount + totalSqft);
                }
            }
        }
Пример #13
0
        public override void setCheckBoxes()
        {
            SystemMaterial sysmat = null;

            sysmat = SystemMaterials.Where(x => x.Name == "PARAMASTIC (1000 LF PER PAIL FOR PREP & TERMINATIONS)").FirstOrDefault();
            sysmat.IsMaterialChecked = !SystemMaterials.Where(x => x.Name == "**VULKEM 201 T CAN SOMETIMES BE USED IN LIEU OF PARAMASTIC ON LARGE JOBS.  CHECK WITH MANUFACTURER").
                                       FirstOrDefault().IsMaterialChecked;
        }
        private void setUnitChangeValues()
        {
            SystemMaterial item = SystemMaterials.Where(x => x.Name == "REPAIR AREAS (ENTER SQ FT OF FILL @ 1/4 INCH) UPI 7013 SC BASE COAT").FirstOrDefault();

            if (item != null)
            {
                double unit = 0;

                Double.TryParse(item.SMUnits, out unit);
                item.SMSqft         = unit;
                item.SMSqftH        = unit;
                item.Qty            = unit / item.Coverage;
                item.Hours          = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);
                item.LaborExtension = item.Hours == 0 ? 0 : item.Hours > item.SetupMinCharge ? item.Hours * laborRate : item.SetupMinCharge * laborRate;
                item.LaborUnitPrice = item.LaborExtension / (riserCount + totalSqft + TotalSqftPlywood);
            }
            item = SystemMaterials.Where(x => x.Name == "Striping for small cracKs (less than 1/8\")").FirstOrDefault();
            if (item != null)
            {
                double unit = 0;

                Double.TryParse(item.SMUnits, out unit);
                item.SMSqftH        = unit;
                item.SMSqft         = unit;
                item.Qty            = unit / item.Coverage;
                item.Hours          = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);
                item.LaborExtension = item.Hours == 0 ? 0 : item.Hours > item.SetupMinCharge ? item.Hours * laborRate : item.SetupMinCharge * laborRate;
                item.LaborUnitPrice = item.LaborExtension / (riserCount + totalSqft + TotalSqftPlywood);
            }
            item = SystemMaterials.Where(x => x.Name == "Route and caulk moving cracks (greater than 1/8\")").FirstOrDefault();
            if (item != null)
            {
                double unit = 0;

                Double.TryParse(item.SMUnits, out unit);
                item.SMSqftH        = unit;
                item.SMSqft         = unit;
                item.Qty            = unit / item.Coverage;
                item.Hours          = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);
                item.LaborExtension = item.Hours == 0 ? 0 : item.Hours > item.SetupMinCharge ? item.Hours * laborRate : item.SetupMinCharge * laborRate;
                item.LaborUnitPrice = item.LaborExtension / (riserCount + totalSqft + TotalSqftPlywood);
            }

            item = SystemMaterials.Where(x => x.Name == "SECOND INTERMEDIATE COAT FOR HIGH TRAFFIC").FirstOrDefault();
            if (item != null)
            {
                double unit = 0;
                Double.TryParse(item.SMUnits, out unit);
                item.SMSqftH        = unit;
                item.SMSqft         = unit;
                item.Qty            = unit / item.Coverage;
                item.Hours          = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);
                item.LaborExtension = item.Hours == 0 ? 0 : item.Hours > item.SetupMinCharge ? item.Hours * laborRate : item.SetupMinCharge * laborRate;
                item.LaborUnitPrice = item.LaborExtension / (riserCount + totalSqft + TotalSqftPlywood);
            }
            //calculateRLqty();
            //CalculateLaborMinCharge(false);
        }
        public override void setCheckBoxes()
        {
            SystemMaterial sysmat = SystemMaterials.FirstOrDefault(x => x.Name == "MIRADRAIN 6000 XL (VERTICAL ONLY)");

            if (sysmat != null)
            {
                SystemMaterials.FirstOrDefault(x => x.Name == "MIRASTICK ADHESIVE (GLUE DOWN DRAIN MAT)").IsMaterialChecked = sysmat.IsMaterialChecked;
            }
        }
Пример #16
0
        public override void setExceptionValues(object s)
        {
            if (SystemMaterials.Count != 0)
            {
                SystemMaterial item = SystemMaterials.Where(x => x.Name == "UNIVERSAL OUTLET").FirstOrDefault();
                if (item != null)
                {
                    item.VerticalSqft = item.Qty;
                    item.Hours        = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate, item.VerticalSqft, item.VerticalProductionRate);

                    item.LaborExtension = (item.Hours != 0) ? (item.SetupMinCharge + item.Hours) * laborRate : 0;
                    item.LaborUnitPrice = item.LaborExtension / (riserCount + totalSqft);
                }

                item = SystemMaterials.Where(x => x.Name == "TOTAL DRAIN MINUS BOTTOM TD 1000(IN LIEU OF ROCK & PIPE)").FirstOrDefault();
                if (item != null)
                {
                    item.VerticalSqft = item.Qty;
                    //item.SMSqft = item.Qty;
                    item.Hours = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate, item.VerticalSqft, item.VerticalProductionRate);

                    item.LaborExtension = item.Hours == 0?0:item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice = item.LaborExtension / item.Qty;
                }
                item = SystemMaterials.Where(x => x.Name == "Plywood 3/4 & blocking (# of 4x8 sheets)").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqftH = item.Qty * 32;
                    //item.SMSqft = item.Qty;
                    item.Hours = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);

                    item.LaborExtension = item.Hours == 0?0:item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice = item.LaborExtension / item.Qty;
                }
                item = SystemMaterials.Where(x => x.Name == "Stucco Material Remove and replace (LF)").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqftH = item.Qty;
                    //item.SMSqft = item.Qty;
                    item.Hours = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);

                    item.LaborExtension = item.Hours == 0?0:item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice = item.LaborExtension / item.Qty;
                }
                item = SystemMaterials.Where(x => x.Name == "PRIME AND ONE COAT OF VULKEM 801 ALUMINUM ROOF COATING @ WALL WITH SAND BROADCAST").FirstOrDefault();
                if (item != null)
                {
                    item.VerticalSqft = item.Qty;
                    item.SMSqft       = item.Qty * 0.5;
                    item.Hours        = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate, item.VerticalSqft, item.VerticalProductionRate);

                    item.LaborExtension = item.Hours == 0 ? 0 : item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice = item.LaborExtension / item.Qty;
                }
            }
            //CalculateLaborMinCharge(false);
        }
        public override void setExceptionValues(object s)
        {
            if (SystemMaterials.Count != 0)
            {
                SystemMaterial item = SystemMaterials.Where(x => x.Name == "Plywood 3/4 & blocking (# of 4x8 sheets)").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqftH = item.Qty * 32;

                    item.Hours = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);

                    item.LaborExtension = item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice = item.LaborExtension / item.Qty;
                }
                item = SystemMaterials.Where(x => x.Name == "Stucco Material Remove and replace (LF)").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqftH = item.Qty;

                    item.Hours             = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);
                    item.MaterialExtension = item.SpecialMaterialPricing == 0 ? item.Qty * item.MaterialPrice : item.Qty * item.SpecialMaterialPricing;
                    item.LaborExtension    = item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice    = item.LaborExtension / item.Qty;
                }
                item = SystemMaterials.Where(x => x.Name == "ENTER # OF DECKS TO WATER TEST \"NO DAM'S NEEDED\"").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqftH = item.Qty;

                    item.Hours             = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);
                    item.MaterialExtension = item.SpecialMaterialPricing == 0 ? item.Qty * item.MaterialPrice : item.Qty * item.SpecialMaterialPricing;
                    item.LaborExtension    = item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice    = item.LaborExtension / item.Qty;
                }
                item = SystemMaterials.Where(x => x.Name == "ADD LF FOR DAMMING @ DRIP EDGE").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqftH = item.Qty;

                    item.Hours             = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);
                    item.MaterialExtension = item.SpecialMaterialPricing == 0 ? item.Qty * item.MaterialPrice : item.Qty * item.SpecialMaterialPricing;
                    item.LaborExtension    = item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice    = item.LaborExtension / item.Qty;
                }
                item = SystemMaterials.Where(x => x.Name == "2 COATS VULKEM 350R/951  @ WALL (LF DECK TO WALL)").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqft            = item.Qty * 0.5;
                    item.SMSqftV           = item.Qty;
                    item.Hours             = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate, item.SMSqftV, item.VerticalProductionRate);
                    item.MaterialExtension = item.SpecialMaterialPricing == 0 ? item.Qty * item.MaterialPrice : item.Qty * item.SpecialMaterialPricing;
                    item.LaborExtension    = item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice    = item.LaborExtension / item.Qty;
                }
            }
            // CalculateLaborMinCharge(false);
        }
Пример #18
0
        public override void ApplyCheckUnchecks(object obj)
        {
            SystemMaterial sysmat = null;

            if (obj.ToString() == "**VULKEM 201 T CAN SOMETIMES BE USED IN LIEU OF PARAMASTIC ON LARGE JOBS.  CHECK WITH MANUFACTURER")
            {
                sysmat = SystemMaterials.Where(x => x.Name == "PARAMASTIC (1000 LF PER PAIL FOR PREP & TERMINATIONS)").FirstOrDefault();

                sysmat.IsMaterialChecked = !SystemMaterials.Where(x => x.Name == "**VULKEM 201 T CAN SOMETIMES BE USED IN LIEU OF PARAMASTIC ON LARGE JOBS.  CHECK WITH MANUFACTURER").
                                           FirstOrDefault().IsMaterialChecked;
            }
            //if (obj.ToString() == "PB-4 (VERTICAL ONLY)")
            //{
            //    sysmat = SystemMaterials.Where(x => x.Name == "PROTECTION MAT (HORIZONTAL ONLY)").FirstOrDefault();
            //    sysmat.IsMaterialEnabled = true;
            //    sysmat.IsMaterialChecked = false;

            //    sysmat = SystemMaterials.Where(x => x.Name == "TREMDRAIN 1000 (VERTICAL ONLY)").FirstOrDefault();
            //    sysmat.IsMaterialEnabled = true;
            //    sysmat.IsMaterialChecked = false;

            //    sysmat = SystemMaterials.Where(x => x.Name == "TREMDRAIN 1000 (HORIZONTAL ONLY)").FirstOrDefault();
            //    sysmat.IsMaterialEnabled = true;
            //    sysmat.IsMaterialChecked = false;
            //}
            //if (obj.ToString() == "TREMDRAIN 1000 (VERTICAL ONLY)")
            //{
            //    sysmat = SystemMaterials.Where(x => x.Name == "PROTECTION MAT (HORIZONTAL ONLY)").FirstOrDefault();
            //    sysmat.IsMaterialEnabled = true;
            //    sysmat.IsMaterialChecked = false;

            //    sysmat = SystemMaterials.Where(x => x.Name == "PB-4 (VERTICAL ONLY)").FirstOrDefault();
            //    sysmat.IsMaterialEnabled = true;
            //    sysmat.IsMaterialChecked = false;

            //    sysmat = SystemMaterials.Where(x => x.Name == "TREMDRAIN 1000 (HORIZONTAL ONLY)").FirstOrDefault();
            //    sysmat.IsMaterialEnabled = true;
            //    sysmat.IsMaterialChecked = false;
            //}
            //if (obj.ToString() == "TREMDRAIN 1000 (HORIZONTAL ONLY)")
            //{
            //    sysmat = SystemMaterials.Where(x => x.Name == "PROTECTION MAT (HORIZONTAL ONLY)").FirstOrDefault();
            //    sysmat.IsMaterialEnabled = true;
            //    sysmat.IsMaterialChecked = false;

            //    sysmat = SystemMaterials.Where(x => x.Name == "PB-4 (VERTICAL ONLY)").FirstOrDefault();
            //    sysmat.IsMaterialEnabled = true;
            //    sysmat.IsMaterialChecked = false;

            //    sysmat = SystemMaterials.Where(x => x.Name == "TREMDRAIN 1000 (VERTICAL ONLY)").FirstOrDefault();
            //    sysmat.IsMaterialEnabled = true;
            //    sysmat.IsMaterialChecked = false;
            //}
            calculateRLqty();
            //CalculateLaborMinCharge(false);
        }
Пример #19
0
        public override void setExceptionValues(object s)
        {
            if (SystemMaterials.Count != 0)
            {
                SystemMaterial item = SystemMaterials.Where(x => x.Name == "MIRADRAIN HC 1\" DRAIN - PUNCHED 12\" X 100'  (QUICK DRAIN)").FirstOrDefault();

                if (item != null)
                {
                    item.SMSqftV = item.Qty;
                    item.Hours   = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate, item.SMSqftV, item.VerticalProductionRate);

                    item.LaborExtension = item.Hours == 0 ?0: item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice = item.LaborExtension / item.Qty;
                }

                item = SystemMaterials.Where(x => x.Name == "TERM BAR").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqftV = item.Qty;
                    item.Hours   = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate, item.SMSqftV, item.VerticalProductionRate);

                    item.LaborExtension = item.Hours == 0 ? 0 : item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice = item.LaborExtension / item.Qty;
                }

                item = SystemMaterials.Where(x => x.Name == "WATERSTOP (MIRASTOP)").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqftV = item.Qty;
                    item.Hours   = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate, item.SMSqftV, item.VerticalProductionRate);

                    item.LaborExtension = item.Hours == 0 ? 0 : item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice = item.LaborExtension / item.Qty;
                }

                item = SystemMaterials.Where(x => x.Name == "Plywood 3/4 & blocking (# of 4x8 sheets)").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqftH = item.Qty * 32;
                    item.Hours   = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);

                    item.LaborExtension = item.Hours == 0 ? 0 : item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice = item.LaborExtension / item.Qty / 32;
                }
                item = SystemMaterials.Where(x => x.Name == "Stucco Material Remove and replace (LF)").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqftH = item.Qty;
                    item.Hours   = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);

                    item.LaborExtension = item.Hours == 0 ? 0 : item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice = item.LaborExtension / item.Qty;
                }
            }
            //CalculateLaborMinCharge(false);
        }
        public override void setExceptionValues(object s)
        {
            bool isExceptionValueSet = false;

            if (SystemMaterials.Count != 0)
            {
                SystemMaterial item = SystemMaterials.Where(x => x.Name == "ENTER # OF DECKS TO WATER TEST \"NO DAM'S NEEDED\"").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqftH = hasElastatex ? item.Qty * 2:item.Qty;
                    item.Hours   = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate, item.SMSqftV, item.VerticalProductionRate);

                    item.LaborExtension = item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice = item.LaborExtension / item.Qty;
                    isExceptionValueSet = true;
                }

                item = SystemMaterials.Where(x => x.Name == "ADD LF FOR DAMMING @ DRIP EDGE").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqftH = item.Qty;
                    item.Hours   = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate, item.SMSqftV, item.VerticalProductionRate);

                    item.LaborExtension = item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice = item.LaborExtension / item.Qty;
                    isExceptionValueSet = true;
                }



                item = SystemMaterials.Where(x => x.Name == "Plywood 3/4 & blocking (# of 4x8 sheets)").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqftH = item.Qty * 32;
                    item.Hours   = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);

                    item.LaborExtension = item.Hours == 0 ? 0 : item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice = item.LaborExtension / item.Qty / 32;
                    isExceptionValueSet = true;
                }
                item = SystemMaterials.Where(x => x.Name == "Stucco Material Remove and replace (LF)").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqftH = item.Qty;
                    item.Hours   = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);

                    item.LaborExtension = item.Hours == 0 ? 0 : item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice = item.LaborExtension / item.Qty;
                    isExceptionValueSet = true;
                }
                //if (isExceptionValueSet ==true)
                //CalculateLaborMinCharge(false);
            }
        }
Пример #21
0
        private void getEKLQnty()
        {
            SystemMaterial sysMat = SystemMaterials.Where(x => x.Name == "Add for Gamma Cure in lieu of wet cure").FirstOrDefault();

            if (sysMat != null)
            {
                sysMat.Hours          = sysMat.IsMaterialChecked ? (linearCoping + totalVerticalSqft) * 0.2 / 25:0;
                sysMat.LaborExtension = sysMat.Hours == 0 ? 0 : sysMat.Hours > sysMat.SetupMinCharge ? sysMat.Hours * laborRate : sysMat.SetupMinCharge * laborRate;

                sysMat.LaborUnitPrice = (totalSqft + totalVerticalSqft + riserCount) == 0 ? 0:sysMat.LaborExtension / (totalSqft + totalVerticalSqft + riserCount);
            }
        }
Пример #22
0
 public override void ApplyCheckUnchecks(object obj)
 {
     if (obj.ToString() == "Slurry Coat for repairs" || obj.ToString() == "Slurry coat over texture (Krete Kote 120 sq ft per mix)")
     {
         SystemMaterial sysMat1 = SystemMaterials.Where(x => x.Name == "Slurry Coat for repairs").FirstOrDefault();
         if (sysMat1 == null)
         {
             sysMat1 = SystemMaterials.Where(x => x.Name == "Slurry coat over texture (Krete Kote 120 sq ft per mix)").FirstOrDefault();
         }
         SystemMaterials.Where(x => x.Name == "Light crack and repairs- speed bond (no more than 1% of area)").FirstOrDefault().IsMaterialChecked = !sysMat1.IsMaterialChecked;
     }
     calculateRLqty();
 }
 public override void ApplyCheckUnchecks(object obj)
 {
     if (obj.ToString() == "Slurry Coat for repairs" || obj.ToString() == "Slurry coat over texture (Resistite smooth 120 sq ft per mix with 1 gal liquid)")
     {
         SystemMaterial sysMat1 = SystemMaterials.Where(x => x.Name == "Slurry Coat for repairs").FirstOrDefault();
         if (sysMat1 == null)
         {
             sysMat1 = SystemMaterials.Where(x => x.Name == "Slurry coat over texture (Resistite smooth 120 sq ft per mix with 1 gal liquid)").FirstOrDefault();
         }
         SystemMaterials.Where(x => x.Name == "Light crack and repairs- resistite smooth (no more than 5% of area) with 1 gal liquid").FirstOrDefault().IsMaterialChecked = !sysMat1.IsMaterialChecked;
     }
     calculateRLqty();
 }
        public override void ApplyCheckUnchecks(object obj)
        {
            if (obj.ToString() == "Sheet Membrane; WP-40 for entire deck (10-YEAR MANUFACTURER WARRANTY REQ)")
            {
                SystemMaterial sysMat = SystemMaterials.Where(x => x.Name == "Sheet Membrane; WP-40 for entire deck (10-YEAR MANUFACTURER WARRANTY REQ)").FirstOrDefault();
                if (sysMat != null)
                {
                    SystemMaterials.Where(x => x.Name == "Sheet Membrane; 6\" WP-40 for plywood seams only").FirstOrDefault().IsMaterialChecked
                        = !sysMat.IsMaterialChecked;
                }
            }

            if (obj.ToString() == "Slurry Coat Grout Coat (Pattern): Grey TC-5 Grout Texture Cement" ||
                obj.ToString() == "KD Texture Coat: Grey TC-3 Texture Coat Cement (Semi-Smooth or Knock Down) 1" ||
                obj.ToString() == "KD Texture Coat: Grey TC-3 Texture Coat Cement (Semi-Smooth or Knock Down)")
            {
                SystemMaterial sysMat  = SystemMaterials.Where(x => x.Name == "Slurry Coat Grout Coat (Pattern): Grey TC-5 Grout Texture Cement").FirstOrDefault();
                SystemMaterial sysMat1 = SystemMaterials.Where(x => x.Name == "KD Texture Coat: Grey TC-3 Texture Coat Cement (Semi-Smooth or Knock Down) 1").FirstOrDefault();
                if (sysMat != null && sysMat1 != null)
                {
                    SystemMaterial sysMat2 = SystemMaterials.Where(x => x.Name == "KD Texture Coat: Grey TC-3 Texture Coat Cement (Semi-Smooth or Knock Down)").FirstOrDefault();
                    if (sysMat.IsMaterialChecked || sysMat1.IsMaterialChecked)
                    {
                        sysMat2.IsMaterialChecked = false;
                    }
                    else
                    {
                        sysMat2.IsMaterialChecked = true;
                    }
                }
                SystemMaterials.Where(x => x.Name == "Pattern:  1/4 inch grout tape, Standard 12 x 12 tile pattern, tape and labor").FirstOrDefault().IsMaterialChecked = sysMat.IsMaterialChecked;
            }
            if (obj.ToString() == "Grout and Texture Color Option: TC-40 Liquid Colorant" || obj.ToString() == "Water Base Stain in Lieu of Liquid Colorant:  SC-35X" ||
                obj.ToString() == "Top Coat:  SC-70 clear acrylic lacquer")
            {
                SystemMaterial sysMat  = SystemMaterials.Where(x => x.Name == "Grout and Texture Color Option: TC-40 Liquid Colorant").FirstOrDefault();
                SystemMaterial sysMat1 = SystemMaterials.Where(x => x.Name == "Water Base Stain in Lieu of Liquid Colorant:  SC-35X").FirstOrDefault();
                SystemMaterial sysMat2 = SystemMaterials.Where(x => x.Name == "Top Coat:  SC-70 clear acrylic lacquer").FirstOrDefault();
                SystemMaterial sysMat3 = SystemMaterials.Where(x => x.Name == "Top Coat:  SC-10 Acrylic Top Coat").FirstOrDefault();

                if (sysMat.IsMaterialChecked || sysMat1.IsMaterialChecked || sysMat2.IsMaterialChecked)
                {
                    sysMat3.IsMaterialChecked = false;
                }
                else
                {
                    sysMat3.IsMaterialChecked = true;
                }
            }
            calculateRLqty();
        }
Пример #25
0
        public override void calculateRLqty()
        {
            double         val1 = 0, val2 = 0, val3 = 0;
            double         qty     = 0;
            SystemMaterial sysmat1 = SystemMaterials.Where(x => x.Name == "Base Coat w Dexcelcrete Gray Powder").FirstOrDefault();

            if (sysmat1 != null)
            {
                val1 = sysmat1.IsMaterialChecked ? sysmat1.Qty : 0;
            }
            SystemMaterial sysmat = SystemMaterials.Where(x => x.Name == "Slurry with Dexcelcrete Gray Powder").FirstOrDefault();

            if (sysmat != null)
            {
                val2 = sysmat.IsMaterialChecked ? sysmat.Qty : 0;
            }
            sysmat = SystemMaterials.Where(x => x.Name == "Texture with Dexcelcrete Gray Powder").FirstOrDefault();
            if (sysmat != null)
            {
                val3 = sysmat.IsMaterialChecked ? sysmat.Qty : 0;
            }

            qty = val1 / 5 + val2 / 5 * 1.25 + val3 / 5;
            SystemMaterial DL        = SystemMaterials.Where(x => x.Name == "Dexcelcrete Liquid Adhesive").FirstOrDefault();
            bool           ischecked = DL.IsMaterialChecked;

            if (DL != null)
            {
                DL.Qty = qty;
                DL.IsMaterialChecked = ischecked;
            }
            sysmat = SystemMaterials.Where(x => x.Name == "(Stairs Only) Base Coat with Dexcelcrete Gray Powder").FirstOrDefault();
            if (sysmat != null)
            {
                val1 = sysmat.IsMaterialChecked ? sysmat.Qty : 0;
            }
            sysmat = SystemMaterials.Where(x => x.Name == "(Stairs Only) Texture with Dexcelcrete Gray Powder and Liquid Adhesive").FirstOrDefault();
            if (sysmat != null)
            {
                val2 = sysmat.IsMaterialChecked ? sysmat.Qty : 0;
            }
            qty       = (val1 + val2) / 5;
            DL        = SystemMaterials.Where(x => x.Name == "(Stairs Only) Dexcelcrete Liquid Adhesive").FirstOrDefault();
            ischecked = DL.IsMaterialChecked;

            if (DL != null)
            {
                DL.Qty = qty;
                DL.IsMaterialChecked = ischecked;
            }
        }
        public override void setExceptionValues(object s)
        {
            if (SystemMaterials.Count != 0)
            {
                SystemMaterial item = SystemMaterials.Where(x => x.Name == "Extra stair nosing lf").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqft    = item.Qty;
                    item.StairSqft = item.Qty;
                    item.Hours     = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);

                    item.LaborExtension = (item.Hours != 0) ? (item.SetupMinCharge + item.Hours) * laborRate : 0;
                    item.LaborUnitPrice = item.LaborExtension / (riserCount + totalSqft);
                }

                item = SystemMaterials.Where(x => x.Name == "Plywood 3/4 & blocking (# of 4x8 sheets)").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqftH = item.Qty * 32;
                    item.SMSqft  = item.Qty;
                    item.Hours   = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);

                    item.LaborExtension = item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice = item.LaborExtension / item.Qty;
                }
                item = SystemMaterials.Where(x => x.Name == "Stucco Material Remove and replace (LF)").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqftH           = item.Qty;
                    item.SMSqft            = item.Qty;
                    item.Hours             = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate);
                    item.MaterialExtension = item.SpecialMaterialPricing == 0 ? item.Qty * item.MaterialPrice : item.Qty * item.SpecialMaterialPricing;
                    item.LaborExtension    = item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice    = item.LaborExtension / item.Qty;
                }

                item = SystemMaterials.Where(x => x.Name == "3/4 oz.Fiberglass Matt").FirstOrDefault();
                if (item != null)
                {
                    item.VerticalSqft           = deckPerimeter;
                    item.VerticalProductionRate = 100 * (1 + prPerc);
                    item.Hours = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate) + item.VerticalSqft / item.VerticalProductionRate;

                    item.LaborExtension = (item.Hours != 0) ? (item.SetupMinCharge + item.Hours) * laborRate : 0;
                    item.LaborUnitPrice = item.LaborExtension / (riserCount + totalSqft);
                }
                calculateRLqty();
                //CalculateLaborMinCharge(false);
            }
        }
 public override void ApplyCheckUnchecks(object obj)
 {
     SystemMaterial sysmat = null;
     bool ischecked = false;
     if (obj.ToString() == "1 COAT (6 MILS) OF VC 200 PRIMER IN LIEU OF BONDCOAT (FOR HYDROSTATIC up to 10 lbs.)")
     {
         sysmat = SystemMaterials.Where(x => x.Name == "1 COAT (6 MILS) OF VC 200 PRIMER IN LIEU OF BONDCOAT (FOR HYDROSTATIC up to 10 lbs.)").FirstOrDefault();
         ischecked = sysmat.IsMaterialChecked;
         SystemMaterials.Where(x => x.Name == "EC-12 Epoxy Primer").FirstOrDefault().IsMaterialChecked = !ischecked;
        
     }
     
     calculateRLqty();
     //CalculateLaborMinCharge(false);
 }
        public override void setCheckBoxes()
        {
            SystemMaterial sm = SystemMaterials.FirstOrDefault(x => x.Name == "PINS & LOADS");

            if (sm != null)
            {
                sm.IsMaterialChecked = totalSqft > 0 ? true : false;
            }

            sm = SystemMaterials.FirstOrDefault(x => x.Name == "PARAMASTIC AND PARASTICK AND DRY (FOR PENETRATIONS)");
            if (sm != null)
            {
                sm.IsMaterialChecked = riserCount > 0 ? true : false;
            }
        }
        public override void ApplyCheckUnchecks(object obj)
        {
            if (obj.ToString() == "SC-10 solid color sealer IN LIEU of SC-70")
            {
                SystemMaterial sysmat = SystemMaterials.Where(x => x.Name == "SC-70 clear acrylic lacquer 200-300 sq ft per gallon").FirstOrDefault();
                if (sysmat != null)
                {
                    sysmat.IsMaterialChecked = !SystemMaterials.Where(x => x.Name == "SC-10 solid color sealer IN LIEU of SC-70").FirstOrDefault().IsMaterialChecked;
                    
                    calculateRLqty();
                }

            }
            calculateRLqty();
           // CalculateLaborMinCharge(false);
        }
        public override void setExceptionValues(object s)
        {
            if (SystemMaterials.Count != 0)
            {

                SystemMaterial item = SystemMaterials.Where(x => x.Name == "CALCIUM CHLORIDE TEST (MINIMUM OF 3 FOR EACH JOB)").FirstOrDefault();
                if (item != null)
                {
                    item.SMSqftH = item.Qty;
                    item.Hours = CalculateHrs(item.SMSqftH, item.HorizontalProductionRate, item.StairSqft, item.StairsProductionRate, item.SMSqftV, item.VerticalProductionRate);

                    item.LaborExtension = item.SetupMinCharge > item.Hours ? item.SetupMinCharge * laborRate : item.Hours * laborRate;
                    item.LaborUnitPrice = item.LaborExtension / item.Qty;
                }
            }
        }