//------------------一笔性费用-------------------------------------
BEGIN:一笔性费用（合价）
${
    sum(_过滤一笔性费用(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,工程量.数量 * 工程量.单价,0))
}

BEGIN:一笔性费用不含税（合价）
${
    sum(_过滤一笔性费用(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,工程量.数量 * 工程量.单价不含税,0))
}

BEGIN:一笔性费用_单价
${
    sum(_过滤一笔性费用(),"工程量",?工程量.数量 * 工程量.单价 / parent.数量)
}

BEGIN:一笔性费用含税_单价
${
    sum(_过滤一笔性费用(),"工程量",?工程量.数量 * 工程量.单价 / parent.数量)
}

//------------------主材-------------------------------------------
BEGIN:甲供主材费含税
${
    sum(_过滤主材(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供"
	:
	主材.数量 * 主材.市场价含税;
	->主材.拆分 == 1
	:
	sum(_过滤甲供子项(),"拆分子项",?拆分子项.数量 * 拆分子项.市场价含税);
	},0)
	)
}

BEGIN:甲供主材费含税_单价
${
    sum(_过滤主材(),"主材",?
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供" 
	:
	主材.数量 * 主材.市场价含税;
	->主材.拆分 == 1
	:
	sum(_过滤甲供子项(),"拆分子项",?拆分子项.数量 * 拆分子项.市场价含税);
	 } / _清单量())
}

BEGIN:甲供主材费不含税
${
    sum(_过滤主材(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供"
	:
	主材.数量 * 主材.市场价不含税;
	->主材.拆分 == 1
	:
	sum(_过滤甲供子项(),"拆分子项",?拆分子项.数量 * 拆分子项.市场价不含税);
	},0)
	)
}

BEGIN:甲供设备性材料费含税
${
    sum(_过滤设备性材料(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供"
	:
	主材.数量 * 主材.市场价含税;
	->:0;
	},0)
	)
}

BEGIN:甲供设备性材料费含税_单价
${
    sum(_过滤设备性材料(),"主材",?
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供" 
	:
	主材.数量 * 主材.市场价含税;
	->:0;
	 } / _清单量())
}

BEGIN:甲供设备性材料费不含税
${
    sum(_过滤设备性材料(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供"
	:
	主材.数量 * 主材.市场价不含税;
	->:0;
	},0)
	)
}

BEGIN:乙供主材费含税
${
    sum(_过滤主材(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "乙供"
	:
	主材.数量 * 主材.市场价含税;
	->主材.拆分 == 1
	:
	sum(_过滤乙供子项(),"拆分子项",?拆分子项.数量 * 拆分子项.市场价含税);	
	},0)
	)
}

BEGIN:乙供主材费不含税
${
    sum(_过滤主材(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "乙供"
	:
	主材.数量 * 主材.市场价不含税;
	->主材.拆分 == 1
	:
	sum(_过滤乙供子项(),"拆分子项",?拆分子项.数量 * 拆分子项.市场价不含税);	
	},0)
	)
}

BEGIN:乙供主材费不含税_单价
${
    sum(_过滤主材(),"主材",?
	#{
	->主材.拆分 == 0 && 主材.供货方 == "乙供" 
	:
	主材.数量 * 主材.市场价不含税;
	->主材.拆分 == 1
	:
	sum(_过滤乙供子项(),"拆分子项",?拆分子项.数量 * 拆分子项.市场价不含税);	
	} / _清单量())
}

BEGIN:乙供设备性材料费含税
${
    sum(_过滤设备性材料(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "乙供"
	:
	主材.数量 * 主材.市场价含税;
	->:0;
	},0)
	)
}

BEGIN:乙供设备性材料费不含税
${
    sum(_过滤设备性材料(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "乙供"
	:
	主材.数量 * 主材.市场价不含税;
	->:0;
	},0)
	)
}

BEGIN:乙供设备性材料费不含税_单价
${
    sum(_过滤设备性材料(),"主材",?
	#{
	->主材.拆分 == 0 && 主材.供货方 == "乙供" 
	:
	主材.数量 * 主材.市场价不含税;
	->:0;
	 } / _清单量())
}

BEGIN:甲供主材损耗费含税
${
    sum(_过滤主材(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供"
	:
	主材.数量 * 主材.市场价含税 * 主材.损耗 /100;
	->主材.拆分 == 1
	:
	sum(_过滤甲供子项(),"拆分子项",?拆分子项.数量 * 拆分子项.市场价含税 * 拆分子项.损耗 /100);	
	},0))
}

BEGIN:甲供主材损耗费含税_单价
${
    sum(_过滤主材(),"主材",?
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供" 
	:
	主材.数量 * 主材.市场价含税 * 主材.损耗 /100;
	->主材.拆分 == 1
	:
	sum(_过滤甲供子项(),"拆分子项",?拆分子项.数量 * 拆分子项.市场价含税 * 拆分子项.损耗 /100);	
	} / _清单量())
}

BEGIN:甲供设备性材料损耗费含税
${
    sum(_过滤设备性材料(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供"
	:
	主材.数量 * 主材.市场价含税 * 主材.损耗 /100;
	->:0;
	},0)
	)
}

BEGIN:甲供设备性材料损耗费含税_单价
${
    sum(_过滤设备性材料(),"主材",?
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供" 
	:
	主材.数量 * 主材.市场价含税 * 主材.损耗 /100;
	->:0;
	 } / _清单量())
}

BEGIN:甲供主材损耗费不含税
${
    sum(_过滤主材(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供"
	:
	主材.数量 * 主材.市场价不含税 * 主材.损耗 /100;
	->主材.拆分 == 1
	:
	sum(_过滤甲供子项(),"拆分子项",?拆分子项.数量 * 拆分子项.市场价不含税 * 拆分子项.损耗 /100);	
	},0))
}

//BEGIN:甲供主材损耗费不含税_单价
//${
//    sum(_过滤主材(),"主材",?
//	#{
//	->主材.拆分 == 0 && 主材.供货方 == "甲供" 
//	:
//	主材.数量 * 主材.市场价不含税 * 主材.损耗 /100;
//	->主材.拆分 == 1
//	:
//	sum(_过滤甲供子项(),"拆分子项",?拆分子项.数量 * 拆分子项.市场价不含税 * 拆分子项.损耗 /100);	
//	} / _清单量())
//}

BEGIN:甲供设备性材料损耗费不含税
${
    sum(_过滤设备性材料(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供"
	:
	主材.数量 * 主材.市场价不含税 * 主材.损耗 /100;
	->:0;
	},0)
	)
}

//BEGIN:甲供设备性材料损耗费不含税_单价
//${
//    sum(_过滤设备性材料(),"主材",?
//	#{
//	->主材.拆分 == 0 && 主材.供货方 == "甲供" 
//	:
//	主材.数量 * 主材.市场价不含税 * 主材.损耗 /100;
//	->:0;
//	} / _清单量())
//}

BEGIN:乙供主材损耗费含税
${
    sum(_过滤主材(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "乙供"
	:
	主材.数量 * 主材.市场价含税 * 主材.损耗 /100;
	->主材.拆分 == 1
	:
	sum(_过滤乙供子项(),"拆分子项",?拆分子项.数量 * 拆分子项.市场价含税 * 拆分子项.损耗 /100);	
	},0))
}

//BEGIN:乙供主材损耗费含税_单价
//${
//    sum(_过滤主材(),"主材",?
//	#{
//	->主材.拆分 == 0 && 主材.供货方 == "乙供" 
//	:
//	主材.数量 * 主材.市场价含税 * 主材.损耗 /100;
//	->主材.拆分 == 1
//	:
//	sum(_过滤乙供子项(),"拆分子项",?拆分子项.数量 * 拆分子项.市场价含税 * 拆分子项.损耗 /100);	
//	} / _清单量())
//}

BEGIN:乙供主材损耗费不含税
${
    sum(_过滤主材(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "乙供"
	:
	主材.数量 * 主材.市场价不含税 * 主材.损耗 /100;
	->主材.拆分 == 1
	:
	sum(_过滤乙供子项(),"拆分子项",?拆分子项.数量 * 拆分子项.市场价不含税 * 拆分子项.损耗 /100);	
	},0))
}

BEGIN:乙供主材损耗费不含税_单价
${
    sum(_过滤主材(),"主材",?
	#{
	->主材.拆分 == 0 && 主材.供货方 == "乙供" 
	:
	主材.数量 * 主材.市场价不含税 * 主材.损耗 /100;
	->主材.拆分 == 1
	:
	sum(_过滤乙供子项(),"拆分子项",?拆分子项.数量 * 拆分子项.市场价不含税 * 拆分子项.损耗 /100);	
	} / _清单量())
}

BEGIN:乙供设备性材料损耗费含税
${
    sum(_过滤设备性材料(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "乙供"
	:
	主材.数量 * 主材.市场价含税 * 主材.损耗 /100;
	->:0;
	},0)
	)
}

//BEGIN:乙供设备性材料损耗费含税_单价
//${
//    sum(_过滤设备性材料(),"主材",?
//	#{
//	->主材.拆分 == 0 && 主材.供货方 == "乙供" 
//	:
//	主材.数量 * 主材.市场价含税 * 主材.损耗 /100;
//	->:0;
//	 } / _清单量())
//}

BEGIN:乙供设备性材料损耗费不含税
${
    sum(_过滤设备性材料(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "乙供"
	:
	主材.数量 * 主材.市场价不含税 * 主材.损耗 /100;
	->:0;
	},0)
	)
}

BEGIN:乙供设备性材料损耗费不含税_单价
${
    sum(_过滤设备性材料(),"主材",?
	#{
	->主材.拆分 == 0 && 主材.供货方 == "乙供" 
	:
	主材.数量 * 主材.市场价不含税 * 主材.损耗 /100;
	->:0;
	 } / _清单量())
}

BEGIN:甲供主材配送费
${
    sum(_过滤主材(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.集中配送 == "1"
	 :
	 主材.数量 * (1 + 主材.损耗 / 100) * 主材.市场价含税;
	->主材.拆分 == 1
	 :
	 sum(_过滤甲供子项(),"拆分子项",?#{->拆分子项.集中配送 == "1":拆分子项.数量 * (1 + 拆分子项.损耗 / 100) * 拆分子项.市场价含税;});
	 } * @工程信息.甲供材料配送费费率 / 100,0))
}

BEGIN:甲供主材配送费_单价
${
    sum(_过滤主材(),"主材",?#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.集中配送 == "1" 
	 :
	 主材.数量 * (1 + 主材.损耗 / 100) * 主材.市场价含税;
	->主材.拆分 == 1
	 :
	 sum(_过滤甲供子项(),"拆分子项",?#{->拆分子项.集中配送 == "1":拆分子项.数量 * (1 + 拆分子项.损耗 / 100) * 拆分子项.市场价含税;});
	 } / _清单量() * @工程信息.甲供材料配送费费率 / 100 )
}

BEGIN:甲供主材卸车费
${
    sum(_过滤主材(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.卸车 == "1"
	 :
	 主材.数量 * (1 + 主材.损耗 / 100) * 主材.市场价含税;
	->主材.拆分 == 1
	 :
	 sum(_过滤甲供子项(),"拆分子项",?#{->拆分子项.卸车 == "1":拆分子项.数量 * (1 + 拆分子项.损耗 / 100) * 拆分子项.市场价含税;});
	 } * @工程信息.甲供材料卸车费费率 / 100,0))
}

BEGIN:甲供主材卸车费_单价
${
    sum(_过滤主材(),"主材",?#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.卸车 == "1" 
	 :
	 主材.数量 * (1 + 主材.损耗 / 100) * 主材.市场价含税;
	->主材.拆分 == 1
	 :
	 sum(_过滤甲供子项(),"拆分子项",?#{->拆分子项.卸车 == "1":拆分子项.数量 * (1 + 拆分子项.损耗 / 100) * 拆分子项.市场价含税;});
	 } / _清单量() * @工程信息.甲供材料卸车费费率 / 100 )
}

BEGIN:甲供主材保管费
${
    sum(_过滤主材(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.保管 == "1"
	 :
	 主材.数量 * (1 + 主材.损耗 / 100) * 主材.市场价含税;
	->主材.拆分 == 1
	 :
	 sum(_过滤甲供子项(),"拆分子项",?#{->拆分子项.保管 == "1":拆分子项.数量 * (1 + 拆分子项.损耗 / 100) * 拆分子项.市场价含税;});
	 } * @工程信息.甲供材料保管费费率 / 100,0))
}

BEGIN:甲供主材保管费_单价
${
    sum(_过滤主材(),"主材",?#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.保管 == "1" 
	 :
	 主材.数量 * (1 + 主材.损耗 / 100) * 主材.市场价含税;
	->主材.拆分 == 1
	 :
	 sum(_过滤甲供子项(),"拆分子项",?#{->拆分子项.保管 == "1":拆分子项.数量 * (1 + 拆分子项.损耗 / 100) * 拆分子项.市场价含税;});
	 } / _清单量() * @工程信息.甲供材料保管费费率 / 100 )
}

BEGIN:甲供设备性材料配送费
${
    sum(_过滤设备性材料(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.集中配送 == "1"
	 :
	 主材.数量 * (1 + 主材.损耗 / 100) * 主材.市场价含税;
	->:0;
	 } * @工程信息.甲供材料配送费费率 / 100,0))
}

BEGIN:甲供设备性材料配送费_单价
${
    sum(_过滤设备性材料(),"主材",?#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.集中配送 == "1" 
	 :
	 主材.数量 * (1 + 主材.损耗 / 100) * 主材.市场价含税;
	->:0;
	 } / _清单量() * @工程信息.甲供材料配送费费率 / 100 )
}

BEGIN:甲供设备性材料卸车费
${
    sum(_过滤设备性材料(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.卸车 == "1"
	 :
	 主材.数量 * (1 + 主材.损耗 / 100) * 主材.市场价含税;
	->:0;
	 } * @工程信息.甲供材料卸车费费率 / 100,0))
}

BEGIN:甲供设备性材料卸车费_单价
${
    sum(_过滤设备性材料(),"主材",?#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.卸车 == "1" 
	 :
	 主材.数量 * (1 + 主材.损耗 / 100) * 主材.市场价含税;
	->:0;
	 } / _清单量() * @工程信息.甲供材料卸车费费率 / 100 )
}

BEGIN:甲供设备性材料保管费
${
    sum(_过滤设备性材料(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.保管 == "1"
	 :
	 主材.数量 * (1 + 主材.损耗 / 100) * 主材.市场价含税;
	->:0;
	 } * @工程信息.甲供材料保管费费率 / 100,0))
}

BEGIN:甲供设备性材料保管费_单价
${
    sum(_过滤设备性材料(),"主材",?#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.保管 == "1" 
	 :
	 主材.数量 * (1 + 主材.损耗 / 100) * 主材.市场价含税;
	->:0;
	 } / _清单量() * @工程信息.甲供材料保管费费率 / 100 )
}

BEGIN:乙供主材配送费
${
    sum(_过滤主材(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.集中配送 == "1"
	 :
	 主材.数量 * (1 + 主材.损耗 / 100) * 主材.市场价含税;
	->主材.拆分 == 1
	 :
	 sum(_过滤乙供子项(),"拆分子项",?#{->拆分子项.集中配送 == "1":拆分子项.数量 * (1 + 拆分子项.损耗 / 100) * 拆分子项.市场价含税;});
	 } * @工程信息.主材配送费费率 / 100,0))
}

BEGIN:乙供主材配送费_单价
${
    sum(_过滤主材(),"主材",?#{
	->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.集中配送 == "1" 
	 :
	 主材.数量 * (1 + 主材.损耗 / 100) * 主材.市场价含税;
	->主材.拆分 == 1
	 :
	 sum(_过滤乙供子项(),"拆分子项",?#{->拆分子项.集中配送 == "1":拆分子项.数量 * (1 + 拆分子项.损耗 / 100) * 拆分子项.市场价含税;});
	 } / _清单量() * @工程信息.主材配送费费率 / 100  )
}

BEGIN:乙供设备性材料配送费
${
    sum(_过滤设备性材料(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.集中配送 == "1"
	 :
	 主材.数量 * (1 + 主材.损耗 / 100) * 主材.市场价含税;
	->:0;
	 } * @工程信息.主材配送费费率 / 100,0))
}

BEGIN:乙供设备性材料配送费_单价
${
    sum(_过滤设备性材料(),"主材",?#{
	->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.集中配送 == "1" 
	 :
	 主材.数量 * (1 + 主材.损耗 / 100) * 主材.市场价含税;
	->:0;
	 } / _清单量() * @工程信息.主材配送费费率 / 100  )
}

