///////////////////////////////////////////////////////////////
//
//  过滤条件
//
///////////////////////////////////////////////////////////////
BEGIN:_过滤人工_定额重算
${
    filter(items,"人材机",?人材机.type == "人工")
}

BEGIN:_过滤材料_定额重算
${
    filter(items,"人材机",?人材机.type == "材料")
}

//BEGIN:_过滤甲供材料_定额重算
//${
//    filter(items,"人材机",?人材机.type == "材料" && 人材机.供货方 == "甲供")
//}

//BEGIN:_过滤乙供材料_定额重算
//${
//    filter(items,"人材机",?人材机.type == "材料" && 人材机.供货方 == "乙供")
//}

BEGIN:_过滤机械_定额重算
${
    filter(items,"人材机",?人材机.type == "机械")
}

///////////////////////////////////////////////////////////////
//*************************单条人工费：人工费************************
BEGIN:_普通人工费_定额重算
${
    sum(source, "工程量",?sum(_过滤人工_定额重算(),"人材机",?人材机.数量 * 人材机.预算价不含税))
}

BEGIN:人工费_定额重算
${
    round(_普通人工费_定额重算(),2)
}

//*************************单条材料费_不含税（甲供+乙供）：材料费************************
BEGIN:_普通材料费_定额重算
${
    sum(source, "工程量",?sum(_过滤材料_定额重算(),"人材机",?#{
	    ->in(人材机.编码,"C10006,C99010101")  == 0:
		  #{
			->人材机.拆分 == 0:人材机.数量 * 人材机.预算价不含税;
			->人材机.拆分 == 1:人材机.数量 * round(?round(?sum(_过滤人工_定额重算(),"拆分子项",?round(?拆分子项.数量,4) * 拆分子项.预算价不含税),2)
			+round(?sum(_过滤材料_定额重算(),"拆分子项",?round(?拆分子项.数量,4) * 拆分子项.预算价不含税),2)
			+round(?sum(_过滤机械_定额重算(),"拆分子项",?round(?拆分子项.数量,4) * 拆分子项.预算价不含税),2),4);
			};
			}))
}

BEGIN:其他材料费_定额重算
${
    sum(source, "工程量",?sum(_过滤材料_定额重算(),"人材机",?#{->in(人材机.编码,"C10006,C99010101"):_普通材料费_定额重算() * 人材机.数量 / 100;}))
}

BEGIN:材料费_定额重算
${
    round(_普通材料费_定额重算()+其他材料费_定额重算(),2)
}
//*************************单条材料费_含税（甲供+乙供）：材料费_含税************************
BEGIN:_普通材料费_定额重算_含税
${
    sum(source, "工程量",?sum(_过滤材料_定额重算(),"人材机",?#{
	    ->in(人材机.编码,"C10006,C99010101")  == 0:
		  #{
			->人材机.拆分 == 0:人材机.数量 * 人材机.预算价含税;
			->人材机.拆分 == 1:人材机.数量 * round(?round(?sum(_过滤人工_定额重算(),"拆分子项",?round(?拆分子项.数量,4) * 拆分子项.预算价含税),2)
			+round(?sum(_过滤材料_定额重算(),"拆分子项",?round(?拆分子项.数量,4) * 拆分子项.预算价含税),2)
			+round(?sum(_过滤机械_定额重算(),"拆分子项",?round(?拆分子项.数量,4) * 拆分子项.预算价含税),2),4);
			};
			}))
}

