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);
                }
            }
        }
Пример #2
0
 public override void ApplyCheckUnchecks(object obj)
 {
     if (obj.ToString() == "Primer if needed:  EC-11 primer")
     {
         SystemMaterials.Where(x => x.Name == "#30 or #60 Silica Sand (With Primer)").FirstOrDefault().IsMaterialChecked =
             SystemMaterials.Where(x => x.Name == "Primer if needed:  EC-11 primer").FirstOrDefault().IsMaterialChecked;
     }
     if (obj.ToString() == "Membrane Grey TC-1 Cement")
     {
         SystemMaterials.Where(x => x.Name == "Slurry Coat / Standard Semi-Smooth Texture: Grey TC-1 Cement").FirstOrDefault().IsMaterialChecked =
             SystemMaterials.Where(x => x.Name == "Membrane Grey TC-1 Cement").FirstOrDefault().IsMaterialChecked;
     }
     if (obj.ToString() == "Grout Coat for Tile Pattern:  Grey TC-5 Texture Cement")
     {
         SystemMaterials.Where(x => x.Name == "1/4 inch grout tape, Standard 12 x 12 tile pattern, tape and labor").FirstOrDefault().IsMaterialChecked =
             SystemMaterials.Where(x => x.Name == "Grout Coat for Tile Pattern:  Grey TC-5 Texture Cement").FirstOrDefault().IsMaterialChecked;
     }
     if (obj.ToString() == "SC-35 Water based stain" || obj.ToString() == "TC-40 Liquid Colorant" ||
         obj.ToString() == "SC-70 clear acrylic lacquer")
     {
         bool sc35 = SystemMaterials.Where(x => x.Name == "SC-35 Water based stain").FirstOrDefault().IsMaterialChecked;
         bool tc40 = SystemMaterials.Where(x => x.Name == "TC-40 Liquid Colorant").FirstOrDefault().IsMaterialChecked;
         bool sc70 = SystemMaterials.Where(x => x.Name == "SC-70 clear acrylic lacquer").FirstOrDefault().IsMaterialChecked;
         if (!sc35 && !tc40 && !sc70)
         {
             SystemMaterials.Where(x => x.Name == "SC-10 Topcoat").FirstOrDefault().IsMaterialChecked = true;
         }
         else
         {
             SystemMaterials.Where(x => x.Name == "SC-10 Topcoat").FirstOrDefault().IsMaterialChecked = false;
         }
     }
     calculateRLqty();
     //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);
        }
Пример #4
0
        public override void calculateRLqty()
        {
            SystemMaterial sysMat1, sysMat2;

            if (SystemMaterials.Count > 0)
            {
                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();
                }
                sysMat2 = SystemMaterials.Where(x => x.Name == "Texture for repairs").FirstOrDefault();
                if (sysMat2 == null)
                {
                    sysMat2 = SystemMaterials.Where(x => x.Name == "Krete Kote or Top Cote texture").FirstOrDefault();
                }
                bool ischecked = sysMat1.IsMaterialChecked;
                sysMat1.Qty = sysMat1.Coverage == 0 ? 0 : sysMat1.SMSqft / sysMat1.Coverage;
                sysMat1.IsMaterialChecked = ischecked;
                ischecked   = sysMat2.IsMaterialChecked;
                sysMat2.Qty = sysMat2.Coverage == 0 ? 0 : sysMat2.SMSqft / sysMat2.Coverage;
                sysMat2.IsMaterialChecked = ischecked;
            }
            //CalculateLaborMinCharge(false);
        }
        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;
            }
            

        }
        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 void ApplyCheckUnchecks(object obj)
        {
            bool isChecked;

            if (obj.ToString() == "2.5 Galvanized Lathe")
            {
                isChecked = SystemMaterials.Where(x => x.Name == "2.5 Galvanized Lathe").FirstOrDefault().IsMaterialChecked;
                SystemMaterials.Where(x => x.Name == "Staples").FirstOrDefault().IsMaterialChecked = isChecked;
                prevStatus = isChecked;
            }
            if (obj.ToString() == "PD Resin (If dimension exceeds 20 ft in any direction or for below tile)")
            {
                isChecked = SystemMaterials.Where(x => x.Name == "PD Resin (If dimension exceeds 20 ft in any direction or for below tile)").FirstOrDefault().IsMaterialChecked;
                SystemMaterials.Where(x => x.Name == "3/4 oz. Fiberglass").FirstOrDefault().IsMaterialChecked = isChecked;
            }

            if (obj.ToString() == "Select Y for protection coat over membrane below tile (GU80-1 TOP COAT)")
            {
                isChecked = SystemMaterials.Where(x => x.Name == "Select Y for protection coat over membrane below tile (GU80-1 TOP COAT)").FirstOrDefault().IsMaterialChecked;
                SystemMaterials.Where(x => x.Name == "GU80-1 top coat texture coat semi-smooth or knockdown").FirstOrDefault().IsMaterialChecked = !isChecked;
                SystemMaterials.Where(x => x.Name == "GS88 Sealer").FirstOrDefault().IsMaterialChecked = !isChecked;
                SystemMaterials.Where(x => x.Name == "Color Jar Pigment, 1 JAR per PAIL OF GS88").FirstOrDefault().IsMaterialChecked = !isChecked;
            }
            calculateRLqty();
            //CalculateLaborMinCharge(false);
        }
        //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);
        }
        //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)
        {
            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);
            }
        }
        //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 calculateRLqty()
        {
            SystemMaterial sysMat1, sysMat2;

            if (SystemMaterials.Count > 0)
            {
                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();
                }
                sysMat2 = SystemMaterials.Where(x => x.Name == "Texture for repairs").FirstOrDefault();
                if (sysMat2 == null)
                {
                    sysMat2 = SystemMaterials.Where(x => x.Name == "Resistite textured knockdown finish (regular or smooth)").FirstOrDefault();
                }
                bool isChecked = sysMat1.IsMaterialChecked;
                sysMat1.Qty = sysMat1.Coverage == 0 ? 0 : sysMat1.SMSqft / sysMat1.Coverage;
                sysMat1.IsMaterialChecked = isChecked;

                isChecked   = sysMat2.IsMaterialChecked;
                sysMat2.Qty = sysMat2.Coverage == 0 ? 0 : sysMat2.SMSqft / sysMat2.Coverage;
                sysMat2.IsMaterialChecked = isChecked;
            }
            //CalculateLaborMinCharge(false);
        }