BEGIN:甲供主材暂估价含税
${
    sum(_过滤主材(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供"
	  :
	  #{->主材.暂估价 == 1:主材.数量 * 主材.市场价含税 * (1 + 主材.损耗 / 100) * iif(主材.集中配送 == "1",(1 + @工程信息.甲供材料配送费费率 / 100),1) + 主材.数量 * 主材.市场价含税 * (1 + 主材.损耗 / 100) * iif(主材.卸车 == "1",(@工程信息.甲供材料卸车费费率 / 100),0) + 主材.数量 * 主材.市场价含税 * (1 + 主材.损耗 / 100) * iif(主材.保管 == "1",(@工程信息.甲供材料保管费费率 / 100),0);};
	->主材.拆分 == 1
	  :
	  sum(_过滤甲供子项(),"拆分子项",?#{->拆分子项.暂估价 == 1:拆分子项.数量 * 拆分子项.市场价含税 * (1 + 拆分子项.损耗 / 100) * iif(拆分子项.集中配送 == "1",(1 + @工程信息.甲供材料配送费费率 / 100),1) + 拆分子项.数量 * 拆分子项.市场价含税 * (1 + 拆分子项.损耗 / 100) * iif(拆分子项.卸车 == "1",(@工程信息.甲供材料卸车费费率 / 100),0) + 拆分子项.数量 * 拆分子项.市场价含税 * (1 + 拆分子项.损耗 / 100) * iif(拆分子项.保管 == "1",(@工程信息.甲供材料保管费费率 / 100),0);});
	},0))
}

BEGIN:甲供主材暂估价含税_单价
${
    sum(_过滤主材(),"主材",?
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供"
	  :
	  #{->主材.暂估价 == 1:主材.数量 * 主材.市场价含税 * (1 + 主材.损耗 / 100) * iif(主材.集中配送 == "1",(1 + @工程信息.甲供材料配送费费率 / 100),1) + 主材.数量 * 主材.市场价含税 * (1 + 主材.损耗 / 100) * iif(主材.卸车 == "1",(@工程信息.甲供材料卸车费费率 / 100),0) + 主材.数量 * 主材.市场价含税 * (1 + 主材.损耗 / 100) * iif(主材.保管 == "1",(@工程信息.甲供材料保管费费率 / 100),0);};
	->主材.拆分 == 1
	  :
	  sum(_过滤甲供子项(),"拆分子项",?#{->拆分子项.暂估价 == 1:拆分子项.数量 * 拆分子项.市场价含税 * (1 + 拆分子项.损耗 / 100) * iif(拆分子项.集中配送 == "1",(1 + @工程信息.甲供材料配送费费率 / 100),1) + 拆分子项.数量 * 拆分子项.市场价含税 * (1 + 拆分子项.损耗 / 100) * iif(拆分子项.卸车 == "1",(@工程信息.甲供材料卸车费费率 / 100),0) + 拆分子项.数量 * 拆分子项.市场价含税 * (1 + 拆分子项.损耗 / 100) * iif(拆分子项.保管 == "1",(@工程信息.甲供材料保管费费率 / 100),0);});
	} / _清单量())
}

BEGIN:甲供设备性材料暂估价含税
${
    sum(_过滤设备性材料(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供"
	  :
	  #{->主材.暂估价 == 1:主材.数量 * 主材.市场价含税 * (1 + 主材.损耗 / 100) * iif(主材.集中配送 == "1",(1 + @工程信息.甲供材料配送费费率 / 100),1) + 主材.数量 * 主材.市场价含税 * (1 + 主材.损耗 / 100) * iif(主材.卸车 == "1",(@工程信息.甲供材料卸车费费率 / 100),0) + 主材.数量 * 主材.市场价含税 * (1 + 主材.损耗 / 100) * iif(主材.保管 == "1",(@工程信息.甲供材料保管费费率 / 100),0);};
	->:0;
	},0))
}

BEGIN:甲供设备性材料暂估价含税_单价
${
    sum(_过滤设备性材料(),"主材",?
	#{
	->主材.拆分 == 0 && 主材.供货方 == "甲供" 
	  :
	  #{->主材.暂估价 == 1:主材.数量 * 主材.市场价含税 * (1 + 主材.损耗 / 100) * iif(主材.集中配送 == "1",(1 + @工程信息.甲供材料配送费费率 / 100),1) + 主材.数量 * 主材.市场价含税 * (1 + 主材.损耗 / 100) * iif(主材.卸车 == "1",(@工程信息.甲供材料卸车费费率 / 100),0) + 主材.数量 * 主材.市场价含税 * (1 + 主材.损耗 / 100) * iif(主材.保管 == "1",(@工程信息.甲供材料保管费费率 / 100),0);};
	->:0;
	} / _清单量())
}

BEGIN:乙供主材暂估价不含税
${
    sum(_过滤主材(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "乙供"
	:
	#{->主材.暂估价 == 1:主材.数量 * 主材.市场价不含税 * (1 + 主材.损耗 / 100);};
	->主材.拆分 == 1
	:
	sum(_过滤乙供子项(),"拆分子项",?#{
	->拆分子项.暂估价 == 1
	  :
	  拆分子项.数量 * 拆分子项.市场价不含税 * (1 + 拆分子项.损耗 / 100);});
	},0)
	)
}

BEGIN:乙供主材暂估价不含税_单价
${
    sum(_过滤主材(),"主材",?
	#{
	->主材.拆分 == 0 && 主材.供货方 == "乙供"
	:
	#{->主材.暂估价 == 1:主材.数量 * 主材.市场价不含税 * (1 + 主材.损耗 / 100);};
	->主材.拆分 == 1
	:
	sum(_过滤乙供子项(),"拆分子项",?#{
	->拆分子项.暂估价 == 1
	  :
	  拆分子项.数量 * 拆分子项.市场价不含税 * (1 + 拆分子项.损耗 / 100);});
	} / _清单量()
	)
}

BEGIN:乙供设备性材料暂估价不含税
${
    sum(_过滤设备性材料(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
	#{
	->主材.拆分 == 0 && 主材.供货方 == "乙供"
	:
	#{->主材.暂估价 == 1:主材.数量 * 主材.市场价不含税 * (1 + 主材.损耗 / 100);};
	->:0;
	},0)
	)
}

BEGIN:乙供设备性材料暂估价不含税_单价
${
    sum(_过滤设备性材料(),"主材",?
	#{
	->主材.拆分 == 0 && 主材.供货方 == "乙供"
	:
	#{->主材.暂估价 == 1:主材.数量 * 主材.市场价不含税 * (1 + 主材.损耗 / 100);};
	->主材.拆分 == 1
	:
	sum(_过滤乙供子项(),"拆分子项",?#{
	->拆分子项.暂估价 == 1
	  :
	  拆分子项.数量 * 拆分子项.市场价不含税 * (1 + 拆分子项.损耗 / 100);});
	} / _清单量()
	)
}

//------------------主材价差类变量：V1.0.0删除-------------------------------------------
//BEGIN:甲供主材价差含税
//${
//    sum(_过滤主材(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)） && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
//	#{
//	->主材.拆分 == 0 && 主材.供货方 == "甲供":主材.数量 * (主材.市场价含税-主材.预算价含税);
//	->主材.拆分 == 1:sum(_过滤甲供子项(),"拆分子项",?拆分子项.数量 * (拆分子项.市场价含税-拆分子项.预算价含税));
//	},0))
//}

//BEGIN:甲供主材价差含税_单价
//${
//    sum(_过滤主材(),"主材",?
//	#{
//	->主材.拆分 == 0 && 主材.供货方 == "甲供" :主材.数量 * (主材.市场价含税-主材.预算价含税);
//	->主材.拆分 == 1:sum(_过滤甲供子项(),"拆分子项",?拆分子项.数量 * (拆分子项.市场价含税-拆分子项.预算价含税));
//	} / #{
//	  ->parent.type == "定额":parent.parent.数量;
//	  ->parent.type == "清单":parent.数量;
//	})
//}

//BEGIN:乙供主材价差不含税
//${
//    sum(_过滤主材(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
//	#{
//	->主材.拆分 == 0 && 主材.供货方 == "乙供":主材.数量 * (主材.市场价不含税-主材.预算价不含税);
//	->主材.拆分 == 1:sum(_过滤乙供子项(),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税));
//	},0))
//}

//BEGIN:乙供主材价差不含税_单价
//${
//    sum(_过滤主材(),"主材",?
//	#{
//	->主材.拆分 == 0 && 主材.供货方 == "乙供":主材.数量 * (主材.市场价不含税-主材.预算价不含税);
//	->主材.拆分 == 1:sum(_过滤乙供子项(),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税));
//	} / #{
//	  ->parent.type == "定额":parent.parent.数量;
//	  ->parent.type == "清单": parent.数量;
//	})
//}

//BEGIN:甲供主材损耗价差含税
//${
//    sum(_过滤主材(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
//	#{
//	->主材.拆分 == 0 && 主材.供货方 == "甲供":主材.数量 * (主材.市场价含税-主材.预算价含税) * 主材.损耗 /100;
//	->主材.拆分 == 1:sum(_过滤甲供子项(),"拆分子项",?拆分子项.数量 * (拆分子项.市场价含税-拆分子项.预算价含税) * 拆分子项.损耗 /100);
//	},0))
//}

//BEGIN:甲供主材损耗价差含税_单价
//${
//    sum(_过滤主材(),"主材",?
//	#{
//	->主材.拆分 == 0 && 主材.供货方 == "甲供" :主材.数量 * (主材.市场价含税-主材.预算价含税) * 主材.损耗 /100;
//	->主材.拆分 == 1:sum(_过滤甲供子项(),"拆分子项",?拆分子项.数量 * (拆分子项.市场价含税-拆分子项.预算价含税) * 拆分子项.损耗 /100);
//	} / #{
//	  ->parent.type == "定额":parent.parent.数量;
//	  ->parent.type == "清单":parent.数量;
//	})
//}

//BEGIN:乙供主材损耗价差不含税
//${
//    sum(_过滤主材(),"主材",?iif(((parent.type == "清单" && parent.数量 != 0) || (parent.type != "清单" && parent.parent.type == "清单" && parent.parent.数量 != 0)) && 主材.调差类型!= "建筑拆除" && 主材.调差类型!= "安装拆除" && 主材.调差类型!= "建筑拆除措施二" && 主材.调差类型!= "安装拆除措施二",
//	#{
//	->主材.拆分 == 0 && 主材.供货方 == "乙供":主材.数量 * (主材.市场价不含税-主材.预算价不含税) * 主材.损耗 /100;
//	->主材.拆分 == 1:sum(_过滤乙供子项(),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税) * 拆分子项.损耗 /100
//	);
//	},0))
//}

//BEGIN:乙供主材损耗价差不含税_单价
//${
//    sum(_过滤主材(),"主材",?
//	#{
//	->主材.拆分 == 0 && 主材.供货方 == "乙供":主材.数量 * (主材.市场价不含税-主材.预算价不含税) * 主材.损耗 /100;
//	->主材.拆分 == 1:sum(_过滤乙供子项(),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税) * 拆分子项.损耗 /100);
//	} / #{
//	  ->parent.type == "定额":parent.parent.数量;
//	  ->parent.type == "清单":parent.数量;
//	})
//}

BEGIN:_清单量
${
  ?#{
    ->parent.type == "定额":parent.parent.数量;
	->parent.type == "清单":parent.数量;
	->parent.parent.type == "清单":parent.parent.数量;
	->parent.parent.parent.type == "清单":parent.parent.parent.数量;     
  }
}

//------------------设备-------------------------------------------
BEGIN:甲供设备费含税
${
	sum(_过滤甲供设备(),"设备",?iif((parent.type == "清单" && parent.数量 != 0) && 设备.调差类型!= "建筑拆除" && 设备.调差类型!= "安装拆除" && 设备.调差类型!= "建筑拆除措施二" && 设备.调差类型!= "安装拆除措施二",设备.数量 * 设备.市场价含税,0))+甲供设备性材料费含税()+甲供设备性材料损耗费含税()
}

BEGIN:甲供设备费不含税
${
	sum(_过滤甲供设备(),"设备",?iif((parent.type == "清单" && parent.数量 != 0) && 设备.调差类型!= "建筑拆除" && 设备.调差类型!= "安装拆除" && 设备.调差类型!= "建筑拆除措施二" && 设备.调差类型!= "安装拆除措施二",设备.数量 * 设备.市场价不含税,0))+甲供设备性材料费不含税()+甲供设备性材料损耗费不含税()
}

BEGIN:甲供设备费含税_单价
${
    sum(_过滤甲供设备(),"设备",?设备.数量 * 设备.市场价含税 / parent.数量)+甲供设备性材料费含税_单价()+甲供设备性材料损耗费含税_单价()
}

BEGIN:乙供设备费含税
${
    sum(_过滤乙供设备(),"设备",?iif((parent.type == "清单" && parent.数量 != 0) && 设备.调差类型!= "建筑拆除" && 设备.调差类型!= "安装拆除" && 设备.调差类型!= "建筑拆除措施二" && 设备.调差类型!= "安装拆除措施二",设备.数量 * 设备.市场价含税,0))+乙供设备性材料费含税()+乙供设备性材料损耗费含税()
}

BEGIN:乙供设备费不含税
${
    sum(_过滤乙供设备(),"设备",?iif((parent.type == "清单" && parent.数量 != 0) && 设备.调差类型!= "建筑拆除" && 设备.调差类型!= "安装拆除" && 设备.调差类型!= "建筑拆除措施二" && 设备.调差类型!= "安装拆除措施二",设备.数量 * 设备.市场价不含税,0))+乙供设备性材料费不含税()+乙供设备性材料损耗费不含税()
}

BEGIN:乙供设备费不含税_单价
${
    sum(_过滤乙供设备(),"设备",?设备.数量 * 设备.市场价不含税 / parent.数量)+乙供设备性材料费不含税_单价()+乙供设备性材料损耗费不含税_单价()
}

BEGIN:甲供设备运杂费
${
    sum(_过滤甲供设备(),"设备",?iif((parent.type == "清单" && parent.数量 != 0) && 设备.调差类型!= "建筑拆除" && 设备.调差类型!= "安装拆除" && 设备.调差类型!= "建筑拆除措施二" && 设备.调差类型!= "安装拆除措施二",设备.数量 * 设备.市场价含税 * 设备.运杂费率 / 100,0))
}

BEGIN:甲供设备运杂费_单价
${
    sum(_过滤甲供设备(),"设备",?设备.数量 * 设备.市场价含税 * 设备.运杂费率 / 100 / parent.数量)
}

BEGIN:乙供设备运杂费
${
    sum(_过滤乙供设备(),"设备",?iif((parent.type == "清单" && parent.数量 != 0) && 设备.调差类型!= "建筑拆除" && 设备.调差类型!= "安装拆除" && 设备.调差类型!= "建筑拆除措施二" && 设备.调差类型!= "安装拆除措施二",设备.数量 * 设备.市场价含税 * 设备.运杂费率 / 100,0))
}

BEGIN:乙供设备运杂费_单价
${
    sum(_过滤乙供设备(),"设备",?设备.数量 * 设备.市场价含税 * 设备.运杂费率 / 100 / parent.数量)
}

BEGIN:甲供设备配送费
${
    sum(_过滤甲供设备(),"设备",?iif((parent.type == "清单" && parent.数量 != 0) && 设备.调差类型!= "建筑拆除" && 设备.调差类型!= "安装拆除" && 设备.调差类型!= "建筑拆除措施二" && 设备.调差类型!= "安装拆除措施二",#{
    ->设备.集中配送 == "1"
	 :
     设备.数量 * 设备.市场价含税 * #{
	 ->@工程信息.工程性质=="技改":@工程信息.甲供设备配送费费率/100;
	 ->@工程信息.工程性质=="检修":@工程信息.甲供配件配送费费率/100;};
     },0)) + 甲供设备性材料配送费()
}

BEGIN:甲供设备配送费_单价
${
    sum(_过滤甲供设备(),"设备",?#{
	->设备.集中配送 == "1" :设备.数量 * 设备.市场价含税 * #{
	 ->@工程信息.工程性质=="技改":@工程信息.甲供设备配送费费率/100;
	 ->@工程信息.工程性质=="检修":@工程信息.甲供配件配送费费率/100;} / parent.数量;
	}) + 甲供设备性材料配送费_单价()
}

BEGIN:甲供设备卸车费
${
     ?甲供主要设备卸车费()+甲供其他设备卸车费() + 甲供设备性材料卸车费()
}

BEGIN:甲供设备卸车费_单价
${
    ?甲供主要设备卸车费_单价()+甲供其他设备卸车费_单价() + 甲供设备性材料卸车费_单价()
}

