//***********************************************************************************2023年1月31日***消材恢复区分甲乙供******//

BEGIN:_乙供材料费不含税_不含特殊费
${
	? (定额.材料费-定额.甲供材料费) * 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
}

BEGIN:_甲供材料费含税_不含特殊费
${
	? 定额.甲供材料费_含税  * 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
}

//////////*****20240511新增甲供材料费不含税*****/////////////////////////
BEGIN:甲供材料费不含税
${
	sum(_过滤定额(), "定额" , ?_甲供材料费不含税_不含特殊费())
}

BEGIN:乙供材料费含税
${
	? _乙供材料费含税_不含特殊费()
}

BEGIN:_甲供材料费不含税_不含特殊费
${
	? 定额.甲供材料费  * 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
}

BEGIN:_乙供材料费含税_不含特殊费
${
    sum(_过滤定额(), "定额", ? (_乙供普通材料含税() + _乙供拆分子项材料含税()) * 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率())
}

BEGIN:_乙供普通材料含税
${
	sum(_过滤乙供普通材料_Items(), "人材机", 
	?#{ 
		->人材机.名称 != "其他材料费" &&(人材机.单位 != "元" ||人材机.单位 != "%")
		:
		人材机.预算价含税 * 人材机.数量;	
		->人材机.名称 =="其他材料费" && 人材机.单位 =="元"
		:
		人材机.数量;
		->人材机.名称 =="其他材料费" && 人材机.单位 =="%"
		:
		_变量_乙供其他费_材料_％_算法2_();
		
	}
	) 
}

BEGIN:_乙供拆分子项材料含税
${
	?sum(_过滤拆分材料_Items(), "材料", 	
			?sum(items, "拆分子项",
			?#{				
				->拆分子项.供货方 == "乙供" && 拆分子项.type == "材料" 
				:
				拆分子项.预算价含税* round(?拆分子项.数量,4) * 材料.数量 ;
			}
		)
	)
}











BEGIN:_机械费_不含特殊费
${
		? (1 + _定额地形系数_机械增加()) * 定额.机械费 * 定额.机械系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
}

//20200208新增_甲供材料费价差_不含特殊费及其相关变量//
BEGIN:_甲供材料费价差_不含特殊费
${
	sum(_过滤定额(), "定额", 
		?#{			
			->@价差系数.安装材机系数调差 != 1 && @价差系数.人工系数调差 != 1 && @价差系数.安装拆除材机系数调差 != 1 
			:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"|| (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"|| (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") ||parent.调差类型 == "安装拆除"
			   :
			  (_甲供普通材料费价差计算_按市场调() + _甲供拆分材料费价差计算_人材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
             }
			;
            ->@价差系数.安装材机系数调差 != 1 && @价差系数.人工系数调差 != 1 && @价差系数.安装拆除材机系数调差 == 1
			:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"|| (parent.调差类型 == "安装" && parent.专业类型 == "余物清理")
			   :
			   (_甲供普通材料费价差计算_按市场调() + _甲供拆分材料费价差计算_人材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
			  ->parent.调差类型 == "安装拆除"
			   :
			   (_甲供普通材料费价差计算_按系数调()+_甲供拆分材料费价差计算_人工市场_材机系数())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
				}
				;
			->@价差系数.安装材机系数调差 == 1 && @价差系数.人工系数调差 != 1 && @价差系数.安装拆除材机系数调差 != 1
			:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.调差类型 == "安装拆除"
			   :
			   (_甲供普通材料费价差计算_按市场调() + _甲供拆分材料费价差计算_人材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
			  -> parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"|| (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") 
			   :
			   (_甲供普通材料费价差计算_按系数调()+_甲供拆分材料费价差计算_人工市场_材机系数())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
				}	
				 ;
			->@价差系数.安装材机系数调差 == 1 && @价差系数.人工系数调差 != 1 && @价差系数.安装拆除材机系数调差 == 1
				:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" 
			   :
			   (_甲供普通材料费价差计算_按市场调() + _甲供拆分材料费价差计算_人材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
			  -> parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" || (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") || parent.调差类型 == "安装拆除"
			   :
			   (_甲供普通材料费价差计算_按系数调()+_甲供拆分材料费价差计算_人工市场_材机系数())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
				}
				 ;
			->@价差系数.安装材机系数调差 == 1 && @价差系数.人工系数调差 == 1 && @价差系数.安装拆除材机系数调差 == 1
				:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" 
			   :
			   (_甲供普通材料费价差计算_按市场调() + _甲供拆分材料费价差计算_人工系数_材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
			  -> parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" || (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") || parent.调差类型 == "安装拆除"
			   :
			   (_甲供普通材料费价差计算_按系数调()+_甲供拆分材料费价差计算_人材机系数())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
				}
				 ;
			->@价差系数.安装材机系数调差 == 1 && @价差系数.人工系数调差 == 1 && @价差系数.安装拆除材机系数调差 != 1
				:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.调差类型 == "安装拆除"
			   :
			   (_甲供普通材料费价差计算_按市场调() + _甲供拆分材料费价差计算_人工系数_材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
			  -> parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" || (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") 
			   :
			   (_甲供普通材料费价差计算_按系数调()+_甲供拆分材料费价差计算_人材机系数())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
				}
				 ;
			->@价差系数.安装材机系数调差 != 1 && @价差系数.人工系数调差 == 1 && @价差系数.安装拆除材机系数调差 == 1
				:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" || (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") 
			   :
			   (_甲供普通材料费价差计算_按市场调() + _甲供拆分材料费价差计算_人工系数_材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
			  -> parent.调差类型 == "安装拆除"
			   :
			   (_甲供普通材料费价差计算_按系数调()+_甲供拆分材料费价差计算_人材机系数())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
				}
			 ;
			->@价差系数.安装材机系数调差 != 1 && @价差系数.人工系数调差 == 1 && @价差系数.安装拆除材机系数调差 != 1
			  :
			 #{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" || (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") ||parent.调差类型 == "安装拆除"
			 :
			   (_甲供普通材料费价差计算_按市场调() + _甲供拆分材料费价差计算_人工系数_材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			 ;
			 }
			 ;
		}
	)
}