BEGIN:其他材料费_定额重算_含税
${
    sum(source, "工程量",?sum(_过滤材料_定额重算(),"人材机",?#{->in(人材机.编码,"C10006,C99010101"):_普通材料费_定额重算_含税() * 人材机.数量 / 100;}))
}

BEGIN:材料费_定额重算_含税
${
    round(_普通材料费_定额重算_含税()+其他材料费_定额重算_含税(),2)
}

//*************************单条甲供材料费_不含税：甲供材料费************************
BEGIN:_甲供普通材料费_定额重算
${
    sum(source, "工程量",?sum(_过滤材料_定额重算(),"人材机",?#{
	    ->in(人材机.编码,"C10006,C99010101") == 0:
		  #{
			->人材机.拆分 == 0 && 人材机.供货方 == "甲供":人材机.数量 * 人材机.预算价不含税;
			->人材机.拆分 == 1:人材机.数量 * round(?round(?sum(items,"拆分子项",?#{->拆分子项.供货方 == "甲供" && 拆分子项.type == "人工":round(?拆分子项.数量,4) * 拆分子项.预算价不含税;}),2)				
				  +round(?sum(items,"拆分子项",?#{->拆分子项.供货方 == "甲供" && 拆分子项.type == "材料":round(?拆分子项.数量,4) * 拆分子项.预算价不含税;}),2)
				  +round(?sum(items,"拆分子项",?#{->拆分子项.供货方 == "甲供" && 拆分子项.type == "机械":round(?拆分子项.数量,4) * 拆分子项.预算价不含税;}),2),4);			
			};
			}))
}

BEGIN:_甲供其他材料费_定额重算
${
    sum(source, "工程量",?sum(items,"人材机",?#{->in(人材机.编码,"C10006,C99010101") && 人材机.供货方 == "甲供":_普通材料费_定额重算() * 人材机.数量 / 100;}))
}

BEGIN:甲供材料费_定额重算
${
   round(_甲供普通材料费_定额重算()+_甲供其他材料费_定额重算(),2)
}
//*************************单条甲供材料费_含税：甲供材料费_含税************************
BEGIN:_甲供普通材料费_定额重算_含税
${
    sum(source, "工程量",?sum(_过滤材料_定额重算(),"人材机",?#{
	    ->in(人材机.编码,"C10006,C99010101") == 0:
		  #{
			->人材机.拆分 == 0 && 人材机.供货方 == "甲供":人材机.数量 * 人材机.预算价含税;
			->人材机.拆分 == 1:人材机.数量 * round(?round(?sum(items,"拆分子项",?#{->拆分子项.供货方 == "甲供" && 拆分子项.type == "人工":round(?拆分子项.数量,4) * 拆分子项.预算价含税;}),2)				
				  +round(?sum(items,"拆分子项",?#{->拆分子项.供货方 == "甲供" && 拆分子项.type == "材料":round(?拆分子项.数量,4) * 拆分子项.预算价含税;}),2)
				  +round(?sum(items,"拆分子项",?#{->拆分子项.供货方 == "甲供" && 拆分子项.type == "机械":round(?拆分子项.数量,4) * 拆分子项.预算价含税;}),2),4);			
			};
			}))
}

BEGIN:_甲供其他材料费_定额重算_含税
${
    sum(source, "工程量",?sum(items,"人材机",?#{->in(人材机.编码,"C10006,C99010101") && 人材机.供货方 == "甲供":_普通材料费_定额重算_含税() * 人材机.数量 / 100;}))
}

BEGIN:甲供材料费_定额重算_含税
${
   round(_甲供普通材料费_定额重算_含税()+_甲供其他材料费_定额重算_含税(),2)
}

//*************************单条机械费：机械费************************
BEGIN:_普通机械费_定额重算
${
    sum(source, "工程量", ?sum(_过滤机械_定额重算(),"人材机",?#{
	     ->人材机.编码 != "J09001" && 人材机.编码 != "J99-01-098":人材机.数量 * 人材机.预算价不含税;
		 }))
}

BEGIN:其他机械费_定额重算
${
    sum(source, "工程量", ?sum(items,"人材机",?#{
	     ->人材机.编码 == "J09001" || 人材机.编码 == "J99-01-098":_普通机械费_定额重算()*人材机.数量 / 100;				
		 }))
}

BEGIN:机械费_定额重算
${
    round(_普通机械费_定额重算()+其他机械费_定额重算(),2)
}

//*************************基价************************
BEGIN:基价_定额重算
${
	sum(source, "工程量", ?round(工程量.人工费 + 工程量.材料费 +工程量.机械费, 2))
}

//*************************工程量界面定额“单价不含税”************************
BEGIN:单价_定额重算
${
	sum(source, "定额", ?round(定额.人工费*定额.人工系数*定额.定额系数+定额.材料费*定额.材料系数*定额.定额系数+定额.机械费*定额.机械系数*定额.定额系数, 2))
}

//*************************消材拆分父级预算价不含税价重算************************
BEGIN:拆分材料父级预算价_定额重算_不含税
${
   sum(source, "人材机", ?#{->人材机.拆分 == 1:round(?_拆分子级人工预算合价_消材_不含税() + _拆分子级机械预算合价_消材_不含税() + _拆分子级材料预算合价_消材_不含税(),4);})
}

BEGIN:_拆分子级人工预算合价_消材_不含税
${
    round(?sum(items,"拆分子项",?#{->拆分子项.type == "人工":round(?拆分子项.数量,4) * 拆分子项.预算价不含税;}),2)
}

BEGIN:_拆分子级机械预算合价_消材_不含税
${
   round(?sum(items,"拆分子项",?#{->拆分子项.type == "机械":round(?拆分子项.数量,4) * 拆分子项.预算价不含税;}),2)
}

BEGIN:_拆分子级材料预算合价_消材_不含税
${
    round(?sum(items,"拆分子项",?#{->拆分子项.type == "材料":round(?拆分子项.数量,4) * 拆分子项.预算价不含税;}),2)
}

//*************************消材拆分父级预算价含税价重算************************
BEGIN:拆分材料父级预算价_定额重算_含税
${
   sum(source, "人材机", ?#{->人材机.拆分 == 1:round(?_拆分子级人工预算合价_消材_含税() + _拆分子级机械预算合价_消材_含税() + _拆分子级材料预算合价_消材_含税(),4);})
}

BEGIN:_拆分子级人工预算合价_消材_含税
${
    round(?sum(items,"拆分子项",?#{->拆分子项.type == "人工":round(?拆分子项.数量,4) * 拆分子项.预算价含税;}),2)
}

BEGIN:_拆分子级机械预算合价_消材_含税
${
   round(?sum(items,"拆分子项",?#{->拆分子项.type == "机械":round(?拆分子项.数量,4) * 拆分子项.预算价含税;}),2)
}

BEGIN:_拆分子级材料预算合价_消材_含税
${
    round(?sum(items,"拆分子项",?#{->拆分子项.type == "材料":round(?拆分子项.数量,4) * 拆分子项.预算价含税;}),2)
}
 
//*************************消材拆分父级市场价不含税重算************************
BEGIN:拆分材料父级市场价_定额重算_不含税
${
     sum(source, "人材机", ?#{->人材机.拆分 == 1:round(?_拆分子级人工市场价合价_消材_不含税() + _拆分子级机械市场价合价_消材_不含税() + _拆分子级材料市场价合价_消材_不含税(),4);})
}

BEGIN:_拆分子级人工市场价合价_消材_不含税
${
   round(?sum(items,"拆分子项",?#{
   ->拆分子项.type == "人工" && @工程信息.项目类型 == "应急工程":round(?拆分子项.数量,4) * 拆分子项.市场价不含税;
   ->拆分子项.type == "人工" && @工程信息.项目类型 != "应急工程":round(?拆分子项.数量,4) * 拆分子项.预算价不含税 *#{
     ->(@工程信息.工程类型 == "变电" || @工程信息.项目划分 == "电缆线路工程") && (拆分子项.调差类型 == "建筑拆除" || 拆分子项.调差类型 == "建筑拆除措施二"):
      #{
	   ->@工程信息.建筑拆除材机按系数调差 == "是" : 1+@工程信息.建筑拆除材料调差系数 /100;
	   ->@工程信息.建筑拆除材机按系数调差 == "否" : 1+@工程信息.建筑拆除人工调差系数 /100;
	  };
     ->@工程信息.工程性质 == "检修" && (@工程信息.工程类型 == "变电" || @工程信息.项目划分 == "电缆线路工程") && (拆分子项.调差类型 == "建筑修缮" || 拆分子项.调差类型 == "建筑修缮措施二"):
      #{
	   ->@工程信息.建筑修缮材机按系数调差 == "是" : 1+@工程信息.建筑修缮材料调差系数 /100;
	   ->@工程信息.建筑修缮材机按系数调差 == "否" : 1+@工程信息.建筑修缮人工调差系数 /100;
      };
     ->@工程信息.工程类型 == "线路" && (拆分子项.调差类型 == "设备检修" || 拆分子项.调差类型 == "设备检修措施二"):1+@工程信息.设备检修材料调差系数 /100;
     ->@工程信息.工程类型 == "配网" || @工程信息.项目划分 == "输电线路工程":
      #{
	   ->拆分子项.@_@材机按系数调差 == "是" : 1+拆分子项.@_@材料调差系数 /100;
	   ->拆分子项.@_@材机按系数调差 == "否" : 1+拆分子项.@_@人工调差系数 /100;
      };
     ->@工程信息.工程性质 == "技改" && (@工程信息.工程类型 == "变电" || @工程信息.项目划分 == "电缆线路工程") && (拆分子项.调差类型 == "建筑" || 拆分子项.调差类型 == "建筑措施二"):
      #{
	   ->@工程信息.建筑材机按系数调差 == "是" : 1+@工程信息.建筑材料调差系数 /100;
	   ->@工程信息.建筑材机按系数调差 == "否" : 1+@工程信息.建筑人工调差系数 /100;
      };
     ->@工程信息.工程性质 == "技改" && @工程信息.工程类型 == "线路" && (拆分子项.调差类型 == "安装" || 拆分子项.调差类型 == "安装措施二"):1+@工程信息.安装材料调差系数 /100;
     ->@工程信息.工程类型 == "线路" && (拆分子项.调差类型 == "安装拆除" || 拆分子项.调差类型 == "安装拆除措施二"):1+@工程信息.安装拆除材料调差系数 /100;
  };
  }), 2)
}

BEGIN:_拆分子级机械市场价合价_消材_不含税
${
   round(?sum(items,"拆分子项",?#{
   ->拆分子项.type == "机械" && @工程信息.项目类型 == "应急工程":round(?拆分子项.数量,4) * 拆分子项.市场价不含税;
   ->拆分子项.type == "机械" && @工程信息.项目类型 != "应急工程":round(?拆分子项.数量,4) * #{
     ->(@工程信息.工程类型 == "变电" || @工程信息.项目划分 == "电缆线路工程") && (拆分子项.调差类型 == "建筑拆除" || 拆分子项.调差类型 == "建筑拆除措施二"):
      #{
       ->@工程信息.建筑拆除材机按系数调差 == "是" : 拆分子项.预算价不含税*(1+@工程信息.建筑拆除材料调差系数 /100);
       ->@工程信息.建筑拆除材机按系数调差 == "否" : 拆分子项.市场价不含税;
      };
     ->@工程信息.工程性质 == "检修" && (@工程信息.工程类型 == "变电" || @工程信息.项目划分 == "电缆线路工程") && (拆分子项.调差类型 == "建筑修缮" || 拆分子项.调差类型 == "建筑修缮措施二"):
      #{
       ->@工程信息.建筑修缮材机按系数调差 == "是" : 拆分子项.预算价不含税*(1+@工程信息.建筑修缮材料调差系数 /100);
       ->@工程信息.建筑修缮材机按系数调差 == "否" : 拆分子项.市场价不含税;
      };
    ->@工程信息.工程性质 == "检修" && @工程信息.工程类型 == "线路" && (拆分子项.调差类型 == "设备检修" || 拆分子项.调差类型 == "设备检修措施二"):拆分子项.预算价不含税*(1+@工程信息.设备检修材料调差系数 / 100);
    ->@工程信息.工程类型 == "配网" || @工程信息.项目划分 == "输电线路工程":
      #{
       ->拆分子项.@_@材机按系数调差 == "是" : 拆分子项.预算价不含税*(1+拆分子项.@_@材料调差系数 /100);
       ->拆分子项.@_@材机按系数调差 == "否" : 拆分子项.市场价不含税;
	};
    ->@工程信息.工程性质 == "技改" && (@工程信息.工程类型 == "变电" || @工程信息.项目划分 == "电缆线路工程")&& (拆分子项.调差类型 == "建筑" || 拆分子项.调差类型 == "建筑措施二"):
      #{
       ->@工程信息.建筑材机按系数调差 == "是" : 拆分子项.预算价不含税*(1+@工程信息.建筑材料调差系数 /100);
       ->@工程信息.建筑材机按系数调差 == "否" : 拆分子项.市场价不含税;
	};
    ->@工程信息.工程性质 == "技改" && @工程信息.工程类型 == "线路" && (拆分子项.调差类型 == "安装" || 拆分子项.调差类型 == "安装措施二"):拆分子项.预算价不含税*(1+@工程信息.建筑材料调差系数 /100);
    ->@工程信息.工程类型 == "线路" && (拆分子项.调差类型 == "安装拆除" || 拆分子项.调差类型 == "安装拆除措施二"):拆分子项.预算价不含税*(1+@工程信息.安装拆除材料调差系数 /100);
	};
   }), 2)
}

BEGIN:_拆分子级材料市场价合价_消材_不含税
${
    round(?sum(items,"拆分子项",?#{
   ->拆分子项.type == "材料" && @工程信息.项目类型 == "应急工程":round(?拆分子项.数量,4) * 拆分子项.市场价不含税;	
   ->拆分子项.type == "材料" && @工程信息.项目类型 != "应急工程":round(?拆分子项.数量,4) * #{
    ->(@工程信息.工程类型 == "变电" || @工程信息.工程类型 == "线路")&& (拆分子项.调差类型 == "建筑拆除" || 拆分子项.调差类型 == "建筑拆除措施二"):
      #{
       ->@工程信息.建筑拆除材机按系数调差 == "是" : 拆分子项.预算价不含税*(1+@工程信息.建筑拆除材料调差系数 / 100);
       ->@工程信息.建筑拆除材机按系数调差 == "否" : 拆分子项.市场价不含税;
      };
    ->@工程信息.工程性质 == "检修" && (@工程信息.工程类型 == "变电" || @工程信息.项目划分 == "电缆线路工程") && (拆分子项.调差类型 == "建筑修缮" || 拆分子项.调差类型 == "建筑修缮措施二"):
      #{
       ->@工程信息.建筑修缮材机按系数调差 == "是" : 拆分子项.预算价不含税*(1+@工程信息.建筑修缮材料调差系数 /100);
       ->@工程信息.建筑修缮材机按系数调差 == "否" : 拆分子项.市场价不含税;
      };
    ->@工程信息.工程性质 == "检修" && @工程信息.工程类型 == "线路" && (拆分子项.调差类型 == "设备检修" || 拆分子项.调差类型 == "设备检修措施二"):拆分子项.预算价不含税*(1+@工程信息.设备检修材料调差系数 /100);
    ->@工程信息.工程类型 == "配网" || @工程信息.项目划分 == "输电线路工程":
      #{
       ->拆分子项.@_@材机按系数调差 == "是" : 拆分子项.预算价不含税*(1+拆分子项.@_@材料调差系数 /100);
       ->拆分子项.@_@材机按系数调差 == "否" : 拆分子项.市场价不含税;
      };
    ->@工程信息.工程性质 == "技改" && (@工程信息.工程类型 == "变电" || @工程信息.项目划分 == "电缆线路工程") && (拆分子项.调差类型 == "建筑" || 拆分子项.调差类型 == "建筑措施二"):
      #{
       ->@工程信息.建筑材机按系数调差 == "是" : 拆分子项.预算价不含税*(1+@工程信息.建筑材料调差系数 /100);
       ->@工程信息.建筑材机按系数调差 == "否" : 拆分子项.市场价不含税;
      };
    ->@工程信息.工程性质 == "技改" && @工程信息.工程类型 == "线路" && (拆分子项.调差类型 == "安装" || 拆分子项.调差类型 == "安装措施二"):拆分子项.预算价不含税*(1+@工程信息.安装材料调差系数 /100);
    ->@工程信息.工程类型 == "线路" && (拆分子项.调差类型 == "安装拆除" || 拆分子项.调差类型 == "安装拆除措施二"):拆分子项.预算价不含税*(1+@工程信息.安装拆除材料调差系数 /100);
	};
   }), 2)
}

//*************************消材拆分父级市场价含税重算************************
BEGIN:拆分材料父级市场价_定额重算_含税
${
     sum(source, "人材机", ?#{->人材机.拆分 == 1:round(?_拆分子级人工市场价合价_消材_含税() + _拆分子级机械市场价合价_消材_含税() + _拆分子级材料市场价合价_消材_含税(),4);})
}

BEGIN:_拆分子级人工市场价合价_消材_含税
${
   round(?sum(items,"拆分子项",?#{
   ->拆分子项.type == "人工" && @工程信息.项目类型 == "应急工程":round(?拆分子项.数量,4) * 拆分子项.市场价含税;
   ->拆分子项.type == "人工" && @工程信息.项目类型 != "应急工程":round(?拆分子项.数量,4) * 拆分子项.预算价含税 *#{
     ->(@工程信息.工程类型 == "变电" || @工程信息.项目划分 == "电缆线路工程") && (拆分子项.调差类型 == "建筑拆除" || 拆分子项.调差类型 == "建筑拆除措施二"):
      #{
	   ->@工程信息.建筑拆除材机按系数调差 == "是" : 1+@工程信息.建筑拆除材料调差系数 /100;
	   ->@工程信息.建筑拆除材机按系数调差 == "否" : 1+@工程信息.建筑拆除人工调差系数 /100;
	  };
     ->@工程信息.工程性质 == "检修" && (@工程信息.工程类型 == "变电" || @工程信息.项目划分 == "电缆线路工程") && (拆分子项.调差类型 == "建筑修缮" || 拆分子项.调差类型 == "建筑修缮措施二"):
      #{
	   ->@工程信息.建筑修缮材机按系数调差 == "是" : 1+@工程信息.建筑修缮材料调差系数 /100;
	   ->@工程信息.建筑修缮材机按系数调差 == "否" : 1+@工程信息.建筑修缮人工调差系数 /100;
      };
     ->@工程信息.工程类型 == "线路" && (拆分子项.调差类型 == "设备检修" || 拆分子项.调差类型 == "设备检修措施二"):1+@工程信息.设备检修材料调差系数 /100;
     ->@工程信息.工程类型 == "配网" || @工程信息.项目划分 == "输电线路工程":
      #{
	   ->拆分子项.@_@材机按系数调差 == "是" : 1+拆分子项.@_@材料调差系数 /100;
	   ->拆分子项.@_@材机按系数调差 == "否" : 1+拆分子项.@_@人工调差系数 /100;
      };
     ->@工程信息.工程性质 == "技改" && (@工程信息.工程类型 == "变电" || @工程信息.项目划分 == "电缆线路工程") && (拆分子项.调差类型 == "建筑" || 拆分子项.调差类型 == "建筑措施二"):
      #{
	   ->@工程信息.建筑材机按系数调差 == "是" : 1+@工程信息.建筑材料调差系数 /100;
	   ->@工程信息.建筑材机按系数调差 == "否" : 1+@工程信息.建筑人工调差系数 /100;
      };
     ->@工程信息.工程性质 == "技改" && @工程信息.工程类型 == "线路" && (拆分子项.调差类型 == "安装" || 拆分子项.调差类型 == "安装措施二"):1+@工程信息.安装材料调差系数 /100;
     ->@工程信息.工程类型 == "线路" && (拆分子项.调差类型 == "安装拆除" || 拆分子项.调差类型 == "安装拆除措施二"):1+@工程信息.安装拆除材料调差系数 /100;
  };
  }), 2)
}

BEGIN:_拆分子级机械市场价合价_消材_含税
${
   round(?sum(items,"拆分子项",?#{
   ->拆分子项.type == "机械" && @工程信息.项目类型 == "应急工程":round(?拆分子项.数量,4) * 拆分子项.市场价含税;
   ->拆分子项.type == "机械" && @工程信息.项目类型 != "应急工程":round(?拆分子项.数量,4) * #{
     ->(@工程信息.工程类型 == "变电" || @工程信息.项目划分 == "电缆线路工程") && (拆分子项.调差类型 == "建筑拆除" || 拆分子项.调差类型 == "建筑拆除措施二"):
      #{
       ->@工程信息.建筑拆除材机按系数调差 == "是" : 拆分子项.预算价含税*(1+@工程信息.建筑拆除材料调差系数 /100);
       ->@工程信息.建筑拆除材机按系数调差 == "否" : 拆分子项.市场价含税;
      };
     ->@工程信息.工程性质 == "检修" && (@工程信息.工程类型 == "变电" || @工程信息.项目划分 == "电缆线路工程") && (拆分子项.调差类型 == "建筑修缮" || 拆分子项.调差类型 == "建筑修缮措施二"):
      #{
       ->@工程信息.建筑修缮材机按系数调差 == "是" : 拆分子项.预算价含税*(1+@工程信息.建筑修缮材料调差系数 /100);
       ->@工程信息.建筑修缮材机按系数调差 == "否" : 拆分子项.市场价含税;
      };
    ->@工程信息.工程性质 == "检修" && @工程信息.工程类型 == "线路" && (拆分子项.调差类型 == "设备检修" || 拆分子项.调差类型 == "设备检修措施二"):拆分子项.预算价含税*(1+@工程信息.设备检修材料调差系数 / 100);
    ->@工程信息.工程类型 == "配网" || @工程信息.项目划分 == "输电线路工程":
      #{
       ->拆分子项.@_@材机按系数调差 == "是" : 拆分子项.预算价含税*(1+拆分子项.@_@材料调差系数 /100);
       ->拆分子项.@_@材机按系数调差 == "否" : 拆分子项.市场价含税;
	};
    ->@工程信息.工程性质 == "技改" && (@工程信息.工程类型 == "变电" || @工程信息.项目划分 == "电缆线路工程")&& (拆分子项.调差类型 == "建筑" || 拆分子项.调差类型 == "建筑措施二"):
      #{
       ->@工程信息.建筑材机按系数调差 == "是" : 拆分子项.预算价含税*(1+@工程信息.建筑材料调差系数 /100);
       ->@工程信息.建筑材机按系数调差 == "否" : 拆分子项.市场价含税;
	};
    ->@工程信息.工程性质 == "技改" && @工程信息.工程类型 == "线路" && (拆分子项.调差类型 == "安装" || 拆分子项.调差类型 == "安装措施二"):拆分子项.预算价含税*(1+@工程信息.建筑材料调差系数 /100);
    ->@工程信息.工程类型 == "线路" && (拆分子项.调差类型 == "安装拆除" || 拆分子项.调差类型 == "安装拆除措施二"):拆分子项.预算价含税*(1+@工程信息.安装拆除材料调差系数 /100);
	};
   }), 2)
}