BEGIN:甲供主要设备卸车费
${
    sum(_过滤甲供设备(),"设备",?iif((parent.type == "清单" && parent.数量 != 0) && 设备.调差类型!= "建筑拆除" && 设备.调差类型!= "安装拆除" && 设备.调差类型!= "建筑拆除措施二" && 设备.调差类型!= "安装拆除措施二",#{
    ->设备.卸车 == "1"
	 :
     设备.数量 * 设备.市场价含税 * #{
	 ->@工程信息.工程性质=="技改" && 设备.设备类型 == "主要设备":@工程信息.甲供主要设备卸车费费率/100;};
     },0))
}

BEGIN:甲供主要设备卸车费_单价
${
    sum(_过滤甲供设备(),"设备",?#{
	->设备.卸车 == "1" :设备.数量 * 设备.市场价含税 * #{
	 ->@工程信息.工程性质=="技改" && 设备.设备类型 == "主要设备":@工程信息.甲供主要设备卸车费费率/100;} / parent.数量;
	})
}

BEGIN:甲供其他设备卸车费
${
    sum(_过滤甲供设备(),"设备",?iif((parent.type == "清单" && parent.数量 != 0) && 设备.调差类型!= "建筑拆除" && 设备.调差类型!= "安装拆除" && 设备.调差类型!= "建筑拆除措施二" && 设备.调差类型!= "安装拆除措施二",#{
    ->设备.卸车 == "1"
	 :
     设备.数量 * 设备.市场价含税 * #{
	 ->@工程信息.工程性质=="技改" && 设备.设备类型 == "其他设备":@工程信息.甲供其他设备卸车费费率/100;
	 ->@工程信息.工程性质=="检修":@工程信息.甲供配件卸车费费率/100;};
     },0))
}


BEGIN:甲供其他设备卸车费_单价
${
    sum(_过滤甲供设备(),"设备",?#{
	->设备.卸车 == "1" :设备.数量 * 设备.市场价含税 * #{
	 ->@工程信息.工程性质=="技改" && 设备.设备类型 == "其他设备":@工程信息.甲供其他设备卸车费费率/100;
	 ->@工程信息.工程性质=="检修":@工程信息.甲供配件卸车费费率/100;} / parent.数量;
	})
}

BEGIN:甲供设备保管费
${
   ?甲供主要设备保管费()+甲供其他设备保管费() + 甲供设备性材料保管费()
}

BEGIN:甲供设备保管费_单价
${
   ?甲供主要设备保管费_单价()+甲供其他设备保管费_单价() + 甲供设备性材料保管费_单价()
}

BEGIN:甲供主要设备保管费
${
    sum(_过滤甲供设备(),"设备",?iif((parent.type == "清单" && parent.数量 != 0) && 设备.调差类型!= "建筑拆除" && 设备.调差类型!= "安装拆除" && 设备.调差类型!= "建筑拆除措施二" && 设备.调差类型!= "安装拆除措施二",#{
    ->设备.保管 == "1"
	 :
     设备.数量 * 设备.市场价含税 * #{
	 ->@工程信息.工程性质=="技改" && 设备.设备类型 == "主要设备":@工程信息.甲供主要设备保管费费率/100;};
     },0))
}

BEGIN:甲供主要设备保管费_单价
${
    sum(_过滤甲供设备(),"设备",?#{
	->设备.保管 == "1" :设备.数量 * 设备.市场价含税 * #{
	 ->@工程信息.工程性质=="技改" && 设备.设备类型 == "主要设备":@工程信息.甲供主要设备保管费费率/100;} / parent.数量;
	})
}

BEGIN:甲供其他设备保管费
${
    sum(_过滤甲供设备(),"设备",?iif((parent.type == "清单" && parent.数量 != 0) && 设备.调差类型!= "建筑拆除" && 设备.调差类型!= "安装拆除" && 设备.调差类型!= "建筑拆除措施二" && 设备.调差类型!= "安装拆除措施二",#{
    ->设备.保管 == "1"
	 :
     设备.数量 * 设备.市场价含税 * #{
	 ->@工程信息.工程性质=="技改" && 设备.设备类型 == "其他设备":@工程信息.甲供其他设备保管费费率/100;
	 ->@工程信息.工程性质=="检修":@工程信息.甲供配件保管费费率/100;};
     },0))
}

BEGIN:甲供其他设备保管费_单价
${
    sum(_过滤甲供设备(),"设备",?#{
	->设备.保管 == "1" :设备.数量 * 设备.市场价含税 * #{
	 ->@工程信息.工程性质=="技改" && 设备.设备类型 == "其他设备":@工程信息.甲供其他设备保管费费率/100;
	 ->@工程信息.工程性质=="检修":@工程信息.甲供配件保管费费率/100;} / parent.数量;
	})
}

BEGIN:乙供设备配送费
${
    sum(_过滤乙供设备(),"设备",?iif((parent.type == "清单" && parent.数量 != 0) && 设备.调差类型!= "建筑拆除" && 设备.调差类型!= "安装拆除" && 设备.调差类型!= "建筑拆除措施二" && 设备.调差类型!= "安装拆除措施二",
	#{
    ->设备.集中配送 == "1" 
	 :
	 设备.数量 * 设备.市场价含税 * #{
	 ->@工程信息.工程性质=="技改":@工程信息.设备配送费费率/100;
	 ->@工程信息.工程性质=="检修":@工程信息.配件配送费费率/100;};
     },0)) + 乙供设备性材料配送费()
}

BEGIN:乙供设备配送费_单价
${
    sum(_过滤乙供设备(),"设备",?#{
	->设备.集中配送 == "1":设备.数量 * 设备.市场价含税 * #{
	 ->@工程信息.工程性质=="技改":@工程信息.设备配送费费率/100;
	 ->@工程信息.工程性质=="检修":@工程信息.配件配送费费率/100;} / parent.数量;
	}) + 乙供设备性材料配送费_单价()
}

BEGIN:甲供设备暂估价含税
${
	sum(_过滤甲供设备(),"设备",?iif((parent.type == "清单" && parent.数量 != 0) && 设备.调差类型!= "建筑拆除" && 设备.调差类型!= "安装拆除" && 设备.调差类型!= "建筑拆除措施二" && 设备.调差类型!= "安装拆除措施二",
	#{
	->设备.暂估价 == 1
	  :
	  设备.数量 * 设备.市场价含税 * ( 1+ 设备.运杂费率 / 100 ) + 设备.数量 * 设备.市场价含税 * iif(@工程信息.工程性质=="技改" && 设备.集中配送 == "1",(@工程信息.甲供设备配送费费率 / 100),0) + 设备.数量 * 设备.市场价含税 * iif(@工程信息.工程性质=="技改" && 设备.卸车 == "1" && 设备.设备类型 == "主要设备",( @工程信息.甲供主要设备卸车费费率 / 100),0) + 设备.数量 * 设备.市场价含税 * iif(@工程信息.工程性质=="技改" && 设备.保管 == "1" && 设备.设备类型 == "主要设备",( @工程信息.甲供主要设备保管费费率 / 100),0) + 设备.数量 * 设备.市场价含税 * iif(@工程信息.工程性质=="技改" && 设备.卸车 == "1" && 设备.设备类型 == "其他设备",( @工程信息.甲供其他设备卸车费费率 / 100),0) + 设备.数量 * 设备.市场价含税 * iif(@工程信息.工程性质=="技改" && 设备.保管 == "1" && 设备.设备类型 == "其他设备",( @工程信息.甲供其他设备保管费费率 / 100),0);
	 },0)) + 甲供设备性材料暂估价含税()
}

BEGIN:甲供配件暂估价含税
${
	sum(_过滤甲供设备(),"设备",?iif((parent.type == "清单" && parent.数量 != 0) && 设备.调差类型!= "建筑拆除" && 设备.调差类型!= "安装拆除" && 设备.调差类型!= "建筑拆除措施二" && 设备.调差类型!= "安装拆除措施二",
	#{
	->设备.暂估价 == 1
	  :
	  设备.数量 * 设备.市场价含税 * ( 1+ 设备.运杂费率 / 100 ) + 设备.数量 * 设备.市场价含税 * iif(@工程信息.工程性质=="检修" && 设备.集中配送 == "1",(@工程信息.甲供配件配送费费率 / 100),0) + 设备.数量 * 设备.市场价含税 * iif(@工程信息.工程性质=="检修" && 设备.卸车 == "1",( @工程信息.甲供配件卸车费费率 / 100),0) + 设备.数量 * 设备.市场价含税 * iif(@工程信息.工程性质=="检修" && 设备.保管 == "1",( @工程信息.甲供配件保管费费率 / 100),0);
	 },0))
}

BEGIN:甲供设备暂估价含税_单价
${
    sum(_过滤甲供设备(),"设备",?#{
	->设备.暂估价 == 1
	  :
	  设备.数量 * 设备.市场价含税 * ( 1+ 设备.运杂费率 / 100 ) + 设备.数量 * 设备.市场价含税 * iif(@工程信息.工程性质=="技改" && 设备.集中配送 == "1",(@工程信息.甲供设备配送费费率 / 100),0) + 设备.数量 * 设备.市场价含税 * iif(@工程信息.工程性质=="技改" && 设备.卸车 == "1" && 设备.设备类型 == "主要设备",( @工程信息.甲供主要设备卸车费费率 / 100),0) + 设备.数量 * 设备.市场价含税 * iif(@工程信息.工程性质=="技改" && 设备.保管 == "1" && 设备.设备类型 == "主要设备",( @工程信息.甲供主要设备保管费费率 / 100),0) + 设备.数量 * 设备.市场价含税 * iif(@工程信息.工程性质=="技改" && 设备.卸车 == "1" && 设备.设备类型 == "其他设备",( @工程信息.甲供其他设备卸车费费率 / 100),0) + 设备.数量 * 设备.市场价含税 * iif(@工程信息.工程性质=="技改" && 设备.保管 == "1" && 设备.设备类型 == "其他设备",( @工程信息.甲供其他设备保管费费率 / 100),0);
	 } / parent.数量) + 甲供设备性材料暂估价含税_单价()
}

BEGIN:甲供配件暂估价含税_单价
${
    sum(_过滤甲供设备(),"设备",?#{
	->设备.暂估价 == 1
	  :
	  设备.数量 * 设备.市场价含税 * ( 1+ 设备.运杂费率 / 100 ) + 设备.数量 * 设备.市场价含税 * iif(@工程信息.工程性质=="检修" && 设备.集中配送 == "1",(@工程信息.甲供配件配送费费率 / 100),0) + 设备.数量 * 设备.市场价含税 * iif(@工程信息.工程性质=="检修" && 设备.卸车 == "1",( @工程信息.甲供配件卸车费费率 / 100),0) + 设备.数量 * 设备.市场价含税 * iif(@工程信息.工程性质=="检修" && 设备.保管 == "1",( @工程信息.甲供配件保管费费率 / 100),0);
	 } / parent.数量)
}

BEGIN:乙供设备暂估价不含税
${
	sum(_过滤乙供设备(),"设备",?iif((parent.type == "清单" && parent.数量 != 0) && 设备.调差类型!= "建筑拆除" && 设备.调差类型!= "安装拆除" && 设备.调差类型!= "建筑拆除措施二" && 设备.调差类型!= "安装拆除措施二",
	#{
	->设备.暂估价 == 1
	:
	设备.数量 * 设备.市场价不含税 + 设备.数量 * 设备.市场价含税 * 设备.运杂费率 / 100;
	 },0)) + 乙供设备性材料暂估价不含税()
}

BEGIN:乙供设备暂估价不含税_单价
${
    sum(_过滤乙供设备(),"设备",?#{
	->设备.暂估价 == 1
	:
	设备.数量 * 设备.市场价不含税 + 设备.数量 * 设备.市场价含税 * 设备.运杂费率 / 100;
	} / parent.数量) + 乙供设备性材料暂估价不含税_单价()
}

BEGIN:乙供设备税金
${
    ?(乙供设备费不含税()+乙供设备运杂费()+乙供设备配送费())*@工程信息.工程税率 / 100
}

BEGIN:乙供设备税金_单价
${
    ?(乙供设备费不含税_单价()+乙供设备运杂费_单价()+乙供设备配送费_单价())*@工程信息.工程税率 / 100
}

//------------------配件-------------------------------------------
BEGIN:甲供配件费含税
${?甲供设备费含税()}

BEGIN:甲供配件费含税_单价
${?甲供设备费含税_单价()}

BEGIN:甲供配件运杂费
${?甲供设备运杂费()}

BEGIN:甲供配件运杂费_单价
${?甲供设备运杂费_单价()}

BEGIN:甲供配件配送费
${?甲供设备配送费()}

BEGIN:甲供配件配送费_单价
${?甲供设备配送费_单价()}

BEGIN:甲供配件卸车费
${?甲供设备卸车费()}

BEGIN:甲供配件卸车费_单价
${?甲供设备卸车费_单价()}

BEGIN:甲供配件保管费
${?甲供设备保管费()}

BEGIN:甲供配件保管费_单价
${?甲供设备保管费_单价()}

BEGIN:甲供配件费不含税
${?甲供设备费不含税()}

BEGIN:乙供配件费不含税
${?乙供设备费不含税()}

BEGIN:乙供配件费不含税_单价
${?乙供设备费不含税_单价()}

BEGIN:乙供配件运杂费
${?乙供设备运杂费()}

BEGIN:乙供配件运杂费_单价
${?乙供设备运杂费_单价()}

BEGIN:乙供配件配送费
${?乙供设备配送费()}

BEGIN:乙供配件配送费_单价
${?乙供设备配送费_单价()}

BEGIN:乙供配件税金
${?(乙供配件费不含税()+乙供配件运杂费()+乙供配件配送费())*@工程信息.工程税率 /100}

BEGIN:乙供配件税金_单价
${?(乙供配件费不含税_单价()+乙供配件运杂费_单价()+乙供配件配送费_单价())*@工程信息.工程税率 /100}

BEGIN:乙供配件费含税
${?乙供设备费含税()}

BEGIN:乙供配件暂估价不含税
${?乙供设备暂估价不含税()}

BEGIN:乙供配件暂估价不含税_单价
${?乙供设备暂估价不含税_单价()}

//------------------定额费用内部函数-------------------------------------------
BEGIN:_人工费_不含特殊费
${
    ?sum(_过滤定额(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,工程量.数量 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数,0)) + sum(_过滤人工计日工(),"工程量",?工程量.数量 * 工程量.预算价不含税)
}

BEGIN:_人工费_不含特殊费_单价
${
    ?sum(_过滤定额(),"工程量",?工程量.数量 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 / parent.数量) + sum(_过滤人工计日工(),"工程量",?工程量.预算价不含税)
}

BEGIN:_人工价差_不含特殊费
${
    ?sum(_过滤定额(),"工程量",?iif(工程量.专业类型 != "余物清理" && parent.type == "清单" && parent.数量 != 0,工程量.数量 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 * #{
	->@工程信息.工程类型 == "配网":工程量.@_@人工调差系数 / 100;
	->:
	  #{
        ->工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑措施二":@工程信息.建筑人工调差系数 /100;
        ->工程量.调差类型 == "安装" || 工程量.调差类型 == "安装措施二":@工程信息.安装人工调差系数 /100;
	    ->工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑拆除措施二":@工程信息.建筑拆除人工调差系数 /100;
	    ->工程量.调差类型 == "安装拆除" || 工程量.调差类型 == "安装拆除措施二":@工程信息.安装拆除人工调差系数 /100;
	    ->工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑修缮措施二":@工程信息.建筑修缮人工调差系数 /100;
        ->工程量.调差类型 == "设备检修" || 工程量.调差类型 == "设备检修措施二":@工程信息.设备检修人工调差系数 /100;
	  };
	},0)
	) + sum(_过滤人工计日工(),"工程量",?工程量.数量 * (工程量.市场价不含税-工程量.预算价不含税))
}

BEGIN:_人工价差_不含特殊费_单价
${
    ?sum(_过滤定额(),"工程量",?iif(工程量.专业类型 != "余物清理",工程量.数量 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 * #{
	->@工程信息.工程类型 == "配网":工程量.@_@人工调差系数 / 100;
	->:
	  #{
        ->工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑措施二":@工程信息.建筑人工调差系数 /100;
        ->工程量.调差类型 == "安装" || 工程量.调差类型 == "安装措施二":@工程信息.安装人工调差系数 /100;
	    ->工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑拆除措施二":@工程信息.建筑拆除人工调差系数 /100;
	    ->工程量.调差类型 == "安装拆除" || 工程量.调差类型 == "安装拆除措施二":@工程信息.安装拆除人工调差系数 /100;
	    ->工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑修缮措施二":@工程信息.建筑修缮人工调差系数 /100;
        ->工程量.调差类型 == "设备检修" || 工程量.调差类型 == "设备检修措施二":@工程信息.设备检修人工调差系数 /100;
	  };
	},0) / parent.数量) + sum(_过滤人工计日工(),"工程量",?(工程量.市场价不含税-工程量.预算价不含税))
}