BEGIN:_甲供普通材料费价差计算_按市场调
${
	sum(_过滤甲供普通材料_Items(), "人材机", ?(人材机.市场价含税 - 人材机.预算价含税) * 人材机.数量) 
}

BEGIN:_甲供普通材料费价差计算_按系数调
${
	sum(_过滤甲供普通材料_Items(), "人材机", ?人材机.预算价含税*_材料调差系数() * 人材机.数量) 
}

BEGIN:_甲供拆分材料费价差计算_人工系数_材机市场
${
	?sum(_过滤拆分材料_Items(), "材料", 	
		?sum(items, "拆分子项",
			?#{				
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "人工" 
				:
				拆分子项.预算价含税 * _人工调差系数_拆分材机() * round(?拆分子项.数量,4) * 材料.数量 ;	
				
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "机械" 
				:
				(拆分子项.市场价含税 - 拆分子项.预算价含税)* round(?拆分子项.数量,4) * 材料.数量 ;
				
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "材料" 
				:
				(拆分子项.市场价含税 - 拆分子项.预算价含税)* round(?拆分子项.数量,4) * 材料.数量 ;
			}
		)
	)
}

BEGIN:_甲供拆分材料费价差计算_人材机系数
${
	?sum(_过滤拆分材料_Items(), "材料", 	
		?sum(items, "拆分子项",
			?#{
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "人工"  
				:
				拆分子项.预算价含税 * _人工调差系数_拆分材机() * round(?拆分子项.数量,4) * 材料.数量 ;
				
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "机械" 
				:
				拆分子项.预算价含税* _机械调差系数_拆分材机() * round(?拆分子项.数量,4) * 材料.数量;
				
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "材料"
				:
				拆分子项.预算价含税* _材料调差系数_拆分材机() * round(?拆分子项.数量,4) * 材料.数量;
			}
		)
	)
}

BEGIN:_甲供拆分材料费价差计算_人工市场_材机系数
${
	?sum(_过滤拆分材料_Items(), "材料", 
		?sum(items, "拆分子项",
			?#{
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "人工" 
				:
				(拆分子项.市场价含税 - 拆分子项.预算价含税)* round(?拆分子项.数量,4)* 材料.数量;
				
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "机械"
				:
				拆分子项.预算价含税 * _机械调差系数_拆分材机() * round(?拆分子项.数量,4) * 材料.数量 ;
				
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "材料"
				:
				拆分子项.预算价含税* _材料调差系数_拆分材机()* round(?拆分子项.数量,4) * 材料.数量;
			}
		)
	)
}

BEGIN:_甲供拆分材料费价差计算_人材机市场
${
	?sum(_过滤拆分材料_Items(), "材料", 
		?sum(items, "拆分子项",
			?#{
				->拆分子项.供货方 == "甲供" 
				:
				(拆分子项.市场价含税 - 拆分子项.预算价含税)* round(?拆分子项.数量,4)* 材料.数量;
			
			}
		)	
	)
}


//////////////*******20240513新增甲供材料费价差不含税相关变量*******//////////////

