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); }
//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); } } }
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; } }
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); }
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 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); } }
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 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(); }
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; } } }