///////////////////////////////////////////////////////////////
//
//  定额
//  
///////////////////////////////////////////////////////////////
BEGIN:定额_取费_人工费
${
	sum(_过滤取费定额(),"工程量",?工程量.数量 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数)
}

BEGIN:定额_取费_人工费_单价
${
	sum(_过滤取费定额(),"工程量",?工程量.数量 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 / parent.数量)
}

BEGIN:定额_取费_甲供材料费不含税
${
	sum(_过滤取费定额(),"工程量",?工程量.数量 * 工程量.甲供材料费不含税 * 工程量.材料系数 * 工程量.定额系数)
}

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

BEGIN:定额_取费_甲供材料费含税
${
	sum(_过滤取费定额(),"工程量",?工程量.数量 * 工程量.甲供材料费含税 * 工程量.材料系数 * 工程量.定额系数)
}

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

BEGIN:定额_取费_乙供材料费含税
${
	sum(_过滤取费定额(),"工程量",?工程量.数量 * (工程量.乙供材料费含税) * 工程量.材料系数 * 工程量.定额系数)
}

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

BEGIN:定额_取费_乙供材料费不含税
${
	sum(_过滤取费定额(),"工程量",?工程量.数量 * (工程量.乙供材料费不含税) * 工程量.材料系数 * 工程量.定额系数)
}

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

BEGIN:定额_取费_甲供材料暂估价含税
${
	sum(_过滤取费定额(),"取费定额",
		?sum(_过滤材料(), "材料",
				?#{ 
					->材料.拆分 == 0 && 材料.供货方 == "甲供" && 材料.暂估价 == 1
					:				
					材料.数量 * 材料.预算价含税;
					->材料.拆分 == 1
					:
					sum(_过滤甲供暂估材料(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税 * 材料.数量 );
				}
			) * 取费定额.材料系数 * 取费定额.定额系数 * 取费定额.数量
	)
}

BEGIN:定额_取费_甲供材料暂估价含税_单价
 ${
    sum(_过滤取费定额(),"取费定额",
		?sum(_过滤材料(), "材料",
				?#{ 
					 ->材料.拆分 == 0 && 材料.供货方 == "甲供" && 材料.暂估价 == 1
					 :				
					 材料.数量 * 材料.预算价含税;
					 ->材料.拆分 == 1
					 :
					 sum(_过滤甲供暂估材料(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税 * 材料.数量 );	
				}
			) * 取费定额.材料系数 * 取费定额.定额系数 * 取费定额.数量 / parent.数量
	)
}

BEGIN:定额_取费_甲供材料暂估价不含税
${
	sum(_过滤取费定额(),"取费定额",
		?sum(_过滤材料(), "材料",
				?#{ 
					 ->材料.拆分 == 0 && 材料.供货方 == "甲供" && 材料.暂估价 == 1
					 :				
					 材料.数量 * 材料.预算价不含税;
					 ->材料.拆分 == 1
					 :
					 sum(_过滤甲供暂估材料(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税 * 材料.数量 );	
				}
			)*取费定额.材料系数 * 取费定额.定额系数 * 取费定额.数量
	)
}

BEGIN:定额_取费_甲供材料暂估价不含税_单价
${
    sum(_过滤取费定额(),"取费定额",
		?sum(_过滤材料(), "材料",
				?#{ 
					 ->材料.拆分 == 0 && 材料.供货方 == "甲供" && 材料.暂估价 == 1
					 :				
					 材料.数量 * 材料.预算价不含税;
					 ->材料.拆分 == 1
					 :
					 sum(_过滤甲供暂估材料(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税 * 材料.数量 );
				}
			)*取费定额.材料系数 * 取费定额.定额系数 * 取费定额.数量 / parent.数量
	)
}

BEGIN:定额_取费_乙供材料暂估价不含税
${
	sum(_过滤取费定额(),"取费定额",
		?sum(_过滤材料(), "材料",
				?#{ 
					 ->材料.拆分 == 0 && 材料.供货方 == "乙供" && 材料.暂估价 == 1
					 :				
					 材料.数量 * 材料.预算价不含税;
					 ->材料.拆分 == 1
					 :
					 sum(_过滤乙供暂估材料(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税 * 材料.数量);	
				}
			) * 取费定额.材料系数 * 取费定额.定额系数 * 取费定额.数量
	)
}

BEGIN:定额_取费_乙供材料暂估价不含税_单价
${
    sum(_过滤取费定额(),"取费定额",
		?sum(_过滤材料(), "材料",
				?#{ 
					 ->材料.拆分 == 0 && 材料.供货方 == "乙供" && 材料.暂估价 == 1
					 :
					 材料.数量 * 材料.预算价不含税;
					 ->材料.拆分 == 1
					 :
					 sum(_过滤乙供暂估材料(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税 * 材料.数量);
				}
			) * 取费定额.材料系数 * 取费定额.定额系数 * 取费定额.数量 / parent.数量
	)
}

BEGIN:定额_取费_机械费
${
	sum(_过滤取费定额(),"工程量",?工程量.数量 * 工程量.机械费 * 工程量.机械系数 * 工程量.定额系数)
}

BEGIN:定额_取费_机械费_单价
${
	sum(_过滤取费定额(),"工程量",?工程量.数量 * 工程量.机械费 * 工程量.机械系数 * 工程量.定额系数 / parent.数量)
}

BEGIN:定额_不取费_人工费
${
	sum(_过滤不取费定额(),"不取费定额",?不取费定额.人工费*不取费定额.人工系数*不取费定额.定额系数*不取费定额.数量)
}

BEGIN:定额_不取费_人工费_单价
${
	sum(_过滤不取费定额(),"不取费定额",?不取费定额.人工费*不取费定额.人工系数*不取费定额.定额系数*不取费定额.数量/ parent.数量)	 
}

BEGIN:定额_不取费_甲供材料费不含税
${
    sum(_过滤不取费定额(),"不取费定额",? 不取费定额.甲供材料费不含税*不取费定额.材料系数 * 不取费定额.定额系数 * 不取费定额.数量)		 	 	 									
}

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

BEGIN:定额_不取费_甲供材料费含税
${
    sum(_过滤不取费定额(),"不取费定额",?不取费定额.甲供材料费含税*不取费定额.材料系数 * 不取费定额.定额系数 * 不取费定额.数量)			  	  								
}

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

BEGIN:定额_不取费_乙供材料费不含税
${
    sum(_过滤不取费定额(),"不取费定额",?不取费定额.乙供材料费不含税*不取费定额.材料系数*不取费定额.定额系数*不取费定额.数量)
}

BEGIN:定额_不取费_乙供材料费不含税_单价
${
    sum(_过滤不取费定额(),"不取费定额",?不取费定额.乙供材料费不含税*不取费定额.材料系数*不取费定额.定额系数*不取费定额.数量/parent.数量)
}

BEGIN:定额_不取费_乙供材料费含税
${
    sum(_过滤不取费定额(),"不取费定额",?不取费定额.乙供材料费含税*不取费定额.材料系数*不取费定额.定额系数*不取费定额.数量)
}

BEGIN:定额_不取费_乙供材料费含税_单价
${
    sum(_过滤不取费定额(),"不取费定额",?不取费定额.乙供材料费含税*不取费定额.材料系数*不取费定额.定额系数*不取费定额.数量/parent.数量)
}

BEGIN:定额_不取费_甲供材料暂估价含税
${
	sum(_过滤不取费定额(),"不取费定额",
		?sum(_过滤材料(), "材料",
				?#{ 
					->材料.拆分 == 0 && 材料.供货方 == "甲供" && 材料.暂估价 == 1
					:				
					材料.数量 * 材料.预算价含税;
					->材料.拆分 == 1
					:
					sum(_过滤甲供暂估材料(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税 * 材料.数量 );
				}
			) * 不取费定额.材料系数 * 不取费定额.定额系数 * 不取费定额.数量
	)
}

BEGIN:定额_不取费_甲供材料暂估价含税_单价
 ${
    sum(_过滤不取费定额(),"不取费定额",
		?sum(_过滤材料(), "材料",
				?#{ 
					 ->材料.拆分 == 0 && 材料.供货方 == "甲供" && 材料.暂估价 == 1
					 :				
					 材料.数量 * 材料.预算价含税;
					 ->材料.拆分 == 1
					 :
					 sum(_过滤甲供暂估材料(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税 * 材料.数量 );	
				}
			) * 不取费定额.材料系数 * 不取费定额.定额系数 * 不取费定额.数量 / parent.数量
	)
}

BEGIN:定额_不取费_甲供材料暂估价不含税
${
	sum(_过滤不取费定额(),"不取费定额",
		?sum(_过滤材料(), "材料",
				?#{ 
					 ->材料.拆分 == 0 && 材料.供货方 == "甲供" && 材料.暂估价 == 1
					 :				
					 材料.数量 * 材料.预算价不含税;
					 ->材料.拆分 == 1
					 :
					 sum(_过滤甲供暂估材料(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税 * 材料.数量 );	
				}
			)*不取费定额.材料系数 * 不取费定额.定额系数 * 不取费定额.数量
	)
}

BEGIN:定额_不取费_甲供材料暂估价不含税_单价
${
    sum(_过滤不取费定额(),"不取费定额",
		?sum(_过滤材料(), "材料",
				?#{ 
					 ->材料.拆分 == 0 && 材料.供货方 == "甲供" && 材料.暂估价 == 1
					 :				
					 材料.数量 * 材料.预算价不含税;
					 ->材料.拆分 == 1
					 :
					 sum(_过滤甲供暂估材料(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税 * 材料.数量 );
				}
			)*不取费定额.材料系数 * 不取费定额.定额系数 * 不取费定额.数量 / parent.数量
	)
}

BEGIN:定额_不取费_乙供材料暂估价不含税
${
	sum(_过滤不取费定额(),"不取费定额",
		?sum(_过滤材料(), "材料",
				?#{ 
					 ->材料.拆分 == 0 && 材料.供货方 == "乙供" && 材料.暂估价 == 1
					 :				
					 材料.数量 * 材料.预算价不含税;
					 ->材料.拆分 == 1
					 :
					 sum(_过滤乙供暂估材料(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税 * 材料.数量);	
				}
			) * 不取费定额.材料系数 * 不取费定额.定额系数 * 不取费定额.数量
	)
}

BEGIN:定额_不取费_乙供材料暂估价不含税_单价
${
    sum(_过滤不取费定额(),"不取费定额",
		?sum(_过滤材料(), "材料",
				?#{ 
					 ->材料.拆分 == 0 && 材料.供货方 == "乙供" && 材料.暂估价 == 1
					 :
					 材料.数量 * 材料.预算价不含税;
					 ->材料.拆分 == 1
					 :
					 sum(_过滤乙供暂估材料(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税 * 材料.数量);
				}
			) * 不取费定额.材料系数 * 不取费定额.定额系数 * 不取费定额.数量 / parent.数量
	)
}

BEGIN:定额_不取费_机械费
${
	sum(_过滤不取费定额(),"不取费定额",?不取费定额.机械费*不取费定额.机械系数*不取费定额.定额系数*不取费定额.数量)
}

BEGIN:定额_不取费_机械费_单价
${
	sum(_过滤不取费定额(),"不取费定额",?不取费定额.机械费*不取费定额.机械系数*不取费定额.定额系数*不取费定额.数量/parent.数量)		   
}

BEGIN:定额_取费_人工价差
${
	sum(_过滤取费定额(),"定额",
    ?{
		定额.数量*定额.人工费*定额.人工系数*定额.定额系数*
		#{
		    ->定额.调差类型 == "建筑"
			:
			@工程信息.建筑人工调差系数/100;
			 ->定额.调差类型 == "安装"
			:
			@工程信息.人工调差系数/100;
		    ->定额.调差类型 == "拆除建筑"
			:
			@工程信息.建筑拆除人工调差系数/100;			
		    ->定额.调差类型 == "拆除安装"
			:
			@工程信息.拆除人工调差系数/100;										
     	 };
		}
    )

}

BEGIN:定额_取费_人工价差_单价
${
  sum(_过滤取费定额(),"定额",
    ?{
		定额.数量*定额.人工费*定额.人工系数*定额.定额系数*
		#{
		    ->定额.调差类型 == "建筑"
			:
			@工程信息.建筑人工调差系数/100;
			 ->定额.调差类型 == "安装"
			:
			@工程信息.人工调差系数/100;
		    ->定额.调差类型 == "拆除建筑"
			:
			@工程信息.建筑拆除人工调差系数/100;			
		    ->定额.调差类型 == "拆除安装"
			:
			@工程信息.拆除人工调差系数/100;						
     	 };
	  }/parent.数量
     )
}

BEGIN:定额_取费_甲供材料价差不含税
${
	sum(_过滤取费定额(),"定额",
	?#{
		->定额.调差类型 == "建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				-> 材料.拆分 == 0 && 材料.供货方 == "甲供"
				:
				(材料.市场价不含税-材料.预算价不含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤甲供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价不含税*@工程信息.建筑人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价不含税-子项.预算价不含税)*子项.数量*材料.数量;
							}
				   );
			  }
		   );
		->定额.调差类型 == "拆除建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				-> 材料.拆分 == 0 && 材料.供货方 == "甲供"
				:
				(材料.市场价不含税-材料.预算价不含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤甲供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价不含税*@工程信息.建筑拆除人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价不含税-子项.预算价不含税)*子项.数量*材料.数量;
							}
				   );
			  }
		   );		   
		   		   	   
		->定额.调差类型 == "安装"
		:
		定额.甲供材料费不含税*@工程信息.材料调差系数/100;
		->定额.调差类型 == "拆除安装"
		:
		定额.甲供材料费不含税*@工程信息.拆除材料调差系数/100;		
		
	  }*定额.材料系数*定额.定额系数*定额.数量
	)
}

BEGIN:定额_取费_甲供材料价差不含税_单价
${
	sum(_过滤取费定额(),"定额",
	?#{
		->定额.调差类型 == "建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				-> 材料.拆分 == 0 && 材料.供货方 == "甲供"
				:
				(材料.市场价不含税-材料.预算价不含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤甲供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价不含税*@工程信息.建筑人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价不含税-子项.预算价不含税)*子项.数量*材料.数量;
							}
				   );
			  }
		   );
		->定额.调差类型 == "拆除建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				-> 材料.拆分 == 0 && 材料.供货方 == "甲供"
				:
				(材料.市场价不含税-材料.预算价不含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤甲供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价不含税*@工程信息.建筑拆除人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价不含税-子项.预算价不含税)*子项.数量*材料.数量;
							}
				   );
			  }
		   );		   		   		   		   			   
		->定额.调差类型 == "安装"
		:
		定额.甲供材料费不含税*@工程信息.材料调差系数/100;
		->定额.调差类型 == "拆除安装"
		:
		定额.甲供材料费不含税*@工程信息.拆除材料调差系数/100;		
		
		
		}*定额.材料系数*定额.定额系数*定额.数量/parent.数量
	)
}

BEGIN:定额_取费_甲供材料价差含税
${
	sum(_过滤取费定额(),"定额",
	?#{
		->定额.调差类型 == "建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				->材料.拆分 == 0 && 材料.供货方 == "甲供"
				:
				(材料.市场价含税-材料.预算价含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤甲供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价含税*@工程信息.建筑人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价含税-子项.预算价含税)*子项.数量*材料.数量;
							}
					);
			  }
		   );
		->定额.调差类型 == "拆除建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				->材料.拆分 == 0 && 材料.供货方 == "甲供"
				:
				(材料.市场价含税-材料.预算价含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤甲供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价含税*@工程信息.建筑拆除人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价含税-子项.预算价含税)*子项.数量*材料.数量;
							}
					);
			  }
		   );		   
		   		   
		->定额.调差类型 == "安装"
		:
		定额.甲供材料费含税*@工程信息.材料调差系数/100;
		->定额.调差类型 == "拆除安装"
		:
		定额.甲供材料费含税*@工程信息.拆除材料调差系数/100;		
		
		}*定额.材料系数*定额.定额系数*定额.数量
	)
}
BEGIN:定额_取费_甲供材料价差含税_单价
${
	sum(_过滤取费定额(),"定额",
	?#{
		->定额.调差类型 == "建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				->材料.拆分 == 0 && 材料.供货方 == "甲供"
				:
				(材料.市场价含税-材料.预算价含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤甲供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价含税*@工程信息.建筑人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价含税-子项.预算价含税)*子项.数量*材料.数量;
							}
					);
			  }
		   );
		->定额.调差类型 == "拆除建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				->材料.拆分 == 0 && 材料.供货方 == "甲供"
				:
				(材料.市场价含税-材料.预算价含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤甲供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价含税*@工程信息.建筑拆除人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价含税-子项.预算价含税)*子项.数量*材料.数量;
							}
					);
			  }
		   );		   
	    ->定额.调差类型 == "拆除安装"
		:
		定额.甲供材料费含税*@工程信息.拆除材料调差系数/100;	   		   
		->定额.调差类型 == "安装"
		:
		定额.甲供材料费含税*@工程信息.材料调差系数/100;
		}*定额.材料系数*定额.定额系数*定额.数量/parent.数量
	)
}

BEGIN:定额_取费_乙供材料价差不含税
${
	sum(_过滤取费定额(),"定额",
	?#{
		
		->定额.调差类型 == "建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				-> 材料.拆分 == 0 && 材料.供货方 == "乙供"
				:
				(材料.市场价不含税-材料.预算价不含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤乙供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价不含税*@工程信息.建筑人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价不含税-子项.预算价不含税)*子项.数量*材料.数量;
							}	   
				   );
				
			  }
		   );
		->定额.调差类型 == "拆除建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				-> 材料.拆分 == 0 && 材料.供货方 == "乙供"
				:
				(材料.市场价不含税-材料.预算价不含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤乙供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价不含税*@工程信息.建筑拆除人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价不含税-子项.预算价不含税)*子项.数量*材料.数量;
							}	   
				   );				
			  }
		   );		   		   		   		  		   
		->定额.调差类型 == "安装"
		:
		定额.乙供材料费不含税*@工程信息.材料调差系数/100;
		->定额.调差类型 == "拆除安装"
		:
		定额.乙供材料费不含税*@工程信息.拆除材料调差系数/100;								
		}*定额.材料系数*定额.定额系数*定额.数量
	)
}

BEGIN:定额_取费_乙供材料价差不含税_单价
${
	sum(_过滤取费定额(),"定额",
	?#{
		->定额.调差类型 == "建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				-> 材料.拆分 == 0 && 材料.供货方 == "乙供"
				:
				(材料.市场价不含税-材料.预算价不含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤乙供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价不含税*@工程信息.建筑人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价不含税-子项.预算价不含税)*子项.数量*材料.数量;
							}	   
				   );
				
			  }
		   );
		->定额.调差类型 == "拆除建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				-> 材料.拆分 == 0 && 材料.供货方 == "乙供"
				:
				(材料.市场价不含税-材料.预算价不含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤乙供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价不含税*@工程信息.建筑拆除人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价不含税-子项.预算价不含税)*子项.数量*材料.数量;
							}	   
				   );
				
			  }
		   );		   		   		   		 		   
		->定额.调差类型 == "安装"
		:
		定额.乙供材料费不含税*@工程信息.材料调差系数/100;
		->定额.调差类型 == "拆除安装"
		:
		定额.乙供材料费不含税*@工程信息.拆除材料调差系数/100;						
		}*定额.材料系数*定额.定额系数*定额.数量/parent.数量
	)
}