BEGIN:_拆分子级材料市场价合价_消材_含税
${
    round(?sum(items,"拆分子项",?#{
   ->拆分子项.type == "材料" && @工程信息.项目类型 == "应急工程":round(?拆分子项.数量,4) * 拆分子项.市场价含税;	
   ->拆分子项.type == "材料" && @工程信息.项目类型 != "应急工程":round(?拆分子项.数量,4) * #{
    ->(@工程信息.工程类型 == "变电" || @工程信息.工程类型 == "线路")&& (拆分子项.调差类型 == "建筑拆除" || 拆分子项.调差类型 == "建筑拆除措施二"):
      #{
       ->@工程信息.建筑拆除材机按系数调差 == "是" : 拆分子项.预算价含税*(1+@工程信息.建筑拆除材料调差系数 / 100);
       ->@工程信息.建筑拆除材机按系数调差 == "否" : 拆分子项.市场价含税;
      };
    ->@工程信息.工程性质 == "检修" && (@工程信息.工程类型 == "变电" || @工程信息.项目划分 == "电缆线路工程") && (拆分子项.调差类型 == "建筑修缮" || 拆分子项.调差类型 == "建筑修缮措施二"):
      #{
       ->@工程信息.建筑修缮材机按系数调差 == "是" : 拆分子项.预算价含税*(1+@工程信息.建筑修缮材料调差系数 /100);
       ->@工程信息.建筑修缮材机按系数调差 == "否" : 拆分子项.市场价含税;
      };
    ->@工程信息.工程性质 == "检修" && @工程信息.工程类型 == "线路" && (拆分子项.调差类型 == "设备检修" || 拆分子项.调差类型 == "设备检修措施二"):拆分子项.预算价含税*(1+@工程信息.设备检修材料调差系数 /100);
    ->@工程信息.工程类型 == "配网" || @工程信息.项目划分 == "输电线路工程":
      #{
       ->拆分子项.@_@材机按系数调差 == "是" : 拆分子项.预算价含税*(1+拆分子项.@_@材料调差系数 /100);
       ->拆分子项.@_@材机按系数调差 == "否" : 拆分子项.市场价含税;
      };
    ->@工程信息.工程性质 == "技改" && (@工程信息.工程类型 == "变电" || @工程信息.项目划分 == "电缆线路工程") && (拆分子项.调差类型 == "建筑" || 拆分子项.调差类型 == "建筑措施二"):
      #{
       ->@工程信息.建筑材机按系数调差 == "是" : 拆分子项.预算价含税*(1+@工程信息.建筑材料调差系数 /100);
       ->@工程信息.建筑材机按系数调差 == "否" : 拆分子项.市场价含税;
      };
    ->@工程信息.工程性质 == "技改" && @工程信息.工程类型 == "线路" && (拆分子项.调差类型 == "安装" || 拆分子项.调差类型 == "安装措施二"):拆分子项.预算价含税*(1+@工程信息.安装材料调差系数 /100);
    ->@工程信息.工程类型 == "线路" && (拆分子项.调差类型 == "安装拆除" || 拆分子项.调差类型 == "安装拆除措施二"):拆分子项.预算价含税*(1+@工程信息.安装拆除材料调差系数 /100);
	};
   }), 2)
}
//*************************未计价含税重算：父级含税预算价************************
//BEGIN:拆分父级预算价_定额重算_含税
//${
//   sum(source, "未计价", ?#{->未计价.拆分 == 1:_拆分子级人材机预算合价_含税();})
//}