BEGIN:_甲供材料费价差不含税_不含特殊费
${
	sum(_过滤定额(), "定额", 
		?#{			
			->@价差系数.安装材机系数调差 != 1 && @价差系数.人工系数调差 != 1 && @价差系数.安装拆除材机系数调差 != 1 
			:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"|| (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"|| (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") ||parent.调差类型 == "安装拆除"
			   :
			  (_甲供普通材料费价差不含税计算_按市场调() + _甲供拆分材料费价差不含税计算_人材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
             }
			;
            ->@价差系数.安装材机系数调差 != 1 && @价差系数.人工系数调差 != 1 && @价差系数.安装拆除材机系数调差 == 1
			:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"|| (parent.调差类型 == "安装" && parent.专业类型 == "余物清理")
			   :
			   (_甲供普通材料费价差不含税计算_按市场调() + _甲供拆分材料费价差不含税计算_人材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
			  ->parent.调差类型 == "安装拆除"
			   :
			   (_甲供普通材料费价差不含税计算_按系数调()+_甲供拆分材料费价差不含税计算_人工市场_材机系数())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
				}
				;
			->@价差系数.安装材机系数调差 == 1 && @价差系数.人工系数调差 != 1 && @价差系数.安装拆除材机系数调差 != 1
			:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.调差类型 == "安装拆除"
			   :
			   (_甲供普通材料费价差不含税计算_按市场调() + _甲供拆分材料费价差不含税计算_人材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
			  -> parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"|| (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") 
			   :
			   (_甲供普通材料费价差不含税计算_按系数调()+_甲供拆分材料费价差不含税计算_人工市场_材机系数())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
				}	
				 ;
			->@价差系数.安装材机系数调差 == 1 && @价差系数.人工系数调差 != 1 && @价差系数.安装拆除材机系数调差 == 1
				:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" 
			   :
			   (_甲供普通材料费价差不含税计算_按市场调() + _甲供拆分材料费价差不含税计算_人材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
			  -> parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" || (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") || parent.调差类型 == "安装拆除"
			   :
			   (_甲供普通材料费价差不含税计算_按系数调()+_甲供拆分材料费价差不含税计算_人工市场_材机系数())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
				}
				 ;
			->@价差系数.安装材机系数调差 == 1 && @价差系数.人工系数调差 == 1 && @价差系数.安装拆除材机系数调差 == 1
				:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" 
			   :
			   (_甲供普通材料费价差不含税计算_按市场调() + _甲供拆分材料费价差不含税计算_人工系数_材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
			  -> parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" || (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") || parent.调差类型 == "安装拆除"
			   :
			   (_甲供普通材料费价差不含税计算_按系数调()+_甲供拆分材料费价差不含税计算_人材机系数())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
				}
				 ;
			->@价差系数.安装材机系数调差 == 1 && @价差系数.人工系数调差 == 1 && @价差系数.安装拆除材机系数调差 != 1
				:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.调差类型 == "安装拆除"
			   :
			   (_甲供普通材料费价差不含税计算_按市场调() + _甲供拆分材料费价差不含税计算_人工系数_材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
			  -> parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" || (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") 
			   :
			   (_甲供普通材料费价差不含税计算_按系数调()+_甲供拆分材料费价差不含税计算_人材机系数())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
				}
				 ;
			->@价差系数.安装材机系数调差 != 1 && @价差系数.人工系数调差 == 1 && @价差系数.安装拆除材机系数调差 == 1
				:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" || (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") 
			   :
			   (_甲供普通材料费价差不含税计算_按市场调() + _甲供拆分材料费价差不含税计算_人工系数_材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
			  -> parent.调差类型 == "安装拆除"
			   :
			   (_甲供普通材料费价差不含税计算_按系数调()+_甲供拆分材料费价差不含税计算_人材机系数())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
				}
			 ;
			->@价差系数.安装材机系数调差 != 1 && @价差系数.人工系数调差 == 1 && @价差系数.安装拆除材机系数调差 != 1
			  :
			 #{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" || (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") ||parent.调差类型 == "安装拆除"
			 :
			   (_甲供普通材料费价差不含税计算_按市场调() + _甲供拆分材料费价差不含税计算_人工系数_材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			 ;
			 }
			 ;
		}
	)
}

BEGIN:_甲供普通材料费价差不含税计算_按市场调
${
	sum(_过滤甲供普通材料_Items(), "人材机", ?(人材机.市场价不含税 - 人材机.预算价不含税) * 人材机.数量) 
}

BEGIN:_甲供普通材料费价差不含税计算_按系数调
${
	sum(_过滤甲供普通材料_Items(), "人材机", ?人材机.预算价不含税*_材料调差系数() * 人材机.数量) 
}

BEGIN:_甲供拆分材料费价差不含税计算_人工系数_材机市场
${
	?sum(_过滤拆分材料_Items(), "材料", 	
		?sum(items, "拆分子项",
			?#{				
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "人工" 
				:
				拆分子项.预算价不含税 * _人工调差系数_拆分材机() * round(?拆分子项.数量,4) * 材料.数量 ;	
				
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "机械" 
				:
				(拆分子项.市场价不含税 - 拆分子项.预算价不含税)* round(?拆分子项.数量,4) * 材料.数量 ;
				
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "材料" 
				:
				(拆分子项.市场价不含税 - 拆分子项.预算价不含税)* round(?拆分子项.数量,4) * 材料.数量 ;
			}
		)
	)
}

BEGIN:_甲供拆分材料费价差不含税计算_人材机系数
${
	?sum(_过滤拆分材料_Items(), "材料", 	
		?sum(items, "拆分子项",
			?#{
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "人工"  
				:
				拆分子项.预算价不含税 * _人工调差系数_拆分材机() * round(?拆分子项.数量,4) * 材料.数量 ;
				
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "机械" 
				:
				拆分子项.预算价不含税* _机械调差系数_拆分材机() * round(?拆分子项.数量,4) * 材料.数量;
				
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "材料"
				:
				拆分子项.预算价不含税* _材料调差系数_拆分材机() * round(?拆分子项.数量,4) * 材料.数量;
			}
		)
	)
}

BEGIN:_甲供拆分材料费价差不含税计算_人工市场_材机系数
${
	?sum(_过滤拆分材料_Items(), "材料", 
		?sum(items, "拆分子项",
			?#{
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "人工" 
				:
				(拆分子项.市场价不含税 - 拆分子项.预算价不含税)* round(?拆分子项.数量,4)* 材料.数量;
				
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "机械"
				:
				拆分子项.预算价不含税 * _机械调差系数_拆分材机() * round(?拆分子项.数量,4) * 材料.数量 ;
				
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "材料"
				:
				拆分子项.预算价不含税* _材料调差系数_拆分材机()* round(?拆分子项.数量,4) * 材料.数量;
			}
		)
	)
}

BEGIN:_甲供拆分材料费价差不含税计算_人材机市场
${
	?sum(_过滤拆分材料_Items(), "材料", 
		?sum(items, "拆分子项",
			?#{
				->拆分子项.供货方 == "甲供" 
				:
				(拆分子项.市场价不含税 - 拆分子项.预算价不含税)* round(?拆分子项.数量,4)* 材料.数量;
			
			}
		)	
	)
}