BEGIN:定额_取费_机械价差
${
	sum(_过滤取费定额(),"定额",
	?#{
		->定额.调差类型 == "建筑"
		:
		sum(_过滤机械(),"机械",
			?#{
				->机械.拆分 == 0
				:
				(机械.市场价不含税-机械.预算价不含税)*机械.数量;
				->机械.拆分 == 1
				:
				 sum(
				      _过滤机械子项(),"子项",
					   ?#{
						   	->子项.type == "人工"
							:
							子项.预算价不含税*@工程信息.建筑人工调差系数/100*子项.数量*机械.数量;
							->子项.type == "消材" || 子项.type == "机械"
							:
							(子项.市场价不含税-子项.预算价不含税)*子项.数量*机械.数量;
						}
					);
			 }
		   );
		->定额.调差类型 == "拆除建筑"
		:
		sum(_过滤机械(),"机械",
			?#{
				->机械.拆分 == 0
				:
				(机械.市场价不含税-机械.预算价不含税)*机械.数量;
				->机械.拆分 == 1
				:
				 sum(
				      _过滤机械子项(),"子项",
					   ?#{
						   	->子项.type == "人工"
							:
							子项.预算价不含税*@工程信息.建筑拆除人工调差系数/100*子项.数量*机械.数量;
							->子项.type == "消材" || 子项.type == "机械"
							:
							(子项.市场价不含税-子项.预算价不含税)*子项.数量*机械.数量;
						}
					);
			 }
		   );		   		   		   		   		   
		->定额.调差类型 == "安装"
		:
		定额.机械费不含税*@工程信息.机械调差系数/100;
		->定额.调差类型 == "拆除安装"
		:
		定额.机械费不含税*@工程信息.拆除机械调差系数/100;						
		}*定额.机械系数*定额.定额系数*定额.数量
	)
}

BEGIN:定额_取费_机械价差_单价
${
	sum(_过滤取费定额(),"定额",
	?#{
		->定额.调差类型 == "建筑"
		:
		sum(_过滤机械(),"机械",
			?#{
				->机械.拆分 == 0
				:
				(机械.市场价不含税-机械.预算价不含税)*机械.数量;
				->机械.拆分 == 1
				:
				 sum(
				      _过滤机械子项(),"子项",
					   ?#{
						   	->子项.type == "人工"
							:
							子项.预算价不含税*@工程信息.建筑人工调差系数/100*子项.数量*机械.数量;
							->子项.type == "消材" || 子项.type == "机械"
							:
							(子项.市场价不含税-子项.预算价不含税)*子项.数量*机械.数量;
						}
					);
			 }
		   );
		->定额.调差类型 == "拆除建筑"
		:
		sum(_过滤机械(),"机械",
			?#{
				->机械.拆分 == 0
				:
				(机械.市场价不含税-机械.预算价不含税)*机械.数量;
				->机械.拆分 == 1
				:
				 sum(
				      _过滤机械子项(),"子项",
					   ?#{
						   	->子项.type == "人工"
							:
							子项.预算价不含税*@工程信息.建筑拆除人工调差系数/100*子项.数量*机械.数量;
							->子项.type == "消材" || 子项.type == "机械"
							:
							(子项.市场价不含税-子项.预算价不含税)*子项.数量*机械.数量;
						}
					);
			 }
		   );		   		   		   		   		   
		->定额.调差类型 == "安装"
		:
		定额.机械费不含税*@工程信息.机械调差系数/100;
		->定额.调差类型 == "拆除安装"
		:
		定额.机械费不含税*@工程信息.拆除机械调差系数/100;								
		}*定额.机械系数*定额.定额系数*定额.数量/parent.数量
	)
}

BEGIN:定额_不取费_人工价差
${
  sum(_过滤不取费定额(),"定额",
    ?{
		定额.数量*定额.人工费*定额.人工系数*定额.定额系数*
		#{
		    ->定额.调差类型 == "建筑"
			:
			@工程信息.建筑人工调差系数/100;
		    ->定额.调差类型 == "拆除建筑"
			:
			@工程信息.建筑拆除人工调差系数/100;														
			 ->定额.调差类型 == "安装"
			:
			@工程信息.人工调差系数/100;
			 ->定额.调差类型 == "拆除安装"
			:
			@工程信息.拆除人工调差系数/100;												
     	 };
		}
    )
}

BEGIN:定额_不取费_人工价差_单价
${
  sum(_过滤不取费定额(),"定额",
    ?{
		定额.数量*定额.人工费*定额.人工系数*定额.定额系数*
		#{
		    ->定额.调差类型 == "建筑"
			:
			@工程信息.建筑人工调差系数/100;
			 ->定额.调差类型 == "安装"
			:
			@工程信息.人工调差系数/100;
		    ->定额.调差类型 == "拆除建筑"
			:
			@工程信息.建筑拆除人工调差系数/100;
			 ->定额.调差类型 == "拆除安装"
			:
			@工程信息.拆除人工调差系数/100;															
     	 };
		}/parent.数量
    )
}

BEGIN:定额_不取费_甲供材料价差不含税
${
	sum(_过滤不取费定额(),"定额",
	?#{
		
		->定额.调差类型 == "建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				-> 材料.拆分 == 0 && 材料.供货方 == "甲供"
				:
				(材料.市场价不含税-材料.预算价不含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤甲供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价不含税*@工程信息.建筑人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价不含税-子项.预算价不含税)*子项.数量*材料.数量;
							}	   
				   );
				
			  }
		   );
		->定额.调差类型 == "拆除建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				-> 材料.拆分 == 0 && 材料.供货方 == "甲供"
				:
				(材料.市场价不含税-材料.预算价不含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤甲供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价不含税*@工程信息.建筑拆除人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价不含税-子项.预算价不含税)*子项.数量*材料.数量;
							}	   
				   );
				
			  }
		   );		   		   		   		   			   
		   
		->定额.调差类型 == "安装"
		:
		定额.甲供材料费不含税*@工程信息.材料调差系数/100;
		->定额.调差类型 == "拆除安装"
		:
		定额.甲供材料费不含税*@工程信息.拆除材料调差系数/100;								
		}*定额.材料系数*定额.定额系数*定额.数量
	)
}
BEGIN:定额_不取费_甲供材料价差不含税_单价
${
	sum(_过滤不取费定额(),"定额",
	?#{
		->定额.调差类型 == "建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				-> 材料.拆分 == 0 && 材料.供货方 == "甲供"
				:
				(材料.市场价不含税-材料.预算价不含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤甲供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价不含税*@工程信息.建筑人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价不含税-子项.预算价不含税)*子项.数量*材料.数量;
							}	   
				   );
				
			  }
		   );
		->定额.调差类型 == "拆除建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				-> 材料.拆分 == 0 && 材料.供货方 == "甲供"
				:
				(材料.市场价不含税-材料.预算价不含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤甲供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价不含税*@工程信息.建筑拆除人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价不含税-子项.预算价不含税)*子项.数量*材料.数量;
							}	   
				   );
				
			  }
		   );		   		   		   		   
		->定额.调差类型 == "安装"
		:
		定额.甲供材料费不含税*@工程信息.材料调差系数/100;
		->定额.调差类型 == "拆除安装"
		:
		定额.甲供材料费不含税*@工程信息.拆除材料调差系数/100;						
		}*定额.材料系数*定额.定额系数*定额.数量/parent.数量
	)
}

BEGIN:定额_不取费_甲供材料价差含税
${
	sum(_过滤不取费定额(),"定额",
	?#{
		
		->定额.调差类型 == "建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				-> 材料.拆分 == 0 && 材料.供货方 == "甲供"
				:
				(材料.市场价含税-材料.预算价含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤甲供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价含税*@工程信息.建筑人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价含税-子项.预算价含税)*子项.数量*材料.数量;
							}
				   );
				
			  }
		   );
		->定额.调差类型 == "拆除建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				-> 材料.拆分 == 0 && 材料.供货方 == "甲供"
				:
				(材料.市场价含税-材料.预算价含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤甲供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价含税*@工程信息.建筑拆除人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价含税-子项.预算价含税)*子项.数量*材料.数量;
							}
				   );
				
			  }
		   );		   		   
		->定额.调差类型 == "安装"
		:
		定额.甲供材料费含税*@工程信息.材料调差系数/100;
		->定额.调差类型 == "拆除安装"
		:
		定额.甲供材料费含税*@工程信息.拆除材料调差系数/100;								
		}*定额.材料系数*定额.定额系数*定额.数量
	)
}

BEGIN:定额_不取费_甲供材料价差含税_单价
${
	sum(_过滤不取费定额(),"定额",
	?#{
		->定额.调差类型 == "建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				-> 材料.拆分 == 0 && 材料.供货方 == "甲供"
				:
				(材料.市场价含税-材料.预算价含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤甲供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价含税*@工程信息.建筑人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价含税-子项.预算价含税)*子项.数量*材料.数量;
							}
				   );
				
			  }
		   );
		->定额.调差类型 == "拆除建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				-> 材料.拆分 == 0 && 材料.供货方 == "甲供"
				:
				(材料.市场价含税-材料.预算价含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤甲供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价含税*@工程信息.建筑拆除人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价含税-子项.预算价含税)*子项.数量*材料.数量;
							}
				   );
				
			  }
		   );		   		   		   		   
		->定额.调差类型 == "安装"
		:
		定额.甲供材料费含税*@工程信息.材料调差系数/100;
		->定额.调差类型 == "拆除安装"
		:
		定额.甲供材料费含税*@工程信息.拆除材料调差系数/100;								
		}*定额.材料系数*定额.定额系数*定额.数量/parent.数量
	)
}

BEGIN:定额_不取费_乙供材料价差不含税
${
	sum(_过滤不取费定额(),"定额",
	?#{
		
		->定额.调差类型 == "建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				->材料.拆分 == 0 && 材料.供货方 == "乙供"
				:
				(材料.市场价不含税-材料.预算价不含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤乙供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价不含税*@工程信息.建筑人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价不含税-子项.预算价不含税)*子项.数量*材料.数量;
							}	   
				   );
				
			  }
		   );
		
		->定额.调差类型 == "拆除建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				->材料.拆分 == 0 && 材料.供货方 == "乙供"
				:
				(材料.市场价不含税-材料.预算价不含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤乙供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价不含税*@工程信息.建筑拆除人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价不含税-子项.预算价不含税)*子项.数量*材料.数量;
							}	   
				   );
				
			  }
		   );		   
		   
		->定额.调差类型 == "安装"
		:
		定额.乙供材料费不含税*@工程信息.材料调差系数/100;
		->定额.调差类型 == "拆除安装"
		:
		定额.乙供材料费不含税*@工程信息.拆除材料调差系数/100;		
		
		}*定额.材料系数*定额.定额系数*定额.数量
	)
}

BEGIN:定额_不取费_乙供材料价差不含税_单价
${
	sum(_过滤不取费定额(),"定额",
	?#{
		->定额.调差类型 == "建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				->材料.拆分 == 0 && 材料.供货方 == "乙供"
				:
				(材料.市场价不含税-材料.预算价不含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤乙供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价不含税*@工程信息.建筑人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价不含税-子项.预算价不含税)*子项.数量*材料.数量;
							}	   
				   );
				
			  }
		   );
		->定额.调差类型 == "拆除建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				->材料.拆分 == 0 && 材料.供货方 == "乙供"
				:
				(材料.市场价不含税-材料.预算价不含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤乙供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价不含税*@工程信息.建筑拆除人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价不含税-子项.预算价不含税)*子项.数量*材料.数量;
							}	   
				   );
				
			  }
		   );		   		   		   		   		   		   
		->定额.调差类型 == "安装"
		:
		定额.乙供材料费不含税*@工程信息.材料调差系数/100;
		->定额.调差类型 == "拆除安装"
		:
		定额.乙供材料费不含税*@工程信息.拆除材料调差系数/100;		 		   
		}*定额.材料系数*定额.定额系数*定额.数量/parent.数量
	)
}

BEGIN:定额_不取费_机械价差
${
	sum(_过滤不取费定额(),"定额",
	?#{
		
		->定额.调差类型 == "建筑"
		:
		sum(_过滤机械(),"机械",
			?#{
				->机械.拆分 == 0
				:
				(机械.市场价不含税-机械.预算价不含税)*机械.数量;
				->机械.拆分 == 1
				:
				 sum(
				      _过滤机械子项(),"子项",
					   ?#{
						   	->子项.type == "人工"
							:
							子项.预算价不含税*@工程信息.建筑人工调差系数/100*子项.数量*机械.数量;
							->子项.type == "消材" || 子项.type == "机械"
							:
							(子项.市场价不含税-子项.预算价不含税)*子项.数量*机械.数量;
						}
					);
			 }
		   );
		->定额.调差类型 == "拆除建筑"
		:
		sum(_过滤机械(),"机械",
			?#{
				->机械.拆分 == 0
				:
				(机械.市场价不含税-机械.预算价不含税)*机械.数量;
				->机械.拆分 == 1
				:
				 sum(
				      _过滤机械子项(),"子项",
					   ?#{
						   	->子项.type == "人工"
							:
							子项.预算价不含税*@工程信息.建筑拆除人工调差系数/100*子项.数量*机械.数量;
							->子项.type == "消材" || 子项.type == "机械"
							:
							(子项.市场价不含税-子项.预算价不含税)*子项.数量*机械.数量;
						}
					);
			 }
		   );		   
	   
		->定额.调差类型 == "安装"
		:
		定额.机械费不含税*@工程信息.机械调差系数/100;
		->定额.调差类型 == "拆除安装"
		:
		定额.机械费不含税*@工程信息.拆除机械调差系数/100;					
		}*定额.机械系数*定额.定额系数*定额.数量
	)
}

BEGIN:定额_不取费_机械价差_单价
${
	sum(_过滤不取费定额(),"定额",
	?#{
		->定额.调差类型 == "建筑"
		:
		sum(_过滤机械(),"机械",
			?#{
				->机械.拆分 == 0
				:
				(机械.市场价不含税-机械.预算价不含税)*机械.数量;
				->机械.拆分 == 1
				:
				 sum(
				      _过滤机械子项(),"子项",
					   ?#{
						   	->子项.type == "人工"
							:
							子项.预算价不含税*@工程信息.建筑人工调差系数/100*子项.数量*机械.数量;
							->子项.type == "消材" || 子项.type == "机械"
							:
							(子项.市场价不含税-子项.预算价不含税)*子项.数量*机械.数量;
						}
					);
			 }
		   );
		->定额.调差类型 == "拆除建筑"
		:
		sum(_过滤机械(),"机械",
			?#{
				->机械.拆分 == 0
				:
				(机械.市场价不含税-机械.预算价不含税)*机械.数量;
				->机械.拆分 == 1
				:
				 sum(
				      _过滤机械子项(),"子项",
					   ?#{
						   	->子项.type == "人工"
							:
							子项.预算价不含税*@工程信息.建筑拆除人工调差系数/100*子项.数量*机械.数量;
							->子项.type == "消材" || 子项.type == "机械"
							:
							(子项.市场价不含税-子项.预算价不含税)*子项.数量*机械.数量;
						}
					);
			 }
		   );		   
		->定额.调差类型 == "安装"
		:
		定额.机械费不含税*@工程信息.机械调差系数/100;
		->定额.调差类型 == "拆除安装"
		:
		定额.机械费不含税*@工程信息.拆除机械调差系数/100;		
		
		}*定额.机械系数*定额.定额系数*定额.数量/parent.数量
	)
}


///////////////////////////////////////////////////////////////
//
//  计日工
//  
///////////////////////////////////////////////////////////////
BEGIN:其中计日工_人工价差
${
	sum(_过滤人工计日工(),"计日工人工",
		?#{
			->(@工程信息.专业类型 == "变电" || @工程信息.专业类型 == "发电" || @工程信息.项目类型 =="电缆输电线路工程" || @工程信息.项目类型 =="陆上电缆线路工程" || @工程信息.项目类型 =="水下电缆线路工程") && ((@工程信息.阶段类型!="结算" && @工程信息.阶段类型!="审核") || @工程信息.是否第一次打开工程 == "是")
			:
			计日工人工.预算价*计日工人工.数量* @工程信息.建筑人工调差系数 /100;
			->(@工程信息.项目类型 =="架空输电线路工程"||@工程信息.项目类型=="通信线路工程") && ((@工程信息.阶段类型!="结算" && @工程信息.阶段类型!="审核") || @工程信息.是否第一次打开工程 == "是")
			:
			计日工人工.预算价*计日工人工.数量* @工程信息.人工调差系数 /100;
			
			->@结算条款.人工单价结算办法.值=="固定单价不变" : (计日工人工.中标市场价不含税- 计日工人工.中标预算价不含税) * 计日工人工.数量;		
			->@结算条款.人工单价结算办法.值=="国网清单计价规范结算规则" || @结算条款.人工单价结算办法.值=="辽宁清单计价规范结算规则" :
					#{
						->round(_计日工材机涨幅比例不含税(), 3) > @结算条款.人工单价调整幅度.值 || round(_计日工材机涨幅比例不含税(), 3) < (0 - @结算条款.人工单价调整幅度.值)
						:
						(计日工人工.结算市场价不含税- 计日工人工.中标预算价不含税) * 计日工人工.数量 ;
						->round(_计日工材机涨幅比例不含税(), 3) >= (0 - @结算条款.人工单价调整幅度.值) && round(_计日工材机涨幅比例不含税(), 3) <= @结算条款.人工单价调整幅度.值
						:
						(计日工人工.中标市场价不含税- 计日工人工.中标预算价不含税) * 计日工人工.数量;
					};
				
		}
	)
}

BEGIN:_计日工材机涨幅比例不含税
${
    (计日工人工.结算市场价不含税 - 计日工人工.基准价不含税) / 计日工人工.基准价不含税 * 100;
}

BEGIN:其中计日工_人工价差_单价
${
	sum(_过滤人工计日工(),"计日工人工",
		?#{
			->(@工程信息.专业类型 == "变电" || @工程信息.专业类型 == "发电" || @工程信息.项目类型 =="电缆输电线路工程" || @工程信息.项目类型 =="陆上电缆线路工程" || @工程信息.项目类型 =="水下电缆线路工程") && ((@工程信息.阶段类型!="结算" && @工程信息.阶段类型!="审核") || @工程信息.是否第一次打开工程 == "是")
			:
			计日工人工.预算价* @工程信息.建筑人工调差系数 /100;
			->(@工程信息.项目类型 =="架空输电线路工程"||@工程信息.项目类型=="通信线路工程") && ((@工程信息.阶段类型!="结算" && @工程信息.阶段类型!="审核") || @工程信息.是否第一次打开工程 == "是")
			:
			计日工人工.预算价* @工程信息.人工调差系数 /100;
			
			->@结算条款.人工单价结算办法.值=="固定单价不变" : (计日工人工.中标市场价不含税- 计日工人工.中标预算价不含税);		
			->@结算条款.人工单价结算办法.值=="国网清单计价规范结算规则" || @结算条款.人工单价结算办法.值=="辽宁清单计价规范结算规则" :
					#{
						->round(_计日工材机涨幅比例不含税(), 3) > @结算条款.人工单价调整幅度.值 || round(_计日工材机涨幅比例不含税(), 3) < (0 - @结算条款.人工单价调整幅度.值)
						:
						(计日工人工.结算市场价不含税- 计日工人工.中标预算价不含税);
						->round(_计日工材机涨幅比例不含税(), 3) >= (0 - @结算条款.人工单价调整幅度.值) && round(_计日工材机涨幅比例不含税(), 3) <= @结算条款.人工单价调整幅度.值
						:
						(计日工人工.中标市场价不含税- 计日工人工.中标预算价不含税);
					};
		}
	)
}