//------------------定额费用：甲供材料_不含税-------------------------------------------
BEGIN:甲供材料费不含税
${
	?sum(_过滤定额(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,工程量.数量 * 工程量.甲供材料费 * 工程量.材料系数 * 工程量.定额系数,0)) + sum(_过滤甲供材料计日工(),"工程量",?工程量.数量 * 工程量.预算价不含税)
}

BEGIN:甲供材料费不含税_单价
${
    ?sum(_过滤定额(),"工程量",?工程量.数量 * 工程量.甲供材料费 * 工程量.材料系数 * 工程量.定额系数 / parent.数量) + sum(_过滤甲供材料计日工(),"工程量",?工程量.预算价不含税)
}

BEGIN:甲供材料价差不含税
${
   ?sum(_过滤定额(),"工程量",?iif(工程量.专业类型 != "余物清理" && parent.type == "清单" && parent.数量 != 0,工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
      ->@工程信息.工程类型 == "配网" || @工程信息.项目划分 == "输电线路工程":#{
         ->(工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑措施二" || 工程量.调差类型  == "建筑拆除措施二" || 工程量.调差类型  == "建筑修缮措施二") && 工程量.@_@材机按系数调差 == "否"
		 :sum(_过滤材料(),"人材机",?#{
		   ->人材机.拆分 == 0 && 人材机.供货方 == "甲供":(人材机.市场价不含税 - 人材机.预算价不含税) * 人材机.数量;
		   ->人材机.拆分 == 1:sum(_过滤甲供子项(),"拆分子项",?#{
		     ->拆分子项.type == "人工":拆分子项.预算价不含税 * 拆分子项.数量 * 拆分子项.@_@人工调差系数 /100;
		     ->拆分子项.type == "材料" || 拆分子项.type == "机械":(拆分子项.市场价不含税 - 拆分子项.预算价不含税) * 拆分子项.数量;} * 人材机.数量);});
         ->:工程量.甲供材料费 * 工程量.@_@材料调差系数 /100;}; 
      ->:#{
         ->((工程量.调差类型 == "建筑" || 工程量.调差类型  == "建筑措施二") && @工程信息.建筑材机按系数调差 == "否") || ((工程量.调差类型 == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "否") || ((工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "否")
		 :sum(_过滤材料(),"人材机",?#{
		   ->人材机.拆分 == 0 && 人材机.供货方 == "甲供":(人材机.市场价不含税 - 人材机.预算价不含税) * 人材机.数量;
		   ->人材机.拆分 == 1:sum(_过滤甲供子项(),"拆分子项",?#{
		      ->拆分子项.type == "人工":拆分子项.预算价不含税 * 拆分子项.数量 * #{
			    ->工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑措施二":@工程信息.建筑人工调差系数 /100;
			    ->工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二":@工程信息.建筑修缮人工调差系数 /100;
			    ->工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二":@工程信息.建筑拆除人工调差系数 /100;};
		      ->拆分子项.type == "材料" || 拆分子项.type == "机械":(拆分子项.市场价不含税 - 拆分子项.预算价不含税) * 拆分子项.数量;} * 人材机.数量);});
         ->:工程量.甲供材料费 * #{
		   ->(工程量.调差类型 == "建筑" || 工程量.调差类型  == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑材料调差系数 /100;
		   ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆设备检修材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆设备检修材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.设备检修材料调差系数 /100;};};
       },0)) + sum(_过滤甲供材料计日工(),"工程量",?工程量.数量 * (工程量.市场价不含税 - 工程量.预算价不含税))
}

BEGIN:甲供材料价差不含税_单价
${
   ?sum(_过滤定额(),"工程量",?iif(工程量.专业类型 != "余物清理",工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
      ->@工程信息.工程类型 == "配网" || @工程信息.项目划分 == "输电线路工程":#{
         ->(工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑措施二" || 工程量.调差类型  == "建筑拆除措施二" || 工程量.调差类型  == "建筑修缮措施二") && 工程量.@_@材机按系数调差 == "否"
		 :sum(_过滤材料(),"人材机",?#{
		   ->人材机.拆分 == 0 && 人材机.供货方 == "甲供":(人材机.市场价不含税 - 人材机.预算价不含税) * 人材机.数量;
		   ->人材机.拆分 == 1:sum(_过滤甲供子项(),"拆分子项",?#{
		     ->拆分子项.type == "人工":拆分子项.预算价不含税 * 拆分子项.数量 * 拆分子项.@_@人工调差系数 /100;
		     ->拆分子项.type == "材料" || 拆分子项.type == "机械":(拆分子项.市场价不含税 - 拆分子项.预算价不含税) * 拆分子项.数量;} * 人材机.数量);});
         ->:工程量.甲供材料费 * 工程量.@_@材料调差系数 /100;}; 
      ->:#{
         ->((工程量.调差类型 == "建筑" || 工程量.调差类型  == "建筑措施二") && @工程信息.建筑材机按系数调差 == "否") || ((工程量.调差类型 == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "否") || ((工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "否")
		 :sum(_过滤材料(),"人材机",?#{
		   ->人材机.拆分 == 0 && 人材机.供货方 == "甲供":(人材机.市场价不含税 - 人材机.预算价不含税) * 人材机.数量;
		   ->人材机.拆分 == 1:sum(_过滤甲供子项(),"拆分子项",?#{
		      ->拆分子项.type == "人工":拆分子项.预算价不含税 * 拆分子项.数量 * #{
			    ->工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑措施二":@工程信息.建筑人工调差系数 /100;
			    ->工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二":@工程信息.建筑修缮人工调差系数 /100;
			    ->工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二":@工程信息.建筑拆除人工调差系数 /100;};
		      ->拆分子项.type == "材料" || 拆分子项.type == "机械":(拆分子项.市场价不含税 - 拆分子项.预算价不含税) * 拆分子项.数量;} * 人材机.数量);});
         ->:工程量.甲供材料费 * #{
		   ->(工程量.调差类型 == "建筑" || 工程量.调差类型  == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑材料调差系数 /100;
		   ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆设备检修材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆设备检修材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.设备检修材料调差系数 /100;};};
       },0) / parent.数量) + sum(_过滤甲供材料计日工(),"工程量",?工程量.市场价不含税 - 工程量.预算价不含税)
}

//------------------定额费用：甲供材料_含税-------------------------------------------
BEGIN:甲供材料费含税
${
	?sum(_过滤定额(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,工程量.数量 * 工程量.甲供材料费_含税 * 工程量.材料系数 * 工程量.定额系数,0)) + sum(_过滤甲供材料计日工(),"工程量",?工程量.数量 * 工程量.预算价含税)
}

BEGIN:甲供材料费含税_单价
${
    ?sum(_过滤定额(),"工程量",?工程量.数量 * 工程量.甲供材料费_含税 * 工程量.材料系数 * 工程量.定额系数 / parent.数量) + sum(_过滤甲供材料计日工(),"工程量",?工程量.预算价含税)
}

BEGIN:甲供材料配送费
${
    sum(_过滤定额(),"工程量",?iif(工程量.专业类型 != "余物清理",工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
            ->(工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑措施二" || 工程量.调差类型  == "建筑拆除措施二" || 工程量.调差类型  == "建筑修缮措施二"):sum(_过滤材料(),"人材机",?#{
			   ->人材机.拆分 == 0 && 人材机.供货方 == "甲供" && 人材机.集中配送 == "1":人材机.市场价含税 * 人材机.数量* @工程信息.甲供材料配送费费率/100;
			   ->人材机.拆分 == 1:sum(_过滤甲供配送子项(),"拆分子项",?#{
			     ->拆分子项.type == "材料":拆分子项.市场价含税 * 拆分子项.数量;} * 人材机.数量* @工程信息.甲供材料配送费费率/100);});
			->:sum(_过滤材料(),"人材机",?#{
			   ->人材机.拆分 == 0 && 人材机.供货方 == "甲供" && 人材机.集中配送 == "1":人材机.预算价含税 * 人材机.数量 *(1+ _材料调差系数()) * @工程信息.甲供材料配送费费率/100;
			   ->人材机.拆分 == 1:sum(_过滤甲供配送子项(),"拆分子项",?#{
			     ->拆分子项.type == "材料":拆分子项.预算价含税 * 拆分子项.数量 * (1+_材料调差系数());} * 人材机.数量* @工程信息.甲供材料配送费费率/100);});
     },0))
}


BEGIN:_材料调差系数
${
	?#{
	->@工程信息.工程类型 == "配网"
	:#{
		  ->工程量.调差类型!= "建筑" && 工程量.调差类型!= "建筑拆除" && 工程量.调差类型!= "建筑修缮":工程量.@_@材料调差系数/100;
	 };
	->:#{
		->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装材料调差系数 /100;
		->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装材料调差系数 /100;
		->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装材料调差系数 /100;
		->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装拆除材料调差系数 /100;
		->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装拆除材料调差系数 /100;
		->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装拆除材料调差系数 /100;
		->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆设备检修材料调差系数 /100;
		->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆设备检修材料调差系数 /100;
		->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.设备检修材料调差系数 /100;
		};
	}
}

BEGIN:甲供材料配送费_单价
${
     sum(_过滤定额(),"工程量",?iif(工程量.专业类型 != "余物清理",工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
            ->(工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑措施二" || 工程量.调差类型  == "建筑拆除措施二" || 工程量.调差类型  == "建筑修缮措施二"):sum(_过滤材料(),"人材机",?#{
			   ->人材机.拆分 == 0 && 人材机.供货方 == "甲供" && 人材机.集中配送 == "1":人材机.市场价含税 * 人材机.数量* @工程信息.甲供材料配送费费率/100;
			   ->人材机.拆分 == 1:sum(_过滤甲供配送子项(),"拆分子项",?#{
			     ->拆分子项.type == "材料":拆分子项.市场价含税 * 拆分子项.数量;} * 人材机.数量* @工程信息.甲供材料配送费费率/100);});
			->:sum(_过滤材料(),"人材机",?#{
			   ->人材机.拆分 == 0 && 人材机.供货方 == "甲供" && 人材机.集中配送 == "1":人材机.预算价含税 * 人材机.数量 *(1+ _材料调差系数()) * @工程信息.甲供材料配送费费率/100;
			   ->人材机.拆分 == 1:sum(_过滤甲供配送子项(),"拆分子项",?#{
			     ->拆分子项.type == "材料":拆分子项.预算价含税 * 拆分子项.数量 * (1+_材料调差系数());} * 人材机.数量* @工程信息.甲供材料配送费费率/100);});
     },0) / parent.数量)
}

BEGIN:甲供材料卸车费
${
    sum(_过滤定额(),"工程量",?iif(工程量.专业类型 != "余物清理",工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
            ->(工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑措施二" || 工程量.调差类型  == "建筑拆除措施二" || 工程量.调差类型  == "建筑修缮措施二"):sum(_过滤材料(),"人材机",?#{
			   ->人材机.拆分 == 0 && 人材机.供货方 == "甲供" && 人材机.卸车 == "1":人材机.市场价含税 * 人材机.数量* @工程信息.甲供材料卸车费费率/100;
			   ->人材机.拆分 == 1:sum(_过滤甲供卸车子项(),"拆分子项",?#{
			     ->拆分子项.type == "材料":拆分子项.市场价含税 * 拆分子项.数量;} * 人材机.数量* @工程信息.甲供材料卸车费费率/100);});
			->:sum(_过滤材料(),"人材机",?#{
			   ->人材机.拆分 == 0 && 人材机.供货方 == "甲供" && 人材机.卸车 == "1":人材机.预算价含税 * 人材机.数量 *(1+ _材料调差系数()) * @工程信息.甲供材料卸车费费率/100;
			   ->人材机.拆分 == 1:sum(_过滤甲供卸车子项(),"拆分子项",?#{
			     ->拆分子项.type == "材料":拆分子项.预算价含税 * 拆分子项.数量 * (1+_材料调差系数());} * 人材机.数量* @工程信息.甲供材料卸车费费率/100);});
     },0))
}

BEGIN:甲供材料卸车费_单价
${
    sum(_过滤定额(),"工程量",?iif(工程量.专业类型 != "余物清理",工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
            ->(工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑措施二" || 工程量.调差类型  == "建筑拆除措施二" || 工程量.调差类型  == "建筑修缮措施二"):sum(_过滤材料(),"人材机",?#{
			   ->人材机.拆分 == 0 && 人材机.供货方 == "甲供" && 人材机.卸车 == "1":人材机.市场价含税 * 人材机.数量* @工程信息.甲供材料卸车费费率/100;
			   ->人材机.拆分 == 1:sum(_过滤甲供卸车子项(),"拆分子项",?#{
			     ->拆分子项.type == "材料":拆分子项.市场价含税 * 拆分子项.数量;} * 人材机.数量* @工程信息.甲供材料卸车费费率/100);});
			->:sum(_过滤材料(),"人材机",?#{
			   ->人材机.拆分 == 0 && 人材机.供货方 == "甲供" && 人材机.卸车 == "1":人材机.预算价含税 * 人材机.数量 *(1+ _材料调差系数()) * @工程信息.甲供材料卸车费费率/100;
			   ->人材机.拆分 == 1:sum(_过滤甲供卸车子项(),"拆分子项",?#{
			     ->拆分子项.type == "材料":拆分子项.预算价含税 * 拆分子项.数量 * (1+_材料调差系数());} * 人材机.数量* @工程信息.甲供材料卸车费费率/100);});
     },0) / parent.数量)
}

BEGIN:甲供材料保管费
${
     sum(_过滤定额(),"工程量",?iif(工程量.专业类型 != "余物清理",工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
            ->(工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑措施二" || 工程量.调差类型  == "建筑拆除措施二" || 工程量.调差类型  == "建筑修缮措施二"):sum(_过滤材料(),"人材机",?#{
			   ->人材机.拆分 == 0 && 人材机.供货方 == "甲供" && 人材机.保管 == "1":人材机.市场价含税 * 人材机.数量* @工程信息.甲供材料保管费费率/100;
			   ->人材机.拆分 == 1:sum(_过滤甲供保管子项(),"拆分子项",?#{
			     ->拆分子项.type == "材料":拆分子项.市场价含税 * 拆分子项.数量;} * 人材机.数量* @工程信息.甲供材料保管费费率/100);});
			->:sum(_过滤材料(),"人材机",?#{
			   ->人材机.拆分 == 0 && 人材机.供货方 == "甲供" && 人材机.保管 == "1":人材机.预算价含税 * 人材机.数量 *(1+ _材料调差系数()) * @工程信息.甲供材料保管费费率/100;
			   ->人材机.拆分 == 1:sum(_过滤甲供保管子项(),"拆分子项",?#{
			     ->拆分子项.type == "材料":拆分子项.预算价含税 * 拆分子项.数量 * (1+_材料调差系数());} * 人材机.数量* @工程信息.甲供材料保管费费率/100);});
     },0))
}

BEGIN:甲供材料保管费_单价
${
    sum(_过滤定额(),"工程量",?iif(工程量.专业类型 != "余物清理",工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
            ->(工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑措施二" || 工程量.调差类型  == "建筑拆除措施二" || 工程量.调差类型  == "建筑修缮措施二"):sum(_过滤材料(),"人材机",?#{
			   ->人材机.拆分 == 0 && 人材机.供货方 == "甲供" && 人材机.保管 == "1":人材机.市场价含税 * 人材机.数量* @工程信息.甲供材料保管费费率/100;
			   ->人材机.拆分 == 1:sum(_过滤甲供保管子项(),"拆分子项",?#{
			     ->拆分子项.type == "材料":拆分子项.市场价含税 * 拆分子项.数量;} * 人材机.数量* @工程信息.甲供材料保管费费率/100);});
			->:sum(_过滤材料(),"人材机",?#{
			   ->人材机.拆分 == 0 && 人材机.供货方 == "甲供" && 人材机.保管 == "1":人材机.预算价含税 * 人材机.数量 *(1+ _材料调差系数()) * @工程信息.甲供材料保管费费率/100;
			   ->人材机.拆分 == 1:sum(_过滤甲供保管子项(),"拆分子项",?#{
			     ->拆分子项.type == "材料":拆分子项.预算价含税 * 拆分子项.数量 * (1+_材料调差系数());} * 人材机.数量* @工程信息.甲供材料保管费费率/100);});
     },0) / parent.数量)
}