//20230208新增_乙供材料费价差_不含特殊费及其相关变量//
BEGIN:_乙供材料费价差_不含特殊费
${
	sum(_过滤定额(), "定额", 
		?#{			
			->@价差系数.安装材机系数调差 != 1 && @价差系数.人工系数调差 != 1 && @价差系数.安装拆除材机系数调差 != 1 
			:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"|| (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"|| (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") ||parent.调差类型 == "安装拆除"
			   :
			  (_乙供普通材料费价差计算_按市场调() + _乙供拆分材料费价差计算_人材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
             }
			;
            ->@价差系数.安装材机系数调差 != 1 && @价差系数.人工系数调差 != 1 && @价差系数.安装拆除材机系数调差 == 1
			:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"|| (parent.调差类型 == "安装" && parent.专业类型 == "余物清理")
			   :
			   (_乙供普通材料费价差计算_按市场调() + _乙供拆分材料费价差计算_人材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
			  ->parent.调差类型 == "安装拆除"
			   :
			   (_乙供普通材料费价差计算_按系数调()+_乙供拆分材料费价差计算_人工市场_材机系数())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
				}
				;
			->@价差系数.安装材机系数调差 == 1 && @价差系数.人工系数调差 != 1 && @价差系数.安装拆除材机系数调差 != 1
			:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.调差类型 == "安装拆除"
			   :
			   (_乙供普通材料费价差计算_按市场调() + _乙供拆分材料费价差计算_人材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
			  -> parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"|| (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") 
			   :
			   (_乙供普通材料费价差计算_按系数调()+_乙供拆分材料费价差计算_人工市场_材机系数())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
				}	
				 ;
			->@价差系数.安装材机系数调差 == 1 && @价差系数.人工系数调差 != 1 && @价差系数.安装拆除材机系数调差 == 1
				:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" 
			   :
			   (_乙供普通材料费价差计算_按市场调() + _乙供拆分材料费价差计算_人材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
			  -> parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" || (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") || parent.调差类型 == "安装拆除"
			   :
			   (_乙供普通材料费价差计算_按系数调()+_乙供拆分材料费价差计算_人工市场_材机系数())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
				}
				 ;
			->@价差系数.安装材机系数调差 == 1 && @价差系数.人工系数调差 == 1 && @价差系数.安装拆除材机系数调差 == 1
				:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" 
			   :
			   (_乙供普通材料费价差计算_按市场调() + _乙供拆分材料费价差计算_人工系数_材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
			  -> parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" || (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") || parent.调差类型 == "安装拆除"
			   :
			   (_乙供普通材料费价差计算_按系数调()+_乙供拆分材料费价差计算_人材机系数())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
				}
				 ;
			->@价差系数.安装材机系数调差 == 1 && @价差系数.人工系数调差 == 1 && @价差系数.安装拆除材机系数调差 != 1
				:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.调差类型 == "安装拆除"
			   :
			   (_乙供普通材料费价差计算_按市场调() + _乙供拆分材料费价差计算_人工系数_材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
			  -> parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" || (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") 
			   :
			   (_乙供普通材料费价差计算_按系数调()+_乙供拆分材料费价差计算_人材机系数())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
				}
				 ;
			->@价差系数.安装材机系数调差 != 1 && @价差系数.人工系数调差 == 1 && @价差系数.安装拆除材机系数调差 == 1
				:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" || (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") 
			   :
			   (_乙供普通材料费价差计算_按市场调() + _乙供拆分材料费价差计算_人工系数_材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
			  -> parent.调差类型 == "安装拆除"
			   :
			   (_乙供普通材料费价差计算_按系数调()+_乙供拆分材料费价差计算_人材机系数())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			   ;
				}
			 ;
			->@价差系数.安装材机系数调差 != 1 && @价差系数.人工系数调差 == 1 && @价差系数.安装拆除材机系数调差 != 1
			  :
			 #{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" || (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") ||parent.调差类型 == "安装拆除"
			 :
			   (_乙供普通材料费价差计算_按市场调() + _乙供拆分材料费价差计算_人工系数_材机市场())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()
			 ;
			 }
			 ;
		}
	)
}

BEGIN:_乙供普通材料费价差计算_按市场调
${
	sum(_过滤乙供普通材料_Items(), "人材机", ?(人材机.市场价不含税 - 人材机.预算价不含税) * 人材机.数量) 
}
BEGIN:_材料数量
${
	sum(_过滤材料_Items(), "子材机", ?1)
}
BEGIN:_乙供普通材料费价差计算_按系数调
${
	?#{
		->_材料数量() == 0
		:
				
			定额.材料费*_材料调差系数();
		
		->1==1
		:
		
			sum(_过滤乙供普通材料_Items(), "人材机", ?人材机.预算价不含税*_材料调差系数() * 人材机.数量);
		
	} 	
}

BEGIN:_乙供拆分材料费价差计算_人工系数_材机市场
${
	?sum(_过滤拆分材料_Items(), "材料", 	
		?sum(items, "拆分子项",
			?#{				
				->拆分子项.供货方 == "乙供" && 拆分子项.type == "人工" 
				:
				拆分子项.预算价不含税 * _人工调差系数_拆分材机() * round(?拆分子项.数量,4) * 材料.数量 ;	
				
				->拆分子项.供货方 == "乙供" && 拆分子项.type == "材料" 
				:
				(拆分子项.市场价不含税 - 拆分子项.预算价不含税)* round(?拆分子项.数量,4) * 材料.数量 ;
				
				->拆分子项.供货方 == "乙供" && 拆分子项.type == "机械" 
				:
				(拆分子项.市场价不含税 - 拆分子项.预算价不含税)* round(?拆分子项.数量,4) * 材料.数量 ;
			}
		)
	)
}