BEGIN:其中计日工_甲供材料价差不含税
${
	sum(_过滤材料计日工(),"计日工材料",
		?#{
			->计日工材料.供货方=="甲供"
			:
			(计日工材料.市场价不含税-计日工材料.预算价不含税)*计日工材料.数量;		
		}
	)
}

BEGIN:其中计日工_甲供材料价差不含税_单价
${
	sum(_过滤材料计日工(),"计日工材料",
		?#{
			->计日工材料.供货方=="甲供"
			:
			计日工材料.市场价不含税-计日工材料.预算价不含税;		
		}
	)
}

BEGIN:其中计日工_甲供材料价差含税
${
	sum(_过滤材料计日工(),"计日工材料",
		?#{
			->计日工材料.供货方=="甲供"
			:
			(计日工材料.市场价含税-计日工材料.预算价含税)*计日工材料.数量;
		}
	)
}

BEGIN:其中计日工_甲供材料价差含税_单价
${
	sum(_过滤材料计日工(),"计日工材料",
		?#{
			->计日工材料.供货方=="甲供"
			:
			计日工材料.市场价含税-计日工材料.预算价含税;
		}
	)
}

BEGIN:其中计日工_乙供材料价差不含税
${
	sum(_过滤材料计日工(),"计日工材料",
		?#{
			->计日工材料.供货方=="乙供"
			:
			(计日工材料.市场价不含税-计日工材料.预算价不含税)*计日工材料.数量;
		}
	)
}

BEGIN:其中计日工_乙供材料价差不含税_单价
${
	sum(_过滤材料计日工(),"计日工材料",
		?#{
			->计日工材料.供货方=="乙供"
			:
			计日工材料.市场价不含税-计日工材料.预算价不含税;		
		}
	)
}

BEGIN:其中计日工_机械价差
${
	sum(_过滤机械计日工(),"计日工机械",?(计日工机械.市场价不含税-计日工机械.预算价不含税)*计日工机械.数量)
}

BEGIN:其中计日工_机械价差_单价
${
	sum(_过滤机械计日工(),"计日工机械",?计日工机械.市场价不含税-计日工机械.预算价不含税)
}

BEGIN:其中计日工_人工费
${
   sum(_过滤人工计日工(),"工程量",?工程量.预算价*工程量.数量)
}

BEGIN:其中计日工_人工费_单价
${
   sum(_过滤人工计日工(),"工程量",?工程量.预算价)
}

BEGIN:其中计日工_甲供材料费不含税
${
   sum(_过滤甲供材料计日工(),"工程量", ?工程量.预算价不含税*工程量.数量)
}

BEGIN:其中计日工_甲供材料费不含税_单价
${
   sum(_过滤甲供材料计日工(),"工程量",?工程量.预算价不含税)
}

BEGIN:其中计日工_甲供材料费含税
${
   sum(_过滤甲供材料计日工(),"工程量",?工程量.预算价含税*工程量.数量)
}

BEGIN:其中计日工_甲供材料费含税_单价
${
   sum(_过滤甲供材料计日工(),"工程量",?工程量.预算价含税)
}

BEGIN:其中计日工_乙供材料费不含税
${
   sum(_过滤乙供材料计日工(),"工程量",?工程量.预算价不含税*工程量.数量)
}

BEGIN:其中计日工_乙供材料费不含税_单价
${
   sum(_过滤乙供材料计日工(),"工程量",?工程量.预算价不含税)
}

BEGIN:其中计日工_甲供材料暂估价不含税
${
   sum(_过滤甲供材料计日工(),"工程量",
      ?#{
			->工程量.暂估价 == 1
			:
			工程量.预算价不含税*工程量.数量;
		}
    )
}

BEGIN:其中计日工_甲供材料暂估价不含税_单价
${
	sum(_过滤甲供材料计日工(),"工程量",
		?#{
		   ->工程量.暂估价 == 1
           :
           工程量.预算价不含税;		   
		}
    )
}

BEGIN:其中计日工_甲供材料暂估价含税
${
	sum(_过滤甲供材料计日工(),"工程量",
		?#{
			->工程量.暂估价 == 1
			:
			工程量.预算价含税*工程量.数量;
		}
    )
}

BEGIN:其中计日工_甲供材料暂估价含税_单价
${
	sum(_过滤甲供材料计日工(),"工程量",
      ?#{
			->工程量.暂估价 == 1
			:
			工程量.预算价含税;		   
		}
    )
}

BEGIN:其中计日工_乙供材料暂估价不含税
${
	sum(_过滤乙供材料计日工(),"工程量",
		?#{
			->工程量.暂估价 == 1
			:
			工程量.预算价不含税*工程量.数量;
       }
    )
}

BEGIN:其中计日工_乙供材料暂估价不含税_单价
${
	sum(_过滤乙供材料计日工(),"工程量",
		?#{
			->工程量.暂估价 == 1
			:
			工程量.预算价不含税;		   
		}
    )
}

BEGIN:其中计日工_机械费
${
	sum(_过滤机械计日工(),"工程量",?工程量.预算价不含税*工程量.数量)
}

BEGIN:其中计日工_机械费_单价
${
	sum(_过滤机械计日工(),"工程量",?工程量.预算价不含税)
}

///////////////////////////////////////////////////////////////
//
//  主材
//  
///////////////////////////////////////////////////////////////
BEGIN:主材_取费_甲供主材费不含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.数量 * 主材.预算价不含税;
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税);
		}
	)
}

BEGIN:主材_取费_甲供主材费不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价不含税 * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价不含税;
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税);
		} / parent.数量
	)
}



BEGIN:计日工_主材_取费_甲供主材费不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.预算价不含税;
		}
	)
}

BEGIN:主材_取费_甲供主材费含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.数量 * 主材.预算价含税;
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税);
		}
	)
}

BEGIN:主材_取费_甲供主材费含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价含税 * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价含税;
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税);
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_甲供主材费含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.预算价含税;
		}
	)
}

BEGIN:主材_取费_甲供主材损耗费不含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.数量 * 主材.预算价不含税 * 主材.损耗 /100;
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税 * 拆分子项.损耗 /100);	
		}
	)
}

BEGIN:主材_取费_甲供主材损耗费不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价不含税 * 主材.损耗 /100 * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价不含税 * 主材.损耗 /100;
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税 * 拆分子项.损耗 /100);	
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_甲供主材损耗费不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.预算价不含税 * 主材.损耗 /100;
		}
	)
}

BEGIN:主材_取费_甲供主材损耗费含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.数量 * 主材.预算价含税 * 主材.损耗 /100;
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税 * 拆分子项.损耗 /100);	
		}
	)
}

BEGIN:主材_取费_甲供主材损耗费含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价含税 * 主材.损耗 /100 * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价含税 * 主材.损耗 /100;
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税 * 拆分子项.损耗 /100);	
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_甲供主材损耗费含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.预算价含税 * 主材.损耗 /100;
		}
	)
}

BEGIN:主材_取费_甲供主材价差不含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.数量 * (主材.市场价不含税-主材.预算价不含税);
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税));
		}
	)
}

BEGIN:主材_取费_甲供主材价差不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * (主材.市场价不含税-主材.预算价不含税) * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * (主材.市场价不含税-主材.预算价不含税);
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税));
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_甲供主材价差不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.市场价不含税 - 主材.预算价不含税;
		}
	)
}

BEGIN:主材_取费_甲供主材价差含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.数量 * (主材.市场价含税-主材.预算价含税);
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * (拆分子项.市场价含税-拆分子项.预算价含税));
		}
	)
}

BEGIN:主材_取费_甲供主材价差含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * (主材.市场价含税-主材.预算价含税) * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * (主材.市场价含税-主材.预算价含税);
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * (拆分子项.市场价含税-拆分子项.预算价含税));
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_甲供主材价差含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.市场价含税 - 主材.预算价含税;
		}
	)
}

BEGIN:主材_取费_甲供主材损耗价差不含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.数量 * (主材.市场价不含税-主材.预算价不含税) * 主材.损耗 / 100;
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税) * 拆分子项.损耗 / 100);
		}
	)
}

BEGIN:主材_取费_甲供主材损耗价差不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * (主材.市场价不含税-主材.预算价不含税) * 主材.损耗 / 100 * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * (主材.市场价不含税-主材.预算价不含税) * 主材.损耗 / 100;
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税) * 拆分子项.损耗 / 100);
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_甲供主材损耗价差不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.损耗 * (主材.市场价不含税 - 主材.预算价不含税) / 100;
		}
	)
}

BEGIN:主材_取费_甲供主材损耗价差含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.数量 * (主材.市场价含税-主材.预算价含税) * 主材.损耗 / 100;
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * (拆分子项.市场价含税-拆分子项.预算价含税) * 拆分子项.损耗 / 100);
		}
	)
}

BEGIN:主材_取费_甲供主材损耗价差含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * (主材.市场价含税-主材.预算价含税) * 主材.损耗 / 100 * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * (主材.市场价含税-主材.预算价含税) * 主材.损耗 / 100;
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * (拆分子项.市场价含税-拆分子项.预算价含税) * 拆分子项.损耗 / 100);
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_甲供主材损耗价差含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.损耗 * (主材.市场价含税 - 主材.预算价含税) / 100;
		}
	)
}

BEGIN:主材_取费_甲供主材暂估价不含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.暂估价 == 1 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.数量 * 主材.预算价不含税 * (1 + 主材.损耗 / 100);
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?#{
				->拆分子项.暂估价 == 1
				:
				拆分子项.数量 * 拆分子项.预算价不含税 * (1 + 拆分子项.损耗 / 100);
				});
		}
	)
}

BEGIN:主材_取费_甲供主材暂估价不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.暂估价 == 1 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价不含税 * (1 + 主材.损耗 / 100) * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价不含税 * (1 + 主材.损耗 / 100);
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?#{
				->拆分子项.暂估价 == 1
				:
				拆分子项.数量 * 拆分子项.预算价不含税 * (1 + 拆分子项.损耗 / 100)
				;});
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_甲供主材暂估价不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.暂估价 == 1 && 主材.设备性材料==0
			:
			主材.预算价不含税 * (1 + 主材.损耗 / 100);
		}
	)
}

BEGIN:主材_取费_甲供主材暂估价含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.暂估价 == 1 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.数量 * 主材.预算价含税 * (1 + 主材.损耗 / 100);
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?#{
				->拆分子项.暂估价 == 1
				:
				拆分子项.数量 * 拆分子项.预算价含税 * (1 + 拆分子项.损耗 / 100);
				});
		}
	)
}

BEGIN:主材_取费_甲供主材暂估价含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.暂估价 == 1 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价含税 * (1 + 主材.损耗 / 100) * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价含税 * (1 + 主材.损耗 / 100);
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?#{
				->拆分子项.暂估价 == 1
				:
				拆分子项.数量 * 拆分子项.预算价含税 * (1 + 拆分子项.损耗 / 100);
				});
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_甲供主材暂估价含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.暂估价 == 1 && 主材.设备性材料==0
			:
			主材.预算价含税 * (1 + 主材.损耗 / 100);
		}
	)
}

BEGIN:主材_取费_乙供主材费不含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==0
			:
			主材.数量 * 主材.预算价不含税;
			->主材.拆分 == 1
			:
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税);
		}
	)
}

BEGIN:主材_取费_乙供主材费不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价不含税 * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价不含税;
			};			
			->主材.拆分 == 1
			:
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税);
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_乙供主材费不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==0
			:
			主材.预算价不含税;
		}
	)
}

BEGIN:主材_取费_乙供主材损耗费不含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==0
			:
			主材.数量 * 主材.预算价不含税 * 主材.损耗 /100;
			->主材.拆分 == 1
			:
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税 * 拆分子项.损耗 /100);
		}
	)
}

BEGIN:主材_取费_乙供主材损耗费不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价不含税 * 主材.损耗 /100 * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价不含税 * 主材.损耗 /100;
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税 * 拆分子项.损耗 /100);	
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_乙供主材损耗费不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==0
			:
			主材.预算价不含税 * 主材.损耗 /100;
		}
	)
}

BEGIN:主材_取费_乙供主材价差不含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==0
			:
			主材.数量 * (主材.市场价不含税-主材.预算价不含税);
			->主材.拆分 == 1 
			:
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税));
		}
	)
}

BEGIN:主材_取费_乙供主材价差不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * (主材.市场价不含税-主材.预算价不含税) * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * (主材.市场价不含税-主材.预算价不含税);
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税));
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_乙供主材价差不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==0
			:
			主材.市场价不含税 - 主材.预算价不含税;
		}
	)
}

BEGIN:主材_取费_乙供主材损耗价差不含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==0
			:
			主材.数量 * (主材.市场价不含税-主材.预算价不含税) * 主材.损耗 / 100;
			->主材.拆分 == 1
			:
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税) * 拆分子项.损耗 / 100);
		}
	)
}

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

BEGIN:计日工_主材_取费_乙供主材损耗价差不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==0
			:
			主材.损耗*(主材.市场价不含税-主材.预算价不含税)/ 100;
		}
	)
}

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

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

BEGIN:计日工_主材_取费_乙供主材暂估价不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.暂估价 == 1 && 主材.设备性材料==0
			:
			主材.预算价不含税 * (1 + 主材.损耗 / 100);
		}
	)
}

BEGIN:主材_取费_运输费用
${
	#{
		->@工程信息.专业类型 == "送电"
		:
		sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.设备性材料==0
			:
			主材.单重 * (1 + 主材.毛重 / 100) / 1000 * 主材.数量 * 主材.运输单价;
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.单重 * (1 + 拆分子项.毛重 / 100) / 1000 * 拆分子项.数量 * 拆分子项.运输单价) + 
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.单重 * (1 + 拆分子项.毛重 / 100) / 1000 * 拆分子项.数量 * 拆分子项.运输单价);
		  }
		);
	}	
}

BEGIN:主材_取费_运输费用_单价
${
	#{
		->@工程信息.专业类型 == "送电"
		:
		sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				(主材.单重 + 主材.毛重) / 1000 * 主材.数量 * 主材.运输单价 * parent.数量 / parent.parent.数量;
				->:
				(主材.单重 + 主材.毛重) / 1000 * 主材.数量 * 主材.运输单价;
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?(拆分子项.单重 + 拆分子项.毛重) / 1000 * 拆分子项.数量 * 拆分子项.运输单价) + 
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?(拆分子项.单重 + 拆分子项.毛重) / 1000 * 拆分子项.数量 * 拆分子项.运输单价);
		  } / parent.数量
		);
	}	
}

BEGIN:主材_不取费_甲供主材费不含税
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
		    主材.预算价不含税*主材.数量;
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税);
		}
    )
}

BEGIN:主材_不取费_甲供主材费不含税_单价
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价不含税 * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价不含税;
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税);
		}/parent.数量
	)
}

BEGIN:计日工_主材_不取费_甲供主材费不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.预算价不含税;
		}
	)
}

BEGIN:主材_不取费_甲供主材费含税
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
		    主材.预算价含税*主材.数量;
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税);
		}
	)
}

BEGIN:主材_不取费_甲供主材费含税_单价
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价含税 * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价含税;
			};
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税);
		}/parent.数量
	)						
}

BEGIN:计日工_主材_不取费_甲供主材费含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.预算价含税;
		}
	)
}

BEGIN:主材_不取费_甲供主材损耗费不含税
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
		    主材.预算价不含税*主材.数量*主材.损耗/100;
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税*拆分子项.损耗/100);
		}
	)
}

BEGIN:主材_不取费_甲供主材损耗费不含税_单价
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.预算价不含税*主材.数量*主材.损耗/100 * parent.数量 / parent.parent.数量;
				->:
				主材.预算价不含税*主材.数量*主材.损耗/100;
			};
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税*拆分子项.损耗/100);
		}/parent.数量
	)						
}

BEGIN:计日工_主材_不取费_甲供主材损耗费不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.预算价不含税*主材.损耗/100;
		}
	)
}

BEGIN:主材_不取费_甲供主材损耗费含税
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
		    主材.预算价含税*主材.数量*主材.损耗/100;
			->主材.拆分 == 1
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税*拆分子项.损耗/100);
		}
    )
}

BEGIN:主材_不取费_甲供主材损耗费含税_单价
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.预算价含税*主材.数量*主材.损耗/100 * parent.数量 / parent.parent.数量;
				->:
				主材.预算价含税*主材.数量*主材.损耗/100;
			};
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税*拆分子项.损耗/100);
		}/parent.数量
	)						
}

BEGIN:计日工_主材_不取费_甲供主材损耗费含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.预算价含税*主材.损耗/100;
		}
	)
}

BEGIN:主材_不取费_甲供主材价差不含税
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:			
			(主材.市场价不含税-主材.预算价不含税)*主材.数量;					
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?(拆分子项.市场价不含税-拆分子项.预算价不含税)*拆分子项.数量);			
		}
	)
}

BEGIN:主材_不取费_甲供主材价差不含税_单价
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				(主材.市场价不含税-主材.预算价不含税)*主材.数量 * parent.数量 / parent.parent.数量;
				->:
				(主材.市场价不含税-主材.预算价不含税)*主材.数量;
			};									 
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?(拆分子项.市场价不含税-拆分子项.预算价不含税)*拆分子项.数量);														
		}/parent.数量
	)						
}

BEGIN:计日工_主材_不取费_甲供主材价差不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.市场价不含税-主材.预算价不含税;
		}
	)
}

BEGIN:主材_不取费_甲供主材价差含税
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:			
			(主材.市场价含税-主材.预算价含税)*主材.数量;
					
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?(拆分子项.市场价含税-拆分子项.预算价含税)*拆分子项.数量);															
		}
    )	
}

BEGIN:主材_不取费_甲供主材价差含税_单价
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				(主材.市场价含税-主材.预算价含税)*主材.数量 * parent.数量 / parent.parent.数量;
				->:
				(主材.市场价含税-主材.预算价含税)*主材.数量;
			};				
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?(拆分子项.市场价含税-拆分子项.预算价含税)*拆分子项.数量);												
		}/parent.数量
    )		
}

BEGIN:计日工_主材_不取费_甲供主材价差含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			主材.市场价含税-主材.预算价含税;
		}
	)
}

BEGIN:主材_不取费_甲供主材损耗价差不含税
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:			
			(主材.市场价不含税-主材.预算价不含税)*主材.数量*主材.损耗/100;				
			->主材.拆分 == 1
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?(拆分子项.市场价不含税-拆分子项.预算价不含税)*拆分子项.数量*拆分子项.损耗/100);
		}
	)
}

BEGIN:主材_不取费_甲供主材损耗价差不含税_单价
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				(主材.市场价不含税-主材.预算价不含税)*主材.数量*主材.损耗/100 * parent.数量 / parent.parent.数量;
				->:
				(主材.市场价不含税-主材.预算价不含税)*主材.数量*主材.损耗/100;
			};
				
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?(拆分子项.市场价不含税-拆分子项.预算价不含税)*拆分子项.数量*拆分子项.损耗/100);
		}/parent.数量	
    )	
}