BEGIN:甲供材料价差含税
${
   ?sum(_过滤定额(),"工程量",?iif(工程量.专业类型 != "余物清理" && parent.type == "清单" && parent.数量 != 0,工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
      ->@工程信息.工程类型 == "配网" || @工程信息.项目划分 == "输电线路工程":#{
         ->(工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑措施二" || 工程量.调差类型  == "建筑拆除措施二" || 工程量.调差类型  == "建筑修缮措施二") && 工程量.@_@材机按系数调差 == "否"
		 :sum(_过滤材料(),"人材机",?#{
		   ->人材机.拆分 == 0 && 人材机.供货方 == "甲供":(人材机.市场价含税 - 人材机.预算价含税) * 人材机.数量;
		   ->人材机.拆分 == 1:sum(_过滤甲供子项(),"拆分子项",?#{
		     ->拆分子项.type == "人工":拆分子项.预算价含税 * 拆分子项.数量 * 拆分子项.@_@人工调差系数 /100;
		     ->拆分子项.type == "材料" || 拆分子项.type == "机械":(拆分子项.市场价含税 - 拆分子项.预算价含税) * 拆分子项.数量;} * 人材机.数量);});
         ->:工程量.甲供材料费_含税 * 工程量.@_@材料调差系数 /100;}; 
      ->:#{
         ->((工程量.调差类型 == "建筑" || 工程量.调差类型  == "建筑措施二") && @工程信息.建筑材机按系数调差 == "否") || ((工程量.调差类型 == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "否") || ((工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "否")
		 :sum(_过滤材料(),"人材机",?#{
		   ->人材机.拆分 == 0 && 人材机.供货方 == "甲供":(人材机.市场价含税 - 人材机.预算价含税) * 人材机.数量;
		   ->人材机.拆分 == 1:sum(_过滤甲供子项(),"拆分子项",?#{
		      ->拆分子项.type == "人工":拆分子项.预算价含税 * 拆分子项.数量 * #{
			    ->工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑措施二":@工程信息.建筑人工调差系数 /100;
			    ->工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二":@工程信息.建筑修缮人工调差系数 /100;
			    ->工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二":@工程信息.建筑拆除人工调差系数 /100;};
		      ->拆分子项.type == "材料" || 拆分子项.type == "机械":(拆分子项.市场价含税 - 拆分子项.预算价含税) * 拆分子项.数量;} * 人材机.数量);});
         ->:工程量.甲供材料费_含税 * #{
		   ->(工程量.调差类型 == "建筑" || 工程量.调差类型  == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑材料调差系数 /100;
		   ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆设备检修材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆设备检修材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.设备检修材料调差系数 /100;};};
       },0)) + sum(_过滤甲供材料计日工(),"工程量",?工程量.数量 * (工程量.市场价含税 - 工程量.预算价含税))
}

BEGIN:甲供材料价差含税_单价
${
   ?sum(_过滤定额(),"工程量",?iif(工程量.专业类型 != "余物清理",工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
      ->@工程信息.工程类型 == "配网" || @工程信息.项目划分 == "输电线路工程":#{
         ->(工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑措施二" || 工程量.调差类型  == "建筑拆除措施二" || 工程量.调差类型  == "建筑修缮措施二") && 工程量.@_@材机按系数调差 == "否"
		 :sum(_过滤材料(),"人材机",?#{
		   ->人材机.拆分 == 0 && 人材机.供货方 == "甲供":(人材机.市场价含税 - 人材机.预算价含税) * 人材机.数量;
		   ->人材机.拆分 == 1:sum(_过滤甲供子项(),"拆分子项",?#{
		     ->拆分子项.type == "人工":拆分子项.预算价含税 * 拆分子项.数量 * 拆分子项.@_@人工调差系数 /100;
		     ->拆分子项.type == "材料" || 拆分子项.type == "机械":(拆分子项.市场价含税 - 拆分子项.预算价含税) * 拆分子项.数量;} * 人材机.数量);});
         ->:工程量.甲供材料费_含税 * 工程量.@_@材料调差系数 /100;}; 
      ->:#{
         ->((工程量.调差类型 == "建筑" || 工程量.调差类型  == "建筑措施二") && @工程信息.建筑材机按系数调差 == "否") || ((工程量.调差类型 == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "否") || ((工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "否")
		 :sum(_过滤材料(),"人材机",?#{
		   ->人材机.拆分 == 0 && 人材机.供货方 == "甲供":(人材机.市场价含税 - 人材机.预算价含税) * 人材机.数量;
		   ->人材机.拆分 == 1:sum(_过滤甲供子项(),"拆分子项",?#{
		      ->拆分子项.type == "人工":拆分子项.预算价含税 * 拆分子项.数量 * #{
			    ->工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑措施二":@工程信息.建筑人工调差系数 /100;
			    ->工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二":@工程信息.建筑修缮人工调差系数 /100;
			    ->工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二":@工程信息.建筑拆除人工调差系数 /100;};
		      ->拆分子项.type == "材料" || 拆分子项.type == "机械":(拆分子项.市场价含税 - 拆分子项.预算价含税) * 拆分子项.数量;} * 人材机.数量);});
         ->:工程量.甲供材料费_含税 * #{
		   ->(工程量.调差类型 == "建筑" || 工程量.调差类型  == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑材料调差系数 /100;
		   ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆设备检修材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆设备检修材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.设备检修材料调差系数 /100;};};
       },0) / parent.数量) + sum(_过滤甲供材料计日工(),"工程量",?工程量.市场价含税 - 工程量.预算价含税)
}

//------------------定额费用：乙供材料_不含税-------------------------------------------
BEGIN:_乙供材料费_非宏变量
${
    ?sum(_过滤定额(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,工程量.数量 * (工程量.材料费 - 工程量.甲供材料费) * 工程量.材料系数 * 工程量.定额系数,0)) + sum(_过滤乙供材料计日工(),"工程量",?工程量.数量 * 工程量.预算价不含税)
}

BEGIN:_乙供材料费_非宏变量_单价
${
    ?sum(_过滤定额(),"工程量",?工程量.数量 * (工程量.材料费 - 工程量.甲供材料费) * 工程量.材料系数 * 工程量.定额系数 / parent.数量) + sum(_过滤乙供材料计日工(),"工程量",?工程量.预算价不含税)
}

BEGIN:_乙供材料价差_不含特殊费
${
   sum(_过滤定额(),"工程量",?iif(工程量.专业类型 != "余物清理" && parent.type == "清单" && parent.数量 != 0,工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
      ->@工程信息.工程类型 == "配网" || @工程信息.项目划分 == "输电线路工程":#{
         ->(工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑措施二" || 工程量.调差类型  == "建筑拆除措施二" || 工程量.调差类型  == "建筑修缮措施二") && 工程量.@_@材机按系数调差 == "否"
		 :sum(_过滤材料(),"人材机",?#{
		   ->人材机.拆分 == 0 && 人材机.供货方 == "乙供":(人材机.市场价不含税 - 人材机.预算价不含税) * 人材机.数量;
		   ->人材机.拆分 == 1:sum(_过滤乙供子项(),"拆分子项",?#{
		     ->拆分子项.type == "人工":拆分子项.预算价不含税 * 拆分子项.数量 * 拆分子项.@_@人工调差系数 /100;
		     ->拆分子项.type == "材料" || 拆分子项.type == "机械":(拆分子项.市场价不含税 - 拆分子项.预算价不含税) * 拆分子项.数量;} * 人材机.数量);});
         ->:(工程量.材料费 - 工程量.甲供材料费) * 工程量.@_@材料调差系数 /100;}; 
      ->:#{
         ->((工程量.调差类型 == "建筑" || 工程量.调差类型  == "建筑措施二") && @工程信息.建筑材机按系数调差 == "否") || ((工程量.调差类型 == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "否") || ((工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "否")
		 :sum(_过滤材料(),"人材机",?#{
		   ->人材机.拆分 == 0 && 人材机.供货方 == "乙供":(人材机.市场价不含税 - 人材机.预算价不含税) * 人材机.数量;
		   ->人材机.拆分 == 1:sum(_过滤乙供子项(),"拆分子项",?#{
		      ->拆分子项.type == "人工":拆分子项.预算价不含税 * 拆分子项.数量 * #{
			    ->工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑措施二":@工程信息.建筑人工调差系数 /100;
			    ->工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二":@工程信息.建筑修缮人工调差系数 /100;
			    ->工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二":@工程信息.建筑拆除人工调差系数 /100;};
		      ->拆分子项.type == "材料" || 拆分子项.type == "机械":(拆分子项.市场价不含税 - 拆分子项.预算价不含税) * 拆分子项.数量;} * 人材机.数量);});
         ->:(工程量.材料费 - 工程量.甲供材料费) * #{
		   ->(工程量.调差类型 == "建筑" || 工程量.调差类型  == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑材料调差系数 /100;
		   ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆设备检修材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆设备检修材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.设备检修材料调差系数 /100;};};
       },0)) + sum(_过滤乙供材料计日工(),"工程量",?工程量.数量 * (工程量.市场价不含税 - 工程量.预算价不含税))
}

BEGIN:_乙供材料价差_不含特殊费_单价
${
   sum(_过滤定额(),"工程量",?iif(工程量.专业类型 != "余物清理",工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
      ->@工程信息.工程类型 == "配网" || @工程信息.项目划分 == "输电线路工程":#{
         ->(工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑措施二" || 工程量.调差类型  == "建筑拆除措施二" || 工程量.调差类型  == "建筑修缮措施二") && 工程量.@_@材机按系数调差 == "否"
		 :sum(_过滤材料(),"人材机",?#{
		   ->人材机.拆分 == 0 && 人材机.供货方 == "乙供":(人材机.市场价不含税 - 人材机.预算价不含税) * 人材机.数量;
		   ->人材机.拆分 == 1:sum(_过滤乙供子项(),"拆分子项",?#{
		     ->拆分子项.type == "人工":拆分子项.预算价不含税 * 拆分子项.数量 * 拆分子项.@_@人工调差系数 /100;
		     ->拆分子项.type == "材料" || 拆分子项.type == "机械":(拆分子项.市场价不含税 - 拆分子项.预算价不含税) * 拆分子项.数量;} * 人材机.数量);});
         ->:(工程量.材料费 - 工程量.甲供材料费) * 工程量.@_@材料调差系数 /100;}; 
      ->:#{
         ->((工程量.调差类型 == "建筑" || 工程量.调差类型  == "建筑措施二") && @工程信息.建筑材机按系数调差 == "否") || ((工程量.调差类型 == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "否") || ((工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "否")
		 :sum(_过滤材料(),"人材机",?#{
		   ->人材机.拆分 == 0 && 人材机.供货方 == "乙供":(人材机.市场价不含税 - 人材机.预算价不含税) * 人材机.数量;
		   ->人材机.拆分 == 1:sum(_过滤乙供子项(),"拆分子项",?#{
		      ->拆分子项.type == "人工":拆分子项.预算价不含税 * 拆分子项.数量 * #{
			    ->工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑措施二":@工程信息.建筑人工调差系数 /100;
			    ->工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二":@工程信息.建筑修缮人工调差系数 /100;
			    ->工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二":@工程信息.建筑拆除人工调差系数 /100;};
		      ->拆分子项.type == "材料" || 拆分子项.type == "机械":(拆分子项.市场价不含税 - 拆分子项.预算价不含税) * 拆分子项.数量;} * 人材机.数量);});
         ->:(工程量.材料费 - 工程量.甲供材料费) * #{
		   ->(工程量.调差类型 == "建筑" || 工程量.调差类型  == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑材料调差系数 /100;
		   ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆设备检修材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆设备检修材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.设备检修材料调差系数 /100;};};
       },0) / parent.数量) + sum(_过滤乙供材料计日工(),"工程量",?工程量.市场价不含税 - 工程量.预算价不含税)
}

//------------------定额费用：乙供材料_含税-------------------------------------------
BEGIN:乙供材料费含税
${
    ?sum(_过滤定额(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,工程量.数量 * (工程量.材料费_含税 - 工程量.甲供材料费_含税) * 工程量.材料系数 * 工程量.定额系数,0)) + sum(_过滤乙供材料计日工(),"工程量",?工程量.数量 * 工程量.预算价含税)
}

BEGIN:乙供材料费含税_单价
${
    ?sum(_过滤定额(),"工程量",?工程量.数量 * (工程量.材料费_含税 - 工程量.甲供材料费_含税) * 工程量.材料系数 * 工程量.定额系数 / parent.数量) + sum(_过滤乙供材料计日工(),"工程量",?工程量.预算价含税)
}

BEGIN:乙供材料价差含税
${
   sum(_过滤定额(),"工程量",?iif(工程量.专业类型 != "余物清理" && parent.type == "清单" && parent.数量 != 0,工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
      ->@工程信息.工程类型 == "配网" || @工程信息.项目划分 == "输电线路工程":#{
         ->(工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑措施二" || 工程量.调差类型  == "建筑拆除措施二" || 工程量.调差类型  == "建筑修缮措施二") && 工程量.@_@材机按系数调差 == "否"
		 :sum(_过滤材料(),"人材机",?#{
		   ->人材机.拆分 == 0 && 人材机.供货方 == "乙供":(人材机.市场价含税 - 人材机.预算价含税) * 人材机.数量;
		   ->人材机.拆分 == 1:sum(_过滤乙供子项(),"拆分子项",?#{
		     ->拆分子项.type == "人工":拆分子项.预算价含税 * 拆分子项.数量 * 拆分子项.@_@人工调差系数 /100;
		     ->拆分子项.type == "材料" || 拆分子项.type == "机械":(拆分子项.市场价含税 - 拆分子项.预算价含税) * 拆分子项.数量;} * 人材机.数量);});
         ->:(工程量.材料费_含税 - 工程量.甲供材料费_含税) * 工程量.@_@材料调差系数 /100;}; 
      ->:#{
         ->((工程量.调差类型 == "建筑" || 工程量.调差类型  == "建筑措施二") && @工程信息.建筑材机按系数调差 == "否") || ((工程量.调差类型 == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "否") || ((工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "否")
		 :sum(_过滤材料(),"人材机",?#{
		   ->人材机.拆分 == 0 && 人材机.供货方 == "乙供":(人材机.市场价含税 - 人材机.预算价含税) * 人材机.数量;
		   ->人材机.拆分 == 1:sum(_过滤乙供子项(),"拆分子项",?#{
		      ->拆分子项.type == "人工":拆分子项.预算价含税 * 拆分子项.数量 * #{
			    ->工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑措施二":@工程信息.建筑人工调差系数 /100;
			    ->工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二":@工程信息.建筑修缮人工调差系数 /100;
			    ->工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二":@工程信息.建筑拆除人工调差系数 /100;};
		      ->拆分子项.type == "材料" || 拆分子项.type == "机械":(拆分子项.市场价含税 - 拆分子项.预算价含税) * 拆分子项.数量;} * 人材机.数量);});
         ->:(工程量.材料费_含税 - 工程量.甲供材料费_含税) * #{
		   ->(工程量.调差类型 == "建筑" || 工程量.调差类型  == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑材料调差系数 /100;
		   ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆设备检修材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆设备检修材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.设备检修材料调差系数 /100;};};
       },0)) + sum(_过滤乙供材料计日工(),"工程量",?工程量.数量 * (工程量.市场价含税 - 工程量.预算价含税))
}