BEGIN:_乙供拆分材料费价差计算_人材机系数
${
	?sum(_过滤拆分材料_Items(), "材料", 	
		?sum(items, "拆分子项",
			?#{
				->拆分子项.供货方 == "乙供" && 拆分子项.type == "人工"  
				:
				拆分子项.预算价不含税 * _人工调差系数_拆分材机() * round(?拆分子项.数量,4) * 材料.数量 ;
				
				->拆分子项.供货方 == "乙供" && 拆分子项.type == "机械" 
				:
				拆分子项.预算价不含税* _机械调差系数_拆分材机() * round(?拆分子项.数量,4) * 材料.数量;
				
				->拆分子项.供货方 == "乙供" && 拆分子项.type == "材料"
				:
				拆分子项.预算价不含税* _材料调差系数_拆分材机() * round(?拆分子项.数量,4) * 材料.数量;
			}
		)
	)
}

BEGIN:_乙供拆分材料费价差计算_人工市场_材机系数
${
	?sum(_过滤拆分材料_Items(), "材料", 
		?sum(items, "拆分子项",
			?#{
				->拆分子项.供货方 == "乙供" && 拆分子项.type == "人工"  
				:
				(拆分子项.市场价不含税 - 拆分子项.预算价不含税)* round(?拆分子项.数量,4)* 材料.数量;
				
				->拆分子项.供货方 == "乙供" && 拆分子项.type == "机械" 
				:
				拆分子项.预算价不含税 * _机械调差系数_拆分材机() * round(?拆分子项.数量,4) * 材料.数量 ;
				
				->拆分子项.供货方 == "乙供" && 拆分子项.type == "材料"
				:
				拆分子项.预算价不含税* _材料调差系数_拆分材机()* round(?拆分子项.数量,4) * 材料.数量;
			}
		)
	)
}

BEGIN:_乙供拆分材料费价差计算_人材机市场
${
	?sum(_过滤拆分材料_Items(), "材料", 
		?sum(items, "拆分子项",
			?#{
				->拆分子项.供货方 == "乙供" 
				:
				(拆分子项.市场价不含税 - 拆分子项.预算价不含税)* round(?拆分子项.数量,4)* 材料.数量;
			}
		)	
	)
}

//20230822新增消材配送、卸车、保管价差及其相关变量//

BEGIN:_甲供普通材料配送费价差计算_按系数调
${
	sum(_过滤甲供普通材料_Items(), "人材机", 
	?#{ 
		->人材机.集中配送 == "1" 
		:
		人材机.预算价含税*_材料调差系数()* 人材机.数量;
	}
	) 
}

BEGIN:_甲供普通材料配送费价差计算_按市场调
${
	sum(_过滤甲供普通材料_Items(), "人材机", 
	?#{ 
		->人材机.集中配送 == "1" 
		:
		(人材机.市场价含税 - 人材机.预算价含税) * 人材机.数量;
	}
	) 
}

BEGIN:_甲供拆分材料配送费价差计算_按系数调
${
	?sum(_过滤拆分材料_Items(), "材料", 	
		?sum(items, "拆分子项",
			?#{								
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "材料"  &&  拆分子项.集中配送 == "1"
				:
				拆分子项.预算价含税* _材料调差系数_拆分材机() * round(?拆分子项.数量,4) * 材料.数量 ;
			}
		)
	)
}


BEGIN:_甲供拆分材料配送费价差计算_按市场调
${
	?sum(_过滤拆分材料_Items(), "材料", 	
		?sum(items, "拆分子项",
			?#{								
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "材料"  &&  拆分子项.集中配送 == "1"
				:
				(拆分子项.市场价含税 - 拆分子项.预算价含税)* round(?拆分子项.数量,4) * 材料.数量 ;
			}
		)
	)
}

BEGIN:甲供材料配送费价差含税
${
	sum(_过滤定额(), "定额", 
		?#{			
			->@价差系数.安装材机系数调差 != 1 && @价差系数.安装拆除材机系数调差 != 1 
			:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"|| (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"|| (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") ||parent.调差类型 == "安装拆除"
			   :
			  (_甲供普通材料配送费价差计算_按市场调() + _甲供拆分材料配送费价差计算_按市场调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材配送费率 / 100
			   ;
             }
			;
            ->@价差系数.安装材机系数调差 != 1  && @价差系数.安装拆除材机系数调差 == 1
			:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"|| (parent.调差类型 == "安装" && parent.专业类型 == "余物清理")
			   :
			   (_甲供普通材料配送费价差计算_按市场调() + _甲供拆分材料配送费价差计算_按市场调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材配送费率 / 100
			   ;
			  ->parent.调差类型 == "安装拆除"
			   :
			   (_甲供普通材料配送费价差计算_按系数调()+_甲供拆分材料配送费价差计算_按系数调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材配送费率 / 100
			   ;
				}
				;
			->@价差系数.安装材机系数调差 == 1  && @价差系数.安装拆除材机系数调差 != 1
			:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.调差类型 == "安装拆除"
			   :
			   (_甲供普通材料配送费价差计算_按市场调() + _甲供拆分材料配送费价差计算_按市场调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材配送费率 / 100
			   ;
			  -> parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"|| (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") 
			   :
			   (_甲供普通材料配送费价差计算_按系数调()+_甲供拆分材料配送费价差计算_按系数调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材配送费率 / 100
			   ;
				}	
				 ;
			->@价差系数.安装材机系数调差 == 1  && @价差系数.安装拆除材机系数调差 == 1
				:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" 
			   :
			   (_甲供普通材料配送费价差计算_按市场调() + _甲供拆分材料配送费价差计算_按市场调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材配送费率 / 100
			   ;
			  -> parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" || (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") || parent.调差类型 == "安装拆除"
			   :
			   (_甲供普通材料配送费价差计算_按系数调()+_甲供拆分材料配送费价差计算_按系数调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材配送费率 / 100
			   ;
				}
				 ;
		}
	)
}

BEGIN:_甲供普通材料卸车费价差计算_按系数调
${
	sum(_过滤甲供普通材料_Items(), "人材机", 
	?#{ 
		->人材机.卸车  == 1 
		:
		人材机.预算价含税*_材料调差系数()* 人材机.数量;
	}
	) 
}