BEGIN:计日工_主材_不取费_甲供主材损耗价差不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			(主材.市场价不含税-主材.预算价不含税)*主材.损耗/100;
		}
	)
}

BEGIN:主材_不取费_甲供主材损耗价差含税
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
			
			(主材.市场价含税-主材.预算价含税)*主材.数量*主材.损耗/100;				
			->主材.拆分 == 1
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?(拆分子项.市场价含税-拆分子项.预算价含税)*拆分子项.数量*拆分子项.损耗/100);											
		}
	)
}

BEGIN:主材_不取费_甲供主材损耗价差含税_单价
${
	    sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				(主材.市场价含税-主材.预算价含税)*主材.数量*主材.损耗/100 * parent.数量 / parent.parent.数量;
				->:
				(主材.市场价含税-主材.预算价含税)*主材.数量*主材.损耗/100;
			};
			->主材.拆分 == 1
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?(拆分子项.市场价含税-拆分子项.预算价含税)*拆分子项.数量*拆分子项.损耗/100);
		}/parent.数量
	)
}

BEGIN:计日工_主材_不取费_甲供主材损耗价差含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "甲供" && 主材.设备性材料==0
			:
			(主材.市场价含税-主材.预算价含税)*主材.损耗/100;
		}
	)
}

BEGIN:主材_不取费_甲供主材暂估价不含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.暂估价 == 1 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
			主材.数量 * 主材.预算价不含税 * (1 + 主材.损耗 / 100);
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?#{
				->拆分子项.暂估价 == 1
				:
				拆分子项.数量 * 拆分子项.预算价不含税 * (1 + 拆分子项.损耗 / 100);
				});
		}
	)
}

BEGIN:主材_不取费_甲供主材暂估价不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.暂估价 == 1 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价不含税 * (1 + 主材.损耗 / 100) * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价不含税 * (1 + 主材.损耗 / 100);
			};
			->主材.拆分 == 1 
			:
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?#{
				->拆分子项.暂估价 == 1
				:
				拆分子项.数量 * 拆分子项.预算价不含税 * (1 + 拆分子项.损耗 / 100)
				;});
		} / parent.数量
	)
}

BEGIN:计日工_主材_不取费_甲供主材暂估价不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "甲供" && 主材.暂估价 == 1 && 主材.设备性材料==0
			:
			主材.预算价不含税*(1+主材.损耗/100);
		}
	)
}

BEGIN:主材_不取费_甲供主材暂估价含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.暂估价 == 1 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
			主材.数量 * 主材.预算价含税 * (1 + 主材.损耗 / 100);
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?#{
				->拆分子项.暂估价 == 1
				:
				拆分子项.数量 * 拆分子项.预算价含税 * (1 + 拆分子项.损耗 / 100);
				});
		}
	)
}

BEGIN:主材_不取费_甲供主材暂估价含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.暂估价 == 1 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价含税 * (1 + 主材.损耗 / 100) * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价含税 * (1 + 主材.损耗 / 100);
			};
			->主材.拆分 == 1 
			:
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?#{
				->拆分子项.暂估价 == 1
				:
				拆分子项.数量 * 拆分子项.预算价含税 * (1 + 拆分子项.损耗 / 100);
				});
		} / parent.数量
	)
}
BEGIN:计日工_主材_不取费_甲供主材暂估价含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "甲供"&& 主材.暂估价 == 1 && 主材.设备性材料==0
			:
			主材.预算价含税*(1+主材.损耗/100);
		}
	)
}

BEGIN:主材_不取费_乙供主材费不含税
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
		    主材.预算价不含税*主材.数量;
			->主材.拆分 == 1
	        :
			sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税);
		}
	)
}

BEGIN:主材_不取费_乙供主材费不含税_单价
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.预算价不含税*主材.数量 * parent.数量 / parent.parent.数量;
				->:
				主材.预算价不含税*主材.数量;
			};
			->主材.拆分 == 1
	        :
			sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税);
		}/parent.数量
	)
}

BEGIN:计日工_主材_不取费_乙供主材费不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "乙供" && 主材.设备性材料==0
			:
			主材.预算价不含税;
		}
	)
}

BEGIN:主材_不取费_乙供主材损耗费不含税
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
		    主材.预算价不含税*主材.数量*主材.损耗/100;
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税*拆分子项.损耗/100);
		}
	)
}

BEGIN:主材_不取费_乙供主材损耗费不含税_单价
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.预算价不含税*主材.数量*主材.损耗/100 * parent.数量 / parent.parent.数量;
				->:
				主材.预算价不含税*主材.数量*主材.损耗/100;
			};
			->主材.拆分 == 1
	        :
			sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税*拆分子项.损耗/100);
		}/parent.数量
	)
}

BEGIN:计日工_主材_不取费_乙供主材损耗费不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "乙供" && 主材.设备性材料==0
			:
			主材.预算价不含税*主材.损耗/100;
		}
	)
}

BEGIN:主材_不取费_乙供主材价差不含税
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:			
			(主材.市场价不含税-主材.预算价不含税)*主材.数量;
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?(拆分子项.市场价不含税-拆分子项.预算价不含税)*拆分子项.数量);
		}
	)
}

BEGIN:主材_不取费_乙供主材价差不含税_单价
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
			#{
			   ->parent.type=="主材"
				: 
				(主材.市场价不含税-主材.预算价不含税)*主材.数量 * parent.数量 / parent.parent.数量;
				->:
				(主材.市场价不含税-主材.预算价不含税)*主材.数量;
			};
			->主材.拆分 == 1
	        :
			sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?(拆分子项.市场价不含税-拆分子项.预算价不含税)*拆分子项.数量);
		}/parent.数量
	)
}

BEGIN:计日工_主材_不取费_乙供主材价差不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "乙供" && 主材.设备性材料==0
			:
			主材.市场价不含税-主材.预算价不含税;
		}
	)
}

BEGIN:主材_不取费_乙供主材损耗价差不含税
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
			(主材.市场价不含税-主材.预算价不含税)*主材.数量*主材.损耗/100;
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?(拆分子项.市场价不含税-拆分子项.预算价不含税)*拆分子项.数量*拆分子项.损耗/100);
		}
	)
}

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

BEGIN:计日工_主材_不取费_乙供主材损耗价差不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "乙供" && 主材.设备性材料==0
			:
			(主材.市场价不含税-主材.预算价不含税)*主材.损耗/100;
		}
	)
}

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

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

BEGIN:计日工_主材_不取费_乙供主材暂估价不含税_单价
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "乙供" && 主材.暂估价 == 1 && 主材.设备性材料==0
			:
			主材.预算价不含税*(1+主材.损耗/100);
		}
	)
}

BEGIN:主材_不取费_运输费用
${
	#{
		->@工程信息.专业类型 == "送电"
		:
		sum(_过滤主材(),"主材",
			?#{
				->主材.拆分 == 0 && 主材.费用类型 == "不取费" && 主材.设备性材料==0
				:
				主材.单重/1000*主材.数量*主材.运输单价*(1+主材.损耗/100)*(1+主材.毛重/100);
				->主材.拆分 == 1
				:
				sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.单重 * (1 + 拆分子项.毛重 / 100) / 1000 * 拆分子项.数量 * 拆分子项.运输单价) + 
				sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.单重 * (1 + 拆分子项.毛重 / 100) / 1000 * 拆分子项.数量 * 拆分子项.运输单价);
			}
		);
	}
}

BEGIN:主材_不取费_运输费用_单价
${
	#{
		->@工程信息.专业类型 == "送电"
		:
		sum(_过滤主材(),"主材",
			?#{
				->主材.拆分 == 0 && 主材.费用类型 == "不取费" && 主材.设备性材料==0
				:
				#{
				   ->parent.type=="主材"
					: 
					主材.单重/1000*主材.数量*主材.运输单价*(1+主材.损耗/100)*(1+主材.毛重/100) * parent.数量 / parent.parent.数量;
					->:
					主材.单重/1000*主材.数量*主材.运输单价*(1+主材.损耗/100)*(1+主材.毛重/100);
				};
				->主材.拆分 == 1
				:
				sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.单重 * (1 + 拆分子项.毛重 / 100) / 1000 * 拆分子项.数量 * 拆分子项.运输单价) + 
				sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.单重 * (1 + 拆分子项.毛重 / 100) / 1000 * 拆分子项.数量 * 拆分子项.运输单价);
			}/parent.数量
		);
	}
}


///////////////////////////////////////////////////////////////
//
//  主材-设备性材料
//  
///////////////////////////////////////////////////////////////
BEGIN:主材_取费_甲供主材费不含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.数量 * 主材.预算价不含税;
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税);
		}
	)
}

BEGIN:主材_取费_甲供主材费不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价不含税 * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价不含税;
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税);
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_甲供主材费不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.预算价不含税;
		}
	)
}

BEGIN:主材_取费_甲供主材费含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.数量 * 主材.预算价含税;
			->主材.拆分 == 1 
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税);
		}
	)
}

BEGIN:主材_取费_甲供主材费含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价含税 * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价含税;
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税);
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_甲供主材费含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.预算价含税;
		}
	)
}

BEGIN:主材_取费_甲供主材损耗费不含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.数量 * 主材.预算价不含税 * 主材.损耗 /100;
			->主材.拆分 == 1 
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税 * 拆分子项.损耗 /100);	
		}
	)
}

BEGIN:主材_取费_甲供主材损耗费不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价不含税 * 主材.损耗 /100 * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价不含税 * 主材.损耗 /100;
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税 * 拆分子项.损耗 /100);	
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_甲供主材损耗费不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.预算价不含税 * 主材.损耗 /100;
		}
	)
}

BEGIN:主材_取费_甲供主材损耗费含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.数量 * 主材.预算价含税 * 主材.损耗 /100;
			->主材.拆分 == 1 
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税 * 拆分子项.损耗 /100);	
		}
	)
}

BEGIN:主材_取费_甲供主材损耗费含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价含税 * 主材.损耗 /100 * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价含税 * 主材.损耗 /100;
			};
			->主材.拆分 == 1 
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税 * 拆分子项.损耗 /100);	
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_甲供主材损耗费含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.预算价含税 * 主材.损耗 /100;
		}
	)
}

BEGIN:主材_取费_甲供主材价差不含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.数量 * (主材.市场价不含税-主材.预算价不含税);
			->主材.拆分 == 1 
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税));
		}
	)
}

BEGIN:主材_取费_甲供主材价差不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * (主材.市场价不含税-主材.预算价不含税) * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * (主材.市场价不含税-主材.预算价不含税);
			};
			->主材.拆分 == 1 
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税));
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_甲供主材价差不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.市场价不含税 - 主材.预算价不含税;
		}
	)
}

BEGIN:主材_取费_甲供主材价差含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.数量 * (主材.市场价含税-主材.预算价含税);
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * (拆分子项.市场价含税-拆分子项.预算价含税));
		}
	)
}

BEGIN:主材_取费_甲供主材价差含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * (主材.市场价含税-主材.预算价含税) * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * (主材.市场价含税-主材.预算价含税);
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * (拆分子项.市场价含税-拆分子项.预算价含税));
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_甲供主材价差含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.市场价含税 - 主材.预算价含税;
		}
	)
}

BEGIN:主材_取费_甲供主材损耗价差不含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.数量 * (主材.市场价不含税-主材.预算价不含税) * 主材.损耗 / 100;
			->主材.拆分 == 1 
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税) * 拆分子项.损耗 / 100);
		}
	)
}

BEGIN:主材_取费_甲供主材损耗价差不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * (主材.市场价不含税-主材.预算价不含税) * 主材.损耗 / 100 * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * (主材.市场价不含税-主材.预算价不含税) * 主材.损耗 / 100;
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税) * 拆分子项.损耗 / 100);
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_甲供主材损耗价差不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.损耗 * (主材.市场价不含税 - 主材.预算价不含税) / 100;
		}
	)
}

BEGIN:主材_取费_甲供主材损耗价差含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.数量 * (主材.市场价含税-主材.预算价含税) * 主材.损耗 / 100;
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * (拆分子项.市场价含税-拆分子项.预算价含税) * 拆分子项.损耗 / 100);
		}
	)
}

BEGIN:主材_取费_甲供主材损耗价差含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * (主材.市场价含税-主材.预算价含税) * 主材.损耗 / 100 * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * (主材.市场价含税-主材.预算价含税) * 主材.损耗 / 100;
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * (拆分子项.市场价含税-拆分子项.预算价含税) * 拆分子项.损耗 / 100);
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_甲供主材损耗价差含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.损耗 * (主材.市场价含税 - 主材.预算价含税) / 100;
		}
	)
}

BEGIN:主材_取费_甲供主材暂估价不含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.暂估价 == 1 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.数量 * 主材.预算价不含税 * (1 + 主材.损耗 / 100);
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?#{
				->拆分子项.暂估价 == 1
				:
				拆分子项.数量 * 拆分子项.预算价不含税 * (1 + 拆分子项.损耗 / 100);
				});
		}
	)
}

BEGIN:主材_取费_甲供主材暂估价不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.暂估价 == 1 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价不含税 * (1 + 主材.损耗 / 100) * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价不含税 * (1 + 主材.损耗 / 100);
			};
			->主材.拆分 == 1 
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?#{
				->拆分子项.暂估价 == 1
				:
				拆分子项.数量 * 拆分子项.预算价不含税 * (1 + 拆分子项.损耗 / 100)
				;});
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_甲供主材暂估价不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.暂估价 == 1 && 主材.设备性材料==1
			:
			主材.预算价不含税 * (1 + 主材.损耗 / 100);
		}
	)
}

BEGIN:主材_取费_甲供主材暂估价含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.暂估价 == 1 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.数量 * 主材.预算价含税 * (1 + 主材.损耗 / 100);
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?#{
				->拆分子项.暂估价 == 1
				:
				拆分子项.数量 * 拆分子项.预算价含税 * (1 + 拆分子项.损耗 / 100);
				});
		}
	)
}

BEGIN:主材_取费_甲供主材暂估价含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.暂估价 == 1 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价含税 * (1 + 主材.损耗 / 100) * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价含税 * (1 + 主材.损耗 / 100);
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?#{
				->拆分子项.暂估价 == 1
				:
				拆分子项.数量 * 拆分子项.预算价含税 * (1 + 拆分子项.损耗 / 100);
				});
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_甲供主材暂估价含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "甲供" && 主材.暂估价 == 1 && 主材.设备性材料==1
			:
			主材.预算价含税 * (1 + 主材.损耗 / 100);
		}
	)
}

BEGIN:主材_取费_乙供主材费不含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==1
			:
			主材.数量 * 主材.预算价不含税;
			->主材.拆分 == 1
			:
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税);
		}
	)
}

BEGIN:主材_取费_乙供主材费含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==1
			:
			主材.数量 * 主材.预算价含税;
			->主材.拆分 == 1
			:
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税);
		}
	)
}

BEGIN:主材_不取费_乙供主材费含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "不取费" && 主材.供货方 == "乙供" && 主材.设备性材料==1
			:
			主材.数量 * 主材.预算价含税;
			->主材.拆分 == 1
			:
			sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税);
		}
	)
}

BEGIN:主材_取费_乙供主材费不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价不含税 * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价不含税;
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税);
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_乙供主材费不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==1
			:
			主材.预算价不含税;
		}
	)
}

BEGIN:主材_取费_乙供主材损耗费不含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==1
			:
			主材.数量 * 主材.预算价不含税 * 主材.损耗 /100;
			->主材.拆分 == 1
			:
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税 * 拆分子项.损耗 /100);
		}
	)
}

BEGIN:主材_取费_乙供主材损耗费含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==1
			:
			主材.数量 * 主材.预算价含税 * 主材.损耗 /100;
			->主材.拆分 == 1
			:
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税 * 拆分子项.损耗 /100);
		}
	)
}

BEGIN:主材_取费_乙供主材损耗费不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价不含税 * 主材.损耗 /100 * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价不含税 * 主材.损耗 /100;
			};
			->主材.拆分 == 1 
			:
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税 * 拆分子项.损耗 /100);	
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_乙供主材损耗费不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==1
			:
			主材.预算价不含税 * 主材.损耗 /100;
		}
	)
}

BEGIN:主材_取费_乙供主材价差不含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==1
			:
			主材.数量 * (主材.市场价不含税-主材.预算价不含税);
			->主材.拆分 == 1
			:
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税));
		}
	)
}

BEGIN:主材_取费_乙供主材价差含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==1
			:
			主材.数量 * (主材.市场价含税-主材.预算价含税);
			->主材.拆分 == 1
			:
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * (拆分子项.市场价含税-拆分子项.预算价含税));
		}
	)
}

BEGIN:主材_取费_乙供主材价差不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * (主材.市场价不含税-主材.预算价不含税) * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * (主材.市场价不含税-主材.预算价不含税);
			};
			->主材.拆分 == 1 
			:
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税));
		} / parent.数量
	)
}

BEGIN:计日工_主材_取费_乙供主材价差不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==1
			:
			主材.市场价不含税 - 主材.预算价不含税;
		}
	)
}

BEGIN:主材_取费_乙供主材损耗价差含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==1
			:
			主材.数量 * (主材.市场价含税-主材.预算价含税) * 主材.损耗 / 100;
			->主材.拆分 == 1
			:
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * (拆分子项.市场价含税-拆分子项.预算价含税) * 拆分子项.损耗 / 100);
		}
	)
}

BEGIN:主材_不取费_乙供主材损耗价差含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "不取费" && 主材.供货方 == "乙供" && 主材.设备性材料==1
			:
			主材.数量 * (主材.市场价含税-主材.预算价含税) * 主材.损耗 / 100;
			->主材.拆分 == 1
			:
			sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * (拆分子项.市场价含税-拆分子项.预算价含税) * 拆分子项.损耗 / 100);
		}
	)
}

BEGIN:主材_取费_乙供主材损耗价差不含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==1
			:
			主材.数量 * (主材.市场价不含税-主材.预算价不含税) * 主材.损耗 / 100;
			->主材.拆分 == 1
			:
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税) * 拆分子项.损耗 / 100);
		}
	)
}

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

BEGIN:计日工_主材_取费_乙供主材损耗价差不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==1
			:
			主材.损耗*(主材.市场价不含税-主材.预算价不含税)/ 100;
		}
	)
}

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

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

BEGIN:计日工_主材_取费_乙供主材暂估价不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.暂估价 == 1 && 主材.设备性材料==1
			:
			主材.预算价不含税 * (1 + 主材.损耗 / 100);
		}
	)
}

BEGIN:主材_取费_运输费用_设备性材料
${
	#{
		->@工程信息.专业类型 == "送电"
		:
		sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.设备性材料==1
			:
			主材.单重 * (1 + 主材.毛重 / 100) / 1000 * 主材.数量 * 主材.运输单价;
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.单重 * (1 + 拆分子项.毛重 / 100) / 1000 * 拆分子项.数量 * 拆分子项.运输单价) + 
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.单重 * (1 + 拆分子项.毛重 / 100) / 1000 * 拆分子项.数量 * 拆分子项.运输单价);
		  }
		);
	}	
}