BEGIN:乙供材料价差含税_单价
${
   sum(_过滤定额(),"工程量",?iif(工程量.专业类型 != "余物清理",工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
      ->@工程信息.工程类型 == "配网" || @工程信息.项目划分 == "输电线路工程":#{
         ->(工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑措施二" || 工程量.调差类型  == "建筑拆除措施二" || 工程量.调差类型  == "建筑修缮措施二") && 工程量.@_@材机按系数调差 == "否"
		 :sum(_过滤材料(),"人材机",?#{
		   ->人材机.拆分 == 0 && 人材机.供货方 == "乙供":(人材机.市场价含税 - 人材机.预算价含税) * 人材机.数量;
		   ->人材机.拆分 == 1:sum(_过滤乙供子项(),"拆分子项",?#{
		     ->拆分子项.type == "人工":拆分子项.预算价含税 * 拆分子项.数量 * 拆分子项.@_@人工调差系数 /100;
		     ->拆分子项.type == "材料" || 拆分子项.type == "机械":(拆分子项.市场价含税 - 拆分子项.预算价含税) * 拆分子项.数量;} * 人材机.数量);});
         ->:(工程量.材料费_含税 - 工程量.甲供材料费_含税) * 工程量.@_@材料调差系数 /100;}; 
      ->:#{
         ->((工程量.调差类型 == "建筑" || 工程量.调差类型  == "建筑措施二") && @工程信息.建筑材机按系数调差 == "否") || ((工程量.调差类型 == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "否") || ((工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "否")
		 :sum(_过滤材料(),"人材机",?#{
		   ->人材机.拆分 == 0 && 人材机.供货方 == "乙供":(人材机.市场价含税 - 人材机.预算价含税) * 人材机.数量;
		   ->人材机.拆分 == 1:sum(_过滤乙供子项(),"拆分子项",?#{
		      ->拆分子项.type == "人工":拆分子项.预算价含税 * 拆分子项.数量 * #{
			    ->工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑措施二":@工程信息.建筑人工调差系数 /100;
			    ->工程量.调差类型  == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二":@工程信息.建筑修缮人工调差系数 /100;
			    ->工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二":@工程信息.建筑拆除人工调差系数 /100;};
		      ->拆分子项.type == "材料" || 拆分子项.type == "机械":(拆分子项.市场价含税 - 拆分子项.预算价含税) * 拆分子项.数量;} * 人材机.数量);});
         ->:(工程量.材料费_含税 - 工程量.甲供材料费_含税) * #{
		   ->(工程量.调差类型 == "建筑" || 工程量.调差类型  == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑材料调差系数 /100;
		   ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装拆除材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆设备检修材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆设备检修材料调差系数 /100;
		   ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.设备检修材料调差系数 /100;};};
       },0) / parent.数量) + sum(_过滤乙供材料计日工(),"工程量",?工程量.市场价含税 - 工程量.预算价含税)
}

//------------------定额费用：机械费------------------------------------------
BEGIN:_机械费_不含特殊费
${
    ?sum(_过滤定额(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,工程量.数量 * 工程量.机械费 * 工程量.机械系数 * 工程量.定额系数,0)) + sum(_过滤机械计日工(),"工程量",?工程量.数量 * 工程量.预算价不含税)
}

BEGIN:_机械费_不含特殊费_单价
${
    ?sum(_过滤定额(),"工程量",?工程量.数量 * 工程量.机械费 * 工程量.机械系数 * 工程量.定额系数 / parent.数量) + sum(_过滤机械计日工(),"工程量",?工程量.预算价不含税)
}

BEGIN:_机械价差_不含特殊费
${
   sum(_过滤定额(),"工程量",?iif(工程量.专业类型 != "余物清理" && parent.type == "清单" && parent.数量 != 0,工程量.数量 * 工程量.机械系数 * 工程量.定额系数 * #{
      ->@工程信息.工程类型 == "配网" || @工程信息.项目划分 == "输电线路工程":
       #{
        ->(工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑措施二" || 工程量.调差类型  == "建筑拆除措施二" || 工程量.调差类型  == "建筑修缮措施二") && 工程量.@_@材机按系数调差 == "否"
		:sum(_过滤机械(),"人材机",?(人材机.市场价不含税 - 人材机.预算价不含税) * 人材机.数量);
        ->:工程量.机械费 * 工程量.@_@机械调差系数 /100;
       };
      ->:#{
        ->((工程量.调差类型 == "建筑" || 工程量.调差类型  == "建筑措施二") && @工程信息.建筑材机按系数调差 == "否") || ((工程量.调差类型 == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "否") || ((工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "否")
		:sum(_过滤机械(),"人材机",?(人材机.市场价不含税 - 人材机.预算价不含税) * 人材机.数量);
        ->:工程量.机械费 * #{
	      ->(工程量.调差类型 == "建筑" || 工程量.调差类型  == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑机械调差系数 /100;
	      ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除机械调差系数 /100;
	      ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮机械调差系数 /100;
	      ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装机械调差系数 /100;
	      ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装机械调差系数 /100;
	      ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装机械调差系数 /100;
	      ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装拆除机械调差系数 /100;
	      ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装拆除机械调差系数 /100;
	      ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装拆除机械调差系数 /100;
	      ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆设备检修机械调差系数 /100;
	      ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆设备检修机械调差系数 /100;
	      ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.设备检修机械调差系数 /100;
		};};},0)) + sum(_过滤机械计日工(),"工程量",?工程量.数量 * (工程量.市场价不含税 - 工程量.预算价不含税))
}

BEGIN:_机械价差_不含特殊费_单价
${
   sum(_过滤定额(),"工程量",?iif(工程量.专业类型 != "余物清理",工程量.数量 * 工程量.机械系数 * 工程量.定额系数 * #{
      ->@工程信息.工程类型 == "配网" || @工程信息.项目划分 == "输电线路工程":
       #{
        ->(工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑措施二" || 工程量.调差类型  == "建筑拆除措施二" || 工程量.调差类型  == "建筑修缮措施二") && 工程量.@_@材机按系数调差 == "否"
		:sum(_过滤机械(),"人材机",?(人材机.市场价不含税 - 人材机.预算价不含税) * 人材机.数量);
        ->:工程量.机械费 * 工程量.@_@机械调差系数 /100;
       };
      ->:#{
        ->((工程量.调差类型 == "建筑" || 工程量.调差类型  == "建筑措施二") && @工程信息.建筑材机按系数调差 == "否") || ((工程量.调差类型 == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "否") || ((工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "否")
		:sum(_过滤机械(),"人材机",?(人材机.市场价不含税 - 人材机.预算价不含税) * 人材机.数量);
        ->:工程量.机械费 * #{
	      ->(工程量.调差类型 == "建筑" || 工程量.调差类型  == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑机械调差系数 /100;
	      ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型  == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除机械调差系数 /100;
	      ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型  == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮机械调差系数 /100;
	      ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装机械调差系数 /100;
	      ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装机械调差系数 /100;
	      ->(工程量.调差类型 == "安装" || 工程量.调差类型  == "安装措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装机械调差系数 /100;
	      ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆安装拆除机械调差系数 /100;
	      ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆安装拆除机械调差系数 /100;
	      ->(工程量.调差类型 == "安装拆除" || 工程量.调差类型  == "安装拆除措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.安装拆除机械调差系数 /100;
	      ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "陆上电缆":@工程信息.陆上电缆设备检修机械调差系数 /100;
	      ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 == "电缆线路工程" && 工程量.专业属性 == "海底电缆":@工程信息.海底电缆设备检修机械调差系数 /100;
	      ->(工程量.调差类型 == "设备检修" || 工程量.调差类型  == "设备检修措施二") && @工程信息.项目划分 != "电缆线路工程":@工程信息.设备检修机械调差系数 /100;
		};};},0) / parent.数量) + sum(_过滤机械计日工(),"工程量",?工程量.市场价不含税 - 工程量.预算价不含税)
}

//------------------混凝土施工增加费-------------------------------------------
BEGIN:混凝土施工调整费
${
   ?混凝土施工调整人工费()+混凝土施工调整材料费()+混凝土施工调整机械费()
}

BEGIN:混凝土施工调整人工费
${
    sum(_过滤定额(),"工程量", ?iif(parent.type == "清单" && parent.数量 != 0,sum(_过滤材料(),"材料",?
    #{
	->工程量.浇捣方式 == "" || 工程量.浇捣方式 == "集中搅拌站"
	  :0;
	->工程量.定额范围 == "概算" && in(材料.编码,"C09032001~09032315") && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车"
		: 
		80/100 * (-11.4);
	  ->工程量.浇捣方式 == "现场搅拌机"
		:
		12.6;
	  ->工程量.浇捣方式 == "现场搅拌机+泵车"
		:
		(80/100 * (-11.4)+12.6);
	  };
	->工程量.定额范围 == "预算" && in(材料.编码,"C09032401~09032431,C09031601~09031915,C09032001~09032315")  && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车" || 工程量.浇捣方式 == "现场搅拌机+泵车"
	    :
		材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * (-11.4);
	  ->:0;
	  };
	}),0))
}

BEGIN:混凝土施工调整人工费_单价
${
    sum(_过滤定额(),"工程量", ?sum(_过滤材料(),"材料",?
    #{
	->工程量.浇捣方式 == "" || 工程量.浇捣方式 == "集中搅拌站"
	  :0;
	->工程量.定额范围 == "概算" && in(材料.编码,"C09032001~09032315") && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车"
		: 
		80/100 * (-11.4);
	  ->工程量.浇捣方式 == "现场搅拌机"
		:
		12.6;
	  ->工程量.浇捣方式 == "现场搅拌机+泵车"
		:
		(80/100 * (-11.4)+12.6);
	  };
	->工程量.定额范围 == "预算" && in(材料.编码,"C09032401~09032431,C09031601~09031915,C09032001~09032315")  && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车" || 工程量.浇捣方式 == "现场搅拌机+泵车"
	    :
		材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * (-11.4);
	  ->:0;
	  };
	}) / parent.数量)
}

BEGIN:混凝土施工调整人工价差
${
    sum(_过滤定额(),"工程量", ?iif(parent.type == "清单" && parent.数量 != 0,sum(_过滤材料(),"材料",?
    #{
	->工程量.浇捣方式 == "" || 工程量.浇捣方式 == "集中搅拌站"
	  :0;
	->工程量.定额范围 == "概算" && in(材料.编码,"C09032001~09032315")  && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车"
	    : 
	    80/100 * (-11.4);
	  ->工程量.浇捣方式 == "现场搅拌机"
	    :
	    12.6;
	  ->工程量.浇捣方式 == "现场搅拌机+泵车"
	    :
	    (80/100 * (-11.4)+12.6);
		};
	->工程量.定额范围 == "预算" && in(材料.编码,"C09032401~09032431,C09031601~09031915,C09032001~09032315")  && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车" || 工程量.浇捣方式 == "现场搅拌机+泵车"
	    :
	    材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * (-11.4);
	  ->:0;		
		};
	}),0) * #{
	  ->@工程信息.工程类型 == "配网":工程量.@_@人工调差系数 /100;
	  ->:
	   #{
       ->工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑措施二":@工程信息.建筑人工调差系数 /100;
       ->工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑修缮措施二":@工程信息.建筑修缮人工调差系数 /100;
       ->工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑拆除措施二":@工程信息.建筑拆除人工调差系数 /100;
        };})
}

BEGIN:混凝土施工调整人工价差_单价
${
    sum(_过滤定额(),"工程量", ?sum(_过滤材料(),"材料",?
    #{
	->工程量.浇捣方式 == "" || 工程量.浇捣方式 == "集中搅拌站"
	  :0;
	->工程量.定额范围 == "概算" && in(材料.编码,"C09032001~09032315")  && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车"
	    : 
	    80/100 * (-11.4);
	  ->工程量.浇捣方式 == "现场搅拌机"
	    :
	    12.6;
	  ->工程量.浇捣方式 == "现场搅拌机+泵车"
	    :
	    (80/100 * (-11.4)+12.6);
		};
	->工程量.定额范围 == "预算" && in(材料.编码,"C09032401~09032431,C09031601~09031915,C09032001~09032315")  && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车" || 工程量.浇捣方式 == "现场搅拌机+泵车"
	    :
	    材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * (-11.4);
	  ->:0;		
		};
	}) / parent.数量 * #{
	  ->@工程信息.工程类型 == "配网":工程量.@_@人工调差系数 /100;
	  ->:
	   #{
       ->工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑措施二":@工程信息.建筑人工调差系数 /100;
       ->工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑修缮措施二":@工程信息.建筑修缮人工调差系数 /100;
       ->工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑拆除措施二":@工程信息.建筑拆除人工调差系数 /100;
        };})
}

BEGIN:混凝土施工调整材料费
${
    sum(_过滤定额(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,sum(_过滤材料(),"材料",?
	#{
	->工程量.浇捣方式 == "" || 工程量.浇捣方式 == "集中搅拌站" || 工程量.浇捣方式 == "现场搅拌机"
	  :0;
	->工程量.定额范围 == "概算" && in(材料.编码,"C09032001~09032315") && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车" || 工程量.浇捣方式 == "现场搅拌机+泵车"
	    :
		材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * 80/100 * 18.5;
		};
	->工程量.定额范围 == "预算" && in(材料.编码,"C09032401~09032431,C09031601~09031915,C09032001~09032315") && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车" || 工程量.浇捣方式 == "现场搅拌机+泵车"
	    :
		材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * 18.5;
		};
	}),0))
}

BEGIN:混凝土施工调整材料费_单价
${
    sum(_过滤定额(),"工程量",?sum(_过滤材料(),"材料",?
	#{
	->工程量.浇捣方式 == "" || 工程量.浇捣方式 == "集中搅拌站" || 工程量.浇捣方式 == "现场搅拌机"
	  :0;
	->工程量.定额范围 == "概算" && in(材料.编码,"C09032001~09032315") && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车" || 工程量.浇捣方式 == "现场搅拌机+泵车"
	    :
		材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * 80/100 * 18.5;
		};
	->工程量.定额范围 == "预算" && in(材料.编码,"C09032401~09032431,C09031601~09031915,C09032001~09032315") && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车" || 工程量.浇捣方式 == "现场搅拌机+泵车"
	    :
		材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * 18.5;
		};
	}) / parent.数量)
}

BEGIN:混凝土施工调整材料价差
${
    sum(_过滤定额(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,sum(_过滤材料(),"材料",?
	#{
	->工程量.浇捣方式 == "" || 工程量.浇捣方式 == "集中搅拌站" || 工程量.浇捣方式 == "现场搅拌机"
	  :0;
	->工程量.定额范围 == "概算" && in(材料.编码,"C09032001~09032315") && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车" || 工程量.浇捣方式 == "现场搅拌机+泵车"
	    :
		材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * 80/100 * 18.5;
		};
	->工程量.定额范围 == "预算" && in(材料.编码,"C09032401~09032431,C09031601~09031915,C09032001~09032315") && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车" || 工程量.浇捣方式 == "现场搅拌机+泵车"
	    :
		材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * 18.5;
		};
	}),0) * #{
	  ->@工程信息.工程类型 == "配网" && 工程量.@_@材机按系数调差 == "是":工程量.@_@材料调差系数 /100;
	  ->:
	   #{
       ->(工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑材料调差系数 /100;
       ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮材料调差系数 /100;
       ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除材料调差系数 /100;
       };})
}

BEGIN:混凝土施工调整材料价差_单价
${
    sum(_过滤定额(),"工程量",?sum(_过滤材料(),"材料",?
	#{
	->工程量.浇捣方式 == "" || 工程量.浇捣方式 == "集中搅拌站" || 工程量.浇捣方式 == "现场搅拌机"
	  :0;
	->工程量.定额范围 == "概算" && in(材料.编码,"C09032001~09032315") && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车" || 工程量.浇捣方式 == "现场搅拌机+泵车"
	    :
		材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * 80/100 * 18.5;
		};
	->工程量.定额范围 == "预算" && in(材料.编码,"C09032401~09032431,C09031601~09031915,C09032001~09032315") && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车" || 工程量.浇捣方式 == "现场搅拌机+泵车"
	    :
		材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * 18.5;
		};
	}) / parent.数量 * #{
	  ->@工程信息.工程类型 == "配网" && 工程量.@_@材机按系数调差 == "是":工程量.@_@材料调差系数 /100;
	  ->:
	   #{
       ->(工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑材料调差系数 /100;
       ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮材料调差系数 /100;
       ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除材料调差系数 /100;
       };})
}

BEGIN:混凝土施工调整机械费
${
    sum(_过滤定额(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,sum(_过滤材料(),"材料",?
    #{
	->工程量.浇捣方式 == "" || 工程量.浇捣方式 == "集中搅拌站"
	  :0;
	->工程量.定额范围 == "概算" && in(材料.编码,"C09032001~09032315") && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车" 
	    :
	    80/100 * 8.5;
	  ->工程量.浇捣方式 == "现场搅拌机"
	    :
	    (-8.1);
	  ->工程量.浇捣方式 == "现场搅拌机+泵车"
	    :
	    (80/100 * 8.5+(-8.1));
		};
	->工程量.定额范围 == "预算" && in(材料.编码,"C09032401~09032431,C09031601~09031915,C09032001~09032315") && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车" || 工程量.浇捣方式 == "现场搅拌机+泵车" 
	    :
	    材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * 8.5;
	  ->:0;
		};
	}),0))
}

BEGIN:混凝土施工调整机械费_单价
${
    sum(_过滤定额(),"工程量",?sum(_过滤材料(),"材料",?
    #{
	->工程量.浇捣方式 == "" || 工程量.浇捣方式 == "集中搅拌站"
	  :0;
	->工程量.定额范围 == "概算" && in(材料.编码,"C09032001~09032315") && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车" 
	    :
	    80/100 * 8.5;
	  ->工程量.浇捣方式 == "现场搅拌机"
	    :
	    (-8.1);
	  ->工程量.浇捣方式 == "现场搅拌机+泵车"
	    :
	    (80/100 * 8.5+(-8.1));
		};
	->工程量.定额范围 == "预算" && in(材料.编码,"C09032401~09032431,C09031601~09031915,C09032001~09032315") && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车" || 工程量.浇捣方式 == "现场搅拌机+泵车" 
	    :
	    材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * 8.5;
	  ->:0;
		};
	}) / parent.数量)
}