BEGIN:_甲供普通材料卸车费价差计算_按市场调
${
	sum(_过滤甲供普通材料_Items(), "人材机", 
	?#{ 
		->人材机.卸车  == 1 
		:
		(人材机.市场价含税 - 人材机.预算价含税) * 人材机.数量;
	}
	) 
}

BEGIN:_甲供拆分材料卸车费价差计算_按系数调
${
	?sum(_过滤拆分材料_Items(), "材料", 	
		?sum(items, "拆分子项",
			?#{								
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "材料"  &&  拆分子项.卸车  == 1 
				:
				拆分子项.预算价含税* _材料调差系数_拆分材机() * round(?拆分子项.数量,4) * 材料.数量 ;
			}
		)
	)
}


BEGIN:_甲供拆分材料卸车费价差计算_按市场调
${
	?sum(_过滤拆分材料_Items(), "材料", 	
		?sum(items, "拆分子项",
			?#{								
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "材料"  &&  拆分子项.卸车 == 1
				:
				(拆分子项.市场价含税 - 拆分子项.预算价含税)* round(?拆分子项.数量,4) * 材料.数量 ;
			}
		)
	)
}

BEGIN:甲供材料卸车费价差含税
${
	sum(_过滤定额(), "定额", 
		?#{			
			->@价差系数.安装材机系数调差 != 1 && @价差系数.安装拆除材机系数调差 != 1 
			:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"|| (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"|| (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") ||parent.调差类型 == "安装拆除"
			   :
			  (_甲供普通材料卸车费价差计算_按市场调() + _甲供拆分材料卸车费价差计算_按市场调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材卸车费费率 / 100
			   ;
             }
			;
            ->@价差系数.安装材机系数调差 != 1  && @价差系数.安装拆除材机系数调差 == 1
			:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"|| (parent.调差类型 == "安装" && parent.专业类型 == "余物清理")
			   :
			   (_甲供普通材料卸车费价差计算_按市场调() + _甲供拆分材料卸车费价差计算_按市场调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材卸车费费率 / 100
			   ;
			  ->parent.调差类型 == "安装拆除"
			   :
			   (_甲供普通材料卸车费价差计算_按系数调()+_甲供拆分材料卸车费价差计算_按系数调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材卸车费费率 / 100
			   ;
				}
				;
			->@价差系数.安装材机系数调差 == 1  && @价差系数.安装拆除材机系数调差 != 1
			:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.调差类型 == "安装拆除"
			   :
			   (_甲供普通材料卸车费价差计算_按市场调() + _甲供拆分材料卸车费价差计算_按市场调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材卸车费费率 / 100
			   ;
			  -> parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"|| (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") 
			   :
			   (_甲供普通材料卸车费价差计算_按系数调()+_甲供拆分材料卸车费价差计算_按系数调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材卸车费费率 / 100
			   ;
				}	
				 ;
			->@价差系数.安装材机系数调差 == 1  && @价差系数.安装拆除材机系数调差 == 1
				:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" 
			   :
			   (_甲供普通材料卸车费价差计算_按市场调() + _甲供拆分材料卸车费价差计算_按市场调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材卸车费费率 / 100
			   ;
			  -> parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" || (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") || parent.调差类型 == "安装拆除"
			   :
			   (_甲供普通材料卸车费价差计算_按系数调()+_甲供拆分材料卸车费价差计算_按系数调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材卸车费费率 / 100
			   ;
				}
				 ;
		}
	)
}

BEGIN:_甲供普通材料保管费价差计算_按系数调
${
	sum(_过滤甲供普通材料_Items(), "人材机", 
	?#{ 
		->人材机.保管  == 1 
		:
		人材机.预算价含税*_材料调差系数()* 人材机.数量;
	}
	) 
}

BEGIN:_甲供普通材料保管费价差计算_按市场调
${
	sum(_过滤甲供普通材料_Items(), "人材机", 
	?#{ 
		->人材机.保管  == 1 
		:
		(人材机.市场价含税 - 人材机.预算价含税) * 人材机.数量;
	}
	) 
}

BEGIN:_甲供拆分材料保管费价差计算_按系数调
${
	?sum(_过滤拆分材料_Items(), "材料", 	
		?sum(items, "拆分子项",
			?#{								
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "材料"  &&  拆分子项.保管  == 1 
				:
				拆分子项.预算价含税* _材料调差系数_拆分材机() * round(?拆分子项.数量,4) * 材料.数量 ;
			}
		)
	)
}


BEGIN:_甲供拆分材料保管费价差计算_按市场调
${
	?sum(_过滤拆分材料_Items(), "材料", 	
		?sum(items, "拆分子项",
			?#{								
				->拆分子项.供货方 == "甲供" && 拆分子项.type == "材料"  &&  拆分子项.保管 == 1
				:
				(拆分子项.市场价含税 - 拆分子项.预算价含税)* round(?拆分子项.数量,4) * 材料.数量 ;
			}
		)
	)
}