BEGIN:主材_取费_运输费用_单价_设备性材料
${
	#{
		->@工程信息.专业类型 == "送电"
		:
		sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				(主材.单重 + 主材.毛重) / 1000 * 主材.数量 * 主材.运输单价 * parent.数量 / parent.parent.数量;
				->:
				(主材.单重 + 主材.毛重) / 1000 * 主材.数量 * 主材.运输单价;
			};
			->主材.拆分 == 1 
			:
			sum(filter(_过滤甲供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?(拆分子项.单重 + 拆分子项.毛重) / 1000 * 拆分子项.数量 * 拆分子项.运输单价) + 
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?(拆分子项.单重 + 拆分子项.毛重) / 1000 * 拆分子项.数量 * 拆分子项.运输单价);
		  } / parent.数量
		);
	}	
}

BEGIN:主材_不取费_甲供主材费不含税_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
		    主材.预算价不含税*主材.数量;
			->主材.拆分 == 1
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税);
		}
    )
}

BEGIN:主材_不取费_甲供主材费不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.预算价不含税*主材.数量 * parent.数量 / parent.parent.数量;
				->:
				主材.预算价不含税*主材.数量;
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税);
		}/parent.数量
	)
}

BEGIN:计日工_主材_不取费_甲供主材费不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.预算价不含税;
		}
	)
}

BEGIN:主材_不取费_甲供主材费含税_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
		    主材.预算价含税*主材.数量;
			->主材.拆分 == 1
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税);
		}
	)
}

BEGIN:主材_不取费_甲供主材费含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.预算价含税*主材.数量 * parent.数量 / parent.parent.数量;
				->:
				主材.预算价含税*主材.数量;
			};
			->主材.拆分 == 1
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税);
		}/parent.数量
	)						
}

BEGIN:计日工_主材_不取费_甲供主材费含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.预算价含税;
		}
	)
}

BEGIN:主材_不取费_甲供主材损耗费不含税_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
		    主材.预算价不含税*主材.数量*主材.损耗/100;
			->主材.拆分 == 1
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税*拆分子项.损耗/100);
		}
	)
}

BEGIN:主材_不取费_甲供主材损耗费不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.预算价不含税*主材.数量*主材.损耗/100 * parent.数量 / parent.parent.数量;
				->:
				主材.预算价不含税*主材.数量*主材.损耗/100;
			};
			->主材.拆分 == 1
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税*拆分子项.损耗/100);
		}/parent.数量
	)						
}

BEGIN:计日工_主材_不取费_甲供主材损耗费不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.预算价不含税*主材.损耗/100;
		}
	)
}

BEGIN:主材_不取费_甲供主材损耗费含税_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
		    主材.预算价含税*主材.数量*主材.损耗/100;
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税*拆分子项.损耗/100);
		}
    )
}

BEGIN:主材_不取费_甲供主材损耗费含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.预算价含税*主材.数量*主材.损耗/100 * parent.数量 / parent.parent.数量;
				->:
				主材.预算价含税*主材.数量*主材.损耗/100;
			};
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税*拆分子项.损耗/100);
		}/parent.数量
	)						
}

BEGIN:计日工_主材_不取费_甲供主材损耗费含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.预算价含税*主材.损耗/100;
		}
	)
}

BEGIN:主材_不取费_甲供主材价差不含税_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:			
			(主材.市场价不含税-主材.预算价不含税)*主材.数量;					
			->主材.拆分 == 1
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?(拆分子项.市场价不含税-拆分子项.预算价不含税)*拆分子项.数量);			
		}
	)
}

BEGIN:主材_不取费_甲供主材价差不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				(主材.市场价不含税-主材.预算价不含税)*主材.数量 * parent.数量 / parent.parent.数量;
				->:
				(主材.市场价不含税-主材.预算价不含税)*主材.数量;
			};								 
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?(拆分子项.市场价不含税-拆分子项.预算价不含税)*拆分子项.数量);														
		}/parent.数量
	)						
}

BEGIN:计日工_主材_不取费_甲供主材价差不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.市场价不含税-主材.预算价不含税;
		}
	)
}

BEGIN:主材_不取费_甲供主材价差含税_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:			
			(主材.市场价含税-主材.预算价含税)*主材.数量;
					
			->主材.拆分 == 1
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?(拆分子项.市场价含税-拆分子项.预算价含税)*拆分子项.数量);															
		}
    )	
}

BEGIN:主材_不取费_甲供主材价差含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:	
			#{
			   ->parent.type=="主材"
				: 
				(主材.市场价含税-主材.预算价含税)*主材.数量 * parent.数量 / parent.parent.数量;
				->:
				(主材.市场价含税-主材.预算价含税)*主材.数量;
			};				
			->主材.拆分 == 1
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?(拆分子项.市场价含税-拆分子项.预算价含税)*拆分子项.数量);												
		}/parent.数量
    )		
}

BEGIN:计日工_主材_不取费_甲供主材价差含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			主材.市场价含税-主材.预算价含税;
		}
	)
}

BEGIN:主材_不取费_甲供主材损耗价差不含税_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:			
			(主材.市场价不含税-主材.预算价不含税)*主材.数量*主材.损耗/100;				
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?(拆分子项.市场价不含税-拆分子项.预算价不含税)*拆分子项.数量*拆分子项.损耗/100);
		}
	)
}

BEGIN:主材_不取费_甲供主材损耗价差不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				(主材.市场价不含税-主材.预算价不含税)*主材.数量*主材.损耗/100 * parent.数量 / parent.parent.数量;
				->:
				(主材.市场价不含税-主材.预算价不含税)*主材.数量*主材.损耗/100;
			};				
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?(拆分子项.市场价不含税-拆分子项.预算价不含税)*拆分子项.数量*拆分子项.损耗/100);
		}/parent.数量	
    )	
}

BEGIN:计日工_主材_不取费_甲供主材损耗价差不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			(主材.市场价不含税-主材.预算价不含税)*主材.损耗/100;
		}
	)
}

BEGIN:主材_不取费_甲供主材损耗价差含税_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
			
			(主材.市场价含税-主材.预算价含税)*主材.数量*主材.损耗/100;				
			->主材.拆分 == 1
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?(拆分子项.市场价含税-拆分子项.预算价含税)*拆分子项.数量*拆分子项.损耗/100);											
		}
	)
}

BEGIN:主材_不取费_甲供主材损耗价差含税_单价_设备性材料
${
	    sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				(主材.市场价含税-主材.预算价含税)*主材.数量*主材.损耗/100 * parent.数量 / parent.parent.数量;
				->:
				(主材.市场价含税-主材.预算价含税)*主材.数量*主材.损耗/100;
			};
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?(拆分子项.市场价含税-拆分子项.预算价含税)*拆分子项.数量*拆分子项.损耗/100);
		}/parent.数量
	)
}

BEGIN:计日工_主材_不取费_甲供主材损耗价差含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "甲供" && 主材.设备性材料==1
			:
			(主材.市场价含税-主材.预算价含税)*主材.损耗/100;
		}
	)
}

BEGIN:主材_不取费_甲供主材暂估价不含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.暂估价 == 1 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
			主材.数量 * 主材.预算价不含税 * (1 + 主材.损耗 / 100);
			->主材.拆分 == 1 
			:
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?#{
				->拆分子项.暂估价 == 1
				:
				拆分子项.数量 * 拆分子项.预算价不含税 * (1 + 拆分子项.损耗 / 100);
				});
		}
	)
}

BEGIN:主材_不取费_甲供主材暂估价不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.暂估价 == 1 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价不含税 * (1 + 主材.损耗 / 100) * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价不含税 * (1 + 主材.损耗 / 100);
			};
			->主材.拆分 == 1 
			:
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?#{
				->拆分子项.暂估价 == 1
				:
				拆分子项.数量 * 拆分子项.预算价不含税 * (1 + 拆分子项.损耗 / 100)
				;});
		} / parent.数量
	)
}

BEGIN:计日工_主材_不取费_甲供主材暂估价不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "甲供" && 主材.暂估价 == 1 && 主材.设备性材料==1
			:
			主材.预算价不含税*(1+主材.损耗/100);
		}
	)
}

BEGIN:主材_不取费_甲供主材暂估价含税_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.暂估价 == 1 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
			主材.数量 * 主材.预算价含税 * (1 + 主材.损耗 / 100);
			->主材.拆分 == 1 
			:
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?#{
				->拆分子项.暂估价 == 1
				:
				拆分子项.数量 * 拆分子项.预算价含税 * (1 + 拆分子项.损耗 / 100);
				});
		}
	)
}

BEGIN:主材_不取费_甲供主材暂估价含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.暂估价 == 1 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.数量 * 主材.预算价含税 * (1 + 主材.损耗 / 100) * parent.数量 / parent.parent.数量;
				->:
				主材.数量 * 主材.预算价含税 * (1 + 主材.损耗 / 100);
			};
			->主材.拆分 == 1
			:
			sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?#{
				->拆分子项.暂估价 == 1
				:
				拆分子项.数量 * 拆分子项.预算价含税 * (1 + 拆分子项.损耗 / 100);
				});
		} / parent.数量
	)
}
BEGIN:计日工_主材_不取费_甲供主材暂估价含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "甲供"&& 主材.暂估价 == 1 && 主材.设备性材料==1
			:
			主材.预算价含税*(1+主材.损耗/100);
		}
	)
}

BEGIN:主材_不取费_乙供主材费不含税_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
		    主材.预算价不含税*主材.数量;
			->主材.拆分 == 1
	        :
			sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税);
		}
	)
}

BEGIN:主材_不取费_乙供主材费不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.预算价不含税*主材.数量 * parent.数量 / parent.parent.数量;
				->:
				主材.预算价不含税*主材.数量;
			};
			->主材.拆分 == 1
	        :
			sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税);
		}/parent.数量
	)
}

BEGIN:计日工_主材_不取费_乙供主材费不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "乙供" && 主材.设备性材料==1
			:
			主材.预算价不含税;
		}
	)
}

BEGIN:主材_不取费_乙供主材损耗费不含税_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
		    主材.预算价不含税*主材.数量*主材.损耗/100;
			->主材.拆分 == 1
	        :
			sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税*拆分子项.损耗/100);
		}
	)
}

BEGIN:主材_不取费_乙供主材损耗费含税_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
		    主材.预算价含税*主材.数量*主材.损耗/100;
			->主材.拆分 == 1
	        :
			sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税*拆分子项.损耗/100);
		}
	)
}

BEGIN:主材_不取费_乙供主材损耗费不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				主材.预算价不含税*主材.数量*主材.损耗/100 * parent.数量 / parent.parent.数量;
				->:
				主材.预算价不含税*主材.数量*主材.损耗/100;
			};
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税*拆分子项.损耗/100);
		}/parent.数量
	)
}

BEGIN:计日工_主材_不取费_乙供主材损耗费不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "乙供" && 主材.设备性材料==1
			:
			主材.预算价不含税*主材.损耗/100;
		}
	)
}

BEGIN:主材_不取费_乙供主材价差不含税_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:			
			(主材.市场价不含税-主材.预算价不含税)*主材.数量;
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?(拆分子项.市场价不含税-拆分子项.预算价不含税)*拆分子项.数量);
		}
	)
}

BEGIN:主材_不取费_乙供主材价差含税_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:			
			(主材.市场价含税-主材.预算价含税)*主材.数量;
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?(拆分子项.市场价含税-拆分子项.预算价含税)*拆分子项.数量);
		}
	)
}

BEGIN:主材_不取费_乙供主材价差不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
			#{
			   ->parent.type=="主材"
				: 
				(主材.市场价不含税-主材.预算价不含税)*主材.数量 * parent.数量 / parent.parent.数量;
				->:
				(主材.市场价不含税-主材.预算价不含税)*主材.数量;
			};
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?(拆分子项.市场价不含税-拆分子项.预算价不含税)*拆分子项.数量);
		}/parent.数量
	)
}

BEGIN:计日工_主材_不取费_乙供主材价差不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "乙供" && 主材.设备性材料==1
			:
			主材.市场价不含税-主材.预算价不含税;
		}
	)
}

BEGIN:主材_不取费_乙供主材损耗价差不含税_设备性材料
${
	sum(_过滤主材(),"主材",?
		#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费" && 主材.设备性材料==1
			:
			(主材.市场价不含税-主材.预算价不含税)*主材.数量*主材.损耗/100;
			->主材.拆分 == 1 
	        :
			sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?(拆分子项.市场价不含税-拆分子项.预算价不含税)*拆分子项.数量*拆分子项.损耗/100);
		}
	)
}

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

BEGIN:计日工_主材_不取费_乙供主材损耗价差不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "乙供" && 主材.设备性材料==1
			:
			(主材.市场价不含税-主材.预算价不含税)*主材.损耗/100;
		}
	)
}

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

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

BEGIN:计日工_主材_不取费_乙供主材暂估价不含税_单价_设备性材料
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.费用类型 == "不取费" && 主材.供货方 == "乙供" && 主材.暂估价 == 1 && 主材.设备性材料==1
			:
			主材.预算价不含税*(1+主材.损耗/100);
		}
	)
}

BEGIN:主材_不取费_运输费用_设备性材料
${
	#{
		->@工程信息.专业类型 == "送电"
		:
		sum(_过滤主材(),"主材",
			?#{
				->主材.拆分 == 0 && 主材.费用类型 == "不取费" && 主材.设备性材料==1
				:
				主材.单重/1000*主材.数量*主材.运输单价*(1+主材.损耗/100)*(1+主材.毛重/100);
				->主材.拆分 == 1
				:
				sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.单重 * (1 + 拆分子项.毛重 / 100) / 1000 * 拆分子项.数量 * 拆分子项.运输单价) + 
				sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.单重 * (1 + 拆分子项.毛重 / 100) / 1000 * 拆分子项.数量 * 拆分子项.运输单价);
			}
		);
	}
}

BEGIN:主材_不取费_运输费用_单价_设备性材料
${
	#{
		->@工程信息.专业类型 == "送电"
		:
		sum(_过滤主材(),"主材",
			?#{
				->主材.拆分 == 0 && 主材.费用类型 == "不取费" && 主材.设备性材料==1
				:
				#{
				   ->parent.type=="主材"
					: 
					主材.单重/1000*主材.数量*主材.运输单价*(1+主材.损耗/100)*(1+主材.毛重/100) * parent.数量 / parent.parent.数量;
					->:
					主材.单重/1000*主材.数量*主材.运输单价*(1+主材.损耗/100)*(1+主材.毛重/100);
				};
				->主材.拆分 == 1
				:
				sum(filter(_过滤甲供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.单重 * (1 + 拆分子项.毛重 / 100) / 1000 * 拆分子项.数量 * 拆分子项.运输单价) + 
				sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==1),"拆分子项",?拆分子项.单重 * (1 + 拆分子项.毛重 / 100) / 1000 * 拆分子项.数量 * 拆分子项.运输单价);
			}/parent.数量
		);
	}
}

///////////////////////////////////////////////////////////////
//
//  设备
//
///////////////////////////////////////////////////////////////
BEGIN:设备_普通设备_甲供设备费不含税
${
	?#{
		->@工程信息.是否结算量差工程=="是"
		:
		sum(_过滤不受清单量影响的普通甲供设备(),"设备",?设备.数量 * 设备.单价不含税)+主材_不取费_甲供主材费不含税_设备性材料()+主材_取费_甲供主材费不含税_设备性材料()+主材_不取费_甲供主材损耗费不含税_设备性材料()+主材_取费_甲供主材损耗费不含税_设备性材料()+主材_不取费_甲供主材价差不含税_设备性材料()+主材_取费_甲供主材价差不含税_设备性材料()+主材_不取费_甲供主材损耗价差不含税_设备性材料()+主材_取费_甲供主材损耗价差不含税_设备性材料()+甲供主材差值不含税_设备性材料()+甲供主材损耗差值不含税_设备性材料();
		->@工程信息.是否结算量差工程!="是" && (@工程信息.阶段类型=="结算" || @工程信息.阶段类型=="审核")
		:
		sum(_过滤普通甲供设备(),"设备",?设备.数量 * 设备.单价不含税)+主材_不取费_甲供主材费不含税_设备性材料()+主材_取费_甲供主材费不含税_设备性材料()+主材_不取费_甲供主材损耗费不含税_设备性材料()+主材_取费_甲供主材损耗费不含税_设备性材料()+主材_不取费_甲供主材价差不含税_设备性材料()+主材_取费_甲供主材价差不含税_设备性材料()+主材_不取费_甲供主材损耗价差不含税_设备性材料()+主材_取费_甲供主材损耗价差不含税_设备性材料()+甲供主材差值不含税_设备性材料()+甲供主材损耗差值不含税_设备性材料();
		->@工程信息.阶段类型=="全口径预算"
		:
		sum(_过滤普通甲供设备(),"设备",?设备.数量 * 设备.单价不含税)+主材_不取费_甲供主材费不含税_设备性材料()+主材_取费_甲供主材费不含税_设备性材料()+主材_不取费_甲供主材损耗费不含税_设备性材料()+主材_取费_甲供主材损耗费不含税_设备性材料()+主材_不取费_甲供主材价差不含税_设备性材料()+主材_取费_甲供主材价差不含税_设备性材料()+主材_不取费_甲供主材损耗价差不含税_设备性材料()+主材_取费_甲供主材损耗价差不含税_设备性材料()+主材_取费_甲供主材差值不含税_设备性材料()+主材_不取费_甲供主材差值不含税_设备性材料()+主材_取费_甲供主材损耗差值不含税_设备性材料()+主材_不取费_甲供主材损耗差值不含税_设备性材料();
		->
		:
		sum(_过滤普通甲供设备(),"设备",?设备.数量 * 设备.单价不含税)+主材_不取费_甲供主材费不含税_设备性材料()+主材_取费_甲供主材费不含税_设备性材料()+主材_不取费_甲供主材损耗费不含税_设备性材料()+主材_取费_甲供主材损耗费不含税_设备性材料()+主材_不取费_甲供主材价差不含税_设备性材料()+主材_取费_甲供主材价差不含税_设备性材料()+主材_不取费_甲供主材损耗价差不含税_设备性材料()+主材_取费_甲供主材损耗价差不含税_设备性材料();
	}
}

BEGIN:设备_普通设备_甲供设备费不含税_单价
${   
    ?#{
	   ->@工程信息.阶段类型=="全口径预算"
		:
		 sum(_过滤普通甲供设备(),"设备",?设备.数量 * 设备.单价不含税/parent.数量)+主材_不取费_甲供主材费不含税_单价_设备性材料()+主材_取费_甲供主材费不含税_单价_设备性材料()+主材_不取费_甲供主材损耗费不含税_单价_设备性材料()+主材_取费_甲供主材损耗费不含税_单价_设备性材料()+主材_不取费_甲供主材价差不含税_单价_设备性材料()+主材_取费_甲供主材价差不含税_单价_设备性材料()+主材_不取费_甲供主材损耗价差不含税_单价_设备性材料()+主材_取费_甲供主材损耗价差不含税_单价_设备性材料()+主材_取费_甲供主材差值不含税_单价_设备性材料()+主材_不取费_甲供主材差值不含税_单价_设备性材料()+主材_取费_甲供主材损耗差值不含税_单价_设备性材料()+主材_不取费_甲供主材损耗差值不含税_单价_设备性材料();
	   ->
		:
	    sum(_过滤普通甲供设备(),"设备",?设备.数量 * 设备.单价不含税/parent.数量)+主材_不取费_甲供主材费不含税_单价_设备性材料()+主材_取费_甲供主材费不含税_单价_设备性材料()+主材_不取费_甲供主材损耗费不含税_单价_设备性材料()+主材_取费_甲供主材损耗费不含税_单价_设备性材料()+主材_不取费_甲供主材价差不含税_单价_设备性材料()+主材_取费_甲供主材价差不含税_单价_设备性材料()+主材_不取费_甲供主材损耗价差不含税_单价_设备性材料()+主材_取费_甲供主材损耗价差不含税_单价_设备性材料();
       }
}