//BEGIN:_拆分子级人材机预算合价_含税
//${
//    round(?sum(items,"拆分子项",?(round(?拆分子项.含量,4) * 拆分子项.预算价含税)),2)
//}

//*************************未计价含税重算：父级含税市场价************************
BEGIN:拆分父级市场价_定额重算_含税
${
   sum(source, "未计价", ?#{->未计价.拆分 == 1:_拆分子级人材机市场合价_含税();})
}

BEGIN:_拆分子级人材机市场合价_含税
${
    round(?sum(items,"拆分子项",?(round(?拆分子项.含量,4) * 拆分子项.市场价含税)),2)
}

//*************************未计价不含税重算：父级不含税预算价************************
//BEGIN:拆分父级预算价_定额重算_不含税
//${
//   sum(source, "未计价", ?#{->未计价.拆分 == 1:_拆分子级人材机预算合价_不含税();})
//}

//BEGIN:_拆分子级人材机预算合价_不含税
//${
//    round(?sum(items,"拆分子项",?(round(?拆分子项.含量,4) * 拆分子项.预算价不含税)), 2)
//}

//*************************未计价不含税重算：父级不含税市场价************************
BEGIN:拆分父级市场价_定额重算_不含税
${
   sum(source, "未计价", ?#{->未计价.拆分 == 1:_拆分子级人材机市场合价_不含税();})
}

BEGIN:_拆分子级人材机市场合价_不含税
${
    round(?sum(items,"拆分子项",?(round(?拆分子项.含量,4) * 拆分子项.市场价不含税)), 2)
}