BEGIN:甲供材料保管费价差含税
${
	sum(_过滤定额(), "定额", 
		?#{			
			->@价差系数.安装材机系数调差 != 1  && @价差系数.安装拆除材机系数调差 != 1 
			:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"|| (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"|| (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") ||parent.调差类型 == "安装拆除"
			   :
			  (_甲供普通材料保管费价差计算_按市场调() + _甲供拆分材料保管费价差计算_按市场调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材保管费费率 / 100
			   ;
             }
			;
            ->@价差系数.安装材机系数调差 != 1  && @价差系数.安装拆除材机系数调差 == 1
			:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"|| (parent.调差类型 == "安装" && parent.专业类型 == "余物清理")
			   :
			   (_甲供普通材料保管费价差计算_按市场调() + _甲供拆分材料保管费价差计算_按市场调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材保管费费率 / 100
			   ;
			  ->parent.调差类型 == "安装拆除"
			   :
			   (_甲供普通材料保管费价差计算_按系数调()+_甲供拆分材料保管费价差计算_按系数调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材保管费费率 / 100
			   ;
				}
				;
			->@价差系数.安装材机系数调差 == 1  && @价差系数.安装拆除材机系数调差 != 1
			:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.调差类型 == "安装拆除"
			   :
			   (_甲供普通材料保管费价差计算_按市场调() + _甲供拆分材料保管费价差计算_按市场调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材保管费费率 / 100
			   ;
			  -> parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"|| (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") 
			   :
			   (_甲供普通材料保管费价差计算_按系数调()+_甲供拆分材料保管费价差计算_按系数调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材保管费费率 / 100
			   ;
				}	
				 ;
			->@价差系数.安装材机系数调差 == 1  && @价差系数.安装拆除材机系数调差 == 1
				:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" 
			   :
			   (_甲供普通材料保管费价差计算_按市场调() + _甲供拆分材料保管费价差计算_按市场调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材保管费费率 / 100
			   ;
			  -> parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" || (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") || parent.调差类型 == "安装拆除"
			   :
			   (_甲供普通材料保管费价差计算_按系数调()+_甲供拆分材料保管费价差计算_按系数调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材保管费费率 / 100
			   ;
				}
				 ;
		}
	)
}

BEGIN:_乙供普通材料配送费价差计算_按系数调
${
	sum(_过滤乙供普通材料_Items(), "人材机", 
	?#{ 
		->人材机.集中配送 == "1" 
		:
		人材机.预算价含税*_材料调差系数()* 人材机.数量;
	}
	) 
}

BEGIN:_乙供普通材料配送费价差计算_按市场调
${
	sum(_过滤乙供普通材料_Items(), "人材机", 
	?#{ 
		->人材机.集中配送 == "1" 
		:
		(人材机.市场价含税 - 人材机.预算价含税) * 人材机.数量;
	}
	) 
}

BEGIN:_乙供拆分材料配送费价差计算_按系数调
${
	?sum(_过滤拆分材料_Items(), "材料", 	
		?sum(items, "拆分子项",
			?#{								
				->拆分子项.供货方 == "乙供" && 拆分子项.type == "材料"  &&  拆分子项.集中配送 == "1"
				:
				拆分子项.预算价含税* _材料调差系数_拆分材机() * round(?拆分子项.数量,4) * 材料.数量 ;
			}
		)
	)
}


BEGIN:_乙供拆分材料配送费价差计算_按市场调
${
	?sum(_过滤拆分材料_Items(), "材料", 	
		?sum(items, "拆分子项",
			?#{								
				->拆分子项.供货方 == "乙供" && 拆分子项.type == "材料"  &&  拆分子项.集中配送 == "1"
				:
				(拆分子项.市场价含税 - 拆分子项.预算价含税)* round(?拆分子项.数量,4) * 材料.数量 ;
			}
		)
	)
}

BEGIN:乙供材料配送费价差含税
${
	sum(_过滤定额(), "定额", 
		?#{			
			->@价差系数.安装材机系数调差 != 1  && @价差系数.安装拆除材机系数调差 != 1 
			:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"|| (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"|| (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") ||parent.调差类型 == "安装拆除"
			   :
			  (_乙供普通材料配送费价差计算_按市场调() + _乙供拆分材料配送费价差计算_按市场调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.乙供主材配送费率 / 100
			   ;
             }
			;
            ->@价差系数.安装材机系数调差 != 1  && @价差系数.安装拆除材机系数调差 == 1
			:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"|| (parent.调差类型 == "安装" && parent.专业类型 == "余物清理")
			   :
			   (_乙供普通材料配送费价差计算_按市场调() + _乙供拆分材料配送费价差计算_按市场调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.乙供主材配送费率 / 100
			   ;
			  ->parent.调差类型 == "安装拆除"
			   :
			   (_乙供普通材料配送费价差计算_按系数调()+_乙供拆分材料配送费价差计算_按系数调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.乙供主材配送费率 / 100
			   ;
				}
				;
			->@价差系数.安装材机系数调差 == 1  && @价差系数.安装拆除材机系数调差 != 1
			:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" || parent.调差类型 == "安装拆除"
			   :
			   (_乙供普通材料配送费价差计算_按市场调() + _乙供拆分材料配送费价差计算_按市场调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.乙供主材配送费率 / 100
			   ;
			  -> parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"|| (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") 
			   :
			   (_乙供普通材料配送费价差计算_按系数调()+_乙供拆分材料配送费价差计算_按系数调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.乙供主材配送费率 / 100
			   ;
				}	
				 ;
			->@价差系数.安装材机系数调差 == 1  && @价差系数.安装拆除材机系数调差 == 1
				:
			#{->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"  || (parent.调差类型 == "建筑" && parent.专业类型 == "余物清理") || parent.调差类型 == "建筑拆除" 
			   :
			   (_乙供普通材料配送费价差计算_按市场调() + _乙供拆分材料配送费价差计算_按市场调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.乙供主材配送费率 / 100
			   ;
			  -> parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" || (parent.调差类型 == "安装" && parent.专业类型 == "余物清理") || parent.调差类型 == "安装拆除"
			   :
			   (_乙供普通材料配送费价差计算_按系数调()+_乙供拆分材料配送费价差计算_按系数调())* 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.乙供主材配送费率 / 100
			   ;
				}
				 ;
		}
	)
}


















BEGIN:_机械费价差_不含特殊费
${
	sum(_过滤定额(), "定额", 
	?#{
		->((parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" || (parent.调差类型 == "安装" && parent.专业类型 == "余物清理")) && @价差系数.安装材机系数调差 == 1 ) 
		   || (parent.调差类型 == "安装拆除" && @价差系数.安装拆除材机系数调差 == 1 ) 
		   
		:
			( 定额.机械费 * 定额.机械系数 * 定额.定额系数 * 定额.数量 * (1 + _定额地形系数_机械增加()) * _项目划分费率() + _混凝土施工调整_机械() )* _机械调差系数() ;
		->
		:
			sum(_过滤机械_Items(), "人材机", ?(人材机.市场价不含税 - 人材机.预算价不含税) * 人材机.数量) * 定额.机械系数 * 定额.定额系数 * 定额.数量 * (1 + _定额地形系数_机械增加()) * _项目划分费率();
	}
	)
}

BEGIN:拆分父级市场价_定额重算_含税
${
	sum(source, "未计价", ?#{
    ->未计价.拆分 == 1
     :
     round(?sum(filter(items, "子级", ?子级.后增子级 != 1), "配合比子级", 
	?#{
		
		-> 配合比子级.供货方 == "甲供"  
		:
			配合比子级.含量 * 配合比子级.市场价含税;
		-> 配合比子级.供货方 == "乙供"  
		:
			配合比子级.含量 * 配合比子级.市场价不含税;	
		} 
	), 6);
	 })
}