BEGIN:设备_普通设备_甲供设备费含税
${
	?#{
		->@工程信息.是否结算量差工程=="是"
		:
		sum(_过滤不受清单量影响的普通甲供设备(),"设备",?设备.数量 * 设备.单价含税)+主材_不取费_甲供主材费含税_设备性材料()+主材_取费_甲供主材费含税_设备性材料()+主材_不取费_甲供主材损耗费含税_设备性材料()+主材_取费_甲供主材损耗费含税_设备性材料()+主材_不取费_甲供主材价差含税_设备性材料()+主材_取费_甲供主材价差含税_设备性材料()+主材_不取费_甲供主材损耗价差含税_设备性材料()+主材_取费_甲供主材损耗价差含税_设备性材料()+甲供主材差值含税_设备性材料()+甲供主材损耗差值含税_设备性材料();
		->@工程信息.是否结算量差工程!="是" && (@工程信息.阶段类型=="结算" || @工程信息.阶段类型=="审核")
		:
		sum(_过滤普通甲供设备(),"设备",?设备.数量 * 设备.单价含税)+主材_不取费_甲供主材费含税_设备性材料()+主材_取费_甲供主材费含税_设备性材料()+主材_不取费_甲供主材损耗费含税_设备性材料()+主材_取费_甲供主材损耗费含税_设备性材料()+主材_不取费_甲供主材价差含税_设备性材料()+主材_取费_甲供主材价差含税_设备性材料()+主材_不取费_甲供主材损耗价差含税_设备性材料()+主材_取费_甲供主材损耗价差含税_设备性材料()+甲供主材差值含税_设备性材料()+甲供主材损耗差值含税_设备性材料();
		->@工程信息.阶段类型=="全口径预算"
		:
		sum(_过滤普通甲供设备(),"设备",?设备.数量 * 设备.单价含税)+主材_不取费_甲供主材费含税_设备性材料()+主材_取费_甲供主材费含税_设备性材料()+主材_不取费_甲供主材损耗费含税_设备性材料()+主材_取费_甲供主材损耗费含税_设备性材料()+主材_不取费_甲供主材价差含税_设备性材料()+主材_取费_甲供主材价差含税_设备性材料()+主材_不取费_甲供主材损耗价差含税_设备性材料()+主材_取费_甲供主材损耗价差含税_设备性材料()+主材_取费_甲供主材差值含税_设备性材料()+主材_不取费_甲供主材差值含税_设备性材料()+主材_取费_甲供主材损耗差值含税_设备性材料()+主材_不取费_甲供主材损耗差值含税_设备性材料();
		->
		:
		sum(_过滤普通甲供设备(),"设备",?设备.数量 * 设备.单价含税)+主材_不取费_甲供主材费含税_设备性材料()+主材_取费_甲供主材费含税_设备性材料()+主材_不取费_甲供主材损耗费含税_设备性材料()+主材_取费_甲供主材损耗费含税_设备性材料()+主材_不取费_甲供主材价差含税_设备性材料()+主材_取费_甲供主材价差含税_设备性材料()+主材_不取费_甲供主材损耗价差含税_设备性材料()+主材_取费_甲供主材损耗价差含税_设备性材料();
	}
}

BEGIN:设备_普通设备_甲供设备费含税_单价
${  
    ?#{
	    ->@工程信息.阶段类型=="全口径预算"
		:
	    sum(_过滤普通甲供设备(),"设备",?设备.数量 * 设备.单价含税/parent.数量)+主材_不取费_甲供主材费含税_单价_设备性材料()+主材_取费_甲供主材费含税_单价_设备性材料()+主材_不取费_甲供主材损耗费含税_单价_设备性材料()+主材_取费_甲供主材损耗费含税_单价_设备性材料()+主材_不取费_甲供主材价差含税_单价_设备性材料()+主材_取费_甲供主材价差含税_单价_设备性材料()+主材_不取费_甲供主材损耗价差含税_单价_设备性材料()+主材_取费_甲供主材损耗价差含税_单价_设备性材料()+主材_取费_甲供主材差值含税_单价_设备性材料()+主材_不取费_甲供主材差值含税_单价_设备性材料()+主材_取费_甲供主材损耗差值含税_单价_设备性材料()+主材_不取费_甲供主材损耗差值含税_单价_设备性材料();
	    ->
		:
        sum(_过滤普通甲供设备(),"设备",?设备.数量 * 设备.单价含税/parent.数量)+主材_不取费_甲供主材费含税_单价_设备性材料()+主材_取费_甲供主材费含税_单价_设备性材料()+主材_不取费_甲供主材损耗费含税_单价_设备性材料()+主材_取费_甲供主材损耗费含税_单价_设备性材料()+主材_不取费_甲供主材价差含税_单价_设备性材料()+主材_取费_甲供主材价差含税_单价_设备性材料()+主材_不取费_甲供主材损耗价差含税_单价_设备性材料()+主材_取费_甲供主材损耗价差含税_单价_设备性材料();
	  }
}

BEGIN:设备_普通设备_甲供设备运杂费
${
    ?#{
	->@工程信息.是否结算量差工程=="是"
	:
	sum(_过滤不受清单量影响的普通甲供设备(),"设备",?设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100)
	;
	->@工程信息.是否结算量差工程!="是"
	:
	sum(_过滤普通甲供设备(),"设备",?设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100)
	;
	}
}

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

BEGIN:设备_普通设备_甲供设备暂估价不含税
${
	?#{
		->@工程信息.是否结算量差工程=="是"
		:
		sum(_过滤不受清单量影响的普通甲供设备(),"设备",
		?#{
			->设备.暂估价 == 1
			:
			设备.数量 * 设备.单价不含税 + 设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100;
		})+主材_不取费_甲供主材暂估价不含税_设备性材料()+主材_取费_甲供主材暂估价不含税_设备性材料()+甲供主材暂估价差值不含税_设备性材料();
		->@工程信息.是否结算量差工程!="是" && (@工程信息.阶段类型=="结算" || @工程信息.阶段类型=="审核")
		:
		sum(_过滤普通甲供设备(),"设备",
		?#{
			->设备.暂估价 == 1
			:
			设备.数量 * 设备.单价不含税 + 设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100;
		})+主材_不取费_甲供主材暂估价不含税_设备性材料()+主材_取费_甲供主材暂估价不含税_设备性材料()+甲供主材暂估价差值不含税_设备性材料();
		->@工程信息.阶段类型=="全口径预算"
		:
		sum(_过滤普通甲供设备(),"设备",
			?#{
				->设备.暂估价 == 1
				:
				设备.数量 * 设备.单价不含税 + 设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100;
			}
		)	+主材_不取费_甲供主材暂估价不含税_设备性材料()+主材_取费_甲供主材暂估价不含税_设备性材料()+主材_不取费_甲供主材暂估价差值不含税_设备性材料()+主材_取费_甲供主材暂估价差值不含税_设备性材料();
		->
		:
		sum(_过滤普通甲供设备(),"设备",
		?#{
			->设备.暂估价 == 1
			:
			设备.数量 * 设备.单价不含税 + 设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100;
		})+主材_不取费_甲供主材暂估价不含税_设备性材料()+主材_取费_甲供主材暂估价不含税_设备性材料();
	}
}

BEGIN:设备_普通设备_甲供设备暂估价不含税_单价
${
    #{
	->@工程信息.阶段类型=="全口径预算"
	:
	sum(_过滤普通甲供设备(),"设备",
	?#{
		->设备.暂估价 == 1
		:
		设备.数量 * 设备.单价不含税 + 设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100/parent.数量;
	  })+主材_不取费_甲供主材暂估价不含税_单价_设备性材料()+主材_取费_甲供主材暂估价不含税_单价_设备性材料()+主材_不取费_甲供主材暂估价差值不含税_单价_设备性材料()+主材_取费_甲供主材暂估价差值不含税_单价_设备性材料();
	->
	:
	sum(_过滤普通甲供设备(),"设备",
	?#{
		->设备.暂估价 == 1
		:
		设备.数量 * 设备.单价不含税 + 设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100/parent.数量;
	  })+主材_不取费_甲供主材暂估价不含税_单价_设备性材料()+主材_取费_甲供主材暂估价不含税_单价_设备性材料();
    }
}

BEGIN:设备_普通设备_甲供设备暂估价含税
${
	?#{
		->@工程信息.是否结算量差工程=="是"
		:
		sum(_过滤不受清单量影响的普通甲供设备(),"设备",
		?#{
			->设备.暂估价 == 1
			:
			设备.数量 * 设备.单价含税 + 设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100;
		})+主材_不取费_甲供主材暂估价含税_设备性材料()+主材_取费_甲供主材暂估价含税_设备性材料()+甲供主材暂估价差值含税_设备性材料();
		->@工程信息.是否结算量差工程!="是" && (@工程信息.阶段类型=="结算" || @工程信息.阶段类型=="审核")
		:
		sum(_过滤普通甲供设备(),"设备",
		?#{
			->设备.暂估价 == 1
			:
			设备.数量 * 设备.单价含税 + 设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100;
		})+主材_不取费_甲供主材暂估价含税_设备性材料()+主材_取费_甲供主材暂估价含税_设备性材料()+甲供主材暂估价差值含税_设备性材料();
		->@工程信息.阶段类型=="全口径预算"
		:
		sum(_过滤普通甲供设备(),"设备",
		?#{
			->设备.暂估价 == 1
			:
			设备.数量 * 设备.单价含税 + 设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100;
		}
		)	+主材_不取费_甲供主材暂估价含税_设备性材料()+主材_取费_甲供主材暂估价含税_设备性材料()+主材_不取费_甲供主材暂估价差值含税_设备性材料()+主材_取费_甲供主材暂估价差值含税_设备性材料();
		->
		:
		sum(_过滤普通甲供设备(),"设备",
		?#{
			->设备.暂估价 == 1
			:
			设备.数量 * 设备.单价含税 + 设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100;
		})+主材_不取费_甲供主材暂估价含税_设备性材料()+主材_取费_甲供主材暂估价含税_设备性材料();
	}
}

BEGIN:设备_普通设备_甲供设备暂估价含税_单价
${
    #{
    ->@工程信息.阶段类型=="全口径预算"
	:
	sum(_过滤普通甲供设备(),"设备",
	?#{
		->设备.暂估价 == 1
		:
		设备.数量 * 设备.单价含税 + 设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100/parent.数量;
		}
		)	+主材_不取费_甲供主材暂估价含税_单价_设备性材料()+主材_取费_甲供主材暂估价含税_单价_设备性材料()+主材_不取费_甲供主材暂估价差值含税_单价_设备性材料()+主材_取费_甲供主材暂估价差值含税_单价_设备性材料();
    ->
	:
	sum(_过滤普通甲供设备(),"设备",
	?#{
		->设备.暂估价 == 1
		:
		设备.数量 * 设备.单价含税 + 设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100/parent.数量;
	})+主材_不取费_甲供主材暂估价含税_单价_设备性材料()+主材_取费_甲供主材暂估价含税_单价_设备性材料();
	}
}

BEGIN:设备_普通设备_乙供设备费不含税
${
	?#{
		->@工程信息.是否结算量差工程=="是"
		:
		sum(_过滤不受清单量影响的普通乙供设备(),"设备",?设备.数量 * 设备.单价不含税)+主材_不取费_乙供主材费不含税_设备性材料()+主材_取费_乙供主材费不含税_设备性材料()+主材_不取费_乙供主材损耗费不含税_设备性材料()+主材_取费_乙供主材损耗费不含税_设备性材料()+主材_不取费_乙供主材价差不含税_设备性材料()+主材_取费_乙供主材价差不含税_设备性材料()+主材_不取费_乙供主材损耗价差不含税_设备性材料()+主材_取费_乙供主材损耗价差不含税_设备性材料()+乙供主材差值不含税_设备性材料()+乙供主材损耗差值不含税_设备性材料();
		->@工程信息.是否结算量差工程!="是" && (@工程信息.阶段类型=="结算" || @工程信息.阶段类型=="审核")
		:
		sum(_过滤普通乙供设备(),"设备",?设备.数量 * 设备.单价不含税)+主材_不取费_乙供主材费不含税_设备性材料()+主材_取费_乙供主材费不含税_设备性材料()+主材_不取费_乙供主材损耗费不含税_设备性材料()+主材_取费_乙供主材损耗费不含税_设备性材料()+主材_不取费_乙供主材价差不含税_设备性材料()+主材_取费_乙供主材价差不含税_设备性材料()+主材_不取费_乙供主材损耗价差不含税_设备性材料()+主材_取费_乙供主材损耗价差不含税_设备性材料()+乙供主材差值不含税_设备性材料()+乙供主材损耗差值不含税_设备性材料();
		->@工程信息.阶段类型=="全口径预算"
		:
		sum(_过滤普通乙供设备(),"设备",?设备.数量 * 设备.单价不含税)+主材_不取费_乙供主材费不含税_设备性材料()+主材_取费_乙供主材费不含税_设备性材料()+主材_不取费_乙供主材损耗费不含税_设备性材料()+主材_取费_乙供主材损耗费不含税_设备性材料()+主材_不取费_乙供主材价差不含税_设备性材料()+主材_取费_乙供主材价差不含税_设备性材料()+主材_不取费_乙供主材损耗价差不含税_设备性材料()+主材_取费_乙供主材损耗价差不含税_设备性材料()+主材_取费_乙供主材差值不含税_设备性材料()+主材_不取费_乙供主材差值不含税_设备性材料()+主材_取费_乙供主材损耗差值不含税_设备性材料()+主材_不取费_乙供主材损耗差值不含税_设备性材料();
		->
		:
		sum(_过滤普通乙供设备(),"设备",?设备.数量 * 设备.单价不含税)+主材_不取费_乙供主材费不含税_设备性材料()+主材_取费_乙供主材费不含税_设备性材料()+主材_不取费_乙供主材损耗费不含税_设备性材料()+主材_取费_乙供主材损耗费不含税_设备性材料()+主材_不取费_乙供主材价差不含税_设备性材料()+主材_取费_乙供主材价差不含税_设备性材料()+主材_不取费_乙供主材损耗价差不含税_设备性材料()+主材_取费_乙供主材损耗价差不含税_设备性材料();
	}
}

BEGIN:设备_普通设备_乙供设备费不含税_单价
${
    ?#{
	    ->@工程信息.阶段类型=="全口径预算"
		:
		sum(_过滤普通乙供设备(),"设备",?设备.数量 * 设备.单价不含税/parent.数量)+主材_不取费_乙供主材费不含税_单价_设备性材料()+主材_取费_乙供主材费不含税_单价_设备性材料()+主材_不取费_乙供主材损耗费不含税_单价_设备性材料()+主材_取费_乙供主材损耗费不含税_单价_设备性材料()+主材_不取费_乙供主材价差不含税_单价_设备性材料()+主材_取费_乙供主材价差不含税_单价_设备性材料()+主材_不取费_乙供主材损耗价差不含税_单价_设备性材料()+主材_取费_乙供主材损耗价差不含税_单价_设备性材料()+主材_取费_乙供主材差值不含税_单价_设备性材料()+主材_不取费_乙供主材差值不含税_单价_设备性材料()+主材_取费_乙供主材损耗差值不含税_单价_设备性材料()+主材_不取费_乙供主材损耗差值不含税_单价_设备性材料();
	    ->@工程信息.是否结算量差工程=="是"
		:
	    sum(_过滤不受清单量影响的普通乙供设备(),"设备",?#{ 
			->parent.数量!=0
		     : (设备.数量*设备.单价不含税/parent.数量)+主材_不取费_乙供主材费不含税_单价_设备性材料()+主材_取费_乙供主材费不含税_单价_设备性材料()+主材_不取费_乙供主材损耗费不含税_单价_设备性材料()+主材_取费_乙供主材损耗费不含税_单价_设备性材料()+主材_不取费_乙供主材价差不含税_单价_设备性材料()+主材_取费_乙供主材价差不含税_单价_设备性材料()+主材_不取费_乙供主材损耗价差不含税_单价_设备性材料()+主材_取费_乙供主材损耗价差不含税_单价_设备性材料();
		     ->parent.数量==0
		     :
		     0;
		 });
	    ->
		:	
	    sum(_过滤普通乙供设备(),"设备",?设备.数量 * 设备.单价不含税/parent.数量)+主材_不取费_乙供主材费不含税_单价_设备性材料()+主材_取费_乙供主材费不含税_单价_设备性材料()+主材_不取费_乙供主材损耗费不含税_单价_设备性材料()+主材_取费_乙供主材损耗费不含税_单价_设备性材料()+主材_不取费_乙供主材价差不含税_单价_设备性材料()+主材_取费_乙供主材价差不含税_单价_设备性材料()+主材_不取费_乙供主材损耗价差不含税_单价_设备性材料()+主材_取费_乙供主材损耗价差不含税_单价_设备性材料();
	  }
}

BEGIN:设备_普通设备_乙供设备运杂费
${
    ?#{
	->@工程信息.是否结算量差工程=="是"
	:
	sum(_过滤不受清单量影响的普通乙供设备(),"设备",?设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100)
	;
	->@工程信息.是否结算量差工程!="是"
	:
	sum(_过滤普通乙供设备(),"设备",?设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100)
	;
	}
}

BEGIN:设备_普通设备_乙供设备运杂费_单价
${
	?#{
	->@工程信息.是否结算量差工程=="是"
	:
	sum(_过滤不受清单量影响的普通乙供设备(),"设备",?#{	
	   ->parent.数量!=0
	   :
	   设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100/parent.数量;
	   ->parent.数量==0
	   :
	   0;
	});
	->@工程信息.是否结算量差工程!="是"
	:
	sum(_过滤普通乙供设备(),"设备",?设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100/parent.数量);
	}
}

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

BEGIN:设备_普通设备_乙供设备税金_单价
${
	(设备_普通设备_乙供设备费不含税()+设备_普通设备_乙供设备运杂费()) * @工程信息.工程税率/100 / parent.数量;
}