Пример #14
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);
                }
            }
        }
        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);
        }
        public override void ApplyCheckUnchecks(object obj)
        {
            bool isChecked;

            if (obj.ToString() == "ADD METAL LATHE AND STAPLES")
            {
                isChecked = SystemMaterials.Where(x => x.Name == "ADD METAL LATHE AND STAPLES").FirstOrDefault().IsMaterialChecked;
                SystemMaterials.Where(x => x.Name == "Staples (3/4 Inch Crown, Box of 13,500)").FirstOrDefault().IsMaterialChecked            = isChecked;
                SystemMaterials.Where(x => x.Name == "SAND/CEMENT AND ACRYLIC UNDERLAY AT 1/2 INCH THICK").FirstOrDefault().IsMaterialChecked = isChecked;

                if (isChecked)
                {
                    SystemMaterials.Where(x => x.Name == "DETAIL TAPE (NEW PLYWOOD)").FirstOrDefault().IsMaterialChecked = !isChecked;
                    SystemMaterials.Where(x => x.Name == "VULKEM 116 SEALANT (10 OZ CARTRIDGE) 1").FirstOrDefault().IsMaterialChecked = !isChecked;
                }
                else
                {
                    SystemMaterials.Where(x => x.Name == "DETAIL TAPE (NEW PLYWOOD)").FirstOrDefault().IsMaterialChecked = isNewPlywood;
                    SystemMaterials.Where(x => x.Name == "VULKEM 116 SEALANT (10 OZ CARTRIDGE) 1").FirstOrDefault().IsMaterialChecked = isNewPlywood;
                }
            }

            calculateRLqty();
            //CalculateLaborMinCharge(false);
        }
Пример #17
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 ParasealMaterialViewModel(Totals metalTotals, Totals slopeTotals, JobSetup Js) : base(metalTotals, slopeTotals, Js)
        {
            materialNames = new Dictionary <string, string>();

            FillMaterialList();

            FetchMaterialValuesAsync(false);
            pinsCoverage = SystemMaterials.Where(x => x.Name == "PINS & LOADS").FirstOrDefault().Coverage;
        }
Пример #20
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);
        }
Пример #22
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);
        }
Пример #23
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);
        }
 public override void ApplyCheckUnchecks(object obj)
 {
     if (obj.ToString() == "2.5 Galvanized Lathe (18 s.f.)")
     {
         bool isChecked = SystemMaterials.Where(x => x.Name == "2.5 Galvanized Lathe (18 s.f.)").FirstOrDefault().IsMaterialChecked;
         SystemMaterials.Where(x => x.Name == "Staples").FirstOrDefault().IsMaterialChecked = isChecked;
     }
     calculateRLqty();
     //CalculateLaborMinCharge(false);
 }
Пример #25
0
 public override void ApplyCheckUnchecks(object obj)
 {
     if (obj.ToString() == "Vista Paint Acripoxy (TOPCOAT)")
     {
         bool ischecked = SystemMaterials.Where(x => x.Name == "Vista Paint Acripoxy (TOPCOAT)").FirstOrDefault().IsMaterialChecked;
         SystemMaterials.Where(x => x.Name == "Dexcelent II Final Coat (TOPCOAT)").FirstOrDefault().IsMaterialChecked = !ischecked;
     }
     //CalculateLaborMinCharge(false);
     //CalculateAllMaterial();
 }
        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);
            }
        }
Пример #27
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);
            }
        }
 public override void setCheckBoxes()
 {
     SystemMaterials.Where(x => x.Name == "SLURRY COAT (RESISTITE) OVER TEXTURE").First().IsMaterialChecked = false;
     SystemMaterials.Where(x => x.Name == "RESISTITE LIQUID").First().IsMaterialEnabled = true;
     SystemMaterials.Where(x => x.Name == "RESISTITE LIQUID").First().IsMaterialChecked = false;
     SystemMaterials.Where(x => x.Name == "RESISTITE LIQUID").First().IsMaterialEnabled = false;
     SystemMaterials.Where(x => x.Name == "RESISTITE REGULAR OR SMOOTH GRAY (KNOCK DOWN OR SMOOTH)").First().IsMaterialChecked = false;
     SystemMaterials.Where(x => x.Name == "RESISTITE REGULAR GRAY").First().IsMaterialChecked = false;
     SystemMaterials.Where(x => x.Name == "DEXOTEX AJ-44").First().IsMaterialChecked          = false;
     SystemMaterials.Where(x => x.Name == "WESTCOAT SC-10").First().IsMaterialChecked         = false;
     SystemMaterials.Where(x => x.Name == "UPI PERMASHIELD").First().IsMaterialChecked        = false;
     SystemMaterials.Where(x => x.Name == "PLI DEK GS88 WITH COLOR JAR 1 PER PAIL").First().IsMaterialChecked = false;
 }
Пример #29
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();
 }