BEGIN:拆分父级市场价_定额重算_不含税
${
	sum(source, "未计价", ?#{
    ->未计价.拆分 == 1
     :
     round(?sum(filter(items, "子级", ?子级.后增子级 != 1), "配合比子级", 
	?#{
		-> 配合比子级.供货方 == "甲供"  
		:
			配合比子级.含量 * 配合比子级.市场价含税;
		-> 配合比子级.供货方 == "乙供"  
		:
			配合比子级.含量 * 配合比子级.市场价不含税;
		} 
	), 6);
	 })
}

BEGIN:配合比主材费
${	
	sum(_过滤主材(),"主材", ?主材.数量 * (_配合比甲供主材费含税() + _配合比乙供主材费不含税()) * _项目划分费率()) 
}

BEGIN:主材费
${
	?甲供主材费含税() + 乙供主材费不含税()
}

BEGIN:设备性材料_主材费
${
	?设备性材料_甲供主材费含税() + 设备性材料_乙供主材费不含税()
}

BEGIN:主材损耗费
${
	?甲供主材损耗费含税() + 乙供主材损耗费不含税()
}

BEGIN:主材配送费
${
    ?甲供主材配送费含税() + 乙供主材配送费含税()
}

BEGIN:设备性材料_主材配送费
${
    ?设备性材料_甲供主材配送费含税() + 设备性材料_乙供主材配送费含税()
}

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

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

BEGIN:主材费_含配送损耗_含设备性材料
${
    ? 主材费()  + 主材损耗费() +  主材配送费() +  主材卸车费() + 主材保管费()+乙供设备性材料费()+甲供设备性材料费()-甲供设备性材料保管费含税()-甲供设备性材料卸车费含税()-乙供设备性材料税金()
}

BEGIN:设备费_含配送运杂
${
    ? 甲供设备费含税_不含设备性材料() + 甲供设备运杂费含税() + _设备配送费() + 乙供设备费不含税_不含设备性材料() + 乙供设备运杂费含税() + 甲供设备卸车费含税() + 甲供设备保管费含税() +乙供设备税金_不含设备性材料()
}

BEGIN:_设备配送费
${
    ?甲供设备配送费含税_不含设备性材料() + 乙供设备配送费含税_不含设备性材料()
}



BEGIN:乙供主要材料费
${	
	?乙供主材费不含税()+乙供主材损耗费不含税() + 乙供主材配送费含税()
}

BEGIN:乙供设备费
${	
	?乙供设备费不含税()+乙供设备运杂费含税()+乙供设备税金()+乙供设备配送费含税()
}

BEGIN:乙供设备性材料费
${	
	?乙供设备性材料费不含税()+乙供设备性材料损耗费不含税()+乙供设备性材料税金() + 乙供设备性材料配送费含税()
}

BEGIN:乙供设备税金
${
	?_乙供设备税金() + 乙供设备性材料税金() + 乙供设备运杂费税金()+ 乙供设备配送费含税税金()
}

BEGIN:乙供设备税金_不含设备性材料
${
	?_乙供设备税金()+ 乙供设备运杂费税金()+ 乙供设备配送费含税税金()
}

BEGIN:乙供设备性材料税金
${
    ? _乙供设备性材料税金() + 乙供设备性材料配送费含税税金()
}

BEGIN:_乙供设备性材料税金
${sum(_过滤设备性材料(), "主材" ,?#{

       -> 主材.拆分 == 1 && _配合比子级数量() > 0.1
		:
		   主材.数量 * _设备性材料_配合比乙供主材费不含税含损耗()* @工程信息.工程税率 / 100 * _项目划分费率();
			
       -> 主材.供货方 == "乙供" && 主材.设备性材料 == 1
		:
		   主材.数量 *(1+主材.损耗 / 100)* 主材.市场价不含税 * @工程信息.工程税率 / 100 * _项目划分费率();
			}
	)
}