BEGIN:设备_普通设备_乙供设备暂估价不含税
${
	?#{
		->@工程信息.是否结算量差工程=="是"
		:
		sum(_过滤不受清单量影响的普通乙供设备(),"设备",
			?#{
				->设备.暂估价 == 1
				:
				设备.数量 * 设备.单价不含税 + 设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100;
			}
		)+主材_不取费_乙供主材暂估价不含税_设备性材料()+主材_取费_乙供主材暂估价不含税_设备性材料()+乙供主材暂估价差值不含税_设备性材料();
		->@工程信息.是否结算量差工程!="是" && (@工程信息.阶段类型=="结算" || @工程信息.阶段类型=="审核")
		:
		sum(_过滤普通乙供设备(),"设备",
			?#{
				->设备.暂估价 == 1
				:
				设备.数量 * 设备.单价不含税 + 设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100;
			}
		)+主材_不取费_乙供主材暂估价不含税_设备性材料()+主材_取费_乙供主材暂估价不含税_设备性材料()+乙供主材暂估价差值不含税_设备性材料();
		->@工程信息.阶段类型=="全口径预算"
		:
		sum(_过滤普通乙供设备(),"设备",
			?#{
				->设备.暂估价 == 1
				:
				设备.数量 * 设备.单价不含税 + 设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100;
			}
		)	+主材_不取费_乙供主材暂估价不含税_设备性材料()+主材_取费_乙供主材暂估价不含税_设备性材料()+主材_不取费_乙供主材暂估价差值不含税_设备性材料()+主材_取费_乙供主材暂估价差值不含税_设备性材料();
		->
		:
		sum(_过滤普通乙供设备(),"设备",
			?#{
				->设备.暂估价 == 1
				:
				设备.数量 * 设备.单价不含税 + 设备.数量 * 设备.单价含税 * 设备.运杂费率 / 100;
			}
		)+主材_不取费_乙供主材暂估价不含税_设备性材料()+主材_取费_乙供主材暂估价不含税_设备性材料();
	}
}

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

BEGIN:设备_主要设备_甲供设备费不含税
${
    ?#{
	->@工程信息.是否结算量差工程=="是"
	:
	sum(_过滤不受清单量影响的甲供主要设备(),"设备",?设备.单价不含税*设备.数量)
	;
	->@工程信息.是否结算量差工程!="是"
	:
	sum(_过滤甲供主要设备(),"设备",?设备.单价不含税*设备.数量)
	;
	}
}

BEGIN:设备_主要设备_甲供设备费不含税_单价
${
	sum(_过滤甲供主要设备(),"设备",?设备.单价不含税*设备.数量/parent.数量)
}

BEGIN:设备_主要设备_甲供设备费含税
${
    ?#{
	->@工程信息.是否结算量差工程=="是"
	:
	sum(_过滤不受清单量影响的甲供主要设备(),"设备",?设备.单价含税*设备.数量)
	;
	->@工程信息.是否结算量差工程!="是"
	:
	sum(_过滤甲供主要设备(),"设备",?设备.单价含税*设备.数量)
	;
	}
}

BEGIN:设备_主要设备_甲供设备费含税_单价
${
	sum(_过滤甲供主要设备(),"设备",?设备.单价含税*设备.数量/parent.数量)
}

BEGIN:设备_主要设备_甲供设备运杂费
${
    ?#{
	->@工程信息.是否结算量差工程=="是"
	:
	sum(_过滤不受清单量影响的甲供主要设备(),"设备",?设备.单价含税*设备.数量*设备.运杂费率/100)
	;
	->@工程信息.是否结算量差工程!="是"
	:
	sum(_过滤甲供主要设备(),"设备",?设备.单价含税*设备.数量*设备.运杂费率/100)
	;
	}
}

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

BEGIN:设备_主要设备_甲供设备暂估价不含税
${
	?#{
	->@工程信息.是否结算量差工程=="是"
	:
	sum(_过滤不受清单量影响的甲供主要设备(),"设备",?#{
			->设备.暂估价 == 1
			:
			设备.单价含税*设备.运杂费率/100*设备.数量+设备.单价不含税*设备.数量;
		})
	;
	->@工程信息.是否结算量差工程!="是"
	:
	sum(_过滤甲供主要设备(),"设备",?#{
			->设备.暂估价 == 1
			:
			设备.单价含税*设备.运杂费率/100*设备.数量+设备.单价不含税*设备.数量;
		})
	;
	}
}

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

BEGIN:设备_主要设备_甲供设备暂估价含税
${
	?#{
	->@工程信息.是否结算量差工程=="是"
	:
	sum(_过滤不受清单量影响的甲供主要设备(),"设备",?#{
			->设备.暂估价 == 1
			:
			设备.单价含税*(1+设备.运杂费率/100)*设备.数量;
		})
	;
	->@工程信息.是否结算量差工程!="是"
	:
	sum(_过滤甲供主要设备(),"设备",?#{
			->设备.暂估价 == 1
			:
			设备.单价含税*(1+设备.运杂费率/100)*设备.数量;
		})
	;
	}
}

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

BEGIN:设备_主要设备_乙供设备费不含税
${
    ?#{
	->@工程信息.是否结算量差工程=="是"
	:
	sum(_过滤不受清单量影响的乙供主要设备(),"设备",?设备.单价不含税*设备.数量)
	;
	->@工程信息.是否结算量差工程!="是"
	:
	sum(_过滤乙供主要设备(),"设备",?设备.单价不含税*设备.数量)
	;
	}
}

BEGIN:设备_主要设备_乙供设备费不含税_单价
${
	?#{
	->@工程信息.是否结算量差工程=="是"
	:
	sum(_过滤不受清单量影响的乙供主要设备(),"设备",?#{
	->parent.数量!=0
	:
	设备.单价不含税*设备.数量/parent.数量;
	->parent.数量==0
	:
	0;
	})
	;
	->@工程信息.是否结算量差工程!="是"
	:
	sum(_过滤乙供主要设备(),"设备",?设备.单价不含税*设备.数量/parent.数量)
	;
	}
}

BEGIN:设备_主要设备_乙供设备运杂费
${
	?#{
	->@工程信息.是否结算量差工程=="是"
	:
	sum(_过滤不受清单量影响的乙供主要设备(),"设备",?设备.单价含税*设备.数量*设备.运杂费率/100)
	;
	->@工程信息.是否结算量差工程!="是"
	:
	sum(_过滤乙供主要设备(),"设备",?设备.单价含税*设备.数量*设备.运杂费率/100)
	;
	}
}

BEGIN:设备_主要设备_乙供设备运杂费_单价
${
	?#{
	->@工程信息.是否结算量差工程=="是"
	:
	sum(_过滤不受清单量影响的乙供主要设备(),"设备",?#{
	->parent.数量!=0
	:
	设备.单价含税*设备.数量*设备.运杂费率/100/parent.数量;
	->parent.数量==0
	:
	0;
	});
	->@工程信息.是否结算量差工程!="是"
	:
	sum(_过滤乙供主要设备(),"设备",?设备.单价含税*设备.数量*设备.运杂费率/100/parent.数量)
	;
	}
}

BEGIN:设备_主要设备_乙供设备税金
${
	?#{
	->@工程信息.是否结算量差工程=="是"
	:
	sum(_过滤不受清单量影响的乙供主要设备(),"设备",?(设备.数量 * (设备.单价不含税 + 设备.单价含税 * 设备.运杂费率 / 100)) * @工程信息.工程税率/100)
	;
	->@工程信息.是否结算量差工程!="是"
	:
    sum(_过滤乙供主要设备(),"设备",?(设备.数量 * (设备.单价不含税 + 设备.单价含税 * 设备.运杂费率 / 100)) * @工程信息.工程税率/100)   
	;
	}
}

BEGIN:设备_主要设备_乙供设备税金_单价
${
    sum(_过滤乙供主要设备(),"设备",?(设备.数量 * (设备.单价不含税 + 设备.单价含税 * 设备.运杂费率 / 100)) * @工程信息.工程税率/100/parent.数量)   
}

BEGIN:设备_主要设备_乙供设备暂估价不含税
${
   ?#{
	->@工程信息.是否结算量差工程=="是"
	:
	sum(_过滤不受清单量影响的乙供主要设备(),"设备",?#{
			->设备.暂估价 == 1
			:
			设备.单价含税*设备.运杂费率/100*设备.数量+设备.单价不含税*设备.数量;
		})
	;
	->@工程信息.是否结算量差工程!="是"
	:
	sum(_过滤乙供主要设备(),"设备",?#{
			->设备.暂估价 == 1
			:
			设备.单价含税*设备.运杂费率/100*设备.数量+设备.单价不含税*设备.数量;
		})
	;
	}
}

BEGIN:设备_主要设备_乙供设备暂估价不含税_单价
${
	sum(_过滤乙供主要设备(),"设备",
		?#{
			->设备.暂估价 == 1
			:
			设备.单价含税*设备.运杂费率/100*设备.数量+设备.单价不含税*设备.数量/parent.数量;
		}
	)
}
///////////////////////////////////////////////////////////////
//
//  一笔性费用
//
///////////////////////////////////////////////////////////////
BEGIN:一笔性费用_合价
${
    sum(_过滤一笔性费用(),"工程量",?工程量.合价)
}

BEGIN:余物清理一笔性费用_合价
${
    sum(_过滤一笔性费用(),"工程量",?工程量.合价*parent.费率/100)
}
///////////////////////////////////////////////////////////////
//
//  过滤函数
//
///////////////////////////////////////////////////////////////
BEGIN:_过滤一笔性费用
${
    filter(source,"工程量",?工程量.type =="清单" && 工程量.一笔性费用==1 )
}
BEGIN:_过滤取费定额
${
    filter(source,"工程量",?工程量.type =="定额" && 工程量.费用类型=="取费"  && parent.数量 != 0)
}
BEGIN:_过滤不取费定额
${
    filter(source,"工程量",?工程量.type =="定额" && 工程量.费用类型=="不取费" && parent.数量 != 0)
}

BEGIN:_过滤主材
${
    filter(source,"工程量",?工程量.type =="主材" && parent.数量 != 0)
}

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(items,"人材机",?人材机.type == "机械")
}

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

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

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

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

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

BEGIN:_过滤子项
${
    filter(items,"子项",?子项.type =="主材" )
}

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

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

BEGIN:_过滤甲供暂估材料
${
    filter(items,"子项",?子项.type =="消材"&&子项.供货方 == "甲供"&&子项.暂估价 == 1)
}

BEGIN:_过滤乙供暂估材料
${
    filter(items,"子项",?子项.type =="消材"&&子项.供货方 == "乙供"&&子项.暂估价 == 1)
}

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

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

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

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

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

BEGIN:_过滤甲供主要设备
${
    filter(source,"工程量",?工程量.type =="设备" && 工程量.设备类型 =="主要设备" && 工程量.供货方 == "甲供" && parent.type == "清单" && parent.数量 != 0)
}

BEGIN:_过滤不受清单量影响的甲供主要设备
${
    filter(source,"工程量",?工程量.type =="设备" && 工程量.设备类型 =="主要设备" && 工程量.供货方 == "甲供" && parent.type == "清单")
}

BEGIN:_过滤乙供主要设备
${
    filter(source,"工程量",?工程量.type =="设备" && 工程量.设备类型 =="主要设备" && 工程量.供货方 == "乙供" && parent.type == "清单" && parent.数量 != 0)
}

BEGIN:_过滤不受清单量影响的乙供主要设备
${
    filter(source,"工程量",?工程量.type =="设备" && 工程量.设备类型 =="主要设备" && 工程量.供货方 == "乙供" && parent.type == "清单")
}

BEGIN:_过滤普通甲供设备
${
    filter(source,"工程量",?工程量.type =="设备" && 工程量.供货方 == "甲供" && 工程量.设备类型 == "普通设备" && parent.type == "清单" && parent.数量 != 0)
}

BEGIN:_过滤不受清单量影响的普通甲供设备
${
    filter(source,"工程量",?工程量.type =="设备" && 工程量.供货方 == "甲供" && 工程量.设备类型 == "普通设备" && parent.type == "清单")
}

BEGIN:_过滤普通乙供设备
${
    filter(source,"工程量",?工程量.type =="设备" && 工程量.供货方 == "乙供" && 工程量.设备类型 == "普通设备"  && parent.type == "清单" && parent.数量 != 0)
}

BEGIN:_过滤不受清单量影响的普通乙供设备
${
    filter(source,"工程量",?工程量.type =="设备" && 工程量.供货方 == "乙供" && 工程量.设备类型 == "普通设备"  && parent.type == "清单")
}

///////////////////////////////////////////////////////////////
//
//  监造主材
//
///////////////////////////////////////////////////////////////
BEGIN:主材_取费_监造_甲供主材费不含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供"  && 主材.监造物料 == 1
			:
			主材.数量 * 主材.预算价不含税;
			->主材.拆分 == 1
			:
			sum(_过滤监造甲供取费主材(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税);
		}
	)
}

BEGIN:主材_取费_监造_甲供主材费含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供"  && 主材.监造物料 == 1
			:
			主材.数量 * 主材.预算价含税;
			->主材.拆分 == 1
			:
			sum(_过滤监造甲供取费主材(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税);
		}
	)
}

BEGIN:主材_取费_监造_甲供主材损耗费不含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供"  && 主材.监造物料 == 1
			:
			主材.数量 * 主材.预算价不含税 * 主材.损耗 /100;
			->主材.拆分 == 1
			:
			sum(_过滤监造甲供取费主材(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税 * 拆分子项.损耗 /100);	
		}
	)
}

BEGIN:主材_取费_监造_甲供主材损耗费含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供"  && 主材.监造物料 == 1
			:
			主材.数量 * 主材.预算价含税 * 主材.损耗 /100;
			->主材.拆分 == 1
			:
			sum(_过滤监造甲供取费主材(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税 * 拆分子项.损耗 /100);	
		}
	)
}

BEGIN:主材_取费_监造_甲供主材价差不含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供"  && 主材.监造物料 == 1
			:
			主材.数量 * (主材.市场价不含税-主材.预算价不含税);
			->主材.拆分 == 1
			:
			sum(_过滤监造甲供取费主材(),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税));
		}
	)
}

BEGIN:主材_取费_监造_甲供主材价差含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供"  && 主材.监造物料 == 1
			:
			主材.数量 * (主材.市场价含税-主材.预算价含税);
			->主材.拆分 == 1
			:
			sum(_过滤监造甲供取费主材(),"拆分子项",?拆分子项.数量 * (拆分子项.市场价含税-拆分子项.预算价含税));
		}
	)
}

BEGIN:主材_取费_监造_甲供主材损耗价差不含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供"  && 主材.监造物料 == 1
			:
			主材.数量 * (主材.市场价不含税-主材.预算价不含税) * 主材.损耗 / 100;
			->主材.拆分 == 1
			:
			sum(_过滤监造甲供取费主材(),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税) * 拆分子项.损耗 / 100);
		}
	)
}

BEGIN:主材_取费_监造_甲供主材损耗价差含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "甲供"  && 主材.监造物料 == 1
			:
			主材.数量 * (主材.市场价含税-主材.预算价含税) * 主材.损耗 / 100;
			->主材.拆分 == 1
			:
			sum(_过滤监造甲供取费主材(),"拆分子项",?拆分子项.数量 * (拆分子项.市场价含税-拆分子项.预算价含税) * 拆分子项.损耗 / 100);
		}
	)
}

BEGIN:主材_取费_监造_乙供主材费不含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供"  && 主材.监造物料 == 1
			:
			主材.数量 * 主材.预算价不含税;
			->主材.拆分 == 1
			:
			sum(_过滤监造乙供取费主材(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税);
		}
	)
}
BEGIN:主材_取费_监造_乙供主材费含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供"  && 主材.监造物料 == 1
			:
			主材.数量 * 主材.预算价含税;
			->主材.拆分 == 1
			:
			sum(_过滤监造乙供取费主材(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税);
		}
	)
}
BEGIN:主材_取费_监造_乙供主材损耗费不含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供"  && 主材.监造物料 == 1
			:
			主材.数量 * 主材.预算价不含税 * 主材.损耗 /100;
			->主材.拆分 == 1
			:
			sum(_过滤监造乙供取费主材(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税 * 拆分子项.损耗 /100);	
		}
	)
}
BEGIN:主材_取费_监造_乙供主材损耗费含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供"  && 主材.监造物料 == 1
			:
			主材.数量 * 主材.预算价含税 * 主材.损耗 /100;
			->主材.拆分 == 1
			:
			sum(_过滤监造乙供取费主材(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税 * 拆分子项.损耗 /100);	
		}
	)
}
BEGIN:主材_取费_监造_乙供主材价差不含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供"  && 主材.监造物料 == 1
			:
			主材.数量 * (主材.市场价不含税-主材.预算价不含税);
			->主材.拆分 == 1
			:
			sum(_过滤监造乙供取费主材(),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税));
		}
	)
}

BEGIN:主材_取费_监造_乙供主材价差含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供"  && 主材.监造物料 == 1
			:
			主材.数量 * (主材.市场价含税-主材.预算价含税);
			->主材.拆分 == 1
			:
			sum(_过滤监造乙供取费主材(),"拆分子项",?拆分子项.数量 * (拆分子项.市场价含税-拆分子项.预算价含税));
		}
	)
}

BEGIN:主材_取费_监造_乙供主材损耗价差不含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供"  && 主材.监造物料 == 1
			:
			主材.数量 * (主材.市场价不含税-主材.预算价不含税) * 主材.损耗 / 100;
			->主材.拆分 == 1
			:
			sum(_过滤监造乙供取费主材(),"拆分子项",?拆分子项.数量 * (拆分子项.市场价不含税-拆分子项.预算价不含税) * 拆分子项.损耗 / 100);
		}
	)
}

BEGIN:主材_取费_监造_运输重量
${
		sum(_过滤监造主材(),"主材",
			?#{
				->主材.拆分 == 0 && 主材.费用类型 == "取费"  && 主材.监造物料 == 1
				:
				主材.单重*主材.数量*(1+主材.损耗/100)*(1+主材.毛重/100)/1000;
				->主材.拆分 == 1
				:
				sum(_过滤监造甲供取费主材(),"拆分子项",?拆分子项.单重*拆分子项.数量*(1+拆分子项.损耗/100)*(1+拆分子项.毛重/100)/1000) + 
				sum(_过滤监造乙供取费主材(),"拆分子项",?拆分子项.单重*拆分子项.数量*(1+拆分子项.损耗/100)*(1+拆分子项.毛重/100)/1000);
			}
		)
}

BEGIN:主材_取费_监造_运输费用
${
	#{
		->@工程信息.专业类型=="送电"
		:
		sum(_过滤监造主材(),"主材",
			?#{
				->主材.拆分 == 0 && 主材.费用类型 == "取费"  && 主材.监造物料 == 1
				:
				主材.单重/1000*主材.数量*主材.运输单价*(1+主材.损耗/100)*(1+主材.毛重/100);
				->主材.拆分 == 1
				:
				sum(_过滤监造甲供取费主材(),"拆分子项",?拆分子项.单重/1000*拆分子项.数量*拆分子项.运输单价*(1+拆分子项.损耗/100)*(1+拆分子项.毛重/100)) + 
				sum(_过滤监造乙供取费主材(),"拆分子项",?拆分子项.单重/1000*拆分子项.数量*拆分子项.运输单价*(1+拆分子项.损耗/100)*(1+拆分子项.毛重/100));
			}
		);
	}
}

BEGIN:主材_不取费_监造_甲供主材费不含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费"  && 主材.监造物料 == 1
			:
			   主材.预算价不含税 * 主材.数量;
			->主材.拆分 == 1
			:
			sum(_过滤监造甲供不取费主材(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税);
		}
	)
}
 
BEGIN:主材_不取费_监造_甲供主材费含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费"  && 主材.监造物料 == 1
			:
		    主材.预算价含税 * 主材.数量;
			->主材.拆分 == 1
	        :
			sum(_过滤监造甲供不取费主材(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税);
		}
	)
}
 