BEGIN:混凝土施工调整机械价差
${
    sum(_过滤定额(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,sum(_过滤材料(),"材料",?
    #{
	->工程量.浇捣方式 == "" || 工程量.浇捣方式 == "集中搅拌站"
	  :0;
	->工程量.定额范围 == "概算" && in(材料.编码,"C09032001~09032315") && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车" 
	    :
	    80/100 * 8.5;
	  ->工程量.浇捣方式 == "现场搅拌机"
	    :
	    (-8.1);
	  ->工程量.浇捣方式 == "现场搅拌机+泵车"
	    :
	    (80/100 * 8.5+(-8.1));
		};
	->工程量.定额范围 == "预算" && in(材料.编码,"C09032401~09032431,C09031601~09031915,C09032001~09032315") && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车" || 工程量.浇捣方式 == "现场搅拌机+泵车" 
	    :
	    材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * 8.5;
	  ->:0;
		};
	}),0)  * #{
	  ->@工程信息.工程类型 == "配网" && 工程量.@_@材机按系数调差 == "是":工程量.@_@机械调差系数 /100;
	  ->:
	   #{
       ->(工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑机械调差系数 /100;
       ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮机械调差系数 /100;
       ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除机械调差系数 /100;
       };})
}

BEGIN:混凝土施工调整机械价差_单价
${
    sum(_过滤定额(),"工程量",?sum(_过滤材料(),"材料",?
    #{
	->工程量.浇捣方式 == "" || 工程量.浇捣方式 == "集中搅拌站"
	  :0;
	->工程量.定额范围 == "概算" && in(材料.编码,"C09032001~09032315") && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车" 
	    :
	    80/100 * 8.5;
	  ->工程量.浇捣方式 == "现场搅拌机"
	    :
	    (-8.1);
	  ->工程量.浇捣方式 == "现场搅拌机+泵车"
	    :
	    (80/100 * 8.5+(-8.1));
		};
	->工程量.定额范围 == "预算" && in(材料.编码,"C09032401~09032431,C09031601~09031915,C09032001~09032315") && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
	  :
	  #{
	  ->工程量.浇捣方式 == "集中搅拌站+泵车" || 工程量.浇捣方式 == "现场搅拌机+泵车" 
	    :
	    材料.数量* 工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * 8.5;
	  ->:0;
		};
	}) / parent.数量 * #{
	  ->@工程信息.工程类型 == "配网" && 工程量.@_@材机按系数调差 == "是":工程量.@_@机械调差系数 /100;
	  ->:
	   #{
       ->(工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑机械调差系数 /100;
       ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮机械调差系数 /100;
       ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除机械调差系数 /100;
       };})
}

//------------------脚手架搭拆费-------------------------------------------
BEGIN:脚手架搭拆费
${
   ?脚手架人工费()+脚手架材料费()+脚手架机械费()
}

BEGIN:脚手架人工费
${
    sum(_过滤定额(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,#{
    ->工程量.脚手架计取 == "" && 工程量.脚手架计取 == "不计取"
      :0;
	->工程量.脚手架计取 == "计取"
      :
      #{
      ->工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑措施二" || 工程量.调差类型 == "建筑修缮措施二" || 工程量.调差类型 == "建筑拆除措施二"
		:
		工程量.数量 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 * 5/100 * 40/100;
	  };
	->:0;},0))
}

BEGIN:脚手架人工费_单价
${
    sum(_过滤定额(),"工程量",?#{
    ->工程量.脚手架计取 == "" && 工程量.脚手架计取 == "不计取"
      :0;
	->工程量.脚手架计取 == "计取"
      :
      #{
      ->工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑措施二" || 工程量.调差类型 == "建筑修缮措施二" || 工程量.调差类型 == "建筑拆除措施二"
		:
		工程量.数量 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 * 5/100 * 40/100;
	  };
	->:0;} / parent.数量)
}

BEGIN:脚手架人工价差
${
    sum(_过滤定额(),"工程量", ?iif(parent.type == "清单" && parent.数量 != 0,#{
    ->工程量.脚手架计取 == "" && 工程量.脚手架计取 == "不计取"
      :0;
	->工程量.脚手架计取 == "计取"
      :
      #{
      ->工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑措施二" || 工程量.调差类型 == "建筑修缮措施二" || 工程量.调差类型 == "建筑拆除措施二"
		:
		工程量.数量 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 * 5/100 * 40/100;
	  };
	->:0;},0)  * #{
	  ->@工程信息.工程类型 == "配网":工程量.@_@人工调差系数 /100;
	  ->:
	   #{
       ->工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑措施二":@工程信息.建筑人工调差系数 /100;
       ->工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑修缮措施二":@工程信息.建筑修缮人工调差系数 /100;
       ->工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑拆除措施二":@工程信息.建筑拆除人工调差系数 /100;
       };})
}

BEGIN:脚手架人工价差_单价
${
    sum(_过滤定额(),"工程量", ?#{
    ->工程量.脚手架计取 == "" && 工程量.脚手架计取 == "不计取"
      :0;
	->工程量.脚手架计取 == "计取"
      :
      #{
      ->工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑措施二" || 工程量.调差类型 == "建筑修缮措施二" || 工程量.调差类型 == "建筑拆除措施二"
		:
		工程量.数量 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 * 5/100 * 40/100;
	  };
	->:0;} / parent.数量 * #{
	  ->@工程信息.工程类型 == "配网":工程量.@_@人工调差系数 /100;
	  ->:
	   #{
       ->工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑措施二":@工程信息.建筑人工调差系数 /100;
       ->工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑修缮措施二":@工程信息.建筑修缮人工调差系数 /100;
       ->工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑拆除措施二":@工程信息.建筑拆除人工调差系数 /100;
       };})
}

BEGIN:脚手架材料费
${
    sum(_过滤定额(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,
    #{
    ->工程量.脚手架计取 == "" && 工程量.脚手架计取 == "不计取"
      :0;
    ->工程量.脚手架计取 == "计取"
      :
      #{
      ->工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑措施二" || 工程量.调差类型 == "建筑修缮措施二" || 工程量.调差类型 == "建筑拆除措施二"
		:
        工程量.数量 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 * 5/100 * 50/100;
	  };
    ->:0;
    },0))
}

BEGIN:脚手架材料费_单价
${
    sum(_过滤定额(),"工程量",?
    #{
    ->工程量.脚手架计取 == "" && 工程量.脚手架计取 == "不计取"
      :0;
    ->工程量.脚手架计取 == "计取"
      :
      #{
      ->工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑措施二" || 工程量.调差类型 == "建筑修缮措施二" || 工程量.调差类型 == "建筑拆除措施二"
		:
        工程量.数量 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 * 5/100 * 50/100;
	  };
    ->:0;
    } / parent.数量)
}

BEGIN:脚手架材料价差
${
    sum(_过滤定额(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,
    #{
    ->工程量.脚手架计取 == "" && 工程量.脚手架计取 == "不计取"
      :0;
    ->工程量.脚手架计取 == "计取"
      :
      #{
      ->工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑措施二" || 工程量.调差类型 == "建筑修缮措施二" || 工程量.调差类型 == "建筑拆除措施二"
		:
        工程量.数量 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 * 5/100 * 50/100;
	};
    ->:0;
    },0) * #{
	  ->@工程信息.工程类型 == "配网" && 工程量.@_@材机按系数调差 == "是":工程量.@_@材料调差系数 /100;
	  ->:
	   #{
       ->(工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑材料调差系数 /100;
       ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮材料调差系数 /100;
       ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除材料调差系数 /100;
       };})
}

BEGIN:脚手架材料价差_单价
${
    sum(_过滤定额(),"工程量",?
    #{
    ->工程量.脚手架计取 == "" && 工程量.脚手架计取 == "不计取"
      :0;
    ->工程量.脚手架计取 == "计取"
      :
      #{
      ->工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑措施二" || 工程量.调差类型 == "建筑修缮措施二" || 工程量.调差类型 == "建筑拆除措施二"
		:
        工程量.数量 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 * 5/100 * 50/100;
	};
    ->:0;
    } / parent.数量 * #{
	  ->@工程信息.工程类型 == "配网" && 工程量.@_@材机按系数调差 == "是":工程量.@_@材料调差系数 /100;
	  ->:
	   #{
       ->(工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑材料调差系数 /100;
       ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮材料调差系数 /100;
       ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除材料调差系数 /100;
       };})
}

BEGIN:脚手架机械费
${
    sum(_过滤定额(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,
    #{
    ->工程量.脚手架计取 == "" && 工程量.脚手架计取 == "不计取"
      :0;
    ->工程量.脚手架计取 == "计取"
      :      
      #{
	  ->工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑措施二" || 工程量.调差类型 == "建筑修缮措施二" || 工程量.调差类型 == "建筑拆除措施二"
		:
		工程量.数量 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 *  5/100 * 10/100;
	   };
    ->:0;},0))
}

BEGIN:脚手架机械费_单价
${
    sum(_过滤定额(),"工程量",?
    #{
    ->工程量.脚手架计取 == "" && 工程量.脚手架计取 == "不计取"
      :0;
    ->工程量.脚手架计取 == "计取"
      :      
      #{
	  ->工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑措施二" || 工程量.调差类型 == "建筑修缮措施二" || 工程量.调差类型 == "建筑拆除措施二"
		:
		工程量.数量 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 *  5/100 * 10/100;
	   };
    ->:0;} / parent.数量)
}

BEGIN:脚手架机械价差
${
    sum(_过滤定额(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,
    #{
    ->工程量.脚手架计取 == "" && 工程量.脚手架计取 == "不计取"
      :0;
    ->工程量.脚手架计取 == "计取"
      :      
      #{
	  ->工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑措施二" || 工程量.调差类型 == "建筑修缮措施二" || 工程量.调差类型 == "建筑拆除措施二"
		:
		工程量.数量 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 *  5/100 * 10/100;
	  };
    ->:0;},0) * #{
	  ->@工程信息.工程类型 == "配网" && 工程量.@_@材机按系数调差 == "是":工程量.@_@机械调差系数 /100;
	  ->:
	   #{	
       ->(工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑机械调差系数 /100;
       ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮机械调差系数 /100;
       ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除机械调差系数 /100;
       };})
}

BEGIN:脚手架机械价差_单价
${
    sum(_过滤定额(),"工程量",?
    #{
    ->工程量.脚手架计取 == "" && 工程量.脚手架计取 == "不计取"
      :0;
    ->工程量.脚手架计取 == "计取"
      :      
      #{
	  ->工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑措施二" || 工程量.调差类型 == "建筑修缮措施二" || 工程量.调差类型 == "建筑拆除措施二"
		:
		工程量.数量 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 *  5/100 * 10/100;
	  };
    ->:0;} / parent.数量 * #{
	  ->@工程信息.工程类型 == "配网" && 工程量.@_@材机按系数调差 == "是":工程量.@_@机械调差系数 /100;
	  ->:
	   #{	
       ->(工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑机械调差系数 /100;
       ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮机械调差系数 /100;
       ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除机械调差系数 /100;
       };})
}

//------------------调试费计算-------------------------------------------
BEGIN:调试人工费
${
    sum(_过滤定额(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,
    #{
    ->工程量.调试费计取 == "" && 工程量.调试费计取 == "不计取"
      :0;	
    ->工程量.调试费计取  == "计取" && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
      :
	  工程量.数量 * 工程量.人工费 * 工程量.定额系数 * 工程量.人工系数 * #{                 
	  ->in(工程量.编码,"JYT16-128~170"):10/100 * 40/100;
	  ->in(工程量.编码,"JYT17-1~189"):18/100 * 55/100;
	  ->in(工程量.编码,"JYT18-1~195"):13/100 * 55/100 * #{
		->in(工程量.编码,"JYT18-1~15,JYT18-25~28,JYT18-185~189"):40/100;
		->in(工程量.编码,"JYT18-123~132"):25/100;
		->in(工程量.编码,"JYT18-133~134"):14/100;
		->in(工程量.编码,"JYT18-163~170"):28/100;
		->:1;};
	  ->in(工程量.编码,"JYT19-1~79"):15/100 * 50/100;
		};
    ->:0;						
    },0))
}

BEGIN:调试人工费_单价
${
    sum(_过滤定额(),"工程量",?
    #{
    ->工程量.调试费计取 == "" && 工程量.调试费计取 == "不计取"
      :0;	
    ->工程量.调试费计取  == "计取" && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
      :
	  工程量.数量 * 工程量.人工费 * 工程量.定额系数 * 工程量.人工系数 * #{                 
	  ->in(工程量.编码,"JYT16-128~170"):10/100 * 40/100;
	  ->in(工程量.编码,"JYT17-1~189"):18/100 * 55/100;
	  ->in(工程量.编码,"JYT18-1~195"):13/100 * 55/100 * #{
		->in(工程量.编码,"JYT18-1~15,JYT18-25~28,JYT18-185~189"):40/100;
		->in(工程量.编码,"JYT18-123~132"):25/100;
		->in(工程量.编码,"JYT18-133~134"):14/100;
		->in(工程量.编码,"JYT18-163~170"):28/100;
		->:1;};
	  ->in(工程量.编码,"JYT19-1~79"):15/100 * 50/100;
		};
    ->:0;						
    } / parent.数量)
}

BEGIN:调试人工价差
${
    sum(_过滤定额(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,
	#{
    ->工程量.调试费计取 == "" && 工程量.调试费计取 == "不计取"
      :0;	
    ->工程量.调试费计取  == "计取" && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
      :
	  工程量.数量 * 工程量.人工费 * 工程量.定额系数 * 工程量.人工系数 * #{                    
	  ->in(工程量.编码,"JYT16-128~170"):10/100 * 40/100;
	  ->in(工程量.编码,"JYT17-1~189"):18/100 * 55/100;
	  ->in(工程量.编码,"JYT18-1~195"):13/100 * 55/100 * #{ 
		->in(工程量.编码,"JYT18-1~15,JYT18-25~28,JYT18-185~189"):40/100;
		->in(工程量.编码,"JYT18-123~132"):25/100;
		->in(工程量.编码,"JYT18-133~134"):14/100;
		->in(工程量.编码,"JYT18-163~170"):28/100;
		->:1;};
	  ->in(工程量.编码,"JYT19-1~79"):15/100 * 50/100;
		};
    ->:0;						
    },0)* #{
	  ->@工程信息.工程类型 == "配网":工程量.@_@人工调差系数 /100;
	  ->:
	   #{	
       ->工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑措施二":@工程信息.建筑人工调差系数 /100;
       ->工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑修缮措施二":@工程信息.建筑修缮人工调差系数 /100;
       ->工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑拆除措施二":@工程信息.建筑拆除人工调差系数 /100;
       };})
}

BEGIN:调试人工价差_单价
${
    sum(_过滤定额(),"工程量", ?
	#{
    ->工程量.调试费计取 == "" && 工程量.调试费计取 == "不计取"
      :0;	
    ->工程量.调试费计取  == "计取" && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
      :
	  工程量.数量 * 工程量.人工费 * 工程量.定额系数 * 工程量.人工系数 * #{                    
	  ->in(工程量.编码,"JYT16-128~170"):10/100 * 40/100;
	  ->in(工程量.编码,"JYT17-1~189"):18/100 * 55/100;
	  ->in(工程量.编码,"JYT18-1~195"):13/100 * 55/100 * #{ 
		->in(工程量.编码,"JYT18-1~15,JYT18-25~28,JYT18-185~189"):40/100;
		->in(工程量.编码,"JYT18-123~132"):25/100;
		->in(工程量.编码,"JYT18-133~134"):14/100;
		->in(工程量.编码,"JYT18-163~170"):28/100;
		->:1;};
	  ->in(工程量.编码,"JYT19-1~79"):15/100 * 50/100;
		};
    ->:0;						
    } / parent.数量 * #{
	  ->@工程信息.工程类型 == "配网":工程量.@_@人工调差系数 /100;
	  ->:
	   #{	
       ->工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑措施二":@工程信息.建筑人工调差系数 /100;
       ->工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑修缮措施二":@工程信息.建筑修缮人工调差系数 /100;
       ->工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑拆除措施二":@工程信息.建筑拆除人工调差系数 /100;
       };})
}