BEGIN:主材_不取费_监造_甲供主材损耗费不含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费"  && 主材.监造物料 == 1
			:
			主材.预算价不含税*主材.数量 * 主材.损耗 / 100;
			->主材.拆分 == 1
			:
			sum(_过滤监造甲供不取费主材(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税 * 拆分子项.损耗 / 100);
		}
	)
}

BEGIN:主材_不取费_监造_甲供主材损耗费含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费"  && 主材.监造物料 == 1
			:
			主材.预算价含税 * 主材.数量 * 主材.损耗 / 100;
			->主材.拆分 == 1
			:
			sum(_过滤监造甲供不取费主材(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税 * 拆分子项.损耗 / 100);
		}
	)
}

BEGIN:主材_不取费_监造_甲供主材价差不含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费"  && 主材.监造物料 == 1
			:
			(主材.市场价不含税-主材.预算价不含税)*主材.数量;
			->主材.拆分 == 1
			:
			sum(_过滤监造甲供不取费主材(),"拆分子项",?(拆分子项.市场价不含税-拆分子项.预算价不含税)*拆分子项.数量);
		}
	)
}

BEGIN:主材_不取费_监造_甲供主材价差含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费"  && 主材.监造物料 == 1
			:
		    (主材.市场价含税-主材.预算价含税)*主材.数量;
			->主材.拆分 == 1
	        :
			sum(_过滤监造甲供不取费主材(),"拆分子项",?(拆分子项.市场价含税-拆分子项.预算价含税)*拆分子项.数量);
		}
	)
}

BEGIN:主材_不取费_监造_甲供主材损耗价差不含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费"  && 主材.监造物料 == 1
			:
		    (主材.市场价不含税-主材.预算价不含税)*主材.数量*主材.损耗/100;
			->主材.拆分 == 1
	        :
			sum(_过滤监造甲供不取费主材(),"拆分子项",?(拆分子项.市场价不含税-拆分子项.预算价不含税)*拆分子项.数量*拆分子项.损耗/100);
		}
	)
}

BEGIN:主材_不取费_监造_甲供主材损耗价差含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.供货方 == "甲供" && 主材.费用类型 == "不取费"  && 主材.监造物料 == 1
			:
		    (主材.市场价含税-主材.预算价含税)*主材.数量*主材.损耗/100;
			->主材.拆分 == 1
	        :
			sum(_过滤监造甲供不取费主材(),"拆分子项",?(拆分子项.市场价含税-拆分子项.预算价含税)*拆分子项.数量*拆分子项.损耗/100);
		}
	)
}

BEGIN:主材_不取费_监造_乙供主材费不含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费"  && 主材.监造物料 == 1
			:
		    主材.预算价不含税*主材.数量;
			->主材.拆分 == 1
	        :
			sum(_过滤监造乙供不取费主材(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税);
		}
	)
}
BEGIN:主材_不取费_监造_乙供主材费含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费"  && 主材.监造物料 == 1
			:
		    主材.预算价含税*主材.数量;
			->主材.拆分 == 1
	        :
			sum(_过滤监造乙供不取费主材(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税);
		}
	)
}
BEGIN:主材_不取费_监造_乙供主材损耗费不含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费"  && 主材.监造物料 == 1
			:
		    主材.预算价不含税*主材.数量*主材.损耗/100;
			->主材.拆分 == 1
	        :
			sum(_过滤监造乙供不取费主材(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价不含税*拆分子项.损耗/100);
		}
	)
}
 BEGIN:主材_不取费_监造_乙供主材损耗费含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费"  && 主材.监造物料 == 1
			:
		    主材.预算价含税*主材.数量*主材.损耗/100;
			->主材.拆分 == 1
	        :
			sum(_过滤监造乙供不取费主材(),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税*拆分子项.损耗/100);
		}
	)
} 
BEGIN:主材_不取费_监造_乙供主材价差不含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费"  && 主材.监造物料 == 1
			:
		    (主材.市场价不含税-主材.预算价不含税)*主材.数量;
			->主材.拆分 == 1
	        :
			sum(_过滤监造乙供不取费主材(),"拆分子项",?(拆分子项.市场价不含税-拆分子项.预算价不含税)*拆分子项.数量);
		}
	)
}

BEGIN:主材_不取费_监造_乙供主材价差含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费"  && 主材.监造物料 == 1
			:
		    (主材.市场价含税-主材.预算价含税)*主材.数量;
			->主材.拆分 == 1
	        :
			sum(_过滤监造乙供不取费主材(),"拆分子项",?(拆分子项.市场价含税-拆分子项.预算价含税)*拆分子项.数量);
		}
	)
}

BEGIN:主材_不取费_监造_乙供主材损耗价差不含税
${
	sum(_过滤监造主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费"  && 主材.监造物料 == 1
			:
		    (主材.市场价不含税-主材.预算价不含税)*主材.数量*主材.损耗/100;
			->主材.拆分 == 1
	        :
			sum(_过滤监造乙供不取费主材(),"拆分子项",?(拆分子项.市场价不含税-拆分子项.预算价不含税)*拆分子项.数量*拆分子项.损耗/100);
		}
	)
}

BEGIN:主材_不取费_监造_运输重量
${
		sum(_过滤监造主材(),"主材",
			?#{
				->主材.拆分 == 0 && 主材.费用类型 == "不取费"  && 主材.监造物料 == 1
				:
				主材.单重*主材.数量*(1+主材.损耗/100)*(1+主材.毛重/100)/1000;
				->主材.拆分 == 1
				:
				sum(_过滤监造甲供不取费主材(),"拆分子项",?拆分子项.单重*拆分子项.数量*(1+拆分子项.损耗/100)*(1+拆分子项.毛重/100)/1000) + 
				sum(_过滤监造乙供不取费主材(),"拆分子项",?拆分子项.单重*拆分子项.数量*(1+拆分子项.损耗/100)*(1+拆分子项.毛重/100)/1000);
			}
		)
}

BEGIN:主材_不取费_监造_运输费用
${
	#{
		->@工程信息.专业类型=="送电"
		:
		sum(_过滤监造主材(),"主材",
			?#{
				->主材.拆分 == 0 && 主材.费用类型 == "不取费"  && 主材.监造物料 == 1
				:
				主材.单重/1000*主材.数量*主材.运输单价*(1+主材.损耗/100)*(1+主材.毛重/100);
				->主材.拆分 == 1
				:
				sum(_过滤监造甲供不取费主材(),"拆分子项",?拆分子项.单重/1000*拆分子项.数量*拆分子项.运输单价*(1+拆分子项.损耗/100)*(1+拆分子项.毛重/100)) + 
				sum(_过滤监造乙供不取费主材(),"拆分子项",?拆分子项.单重/1000*拆分子项.数量*拆分子项.运输单价*(1+拆分子项.损耗/100)*(1+拆分子项.毛重/100));
			}
		);
	}
}

///////////////////////////////////////////////////////////////
//
//  监造设备
//
///////////////////////////////////////////////////////////////
BEGIN:设备_主要设备_监造_甲供设备费不含税
${
	sum(_过滤监造甲供主要设备(),"设备",?设备.单价不含税*设备.数量)
}

BEGIN:设备_主要设备_监造_甲供设备费含税
${
	sum(_过滤监造甲供主要设备(),"设备",?设备.单价含税*设备.数量)
}

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

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

BEGIN:设备_主要设备_监造_乙供设备税金
${
    sum(_过滤监造乙供主要设备(),"设备",?(设备.数量 * (设备.单价不含税 + 设备.单价含税 * 设备.运杂费率 / 100)) * @工程信息.工程税率/100)   
}

BEGIN:设备_普通设备_监造_甲供设备费不含税
${
	sum(_过滤监造普通甲供设备(),"设备",?设备.数量 * 设备.单价不含税)
}

BEGIN:设备_普通设备_监造_甲供设备费含税
${
	sum(_过滤监造普通甲供设备(),"设备",?设备.数量 * 设备.单价含税)
}

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

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

BEGIN:设备_普通设备_监造_乙供设备税金
${
	sum(_过滤监造普通乙供设备(),"设备",?(设备.数量 * (设备.单价不含税 + 设备.单价含税 * 设备.运杂费率 / 100)) * @工程信息.工程税率/100)
}
///////////////////////////////////////////////////////////////
//
//  监造主材设备过滤函数
//
///////////////////////////////////////////////////////////////
BEGIN:_过滤监造主材
${
    filter(source,"工程量",?工程量.type =="主材" && parent.数量 != 0)
}

BEGIN:_过滤监造乙供取费主材
${
    filter(filter(items,"子项",?子项.type == "主材" && 子项.供货方 == "乙供" && 子项.费用类型 == "取费"),"拆分子项",?拆分子项.监造物料==1)
}

BEGIN:_过滤监造甲供取费主材
${
    filter(filter(items,"子项",?子项.type == "主材" && 子项.供货方 == "甲供" && 子项.费用类型 == "取费"),"拆分子项",?拆分子项.监造物料==1)
}

BEGIN:_过滤监造乙供不取费主材
${
    filter(filter(items,"子项",?子项.type == "主材" && 子项.供货方 == "乙供" && 子项.费用类型 == "不取费"),"拆分子项",?拆分子项.监造物料==1)
}

BEGIN:_过滤监造甲供不取费主材
${
    filter(filter(items,"子项",?子项.type == "主材" && 子项.供货方 == "甲供" && 子项.费用类型 == "不取费"),"拆分子项",?拆分子项.监造物料==1)
}

BEGIN:_过滤监造普通甲供设备
${
    filter(source,"工程量",?工程量.type =="设备" && 工程量.供货方 == "甲供" && 工程量.设备类型 == "普通设备" && 工程量.监造物料 == 1  && parent.type == "清单" && parent.数量 != 0)
}

BEGIN:_过滤监造普通乙供设备
${
    filter(source,"工程量",?工程量.type =="设备" && 工程量.供货方 == "乙供" && 工程量.设备类型 == "普通设备" && 工程量.监造物料 == 1  && parent.type == "清单" && parent.数量 != 0)
}

BEGIN:_过滤监造甲供主要设备
${
	filter(source,"工程量",?工程量.type =="设备"  && 工程量.设备类型 =="主要设备" && 工程量.供货方 == "甲供" && 工程量.监造物料 == 1  && parent.type == "清单" && parent.数量 != 0)
}

BEGIN:_过滤监造乙供主要设备
${
	filter(source,"工程量",?工程量.type =="设备"  && 工程量.设备类型 =="主要设备" && 工程量.供货方 == "乙供" && 工程量.监造物料 == 1  && parent.type == "清单" && parent.数量 != 0)
}
///////////////////////////////////////////////////////////////
//
//  报表用
//  
///////////////////////////////////////////////////////////////
BEGIN:主材费
${
	?主材_取费_甲供主材费含税() + 主材_取费_甲供主材损耗费含税() + 主材_不取费_甲供主材费含税() + 主材_不取费_甲供主材损耗费含税() +
	主材_取费_甲供主材价差含税() + 主材_取费_甲供主材损耗价差含税() + 主材_不取费_甲供主材价差含税() + 主材_不取费_甲供主材损耗价差含税()
	+ 主材_取费_乙供主材费不含税() + 主材_取费_乙供主材损耗费不含税() + 主材_不取费_乙供主材费不含税() + 主材_不取费_乙供主材损耗费不含税() +
	主材_取费_乙供主材价差不含税() + 主材_取费_乙供主材损耗价差不含税() + 主材_不取费_乙供主材价差不含税() + 主材_不取费_乙供主材损耗价差不含税()
}

BEGIN:甲供设备费
${
	?设备_主要设备_甲供设备费含税() + 设备_普通设备_甲供设备费含税() + 设备_主要设备_甲供设备费不含税() + 设备_普通设备_甲供设备费不含税()
}

BEGIN:乙供设备费
${
	?设备_主要设备_乙供设备费不含税() + 设备_普通设备_乙供设备费不含税()
}

BEGIN:定额人工费
${
	?定额_取费_人工费() + 定额_取费_脚手架人工费() + 定额_取费_混凝土施工调整人工费() + 定额_取费_调试人工费() + 定额_取费_地形人工费() + 
	定额_不取费_人工费() + 定额_不取费_脚手架人工费() + 定额_不取费_混凝土施工调整人工费() + 定额_不取费_调试人工费() + 定额_不取费_地形人工费()
}

BEGIN:定额甲供材料费含税
${
	?定额_取费_甲供材料费含税() + 定额_不取费_甲供材料费含税()
}

BEGIN:定额乙供材料费不含税
${
	?定额_取费_乙供材料费不含税() + 定额_取费_脚手架材料费() + 定额_取费_混凝土施工调整材料费() + 定额_取费_调试材料费() + 
	定额_不取费_乙供材料费不含税() + 定额_不取费_脚手架材料费() + 定额_不取费_混凝土施工调整材料费() + 定额_不取费_调试材料费()
}

BEGIN:定额机械费
${
	?定额_取费_机械费() + 定额_取费_脚手架机械费() + 定额_取费_混凝土施工调整机械费() + 定额_取费_调试机械费() + 定额_取费_地形机械费() + 
	定额_不取费_机械费() + 定额_不取费_脚手架机械费() + 定额_不取费_混凝土施工调整机械费() + 定额_不取费_调试机械费() + 定额_不取费_地形机械费()
}

//---------------施工图架线合并方案新增基础变量-----------------------
BEGIN:乙供设备运杂费
${
	?设备_主要设备_乙供设备运杂费() + 设备_普通设备_乙供设备运杂费()
}

BEGIN:甲供设备运杂费
${
	?设备_主要设备_甲供设备运杂费() + 设备_普通设备_甲供设备运杂费()
}

BEGIN:定额_取费_乙供材料价差含税
${
 sum(_过滤取费定额(),"定额",
	?#{
		
		->定额.调差类型 == "建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				->材料.拆分 == 0 && 材料.供货方 == "乙供"
				:
				(材料.市场价含税-材料.预算价含税)*材料.数量;
				->  材料.拆分 == 1
				:
				sum(_过滤乙供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价含税*@工程信息.建筑人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价含税-子项.预算价含税)*子项.数量*材料.数量;
							}	   
				   );
				
			  }
		   );
		->定额.调差类型 == "安装"
		:
		定额.乙供材料费不含税*@工程信息.材料调差系数/100;
		}*定额.材料系数*定额.定额系数*定额.数量
	) 

}

BEGIN:定额_不取费_乙供材料价差含税
${
	sum(_过滤不取费定额(),"定额",
	?#{
		
		->定额.调差类型 == "建筑"
		:
		sum(_过滤材料(),"材料",
			?#{
				->材料.拆分 == 0 && 材料.供货方 == "乙供"
				:
				(材料.市场价含税-材料.预算价含税)*材料.数量;
				-> 材料.拆分 == 1
				:
				sum(_过滤乙供子项(),"子项",
						  ?#{
							  ->子项.type == "人工"
							  :
							  子项.预算价含税*@工程信息.建筑人工调差系数/100*子项.数量*材料.数量;
							  ->子项.type == "消材"||子项.type == "机械"
							  :
							  (子项.市场价含税-子项.预算价含税)*子项.数量*材料.数量;
							}	   
				   );
				
			  }
		   );
		->定额.调差类型 == "安装"
		:
		定额.乙供材料费不含税*@工程信息.材料调差系数/100;
		}*定额.材料系数*定额.定额系数*定额.数量
	) 
	
}


BEGIN:主材_取费_乙供主材费含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==0
			:
			主材.数量 * 主材.预算价含税;
			->主材.拆分 == 1
			:
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税);
		}
	)
}

BEGIN:主材_取费_乙供主材损耗费含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==0
			:
			主材.数量 * 主材.预算价含税 * 主材.损耗 /100;
			->主材.拆分 == 1
			:
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税 * 拆分子项.损耗 /100);	
		}
	)
}

BEGIN:主材_取费_乙供主材价差含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.费用类型 == "取费" && 主材.供货方 == "乙供" && 主材.设备性材料==0
			:
			主材.数量 * (主材.市场价含税-主材.预算价含税);
			->主材.拆分 == 1
			:
			sum(filter(_过滤乙供取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * (拆分子项.市场价含税-拆分子项.预算价含税));
		}
	)
}

BEGIN:主材_不取费_乙供主材费含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
		    主材.预算价含税*主材.数量;
			->主材.拆分 == 1
	        :
			sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税);
		}
	)
}

 BEGIN:主材_不取费_乙供主材损耗费含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
		    主材.预算价含税*主材.数量*主材.损耗/100;
			->主材.拆分 == 1
	        :
			sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?拆分子项.数量 * 拆分子项.预算价含税*拆分子项.损耗/100);
		}
	)
}

BEGIN:主材_不取费_乙供主材价差含税
${
	sum(_过滤主材(),"主材",
		?#{
			->主材.拆分 == 0 && 主材.供货方 == "乙供" && 主材.费用类型 == "不取费" && 主材.设备性材料==0
			:
		    (主材.市场价含税-主材.预算价含税)*主材.数量;
			->主材.拆分 == 1
	        :
			sum(filter(_过滤乙供不取费主材(),"拆分子项",?拆分子项.设备性材料==0),"拆分子项",?(拆分子项.市场价含税-拆分子项.预算价含税)*拆分子项.数量);
		}
	)
}

BEGIN:设备_主要设备_乙供设备费含税
${
    sum(_过滤乙供主要设备(),"设备",?设备.单价含税*设备.数量)  
}

BEGIN:设备_普通设备_甲供设备性材料价差含税
${
	主材_取费_甲供主材价差含税_设备性材料()+主材_不取费_甲供主材价差含税_设备性材料();
}

BEGIN:设备_普通设备_甲供设备性材料损耗费含税
${
	主材_取费_甲供主材损耗费含税_设备性材料()+主材_不取费_甲供主材损耗费含税_设备性材料();
}

BEGIN:设备_普通设备_甲供设备性材料损耗价差含税
${
	主材_取费_甲供主材损耗价差含税_设备性材料()+主材_不取费_甲供主材损耗价差含税_设备性材料();
}

BEGIN:设备_普通设备_乙供设备性材料价差不含税
${
	主材_取费_乙供主材价差不含税_设备性材料()+主材_不取费_乙供主材价差不含税_设备性材料();
}

BEGIN:设备_普通设备_乙供设备性材料损耗费不含税
${
	主材_取费_乙供主材损耗费不含税_设备性材料()+主材_不取费_乙供主材损耗费不含税_设备性材料();
}

BEGIN:设备_普通设备_乙供设备性材料损耗价差不含税
${
	主材_取费_乙供主材损耗价差不含税_设备性材料()+主材_不取费_乙供主材损耗价差不含税_设备性材料();
}

BEGIN:设备_普通设备_乙供设备费含税
${
	sum(_过滤普通乙供设备(),"设备",?设备.数量 * 设备.单价含税)+主材_取费_乙供主材费含税_设备性材料()+主材_不取费_乙供主材费含税_设备性材料()+主材_取费_乙供主材损耗费含税_设备性材料()+主材_不取费_乙供主材损耗费含税_设备性材料()+主材_取费_乙供主材价差含税_设备性材料()+主材_不取费_乙供主材价差含税_设备性材料()+主材_取费_乙供主材损耗价差含税_设备性材料()+主材_不取费_乙供主材损耗价差含税_设备性材料();
}

BEGIN:乙供设备不含税
${
	?设备_主要设备_乙供设备费不含税() + 设备_普通设备_乙供设备费不含税()
}