BEGIN:调试材料费
${
    sum(_过滤定额(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,
	#{
    ->工程量.调试费计取 == "" && 工程量.调试费计取 == "不计取"
      :0;
    ->工程量.调试费计取  == "计取" && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
      :
      工程量.数量 * 工程量.人工费 * 工程量.定额系数 * 工程量.人工系数 * #{
	  ->in(工程量.编码,"JYT16-128~170"):10/100 * 20/100;
	  ->in(工程量.编码,"JYT17-1~189"):18/100 * 20/100;
	  ->in(工程量.编码,"JYT18-1~195"):13/100 * 20/100 * #{ 
		->in( 工程量.编码,"JYT18-1~15,JYT18-25~28,JYT18-185~189" ):40/100;
		->in( 工程量.编码,"JYT18-123~132"):25/100;
		->in( 工程量.编码,"JYT18-133~134"):14/100;
		->in( 工程量.编码,"JYT18-163~170"):28/100;
		->:1;};
	  ->in(工程量.编码,"JYT19-1~79"):15/100 * 30/100;					
	};
    ->:0;},0))
}

BEGIN:调试材料费_单价
${
    sum(_过滤定额(),"工程量",?
	#{
    ->工程量.调试费计取 == "" && 工程量.调试费计取 == "不计取"
      :0;
    ->工程量.调试费计取  == "计取" && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
      :
      工程量.数量 * 工程量.人工费 * 工程量.定额系数 * 工程量.人工系数 * #{
	  ->in(工程量.编码,"JYT16-128~170"):10/100 * 20/100;
	  ->in(工程量.编码,"JYT17-1~189"):18/100 * 20/100;
	  ->in(工程量.编码,"JYT18-1~195"):13/100 * 20/100 * #{ 
		->in( 工程量.编码,"JYT18-1~15,JYT18-25~28,JYT18-185~189" ):40/100;
		->in( 工程量.编码,"JYT18-123~132"):25/100;
		->in( 工程量.编码,"JYT18-133~134"):14/100;
		->in( 工程量.编码,"JYT18-163~170"):28/100;
		->:1;};
	  ->in(工程量.编码,"JYT19-1~79"):15/100 * 30/100;					
	};
    ->:0;} / parent.数量)
}

BEGIN:调试材料价差
${
    sum(_过滤定额(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,
	#{
    ->工程量.调试费计取 == "" && 工程量.调试费计取 == "不计取"
      :0;
    ->工程量.调试费计取  == "计取" && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
      :
      工程量.数量 * 工程量.人工费 * 工程量.定额系数 * 工程量.人工系数 * #{
	  ->in(工程量.编码,"JYT16-128~170"):10/100 * 20/100;
	  ->in(工程量.编码,"JYT17-1~189"):18/100 * 20/100;
	  ->in(工程量.编码,"JYT18-1~195"):13/100 * 20/100 * #{ 
		->in( 工程量.编码,"JYT18-1~15,JYT18-25~28,JYT18-185~189"):40/100;
		->in( 工程量.编码,"JYT18-123~132"):25/100;
		->in( 工程量.编码,"JYT18-133~134"):14/100;
		->in( 工程量.编码,"JYT18-163~170"):28/100;
		->:1;};
	  ->in(工程量.编码,"JYT19-1~79"):15/100 * 30/100;					
	};
    ->:0;},0) * #{
	  ->@工程信息.工程类型 == "配网" && 工程量.@_@材机按系数调差 == "是":工程量.@_@材料调差系数 /100;
	  ->:
	   #{	
       ->(工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑材料调差系数 /100;
       ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮材料调差系数 /100;
       ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除材料调差系数 /100;
        };})
}

BEGIN:调试材料价差_单价
${
    sum(_过滤定额(),"工程量",?
	#{
    ->工程量.调试费计取 == "" && 工程量.调试费计取 == "不计取"
      :0;
    ->工程量.调试费计取  == "计取" && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
      :
      工程量.数量 * 工程量.人工费 * 工程量.定额系数 * 工程量.人工系数 * #{
	  ->in(工程量.编码,"JYT16-128~170"):10/100 * 20/100;
	  ->in(工程量.编码,"JYT17-1~189"):18/100 * 20/100;
	  ->in(工程量.编码,"JYT18-1~195"):13/100 * 20/100 * #{ 
		->in( 工程量.编码,"JYT18-1~15,JYT18-25~28,JYT18-185~189"):40/100;
		->in( 工程量.编码,"JYT18-123~132"):25/100;
		->in( 工程量.编码,"JYT18-133~134"):14/100;
		->in( 工程量.编码,"JYT18-163~170"):28/100;
		->:1;};
	  ->in(工程量.编码,"JYT19-1~79"):15/100 * 30/100;					
	};
    ->:0;} / parent.数量 * #{
	  ->@工程信息.工程类型 == "配网" && 工程量.@_@材机按系数调差 == "是":工程量.@_@材料调差系数 /100;
	  ->:
	   #{	
       ->(工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑材料调差系数 /100;
       ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮材料调差系数 /100;
       ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除材料调差系数 /100;
        };})
}

BEGIN:调试机械费
${
    sum(_过滤定额(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,
	#{
    ->工程量.调试费计取 == "" && 工程量.调试费计取 == "不计取"
      :0;
    ->工程量.调试费计取  == "计取" && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
      :
      工程量.数量 * 工程量.人工费 * 工程量.定额系数 * 工程量.人工系数 * #{
	  ->in(工程量.编码,"JYT16-128~170"):10/100 * 40/100;
	  ->in(工程量.编码,"JYT17-1~189"):18/100 * 25/100;
	  ->in(工程量.编码,"JYT18-1~195"):13/100 * 25/100 * #{ 
		->in(工程量.编码,"JYT18-1~15,JYT18-25~28,JYT18-185~189"):40/100;
		->in(工程量.编码,"JYT18-123~132"):25/100;
		->in(工程量.编码,"JYT18-133~134"):14/100;
		->in(工程量.编码,"JYT18-163~170"):28/100;
		->:1;};
	  ->in(工程量.编码,"JYT19-1~79"):15/100 * 20/100;
	  };
	  ->:0;},0))		 
}

BEGIN:调试机械费_单价
${
    sum(_过滤定额(),"工程量",?
	#{
    ->工程量.调试费计取 == "" && 工程量.调试费计取 == "不计取"
      :0;
    ->工程量.调试费计取  == "计取" && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
      :
      工程量.数量 * 工程量.人工费 * 工程量.定额系数 * 工程量.人工系数 * #{
	  ->in(工程量.编码,"JYT16-128~170"):10/100 * 40/100;
	  ->in(工程量.编码,"JYT17-1~189"):18/100 * 25/100;
	  ->in(工程量.编码,"JYT18-1~195"):13/100 * 25/100 * #{ 
		->in(工程量.编码,"JYT18-1~15,JYT18-25~28,JYT18-185~189"):40/100;
		->in(工程量.编码,"JYT18-123~132"):25/100;
		->in(工程量.编码,"JYT18-133~134"):14/100;
		->in(工程量.编码,"JYT18-163~170"):28/100;
		->:1;};
	  ->in(工程量.编码,"JYT19-1~79"):15/100 * 20/100;
	  };
	  ->:0;} / parent.数量)		 
}

BEGIN:调试机械价差
${
    sum(_过滤定额(),"工程量",?iif(parent.type == "清单" && parent.数量 != 0,
	#{
    ->工程量.调试费计取 == "" && 工程量.调试费计取 == "不计取"
      :0;
    ->工程量.调试费计取  == "计取" && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
      :
      工程量.数量 * 工程量.人工费 * 工程量.定额系数 * 工程量.人工系数 * #{
	  ->in(工程量.编码,"JYT16-128~170"):10/100 * 40/100;
	  ->in(工程量.编码,"JYT17-1~189"):18/100 * 25/100;
	  ->in(工程量.编码,"JYT18-1~195"):13/100 * 25/100 * #{ 
		->in(工程量.编码,"JYT18-1~15,JYT18-25~28,JYT18-185~189"):40/100;
		->in(工程量.编码,"JYT18-123~132"):25/100;
		->in(工程量.编码,"JYT18-133~134"):14/100;
		->in(工程量.编码,"JYT18-163~170"):28/100;
		->:1;};
	  ->in(工程量.编码,"JYT19-1~79"):15/100 * 20/100;
	  };
	  ->:0;},0) * #{
	  ->@工程信息.工程类型 == "配网" && 工程量.@_@材机按系数调差 == "是":工程量.@_@机械调差系数 /100;
	  ->:
	   #{	  
       ->(工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑机械调差系数 /100;
       ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮机械调差系数 /100;
       ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除机械调差系数 /100;
       };})		 
}

BEGIN:调试机械价差_单价
${
    sum(_过滤定额(),"工程量",?
	#{
    ->工程量.调试费计取 == "" && 工程量.调试费计取 == "不计取"
      :0;
    ->工程量.调试费计取  == "计取" && (工程量.调差类型 == "建筑措施二" || 工程量.调差类型=="建筑" || 工程量.调差类型=="建筑修缮措施二"  || 工程量.调差类型=="建筑修缮" || (@工程信息.工程性质=="检修" && 工程量.调差类型=="建筑拆除"))
      :
      工程量.数量 * 工程量.人工费 * 工程量.定额系数 * 工程量.人工系数 * #{
	  ->in(工程量.编码,"JYT16-128~170"):10/100 * 40/100;
	  ->in(工程量.编码,"JYT17-1~189"):18/100 * 25/100;
	  ->in(工程量.编码,"JYT18-1~195"):13/100 * 25/100 * #{ 
		->in(工程量.编码,"JYT18-1~15,JYT18-25~28,JYT18-185~189"):40/100;
		->in(工程量.编码,"JYT18-123~132"):25/100;
		->in(工程量.编码,"JYT18-133~134"):14/100;
		->in(工程量.编码,"JYT18-163~170"):28/100;
		->:1;};
	  ->in(工程量.编码,"JYT19-1~79"):15/100 * 20/100;
	  };
	  ->:0;} / parent.数量 * #{
	  ->@工程信息.工程类型 == "配网" && 工程量.@_@材机按系数调差 == "是":工程量.@_@机械调差系数 /100;
	  ->:
	   #{	  
       ->(工程量.调差类型 == "建筑" || 工程量.调差类型 == "建筑措施二") && @工程信息.建筑材机按系数调差 == "是":@工程信息.建筑机械调差系数 /100;
       ->(工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "建筑修缮措施二") && @工程信息.建筑修缮材机按系数调差 == "是":@工程信息.建筑修缮机械调差系数 /100;
       ->(工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "建筑拆除措施二") && @工程信息.建筑拆除材机按系数调差 == "是":@工程信息.建筑拆除机械调差系数 /100;
       };})		 
}

//------------------过滤条件----------------------------------------------
BEGIN:_过滤一笔性费用
${
    filter(source,"工程量",?工程量.type =="一笔性费用")
}

BEGIN:_过滤主材
${
    filter(source,"工程量",?
	#{
    ->@工程信息.工程性质 == "技改"
	:
	工程量.type =="主材" && 工程量.设备性材料 == 0;
	->@工程信息.工程性质 == "检修"
	:
	工程量.type =="配件" && 工程量.配件类型 == "主材";
   })	
}

BEGIN:_过滤设备性材料
${
	filter(source,"工程量",?@工程信息.工程性质 == "技改" &&  工程量.type =="主材" && 工程量.设备性材料 == 1)
}

BEGIN:_过滤甲供设备
${ 
	filter(source,"工程量",?#{
    ->@工程信息.工程性质 == "技改"
	:
	工程量.type =="设备" && 工程量.供货方 == "甲供";
	->@工程信息.工程性质 == "检修"
	:
	工程量.type =="配件" && 工程量.配件类型 == "配件" && 工程量.供货方 == "甲供";
    })	
}

BEGIN:_过滤乙供设备
${
	filter(source,"工程量",?#{
    ->@工程信息.工程性质 == "技改"
	:
	工程量.type =="设备" && 工程量.供货方 == "乙供";
	->@工程信息.工程性质 == "检修"
	:
	工程量.type =="配件" && 工程量.配件类型 == "配件" && 工程量.供货方 == "乙供";
    })
}

BEGIN:_过滤定额
${
    filter(source,"工程量",?工程量.type =="定额")
}

BEGIN:_过滤人工
${
    filter(items,"人材机",?人材机.type == "人工")
}

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

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

BEGIN:_过滤甲供子项
${
    filter(items,"子项",?子项.供货方 == "甲供")
}

BEGIN:_过滤甲供配送子项
${
    filter(items,"子项",?子项.供货方 == "甲供" && 子项.集中配送 == "1")
}

BEGIN:_过滤甲供卸车子项
${
    filter(items,"子项",?子项.供货方 == "甲供" && 子项.卸车 == "1")
}

BEGIN:_过滤甲供保管子项
${
    filter(items,"子项",?子项.供货方 == "甲供" && 子项.保管 == "1")
}

BEGIN:_过滤乙供子项
${
    filter(items,"子项",?子项.供货方 == "乙供")
}

BEGIN:_过滤人工计日工
${
    filter(source,"工程量",?工程量.type =="人工")
} 

BEGIN:_过滤甲供材料计日工
${
    filter(source,"工程量",?工程量.type =="材料" && 工程量.供货方 =="甲供")
} 

BEGIN:_过滤乙供材料计日工
${
    filter(source,"工程量",?工程量.type =="材料" && 工程量.供货方 =="乙供")
} 

BEGIN:_过滤机械计日工
${
    filter(source,"工程量",?工程量.type =="机械")
} 

//------------------过滤条件(业务未使用，开发确认是否使用)----------------------------------------------
BEGIN:_过滤甲供主材拆分
${
    filter(source,"工程量",?#{
   ->@工程信息.工程性质 == "技改"
	:工程量.type =="主材" && 工程量.供货方 == "甲供" && parent.type == "主材";
   ->@工程信息.工程性质 == "检修"
	:工程量.type =="配件" && 工程量.供货方 == "甲供" && 工程量.物料类型 == "主材" && parent.type == "配件";
    })
}
	
//BEGIN:_过滤甲供主材拆分
//${
//    filter(source,"工程量",?工程量.type =="主材" && 工程量.供货方 == "甲供" && parent.type == "主材")
//}	

BEGIN:_过滤乙供主材拆分
${
   filter(source,"工程量",?#{
   ->@工程信息.工程性质 == "技改"
	:工程量.type =="主材" && 工程量.供货方 == "乙供" && parent.type == "主材";
   ->@工程信息.工程性质 == "检修"
	:工程量.type =="配件" && 工程量.供货方 == "乙供" && 工程量.物料类型 == "主材" && parent.type == "配件";
    })
}

//BEGIN:_过滤乙供主材拆分
//${
//   filter(source,"工程量",?工程量.type =="主材" && 工程量.供货方 == "乙供" && parent.type == "主材")
//}

BEGIN:_过滤配件
${
    filter(source,"工程量",?工程量.type =="配件")
}

BEGIN:_过滤建筑性材料配件
${
    filter(source,"工程量",?工程量.type =="配件" && (工程量.物料类型 == "建筑类修缮材料" || 工程量.拆分 == 1))
}

BEGIN:_过滤非建筑性材料配件
${
    filter(source,"工程量",?工程量.type =="配件" && 工程量.物料类型 != "建筑类修缮材料")
}

BEGIN:_过滤甲供配件子项
${
    filter(items,"子项",?子项.type == "配件" && 子项.供货方 == "甲供")
}

BEGIN:_过滤甲供建筑性材料配件子项
${
    filter(items,"子项",?子项.type == "配件" && 子项.供货方 == "甲供" && 子项.物料类型 == "建筑类修缮材料")
}

BEGIN:_过滤甲供非建筑性材料配件子项
${
    filter(items,"子项",?子项.type == "配件" && 子项.供货方 == "甲供" && 子项.物料类型 != "建筑类修缮材料")
}

BEGIN:_过滤乙供配件子项
${
    filter(items,"子项",?子项.type == "配件" && 子项.供货方 == "乙供")
}

BEGIN:_过滤乙供建筑性材料配件子项
${
    filter(items,"子项",?子项.type == "配件" && 子项.供货方 == "乙供" && 子项.物料类型 == "建筑类修缮材料")
}

BEGIN:_过滤乙供非建筑性材料配件子项
${
    filter(items,"子项",?子项.type == "配件" && 子项.供货方 == "乙供" && 子项.物料类型 != "建筑类修缮材料")
}

BEGIN:_过滤材料计日工
${
    filter(source,"工程量",?工程量.type =="材料")
} 

BEGIN:_过滤定额的主材配件子项
${
    ?#{
	->@工程信息.工程性质 == "技改"
	:
	filter(items,"主材配件",?主材配件.type =="主材");
	->@工程信息.工程性质 == "检修"
	:
	filter(items,"主材配件",?主材配件.type =="配件");
	}
} 

