/////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////配合比子级数量//////////////////////////////////
BEGIN:_过滤配合比子级_Items
${
   filter(items ,"配合比", ? 配合比.type == "主材" && 配合比.后增子级 != 1)
}

BEGIN:_配合比子级数量
${    
  sum(_过滤配合比子级_Items(), "配合比子级", ?2)
}

/////////////20230508将电缆线路改为陆上电缆----调整设备性材料的判定规则之线路专业属性/////////////////////////////

BEGIN:_线路专业属性
${
	?#{
		->parent.专业属性 == "陆上电缆" || parent.专业属性 == "海底电缆"
		:1;
		->
		:0;
	}		
}

//////////////////////////////////////////通用函数定义//////////////////////////////////

BEGIN:_项目划分费率
${
	?#{
		-> parent.type == "项目划分"
		  :
			parent.费率 / 100;
		-> parent.type == "清单" || parent.parent.type == "项目划分"
		  :
			parent.parent.费率 / 100;
		-> parent.parent.type == "清单" || parent.parent.parent.type == "项目划分"
		  :
			parent.parent.parent.费率 / 100;
		-> parent.parent.parent.type == "清单"
		  :
			parent.parent.parent.parent.费率 / 100;
		-> 
			: 1;		  
	}
}

// 判断父级数据是否为零或者为清单
/////////////////////////////////////////////////////////////////////////////////////
BEGIN:_父级数量判断
${
	?#{
		-> parent.parent.parent.type == "清单" && parent.parent.parent.数量 == 0
		  :
			0;
		-> parent.parent.type == "清单" && parent.parent.数量 == 0
		  :
			0;
		-> parent.type != "清单" || parent.数量 != 0 
		  :
			1;
		-> 
			: 0;		  
	}
}

//过滤条件
/////////////////////////////////////////////////////////////////////////////////////
BEGIN:_过滤主材
${
	filter(source, "工程量" ,?工程量.type == "主材" && _父级数量判断() != 0 && ( _线路专业属性() == 0 || 工程量.设备性材料 != 1 ))
}

BEGIN:_过滤主材_含设备性材料
${
	filter(source, "工程量" ,?工程量.type == "主材" && _父级数量判断() != 0)
}

BEGIN:_过滤设备性材料
${
	filter(source, "工程量" ,?工程量.type == "主材" && _父级数量判断() != 0 && _线路专业属性() == 1)
}

BEGIN:_过滤设备
${
	filter(source , "工程量" ,?工程量.type == "设备" && _父级数量判断() != 0)
}

/////////////////定额人工，材料，机械费用计算过滤函数////////////////////////////////

BEGIN:_过滤定额
${
	filter(source , "工程量" ,?工程量.type == "定额" && _父级数量判断() != 0)
}

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

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

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

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

/////////////////价差系数计算过滤函数////////////////////////////////////////////////

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

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

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

BEGIN:_过滤甲供普通材料_Items
${
	filter(items ,"人材机",?人材机.type == "材料"&&人材机.供货方 == "甲供"&&人材机.计价类型 =="计价"&&人材机.拆分 != 1 )
}

BEGIN:_过滤乙供普通材料_Items
${
	filter(items ,"人材机",?人材机.type == "材料"&&人材机.供货方 == "乙供"&&人材机.计价类型 =="计价"&&人材机.拆分 != 1 )
}

BEGIN:_过滤拆分材料_Items
${
	filter(items ,"人材机",?人材机.type == "材料"&&人材机.计价类型 =="计价"&&人材机.拆分 == 1 )
}

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

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

BEGIN:_过滤拆分材料人工_Items
${
	filter(items ,"拆分子项",?拆分子项.type == "人工"  )
}

BEGIN:_过滤拆分材料机械_Items
${
	filter(items ,"拆分子项",?拆分子项.type == "机械"  )
}

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

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


BEGIN:_过滤配合比主材_Items
${
	filter(items ,"配合比",?配合比.type == "主材" && (_线路专业属性() == 0 || 配合比.设备性材料 != 1 ) && 配合比.后增子级 != 1)
}

BEGIN:_过滤设备性材料_配合比主材_Items
${
	filter(items ,"配合比",?配合比.type == "主材" && 配合比.设备性材料 == 1 && 配合比.后增子级 != 1 )
}

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

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

BEGIN:_过滤机械计日工
${
    filter(source,"工程量",?工程量.type =="机械")
}
 
//////////////////////////////////////////定额变量//////////////////////////////////
///***2023年1月31日15:24:26 定额材料费区分甲乙供***新定额配合比材料划分至拆分材料并计入材料费，并且混凝土主材子项没有人、机，因此人工费、机械费去除配合比费用**********//
BEGIN:定额费
${
	? 人工费() + 材料费() + 机械费()
}

BEGIN:人工费
${
	?_人工费_定额()  + _人工费_计日工()
}

//////////////////////***2023年8月22日 消材计取配送、卸车、保管费，计入材料费变量**********//////////////////////

BEGIN:材料费
${
    ?甲供材料费含税()  + 乙供材料费不含税()+ 甲供材料配送费含税() + 甲供材料卸车费含税() + 甲供材料保管费含税() + 乙供材料配送费含税()
}

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

BEGIN:乙供材料费不含税
${
    ? _乙供材料费_定额() + _材料费_计日工()
}
//////////////////////***2023年8月22日 消材计取配送、卸车、保管费**********//////////////////////
BEGIN:甲供材料配送费含税
${
       sum(_过滤定额(), "定额", ? (_甲供普通材料配送() + _甲供拆分子项材料配送()) * 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材配送费率 / 100)
}

//////////////////////***2023年9月12日 其他材料费元、%的情况如何计取**********//////////////////////
BEGIN:_甲供普通材料配送
${
	sum(_过滤甲供普通材料_Items(), "人材机", 
	?#{ 
		->人材机.集中配送 == "1" && (人材机.名称 != "其他材料费" &&(人材机.单位 != "元" ||人材机.单位 != "%"))
		:
		人材机.预算价含税 * 人材机.数量;
		->人材机.集中配送 == "1" && (人材机.名称 =="其他材料费" && 人材机.单位 =="元")
		:
		人材机.数量;
		->人材机.集中配送 == "1" && (人材机.名称 =="其他材料费" && 人材机.单位 =="%")
		:
		_变量_甲供其他费_材料_％_算法2_();
	}
	) 
}

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

BEGIN:甲供材料卸车费含税
${
       sum(_过滤定额(), "定额", ? (_甲供普通材料卸车() + _甲供拆分子项材料卸车()) * 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材卸车费费率/100)
}


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

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

BEGIN:甲供材料保管费含税
${
       sum(_过滤定额(), "定额", ? (_甲供普通材料保管() + _甲供拆分子项材料保管()) * 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.甲供主材保管费费率/100)
}

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

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

BEGIN:乙供材料配送费含税
${
       sum(_过滤定额(), "定额", ? (_乙供普通材料配送() + _乙供拆分子项材料配送()) * 定额.材料系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()* @工程信息.乙供主材配送费率 / 100)
}

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

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



BEGIN:机械费
${
    ?_机械费_定额() + _机械费_计日工()
}

BEGIN:_人工费_定额
${
    sum(_过滤定额(), "定额" , ?_人工费_定额_计算()) 
}

BEGIN:_乙供材料费_定额
${
    sum(_过滤定额(), "定额" , ?_乙供材料费_定额_计算())
}

BEGIN:_甲供材料费_定额
${
    sum(_过滤定额(), "定额" , ?_甲供材料费_定额_计算())
}

BEGIN:_机械费_定额
${
    sum(_过滤定额(), "定额" , ?_机械费_定额_计算())
}

BEGIN:_人工费_定额_计算
${
    ? _人工费_不含特殊费() + _脚手架搭拆费_人工() + _调试费_人工() + _混凝土施工调整_人工()
}

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

BEGIN:_甲供材料费_定额_计算
${
    ? _甲供材料费含税_不含特殊费() 
}

BEGIN:_机械费_定额_计算
${
    ? _机械费_不含特殊费() + _脚手架搭拆费_机械() + _调试费_机械() + _混凝土施工调整_机械()
}

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





BEGIN:_脚手架搭拆费_人工
${
    ? _脚手架搭拆费() * 0.4  
}

BEGIN:_脚手架搭拆费_材料
${
    ? _脚手架搭拆费() * 0.5  
}

BEGIN:_脚手架搭拆费_机械
${
    ? _脚手架搭拆费() * 0.1  
}

BEGIN:_脚手架搭拆费
${
    ?#{
        ->定额.脚手架计取 == "计取" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            定额.数量 * _项目划分费率() * 定额.人工费 * 定额.人工系数 * 定额.定额系数 * 0.05;
     } 
}

BEGIN:_脚手架搭拆费_人工费
${
    sum(_过滤定额(),"工程量",?
    #{
        ->工程量.脚手架计取 == "计取" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            工程量.数量 * parent.费率 / 100 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数;
     }
	)    
}

BEGIN:_调试费_基础费
{
	?定额.数量 * _项目划分费率() * 定额.人工费 * 定额.人工系数 * 定额.定额系数
}

BEGIN:_计取通风调试费系数_工程量
${
	#{
		->in(工程量.编码,"PT16-1~31") || in(工程量.编码,"PT16-198~203")
			:
				0.4 * 0.13;
		->in(工程量.编码,"PT16-134~146")
			:
				0.25 * 0.13;
		->in(工程量.编码,"PT16-147~148")
			:
				0.14 * 0.13;
		->in(工程量.编码,"PT16-172~180")
			:
				0.28 * 0.13;
		->
			:
				0.13;				
	}
}

BEGIN:_计取通风调试费系数_定额
${
	#{
		->in(定额.编码,"PT16-1~31") || in(定额.编码,"PT16-198~203")
			:
				0.4 * 0.13;
		->in(定额.编码,"PT16-134~146")
			:
				0.25 * 0.13;
		->in(定额.编码,"PT16-147~148")
			:
				0.14 * 0.13;
		->in(定额.编码,"PT16-172~180")
			:
				0.28 * 0.13;
		->
			:
				0.13;				
	}
}

BEGIN:_调试费
${
    sum(_过滤定额(),"工程量",?
    #{
        ->工程量.调试费计取 == "计取接地调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            工程量.数量 * parent.费率 / 100 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 * 0.1;
		->工程量.调试费计取 == "计取消防调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            工程量.数量 * parent.费率 / 100 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 * 0.18;
		->工程量.调试费计取 == "计取通风调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            工程量.数量 * parent.费率 / 100 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 * _计取通风调试费系数_工程量();
		->工程量.调试费计取 == "计取采暖调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            工程量.数量 * parent.费率 / 100 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 * 0.15;
        }
	)    
}

BEGIN:_调试费_人工
${  
	 ?#{
        ->定额.调试费计取 == "计取接地调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            _调试费_基础费() * 0.1 * 0.4;
		->定额.调试费计取 == "计取消防调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            _调试费_基础费() * 0.18 *0.55;
		->定额.调试费计取 == "计取通风调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            _调试费_基础费() * _计取通风调试费系数_定额() * 0.55;
		->定额.调试费计取 == "计取采暖调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
           _调试费_基础费() * 0.15 * 0.5;
      } 
}

BEGIN:_调试费_人工_汇总
${
	sum(_过滤定额(),"工程量",?
    #{
        ->工程量.调试费计取 == "计取接地调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            工程量.数量 * parent.费率 / 100 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 * 0.1 * 0.4;
		->工程量.调试费计取 == "计取消防调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            工程量.数量 * parent.费率 / 100 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 * 0.18 * 0.55;
		->工程量.调试费计取 == "计取通风调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            工程量.数量 * parent.费率 / 100 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 * _计取通风调试费系数_工程量() * 0.55;
		->工程量.调试费计取 == "计取采暖调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            工程量.数量 * parent.费率 / 100 * 工程量.人工费 * 工程量.人工系数 * 工程量.定额系数 * 0.15 * 0.5;
        }
	) 
}

BEGIN:_调试费_材料
${
    ?#{
        ->定额.调试费计取 == "计取接地调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            _调试费_基础费() * 0.1 * 0.2;
		->定额.调试费计取 == "计取消防调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            _调试费_基础费() * 0.18 * 0.2;
		->定额.调试费计取 == "计取通风调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            _调试费_基础费() * _计取通风调试费系数_定额() * 0.2;
		->定额.调试费计取 == "计取采暖调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
           _调试费_基础费() * 0.15 * 0.3;
      } 
}

BEGIN:_调试费_机械
${
    ?#{
        ->定额.调试费计取 == "计取接地调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            _调试费_基础费() * 0.1 * 0.4;
		->定额.调试费计取 == "计取消防调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            _调试费_基础费() * 0.18 * 0.25;
		->定额.调试费计取 == "计取通风调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            _调试费_基础费() * _计取通风调试费系数_定额() * 0.25;
		->定额.调试费计取 == "计取采暖调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
           _调试费_基础费() * 0.15 * 0.2;
      } 
}

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

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

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

BEGIN:人工工日
${
	sum(_过滤定额(), "定额" , ? (1 + _定额地形系数_人工增加()) * _定额人工用量合计() * 定额.人工系数 * 定额.定额系数* 定额.数量 * _项目划分费率() )
}

BEGIN:_定额人工用量合计
${
	sum(_过滤人工_Items(), "人材机", ?人材机.数量)
}

//****20230118**原定额地形系数始终等于定额地形系数_人工增加**所以将定额地形系数替换成人工增加*****//

BEGIN:消耗量地形系数
${
	sum(_过滤定额(), "定额" , ?_定额地形系数_人工增加())
}

//****2022年4月7日16:04:08  地形调整为工程和运输地形、新增拆除地形比例*****20230118，调整通信地形系数对应的定额****定额地形系数拆分为人工和机械*****//
//****2023年11月9日 运输定额的地形区分人运、汽车拖拉机计算*****//

BEGIN:_定额地形系数_人工增加
${
	?#{
		->parent.专业类型 == "拆除"  && parent.专业属性 == "架空线路"  && in(定额.编码,"JYX1-1~16")
		: 
			(@拆除架空线路地形系数.工地运输混凝土杆 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "架空线路"  && in(定额.编码,"JYX1-17~22")
		: 
			(@拆除架空线路地形系数.工地运输金具 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "架空线路"  && (in(定额.编码,"JYX1-23~108") && strFind(定额.名称,"装卸") == -1)
		: 
			(@拆除架空线路地形系数.工汽拖运输 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "架空线路"  && in(定额.编码,"CYX1-1~4")
		: 
			(@拆除架空线路地形系数.基础工程 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "架空线路"  && in(定额.编码,"CYX2-1~40")
		: 
			(@拆除架空线路地形系数.杆塔工程 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "架空线路"  && in(定额.编码,"CYX3-1~27")
		: 
			(@拆除架空线路地形系数.架线一般 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "架空线路"  && in(定额.编码,"CYX3-28~42")
		: 
			(@拆除架空线路地形系数.架线张力 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "架空线路"  && in(定额.编码,"CYX4-1~131")
		: 
			(@拆除架空线路地形系数.附件工程 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "通信线路"  && in(定额.编码,"JYX1-1~16")
		: 
			(@拆除通信线路地形系数.工地运输混凝土杆 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "通信线路"  && in(定额.编码,"JYX1-17~22")
		: 
			(@拆除通信线路地形系数.工地运输金具 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "通信线路"  && (in(定额.编码,"JYX1-23~108") && strFind(定额.名称,"装卸") == -1)
		: 
			(@拆除通信线路地形系数.工汽拖运输 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "通信线路"  && in(定额.编码,"CYX1-1~4")
		: 
			(@拆除通信线路地形系数.基础工程 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "通信线路"  && in(定额.编码,"CYX2-1~40")
		: 
			(@拆除通信线路地形系数.杆塔工程 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "通信线路"  && in(定额.编码,"CYX3-1~27")
		: 
			(@拆除通信线路地形系数.架线一般 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "通信线路"  && in(定额.编码,"CYX3-28~42")
		: 
			(@拆除通信线路地形系数.架线张力 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "通信线路"  && in(定额.编码,"CYX4-1~131")
		: 
			(@拆除通信线路地形系数.附件工程 / 100);	
		->parent.专业类型 != "拆除" && parent.专业类型 != "余物清理" && (in(定额.编码,"PZ1-87~129") || in(定额.编码,"PGZ1-61~88"))
		: 
			(_工程地形综合系数() / 100);
		->parent.专业类型 != "拆除" && parent.专业类型 != "余物清理" && strFind(定额.编码,"BG-PX7") == 0
		: 
			(_工程地形综合系数() / 100);
		->parent.专业类型 != "拆除" && parent.专业类型 != "余物清理" && (strFind(定额.编码,"PX") == 0 || strFind(定额.编码,"PXG") == 0) &&(strFind(定额.编码,"PX1") != 0) && in(定额.编码,"PX5-77~86")==0
		:
			(_工程地形综合系数() / 100);
			
		  
		->parent.专业类型 != "拆除" && parent.专业类型 != "余物清理" &&  in(定额.编码,"PX1-1~6")
		: 
		  (_运输地形综合系数_不含城区() / 100);
		  
		 
		->parent.专业类型 != "拆除" && parent.专业类型 != "余物清理" && (in(定额.编码,"PX1-7~30") && strFind(定额.名称,"装卸") == -1)
		: 
		  (_运输地形综合系数汽车拖拉机() / 100);
			
		->parent.专业类型 != "拆除" && parent.专业类型 != "余物清理"  && strFind(定额.编码,"PX1") == 0  &&   in(定额.编码,"PX1-1~30") == 0  &&   strFind(定额.名称,"装卸") == -1
		: 
		  (_运输地形综合系数() / 100);
		 
}
}

BEGIN:_定额地形系数_机械增加
${
	?#{
		->parent.专业类型 == "拆除"  && parent.专业属性 == "架空线路"  && in(定额.编码,"JYX1-1~16")
		: 
			0;
		->parent.专业类型 == "拆除"  && parent.专业属性 == "架空线路"  && in(定额.编码,"JYX1-17~22")
		: 
			0;
		->parent.专业类型 == "拆除"  && parent.专业属性 == "架空线路"  && (in(定额.编码,"JYX1-23~108") && strFind(定额.名称,"装卸") == -1)
		: 
			(@拆除架空线路地形系数.工汽拖运输 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "架空线路"  && in(定额.编码,"CYX1-1~4")
		: 
			(@拆除架空线路地形系数.基础工程 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "架空线路"  && in(定额.编码,"CYX2-1~40")
		: 
			(@拆除架空线路地形系数.杆塔工程 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "架空线路"  && in(定额.编码,"CYX3-1~27")
		: 
			(@拆除架空线路地形系数.架线一般 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "架空线路"  && in(定额.编码,"CYX3-28~42")
		: 
			(@拆除架空线路地形系数.架线张力 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "架空线路"  && in(定额.编码,"CYX4-1~131")
		: 
			(@拆除架空线路地形系数.附件工程 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "通信线路"  && in(定额.编码,"JYX1-1~16")
		: 
			0;
		->parent.专业类型 == "拆除"  && parent.专业属性 == "通信线路"  && in(定额.编码,"JYX1-17~22")
		: 
			0;
		->parent.专业类型 == "拆除"  && parent.专业属性 == "通信线路"  && (in(定额.编码,"JYX1-23~108") && strFind(定额.名称,"装卸") == -1)
		: 
			(@拆除通信线路地形系数.工汽拖运输 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "通信线路"  && in(定额.编码,"CYX1-1~4")
		: 
			(@拆除通信线路地形系数.基础工程 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "通信线路"  && in(定额.编码,"CYX2-1~40")
		: 
			(@拆除通信线路地形系数.杆塔工程 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "通信线路"  && in(定额.编码,"CYX3-1~27")
		: 
			(@拆除通信线路地形系数.架线一般 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "通信线路"  && in(定额.编码,"CYX3-28~42")
		: 
			(@拆除通信线路地形系数.架线张力 / 100);
		->parent.专业类型 == "拆除"  && parent.专业属性 == "通信线路"  && in(定额.编码,"CYX4-1~131")
		: 
			(@拆除通信线路地形系数.附件工程 / 100);	
		->parent.专业类型 != "拆除" && parent.专业类型 != "余物清理" && (in(定额.编码,"PZ1-87~129") || in(定额.编码,"PGZ1-61~88"))
		: 
			(_工程地形综合系数() / 100);	
		->parent.专业类型 != "拆除" && parent.专业类型 != "余物清理" && strFind(定额.编码,"BG-PX7") == 0
		: 
			(_工程地形综合系数() / 100);
		->parent.专业类型 != "拆除" && parent.专业类型 != "余物清理" && (strFind(定额.编码,"PX") == 0 || strFind(定额.编码,"PXG") == 0) &&(strFind(定额.编码,"PX1") != 0) && in(定额.编码,"PX5-77~86")==0
		:
		     iif(in(定额.编码,"PX2-8~18,PX2-23~27,PX2-38~45,PX2-51~59,PX2-65~72"), 0, (_工程地形综合系数() / 100));
			
		->parent.专业类型 != "拆除" && parent.专业类型 != "余物清理" &&  in(定额.编码,"PX1-1~6")
		: 
		  0;
		  
		 
		->parent.专业类型 != "拆除" && parent.专业类型 != "余物清理" && (in(定额.编码,"PX1-7~30") && strFind(定额.名称,"装卸") == -1)
		: 
		  (_运输地形综合系数汽车拖拉机() / 100);
			
		->parent.专业类型 != "拆除" && parent.专业类型 != "余物清理"  && strFind(定额.编码,"PX1") == 0  &&   in(定额.编码,"PX1-1~30") == 0  &&   strFind(定额.名称,"装卸") == -1
		: 
		  (_运输地形综合系数() / 100);
}
}


//****20230119，电缆线路改为通信线路**//
BEGIN:_工程地形综合系数
${
	?#{
		->parent.专业属性 == "架空线路"
		:@工程地形系数.架空线路;
		
		->parent.专业属性 == "通信线路"
		:@工程地形系数.通信线路;
		
		->parent.专业属性 == "10kV架空线路"
		:@工程地形系数.10kV架空线路;

		->parent.专业属性 == "400V及以下架空线路"
		:@工程地形系数.400V及以下架空线路;
	}		
}
//****20230119，电缆线路改为通信线路**//
BEGIN:_运输地形综合系数
${
	?#{
		->parent.专业属性 == "架空线路"
		:@运输地形系数.架空线路;

		->parent.专业属性 == "通信线路"
		:@运输地形系数.通信线路;

		->parent.专业属性 == "10kV架空线路"
		:@运输地形系数.10kV架空线路;

		->parent.专业属性 == "400V及以下架空线路"
		:@运输地形系数.400V及以下架空线路;

	}		
}

//****20231109，新增以下变量，为了区分出汽车拖拉机运输地形的取值**//
BEGIN:_运输地形综合系数汽车拖拉机
${
	?#{
		->parent.专业属性 == "架空线路"
		:@运输地形系数.架空线路_其中：汽车拖拉机运输;
		
		->parent.专业属性 == "通信线路"
		:@运输地形系数.通信线路_其中：汽车拖拉机运输;
		
		->parent.专业属性 == "10kV架空线路"
		:@运输地形系数.10kV架空线路_其中：汽车拖拉机运输;
		
		->parent.专业属性 == "400V及以下架空线路"
		:@运输地形系数.400V及以下架空线路_其中：汽车拖拉机运输;
	}		
}




//****20230120，新增不含城区地形系数；20231109，改变取值为取人力运输的地形**//

BEGIN:_运输地形综合系数_不含城区
${
  ?#{
    ->parent.专业属性 == "架空线路"
    :@运输地形系数.架空线路_其中：人力运输.不含城区;
    ->parent.专业属性 == "通信线路"
    :@运输地形系数.通信线路_其中：人力运输.不含城区;
    ->parent.专业属性 == "10kV架空线路"
    :@运输地形系数.10kV架空线路_其中：人力运输.不含城区;
    ->parent.专业属性 == "400V及以下架空线路"
    :@运输地形系数.400V及以下架空线路_其中：人力运输.不含城区;
  }    
}

BEGIN:混凝土施工调整人工费
${
	sum(_过滤定额(),"定额", ?_混凝土施工调整_人工())
}

BEGIN:混凝土施工调整人工费价差
${
?#{
		->@价差系数.人工系数调差
		:
			sum(_过滤定额(),"定额", ?_混凝土施工调整_人工()*_人工调差系数());
	->
		:
			0;
	}
}

BEGIN:混凝土施工调整机械费价差
${
	sum(_过滤定额(),"定额", ?_混凝土施工机械价差_含系数())
}

//********修改混凝土施工增加的计算单价******20230509区分概预算定额调整//////////////

BEGIN:_混凝土施工调整_人工
${
	?#{
		->定额.定额范围 == "概算"
		:
		_混凝土施工费_计取主材量() * (-12.1) ;	

		->定额.定额范围 == "预算"
		:
		_混凝土施工费_计取主材量() * (-11.7) ;	
	}
}

BEGIN:混凝土施工调整材料费
${
	sum(_过滤定额(),"定额", ?_混凝土施工调整_材料())
}

BEGIN:_混凝土施工调整_材料
${
	?#{
		->定额.定额范围 == "概算"
		:
		_混凝土施工费_计取主材量() * 19 ;	

		->定额.定额范围 == "预算"
		:
		_混凝土施工费_计取主材量() * 0 ;	
	}
}

BEGIN:混凝土施工调整机械费
${
	sum(_过滤定额(),"定额", ?_混凝土施工调整_机械())
}



BEGIN:_混凝土施工调整_机械
${
	?#{
		->定额.定额范围 == "概算"
		:
		_混凝土施工费_计取主材量() * 8.7 ;	

		->定额.定额范围 == "预算"
		:
		_混凝土施工费_计取主材量() * 8.5 ;	
	}
}

BEGIN:混凝土施工调整费
${
	?#{
		->@价差系数.人工系数调差
		:
			sum(_过滤定额(),"定额", 
			?#{
				-> 定额.定额范围 == "概算"
				:	
				_混凝土施工费_计取主材量() * (15.6 - 12.1*_人工调差系数()) + _混凝土施工机械价差_含系数();

				-> 定额.定额范围 == "预算"
				:								
				_混凝土施工费_计取主材量() * (-3.2 - 11.7*_人工调差系数()) + _混凝土施工机械价差_含系数();
				});
		-> 
		:
			sum(_过滤定额(),"定额", 
			?#{
				-> 定额.定额范围 == "概算"
				:	
				_混凝土施工费_计取主材量() * (19 + 8.7 - 12.1) +_混凝土施工机械价差_含系数() ;

				-> 定额.定额范围 == "预算"
				:
				_混凝土施工费_计取主材量() * (8.5 - 11.7) +_混凝土施工机械价差_含系数()  ;
				});
		}
}

//*******调整范围，改为计算定额下的混凝土*****//

BEGIN:_混凝土施工费_计取主材量
${
	?#{
		->(parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二") && (定额.浇捣方式 == "集中搅拌站+泵车" || 定额.浇捣方式 == "现场搅拌机+泵车")  
		:
			sum(_过滤拆分材料_(), "材料", 
			?#{
				-> 定额.定额范围 == "概算" && 材料.拆分 == 1 && in(材料.编码, "C09031601~09031915")
				:	
					材料.数量 * 0.8*定额.材料系数*定额.定额系数* 定额.数量 * _项目划分费率();	
				-> 定额.定额范围 == "预算" && 材料.拆分 == 1 && in(材料.编码, "C09032001~09032431,C09031601~09031915")
				:
					材料.数量*定额.材料系数*定额.定额系数* 定额.数量 * _项目划分费率();
			});
	}
}

//////////////////////////////////////////人材机价差//////////////////////////////////
BEGIN:人工费价差
${
	?_人工费价差_不含特殊费() + _价差_脚手架搭拆费() * 0.4 + _人工费价差_计日工()  + _人工费价差_调试费()
}

//////////////////////***2023年8月22日 消材计取配送、卸车、保管费，计算材料费价差变量**********//////////////////////

BEGIN:材料费价差
${
	?甲供材料费价差含税() + 乙供材料费价差不含税()+ 甲供材料配送费价差含税() + 甲供材料卸车费价差含税() + 甲供材料保管费价差含税() + 乙供材料配送费价差含税()
}

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

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

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



BEGIN:乙供材料费价差不含税
${
	?_乙供材料费价差_不含特殊费() + _价差_脚手架搭拆费() * 0.5 + _材料费价差_计日工() + _材料费价差_调试费()
}

BEGIN:机械费价差
${
	?_机械费价差_不含特殊费() + _价差_脚手架搭拆费() * 0.1 + _机械费价差_计日工() + _机械费价差_调试费()
}

BEGIN:_价差_脚手架搭拆费
${
    sum(_过滤定额(),"定额",?
    #{
        ->定额.脚手架计取 == "计取" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
		_人工费价差_基础费() * 0.05;
    })    
}

BEGIN:_价差_调试费
${
    sum(_过滤定额(),"定额",?
    #{
		->定额.调试费计取 == "计取接地调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            _人工费价差_基础费() * 0.1;
		->定额.调试费计取 == "计取消防调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            _人工费价差_基础费() * 0.18;
		->定额.调试费计取 == "计取通风调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            _人工费价差_基础费() * _计取通风调试费系数_定额();
		->定额.调试费计取 == "计取采暖调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
           _人工费价差_基础费() * 0.15;
    })    
}

BEGIN:_人工费价差_调试费
${
    sum(_过滤定额(),"定额",?
    #{
		->定额.调试费计取 == "计取接地调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            _人工费价差_基础费() * 0.1 * 0.4;
		->定额.调试费计取 == "计取消防调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            _人工费价差_基础费() * 0.18 *0.55;
		->定额.调试费计取 == "计取通风调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            _人工费价差_基础费() * _计取通风调试费系数_定额() * 0.55;
		->定额.调试费计取 == "计取采暖调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
           _人工费价差_基础费() * 0.15 * 0.5;
    })    
}
BEGIN:_材料费价差_调试费
${
    sum(_过滤定额(),"定额",?
    #{
		->定额.调试费计取 == "计取接地调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            _人工费价差_基础费() * 0.1 * 0.2;
		->定额.调试费计取 == "计取消防调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            _人工费价差_基础费() * 0.18 * 0.2;
		->定额.调试费计取 == "计取通风调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            _人工费价差_基础费() * _计取通风调试费系数_定额() * 0.2;
		->定额.调试费计取 == "计取采暖调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
           _人工费价差_基础费() * 0.15 * 0.3;
    })    
}
BEGIN:_机械费价差_调试费
${
    sum(_过滤定额(),"定额",?
    #{
		->定额.调试费计取 == "计取接地调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            _人工费价差_基础费() * 0.1 * 0.4;
		->定额.调试费计取 == "计取消防调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            _人工费价差_基础费() * 0.18 * 0.25;
		->定额.调试费计取 == "计取通风调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
            _人工费价差_基础费() * _计取通风调试费系数_定额() * 0.25;
		->定额.调试费计取 == "计取采暖调试费" && ( parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二" )
        :
           _人工费价差_基础费() * 0.15 * 0.2;
    })    
}

BEGIN:_人工费价差_不含特殊费
${
	?#{
		->@价差系数.人工系数调差
		:
			sum(_过滤定额(), "定额", ? (1 + _定额地形系数_人工增加()) * _人工费价差_基础费() + _混凝土施工人工价差() )  ;
		->
		:
			sum(_过滤定额(), "定额", ? (1 + _定额地形系数_人工增加()) * _人工费价差_基础费() );	
	}
}

BEGIN:_混凝土施工人工价差
${
	?_混凝土施工调整_人工() * _人工调差系数();	
}

BEGIN:_人工费价差_基础费
${
	?#{
		->@价差系数.人工系数调差 == 0
		:
			sum(_过滤人工_Items(), "人材机", ?(人材机.市场价不含税 - 人材机.预算价不含税) * 人材机.数量) * 定额.人工系数 * 定额.定额系数* 定额.数量 * _项目划分费率()  ;
		->
		:
			定额.人工费 * 定额.人工系数 * 定额.定额系数 * 定额.数量 * _项目划分费率()  * _人工调差系数() ;	
	}
}

BEGIN:_人工调差系数
${
	?#{
		->parent.专业类型 == "建筑" || parent.专业类型 == "建筑措施二"
		:
			@价差系数.人工系数调差.建筑工程  ;	
		->parent.专业类型 == "安装" || parent.专业类型 == "安装措施二"
		:
			@价差系数.人工系数调差.安装工程 ;
		->parent.调差类型 == "建筑拆除" 
		:
			@价差系数.人工系数调差.建筑拆除工程 ;		
		->parent.调差类型 == "安装拆除"
		:
			@价差系数.人工系数调差.安装拆除工程 ;		
		->parent.调差类型 == "建筑" && parent.专业类型 == "余物清理"
		:
			@价差系数.人工系数调差.建筑工程 ;
		->parent.调差类型 == "安装" && parent.专业类型 == "余物清理"
		:
			@价差系数.人工系数调差.安装工程 ;
	}  / 100
}

BEGIN:_人工调差系数_拆分材机
${
	?#{
		->parent.parent.专业类型 == "建筑" || parent.parent.专业类型 == "建筑措施二"
		:
			@价差系数.人工系数调差.建筑工程  ;	
		->parent.parent.专业类型 == "安装" || parent.parent.专业类型 == "安装措施二"
		:
			@价差系数.人工系数调差.安装工程 ;
		->parent.parent.调差类型 == "建筑拆除" 
		:
			@价差系数.人工系数调差.建筑拆除工程 ;		
		->parent.parent.调差类型 == "安装拆除"
		:
			@价差系数.人工系数调差.安装拆除工程 ;		
		->parent.parent.调差类型 == "建筑" && parent.parent.专业类型 == "余物清理"
		:
			@价差系数.人工系数调差.建筑工程 ;
		->parent.parent.调差类型 == "安装" && parent.parent.专业类型 == "余物清理"
		:
			@价差系数.人工系数调差.安装工程 ;
	}  / 100
}

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

//////////////////20230508将电缆线路拆分为陆上电缆、海底电缆///////////////////////////////

BEGIN:_材料调差系数
${
	?#{
		->parent.专业属性 == "配电、开关站"
		:
		#{
			->parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" ||(parent.调差类型 == "安装" && parent.专业类型 == "余物清理")
				:@价差系数.安装工程.配电、开关站.材料系数;
			->parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.配电、开关站.材料系数;
		}; 
		->parent.专业属性 == "充电、换电站"
		:
		#{
			->parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" ||(parent.调差类型 == "安装" && parent.专业类型 == "余物清理")
				:@价差系数.安装工程.充电、换电站.材料系数;
			->parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.充电、换电站.材料系数;
		};
		->parent.专业属性 == "架空线路" || parent.专业属性 == "10kV架空线路" || parent.专业属性 == "400V及以下架空线路"
		:
		#{
			->parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" ||(parent.调差类型 == "安装" && parent.专业类型 == "余物清理")
				:@价差系数.安装工程.架空线路.材料系数;
			->parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.架空线路.材料系数;	
		};
		->parent.专业属性 == "陆上电缆"
		:
		#{
			->parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" ||(parent.调差类型 == "安装" && parent.专业类型 == "余物清理")
				:@价差系数.安装工程.陆上电缆.材料系数;
			->parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.陆上电缆.材料系数;
		};
		->parent.专业属性 == "海底电缆"
		:
		#{
			->parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" ||(parent.调差类型 == "安装" && parent.专业类型 == "余物清理")
				:@价差系数.安装工程.海底电缆.材料系数;
			->parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.海底电缆.材料系数;
		};
		->parent.专业属性 == "通信线路"
		:
		#{
		    ->parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" ||(parent.调差类型 == "安装" && parent.专业类型 == "余物清理")
				:@价差系数.安装工程.通信线路.材料系数;
			->parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.通信线路.材料系数;
		};
		->parent.专业属性 == "通信站"
		:
		#{
		    ->parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" ||(parent.调差类型 == "安装" && parent.专业类型 == "余物清理")
				:@价差系数.安装工程.通信站.材料系数;
			->parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.通信站.材料系数;
		};
	}  / 100
}

BEGIN:_材料调差系数_拆分材机
${
	?#{
		->parent.parent.专业属性 == "配电、开关站"
		:
		#{
			->parent.parent.专业类型 == "安装" || parent.parent.专业类型 == "安装措施二" ||(parent.parent.调差类型 == "安装" && parent.parent.专业类型 == "余物清理")
				:@价差系数.安装工程.配电、开关站.材料系数;
			->parent.parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.配电、开关站.材料系数;
		}; 
		->parent.parent.专业属性 == "充电、换电站"
		:
		#{
			->parent.parent.专业类型 == "安装" || parent.parent.专业类型 == "安装措施二" ||(parent.parent.调差类型 == "安装" && parent.parent.专业类型 == "余物清理")
				:@价差系数.安装工程.充电、换电站.材料系数;
			->parent.parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.充电、换电站.材料系数;
		};
		->parent.parent.专业属性 == "架空线路" || parent.parent.专业属性 == "10kV架空线路" || parent.parent.专业属性 == "400V及以下架空线路"
		:
		#{
			->parent.parent.专业类型 == "安装" || parent.parent.专业类型 == "安装措施二" ||(parent.parent.调差类型 == "安装" && parent.parent.专业类型 == "余物清理")
				:@价差系数.安装工程.架空线路.材料系数;
			->parent.parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.架空线路.材料系数;	
		};
		->parent.parent.专业属性 == "陆上电缆"
		:
		#{
			->parent.parent.专业类型 == "安装" || parent.parent.专业类型 == "安装措施二" ||(parent.parent.调差类型 == "安装" && parent.parent.专业类型 == "余物清理")
				:@价差系数.安装工程.陆上电缆.材料系数;
			->parent.parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.陆上电缆.材料系数;
		};
		->parent.parent.专业属性 == "海底电缆"
		:
		#{
			->parent.parent.专业类型 == "安装" || parent.parent.专业类型 == "安装措施二" ||(parent.parent.调差类型 == "安装" && parent.parent.专业类型 == "余物清理")
				:@价差系数.安装工程.海底电缆.材料系数;
			->parent.parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.海底电缆.材料系数;
		};
		->parent.parent.专业属性 == "通信线路"
		:
		#{
		    ->parent.parent.专业类型 == "安装" || parent.parent.专业类型 == "安装措施二" ||(parent.parent.调差类型 == "安装" && parent.parent.专业类型 == "余物清理")
				:@价差系数.安装工程.通信线路.材料系数;
			->parent.parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.通信线路.材料系数;
		};
		->parent.parent.专业属性 == "通信站"
		:
		#{
		    ->parent.parent.专业类型 == "安装" || parent.parent.专业类型 == "安装措施二" ||(parent.parent.调差类型 == "安装" && parent.parent.专业类型 == "余物清理")
				:@价差系数.安装工程.通信站.材料系数;
			->parent.parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.通信站.材料系数;
		};
	}  / 100
}

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

BEGIN:_混凝土施工机械价差_含系数
${
    ?#{
		->((parent.专业类型 == "建筑"  || parent.专业类型 == "建筑措施二") && @价差系数.建筑材机系数调差 == 1) || ((parent.专业类型 == "安装" || parent.专业类型 == "安装措施二") && @价差系数.安装材机系数调差 == 1 ) 
		   || (parent.调差类型 == "安装拆除" && @价差系数.安装拆除材机系数调差 == 1 ) || (parent.调差类型 == "建筑拆除" && @价差系数.建筑拆除材机系数调差 == 1 )
		   
		:
			_混凝土施工调整_机械() * _机械调差系数() ;
	}
}

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

BEGIN:_机械调差系数
${
	?#{
		->parent.专业属性 == "配电、开关站"
		:
		#{	
			->parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" ||(parent.调差类型 == "安装" && parent.专业类型 == "余物清理")
				:@价差系数.安装工程.配电、开关站.机械系数;
			->parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.配电、开关站.机械系数;
		}; 
		->parent.专业属性 == "充电、换电站"
		:
		#{	
			->parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" ||(parent.调差类型 == "安装" && parent.专业类型 == "余物清理")
				:@价差系数.安装工程.充电、换电站.机械系数;	
			->parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.充电、换电站.机械系数;
		};
		->parent.专业属性 == "架空线路" || parent.专业属性 == "10kV架空线路" || parent.专业属性 == "400V及以下架空线路"
		:
		#{
			->parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" ||(parent.调差类型 == "安装" && parent.专业类型 == "余物清理")
				:@价差系数.安装工程.架空线路.机械系数;	
			->parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.架空线路.机械系数;
		};
		->parent.专业属性 == "陆上电缆"
		:
		#{
			->parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" ||(parent.调差类型 == "安装" && parent.专业类型 == "余物清理")
				:@价差系数.安装工程.陆上电缆.机械系数;	
			->parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.陆上电缆.机械系数;
		};
		->parent.专业属性 == "海底电缆"
		:
		#{
			->parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" ||(parent.调差类型 == "安装" && parent.专业类型 == "余物清理")
				:@价差系数.安装工程.海底电缆.机械系数;	
			->parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.海底电缆.机械系数;
		};
		->parent.专业属性 == "通信线路"
		:
		#{
			->parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" ||(parent.调差类型 == "安装" && parent.专业类型 == "余物清理")
				:@价差系数.安装工程.通信线路.机械系数;
			->parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.通信线路.机械系数;
		};
		->parent.专业属性 == "通信站"
		:
		#{
			->parent.专业类型 == "安装" || parent.专业类型 == "安装措施二" ||(parent.调差类型 == "安装" && parent.专业类型 == "余物清理")
				:@价差系数.安装工程.通信站.机械系数;
			->parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.通信站.机械系数;
		};
	} / 100
}

BEGIN:_机械调差系数_拆分材机
${
	?#{
		->parent.parent.专业属性 == "配电、开关站"
		:
		#{	
			->parent.parent.专业类型 == "安装" || parent.parent.专业类型 == "安装措施二" ||(parent.parent.调差类型 == "安装" && parent.parent.专业类型 == "余物清理")
				:@价差系数.安装工程.配电、开关站.机械系数;
			->parent.parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.配电、开关站.机械系数;
		}; 
		->parent.parent.专业属性 == "充电、换电站"
		:
		#{	
			->parent.parent.专业类型 == "安装" || parent.parent.专业类型 == "安装措施二" ||(parent.parent.调差类型 == "安装" && parent.parent.专业类型 == "余物清理")
				:@价差系数.安装工程.充电、换电站.机械系数;	
			->parent.parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.充电、换电站.机械系数;
		};
		->parent.parent.专业属性 == "架空线路" || parent.parent.专业属性 == "10kV架空线路" || parent.parent.专业属性 == "400V及以下架空线路"
		:
		#{
			->parent.parent.专业类型 == "安装" || parent.parent.专业类型 == "安装措施二" ||(parent.parent.调差类型 == "安装" && parent.parent.专业类型 == "余物清理")
				:@价差系数.安装工程.架空线路.机械系数;	
			->parent.parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.架空线路.机械系数;
		};
		->parent.parent.专业属性 == "陆上电缆"
		:
		#{
			->parent.parent.专业类型 == "安装" || parent.parent.专业类型 == "安装措施二" ||(parent.parent.调差类型 == "安装" && parent.parent.专业类型 == "余物清理")
				:@价差系数.安装工程.陆上电缆.机械系数;	
			->parent.parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.陆上电缆.机械系数;
		};
		->parent.parent.专业属性 == "海底电缆"
		:
		#{
			->parent.parent.专业类型 == "安装" || parent.parent.专业类型 == "安装措施二" ||(parent.parent.调差类型 == "安装" && parent.parent.专业类型 == "余物清理")
				:@价差系数.安装工程.海底电缆.机械系数;	
			->parent.parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.海底电缆.机械系数;
		};
		->parent.parent.专业属性 == "通信线路"
		:
		#{
			->parent.parent.专业类型 == "安装" || parent.parent.专业类型 == "安装措施二" ||(parent.parent.调差类型 == "安装" && parent.parent.专业类型 == "余物清理")
				:@价差系数.安装工程.通信线路.机械系数;
			->parent.parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.通信线路.机械系数;
		};
		->parent.parent.专业属性 == "通信站"
		:
		#{
			->parent.parent.专业类型 == "安装" || parent.parent.专业类型 == "安装措施二" ||(parent.parent.调差类型 == "安装" && parent.parent.专业类型 == "余物清理")
				:@价差系数.安装工程.通信站.机械系数;
			->parent.parent.调差类型 == "安装拆除"
				:@价差系数.安装拆除工程.通信站.机械系数;
		};
	} / 100
}

///////////////////////////////主材费///////////////////////////////////////////////////////
//************************2022年4月27日09:27  新增甲供主要材料费、乙供主要材料费、甲供设备性材料费、乙供设备性材料费  调整处//
BEGIN:甲供主要材料费
${	
	?甲供主材费含税()+甲供主材损耗费含税()+甲供主材卸车费含税()+甲供主材保管费含税()+甲供主材配送费含税() 
}



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


BEGIN:_配合比甲供主材费含税
${
	sum(_过滤配合比主材_Items(), "配合比子级", 
	?#{
		-> 配合比子级.供货方 == "甲供"  
		:
			配合比子级.含量 * 配合比子级.市场价含税;
		} 
	) 
}

BEGIN:_配合比甲供主材费含税_含损耗_卸车
${
	sum(_过滤配合比主材_Items(), "配合比子级", 
	?#{
		-> 配合比子级.供货方 == "甲供" && 配合比子级.卸车 == 1
		:
			配合比子级.含量 * 配合比子级.市场价含税 * (1 + 配合比子级.损耗 / 100);
		} 
	) 
}

BEGIN:_配合比甲供主材费含税_含损耗_保管
${
	sum(_过滤配合比主材_Items(), "配合比子级", 
	?#{
		-> 配合比子级.供货方 == "甲供" && 配合比子级.保管 == 1
		:
			配合比子级.含量 * 配合比子级.市场价含税 * (1 + 配合比子级.损耗 / 100);
		} 
	) 
}

BEGIN:_设备性材料_配合比甲供主材费含税
${
	sum(_过滤设备性材料_配合比主材_Items(), "配合比子级", 
	?#{
		-> 配合比子级.供货方 == "甲供" 
		:
			配合比子级.含量 * 配合比子级.市场价含税;
		} 
	) 
}


BEGIN:_配合比甲供主材费不含税
${
	sum(_过滤配合比主材_Items(), "配合比子级", 
	?#{
		-> 配合比子级.供货方 == "甲供"
			:
			配合比子级.含量 * 配合比子级.市场价不含税;
		} 
	) 
}

BEGIN:_设备性材料_配合比甲供主材费不含税
${
	sum(_过滤设备性材料_配合比主材_Items(), "配合比子级", 
	?#{
		-> 配合比子级.供货方 == "甲供"
		:
			配合比子级.含量 * 配合比子级.市场价不含税;
		} 
	) 
}

BEGIN:_配合比乙供主材费含税
${
	sum(_过滤配合比主材_Items(), "配合比子级", 
	?#{
		-> 配合比子级.供货方 == "乙供"
		:
			配合比子级.含量* 配合比子级.市场价含税;
		} 
	) 
}

BEGIN:_设备性材料_配合比乙供主材费含税
${
	sum(_过滤设备性材料_配合比主材_Items(), "配合比子级", 
	?#{
		-> 配合比子级.供货方 == "乙供"
		:
			配合比子级.含量* 配合比子级.市场价含税;
		} 
	) 
}

BEGIN:_设备性材料_配合比乙供主材费不含税
${
	sum(_过滤设备性材料_配合比主材_Items(), "配合比子级", 
	?#{
		-> 配合比子级.供货方 == "乙供"
		:
			配合比子级.含量 * 配合比子级.市场价不含税;
		} 
	) 
}

BEGIN:_设备性材料_配合比乙供主材费不含税含损耗
${
	sum(_过滤设备性材料_配合比主材_Items(), "配合比子级", 
	?#{
		-> 配合比子级.供货方 == "乙供"
		:
			配合比子级.含量 * 配合比子级.市场价不含税* (1 + 配合比子级.损耗 / 100);
		} 
	) 
}

BEGIN:_设备性材料_配合比乙供主材费含税含损耗
${
	sum(_过滤设备性材料_配合比主材_Items(), "配合比子级", 
	?#{
		-> 配合比子级.供货方 == "乙供"
		:
			配合比子级.含量 * 配合比子级.市场价含税* (1 + 配合比子级.损耗 / 100);
		} 
	) 
}

BEGIN:_配合比乙供主材费不含税
${
	sum(_过滤配合比主材_Items(), "配合比子级", 
	?#{
		-> 配合比子级.供货方 == "乙供"
		:
			配合比子级.含量 * 配合比子级.市场价不含税;
		} 
	) 
}

BEGIN:甲供主材费含税
${	
	sum(_过滤主材(),"主材" ,
	?#{
		->主材.拆分 == 1 && _配合比子级数量() > 0.1
		:
			主材.数量 * _配合比甲供主材费含税() * _项目划分费率();
		-> 主材.供货方 == "甲供"
		:
			主材.数量 * 主材.市场价含税 * _项目划分费率();
		} 
	) 
}

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

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

BEGIN:设备性材料_甲供主材费含税
${	
	sum(_过滤设备性材料(),"主材" ,
	?#{
		->主材.拆分 == 1 && _配合比子级数量() > 0.1
		:
			主材.数量 * _设备性材料_配合比甲供主材费含税() * _项目划分费率();
		-> 主材.供货方 == "甲供" && 主材.设备性材料 == 1
		:
			主材.数量 * 主材.市场价含税 * _项目划分费率();
		} 
	) 
}

BEGIN:甲供主材费不含税
${	
	sum(_过滤主材(),"主材" ,
	?#{
	
		->主材.拆分 == 1 && _配合比子级数量() > 0.1
		:
			主材.数量 * _配合比甲供主材费不含税() * _项目划分费率();
		-> 主材.供货方 == "甲供" 
		:
			主材.数量 * 主材.市场价不含税 * _项目划分费率();
		}
	)
}

BEGIN:设备性材料_甲供主材费不含税
${	
	sum(_过滤设备性材料(),"主材" ,
	?#{
		->主材.拆分 == 1 && _配合比子级数量() > 0.1
		:
			主材.数量 * _设备性材料_配合比甲供主材费不含税() * _项目划分费率();
		-> 主材.供货方 == "甲供" && 主材.设备性材料 == 1
		:
			主材.数量 * 主材.市场价不含税 * _项目划分费率();
		}
	)
}

BEGIN:乙供主材费含税
${
	sum(_过滤主材(), "主材" ,
	?#{
		->主材.拆分 == 1 && _配合比子级数量() > 0.1
		:
			主材.数量 * _配合比乙供主材费含税() * _项目划分费率();
		 -> 主材.供货方 == "乙供"
		 :
			主材.市场价含税 * 主材.数量 * _项目划分费率();
	  }
	)
}

BEGIN:设备性材料_乙供主材费含税
${
	sum(_过滤设备性材料(), "主材" ,
	?#{
		->主材.拆分 == 1 && _配合比子级数量() > 0.1
		:
			主材.数量 * _设备性材料_配合比乙供主材费含税() * _项目划分费率();
		 -> 主材.供货方 == "乙供" && 主材.设备性材料 == 1
		:
			主材.市场价含税 * 主材.数量 * _项目划分费率();
	  }
	)
}


BEGIN:乙供主材费不含税
${
	sum(_过滤主材(), "主材" ,
	?#{
		->主材.拆分 == 1 && _配合比子级数量() > 0.1
		:
			主材.数量 * _配合比乙供主材费不含税() * _项目划分费率();
		 -> 主材.供货方 == "乙供"
		 :
			主材.市场价不含税 * 主材.数量 * _项目划分费率();
	  }
	)
}

/////////////////////////////////////主材损耗费/////////////////////////////////////////////

BEGIN:_配合比甲供主材损耗费含税
${	
	sum(_过滤配合比主材_Items(), "配合比子级",  
	?#{
	    -> 配合比子级.供货方 == "甲供"
	    : 
			配合比子级.含量 * 配合比子级.市场价含税 * 配合比子级.损耗 / 100;
		}
	)
}

BEGIN:_设备性材料_配合比甲供主材损耗费含税
${	
	sum(_过滤设备性材料_配合比主材_Items(), "配合比子级",  
	?#{
	    -> 配合比子级.供货方 == "甲供"
	    : 
			配合比子级.含量 * 配合比子级.市场价含税 * 配合比子级.损耗 / 100;
		}
	)
}

BEGIN:_配合比甲供主材损耗费不含税
${	
	sum(_过滤配合比主材_Items(), "配合比子级",  
	?#{
	    -> 配合比子级.供货方 == "甲供"
	    : 
			配合比子级.含量 * 配合比子级.市场价不含税 * 配合比子级.损耗 / 100;
		}
	)
}

BEGIN:_设备性材料_配合比甲供主材损耗费不含税
${	
	sum(_过滤设备性材料_配合比主材_Items(), "配合比子级",  
	?#{
	    -> 配合比子级.供货方 == "甲供"
	    : 
			配合比子级.含量 * 配合比子级.市场价不含税 * 配合比子级.损耗 / 100;
		}
	)
}


BEGIN:_配合比乙供主材损耗费含税
${	
	sum(_过滤配合比主材_Items(), "配合比子级",  
	?#{
	    -> 配合比子级.供货方 == "乙供"
	    : 
			配合比子级.含量 * 配合比子级.市场价含税 * 配合比子级.损耗 / 100;
		}
	)
}

BEGIN:_设备性材料_配合比乙供主材损耗费含税
${	
	sum(_过滤设备性材料_配合比主材_Items(), "配合比子级",  
	?#{
	    -> 配合比子级.供货方 == "乙供"
	    : 
			配合比子级.含量 * 配合比子级.市场价含税 * 配合比子级.损耗 / 100;
		}
	)
}

BEGIN:_设备性材料_配合比乙供主材损耗费不含税
${	
	sum(_过滤设备性材料_配合比主材_Items(), "配合比子级",  
	?#{
	    -> 配合比子级.供货方 == "乙供"
	    : 
			配合比子级.含量 * 配合比子级.市场价不含税 * 配合比子级.损耗 / 100;
		}
	)
}

BEGIN:_配合比乙供主材损耗费不含税
${	
	sum(_过滤配合比主材_Items(), "配合比子级",  
	?#{
	    -> 配合比子级.供货方 == "乙供"
	    : 
			配合比子级.含量 * 配合比子级.市场价不含税 * 配合比子级.损耗 / 100;
		}
	)
}

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

BEGIN:设备性材料_甲供主材损耗费含税
${	
	sum(_过滤设备性材料(),"主材" ,
	?#{
		->主材.拆分 == 1 && _配合比子级数量() > 0.1
		:
			主材.数量 * _设备性材料_配合比甲供主材损耗费含税() * _项目划分费率();
	    -> 主材.供货方 == "甲供" && 主材.设备性材料 == 1
	    :
			主材.数量 * 主材.市场价含税 * 主材.损耗 / 100 * _项目划分费率();
	  }
	)
}

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

BEGIN:设备性材料_甲供主材损耗费不含税
${	
	sum(_过滤设备性材料(),"主材" ,
	?#{
		->主材.拆分 == 1 && _配合比子级数量() > 0.1
		:
			主材.数量 * _设备性材料_配合比甲供主材损耗费不含税() * _项目划分费率();
	    -> 主材.供货方 == "甲供" && 主材.设备性材料 == 1 
	    :
			主材.数量 * 主材.市场价不含税 * 主材.损耗 / 100 * _项目划分费率();
	  }
	)
}

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

BEGIN:设备性材料_乙供主材损耗费含税
${
	sum(_过滤设备性材料(), "主材" ,
	?#{
		->主材.拆分 == 1 && _配合比子级数量() > 0.1
		:
			主材.数量 * _设备性材料_配合比乙供主材损耗费含税() * _项目划分费率();
		->主材.供货方 == "乙供" && 主材.设备性材料 == 1
		:
			主材.市场价含税 * 主材.数量 * 主材.损耗/100 * _项目划分费率();
		}
	)
}

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

/////////////////////////////////////主材配送费/////////////////////////////////////////////

BEGIN:_配合比配送甲供含税
${	
	sum(_过滤配合比主材_Items(), "配合比子级",
	?#{
		->配合比子级.集中配送 == "1" && 配合比子级.供货方 == "甲供"
		:
		    配合比子级.市场价含税 * 配合比子级.含量 *(1 + 配合比子级.损耗 / 100);
	  }
	)
}

BEGIN:_设备性材料_配合比配送甲供含税
${	
	sum(_过滤设备性材料_配合比主材_Items(), "配合比子级",
	?#{
		->配合比子级.集中配送 == "1" && 配合比子级.供货方 == "甲供"
		:
		    配合比子级.市场价含税 * 配合比子级.含量 *(1 + 配合比子级.损耗 / 100);
	  }
	)
}

BEGIN:_配合比配送甲供不含税
${	
	sum(_过滤配合比主材_Items(), "配合比子级",
	?#{
		->配合比子级.集中配送 == "1" && 配合比子级.供货方 == "甲供"
		:
		    配合比子级.市场价不含税 * 配合比子级.含量 *(1 + 配合比子级.损耗 / 100);
	  }
	)
}

BEGIN:_设备性材料_配合比配送甲供不含税
${	
	sum(_过滤设备性材料_配合比主材_Items(), "配合比子级",
	?#{
		->配合比子级.集中配送 == "1" && 配合比子级.供货方 == "甲供"
		:
		    配合比子级.市场价不含税 * 配合比子级.含量 *(1 + 配合比子级.损耗 / 100);
	  }
	)
}


BEGIN:_配合比配送乙供含税
${	
	sum(_过滤配合比主材_Items(), "配合比子级",
	?#{
		->配合比子级.集中配送 == "1" && 配合比子级.供货方 == "乙供"
		:
		    配合比子级.市场价含税 * 配合比子级.含量 *(1 + 配合比子级.损耗 / 100);
	  }
	)
}

BEGIN:_设备性材料_配合比配送乙供含税
${	
	sum(_过滤设备性材料_配合比主材_Items(), "配合比子级",
	?#{
		->配合比子级.集中配送 == "1" && 配合比子级.供货方 == "乙供"
		:
		    配合比子级.市场价含税 * 配合比子级.含量 *(1 + 配合比子级.损耗 / 100);
	  }
	)
}

BEGIN:_配合比配送乙供不含税
${	
	sum(_过滤配合比主材_Items(), "配合比子级",
	?#{
		->配合比子级.集中配送 == "1" && 配合比子级.供货方 == "乙供"
		:
		    配合比子级.市场价不含税 * 配合比子级.含量 *(1 + 配合比子级.损耗 / 100);
	  }
	)
}

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

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


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

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

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

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

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

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


BEGIN:_设备性材料_配合比卸车甲供含税
${	
	sum(_过滤设备性材料_配合比主材_Items(), "配合比子级",
	?#{
		->配合比子级.卸车 == 1 && 配合比子级.供货方 == "甲供"
		:
		    配合比子级.市场价含税 * 配合比子级.含量 *(1 + 配合比子级.损耗 / 100);
	  }
	)
}

BEGIN:_设备性材料_配合比保管甲供含税
${	
	sum(_过滤设备性材料_配合比主材_Items(), "配合比子级",
	?#{
		->配合比子级.保管 == 1 && 配合比子级.供货方 == "甲供"
		:
		    配合比子级.市场价含税 * 配合比子级.含量 *(1 + 配合比子级.损耗 / 100);
	  }
	)
}

//*********************2022年4月7日10:29:36 新增设备性材料变量

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

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

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

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

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

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

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

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

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

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

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

BEGIN:乙供设备性材料配送费含税税金
${
	?设备性材料_乙供主材配送费含税() *  @工程信息.工程税率 / 100
}


///////////////////////////////设备////////////////////////////////////////////////////////////////////////
BEGIN:甲供设备费
${	
	?甲供设备费含税()+甲供设备配送费含税()+甲供设备运杂费含税()+甲供设备卸车费含税()+甲供设备保管费含税() 
}


BEGIN:设备费
${
	甲供设备费含税() + 乙供设备费不含税() 
}

BEGIN:设备运杂费
${
	甲供设备运杂费含税() + 乙供设备运杂费含税()
}

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

BEGIN:甲供设备费含税_不含设备性材料
${
	sum(_过滤设备(), "工程量" ,?#{
                             -> 工程量.供货方 == "甲供"
							 :
							 工程量.数量 * 工程量.市场价含税 * _项目划分费率();
							 }
	) 	
}

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

BEGIN:甲供设备费不含税_不含设备性材料
${sum(_过滤设备(), "工程量" ,?#{
                             -> 工程量.供货方 == "甲供"
							 :
							 工程量.数量 * 工程量.市场价不含税 * _项目划分费率();
							 }
	)
}

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

BEGIN:乙供设备费含税_不含设备性材料
${sum(_过滤设备(), "工程量" ,?#{
                             -> 工程量.供货方 == "乙供"
							 :
							 工程量.数量 * 工程量.市场价含税 * _项目划分费率();
							 }
	)
}

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

BEGIN:乙供设备费不含税_不含设备性材料
${sum(_过滤设备(), "工程量" ,?#{
                             -> 工程量.供货方 == "乙供"
							 :
							 工程量.数量 * 工程量.市场价不含税 * _项目划分费率();
							 }
	)
}

BEGIN:设备性材料_乙供主材费不含税
${
	sum(_过滤设备性材料(), "主材" ,
	?#{
		->主材.拆分 == 1 && _配合比子级数量() > 0.1
		:
			主材.数量 * _设备性材料_配合比乙供主材费不含税() * _项目划分费率();
		 -> 主材.供货方 == "乙供" && 主材.设备性材料 == 1 
		 :
			主材.市场价不含税 * 主材.数量 * _项目划分费率();
	  }
	)
}

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

BEGIN:设备性材料_主材损耗费_简易计税
${
	设备性材料_甲供主材损耗费含税() + 设备性材料_乙供主材损耗费含税()
}

BEGIN:设备性材料_乙供主材损耗费不含税
${
	sum(_过滤设备性材料(), "主材" ,
	?#{
		->主材.拆分 == 1 && _配合比子级数量() > 0.1
		:
			主材.数量 * _设备性材料_配合比乙供主材损耗费不含税() * _项目划分费率();
		->主材.供货方 == "乙供" && 主材.设备性材料 == 1
		:
			主材.市场价不含税 * 主材.数量 * 主材.损耗/100 * _项目划分费率();
		}
	)
}

BEGIN:甲供设备运杂费含税
${
sum(_过滤设备(), "工程量" ,?#{
                             -> 工程量.供货方 == "甲供"
							 :
							 工程量.数量 * 工程量.市场价含税 * 工程量.运杂费率 / 100 * _项目划分费率();
							 })
}

BEGIN:甲供设备运杂费不含税
${sum(_过滤设备(), "工程量" ,?#{
                             -> 工程量.供货方 == "甲供"
							 :
							 工程量.数量 * 工程量.市场价不含税 * 工程量.运杂费率 / 100 * _项目划分费率();
							 })
}

BEGIN:乙供设备运杂费含税
${sum(_过滤设备(), "工程量" ,?#{
                             -> 工程量.供货方 == "乙供"
							 :
							 工程量.数量 * 工程量.市场价含税 * 工程量.运杂费率 / 100 * _项目划分费率();
							 }
	)
}

BEGIN:乙供设备运杂费不含税
${sum(_过滤设备(), "工程量" ,?#{
                             -> 工程量.供货方 == "乙供"
							 :
							 工程量.数量 * 工程量.市场价不含税 * 工程量.运杂费率 / 100 * _项目划分费率();
							 }
	)
}

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

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

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

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

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

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

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

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

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

BEGIN:乙供设备运杂费税金
${sum(_过滤设备(), "工程量" ,?#{
                             -> 工程量.供货方 == "乙供"
							 :
							 工程量.数量 * 工程量.市场价含税 * 工程量.运杂费率 / 100* @工程信息.工程税率 / 100* _项目划分费率();
							 }
	)
}



//***********************************2022年4月7日10:10:42 新增乙供设备税金、乙供设备性材料税金 调整处//

BEGIN:_乙供设备税金
${sum(_过滤设备(), "工程量" ,?#{
                             -> 工程量.供货方 == "乙供"
							 :
							 工程量.数量 * 工程量.市场价不含税 * @工程信息.工程税率 / 100 * _项目划分费率();
							 }
	)
}

BEGIN:_乙供设备税金_简易计税
${sum(_过滤设备(), "工程量" ,?#{
                             -> 工程量.供货方 == "乙供"
							 :
							 工程量.数量 * 工程量.市场价含税 * @工程信息.工程税率 / 100 * _项目划分费率();
							 }
	)
}


//************************2022年4月7日09:49:06  新增甲供设备卸车费含税、甲供设备保管费含税、甲供设备性材料卸车费含税、甲供设备性材料保管费含税 调整处//
BEGIN:甲供设备卸车费含税
${
	?_甲供设备卸车费含税() + 甲供设备性材料卸车费含税()
}

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

BEGIN:_甲供设备卸车费含税
${
	sum(_过滤设备(), "设备" ,?#{
							->设备.卸车 == 1 && 设备.供货方 == "甲供"
							:
							设备.市场价含税 * 设备.数量* @工程信息.甲供设备卸车费费率 / 100 * _项目划分费率();
						}
		)
}

BEGIN:_甲供设备保管费含税
${
	sum(_过滤设备(), "设备" ,?#{
							->设备.保管 == 1 && 设备.供货方 == "甲供"
							:
							设备.市场价含税 * 设备.数量* @工程信息.甲供设备保管费费率 / 100 * _项目划分费率();
						}
		)	
}

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

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


////////////////////////////////////其他//////////////////////////////////////////////////////

BEGIN:_过滤一笔性费用
${
    filter(source,"工程量",?工程量.type == "一笔性费用" && _父级数量判断() != 0)	
}

BEGIN:编制年价差
${
    ?(人工费价差() + 材料费价差() + 机械费价差()) * (1 + @工程信息.工程税率 / 100)
}

// 批量设置计算含税价和不含税价变量
BEGIN:_过滤主材_多工程批量设置
${
	filter(source, "工程量" ,?工程量.type == "主材")
}

BEGIN:_过滤设备_多工程批量设置
${
	filter(source, "工程量" ,?工程量.type == "设备")
}

BEGIN:主材设备含税价
${
   sum(_过滤主材_多工程批量设置(), "主材" ,?round(?主材.市场价不含税 * (1 + 主材.增值税率/ 100), 6)) + sum(_过滤设备_多工程批量设置(), "设备" ,?round(?设备.市场价不含税 * (1 + 设备.增值税率/100), 6))
}

BEGIN:主材设备不含税价
${
   sum(_过滤主材_多工程批量设置(), "主材" ,?round(?主材.市场价含税 / (1 + 主材.增值税率/ 100), 6)) + sum(_过滤设备_多工程批量设置(), "设备" ,?round(?设备.市场价含税 / (1 + 设备.增值税率/ 100), 6))
}

//////////////////////////////////////////配合比子级重算父级费用//////////////////////////////////
BEGIN:_过滤普工_Items
${
	filter(items ,"人材机",?人材机.type == "人工" && (in(人材机.编码,"9101106") || in(人材机.编码,"9103001") || in(人材机.编码,"9101108") || in(人材机.编码,"9101110")))
}

BEGIN:_过滤计工_Items
${
	filter(items ,"人材机",?人材机.type == "人工" && (in(人材机.编码,"9101107") || in(人材机.编码,"9101109") || 
	in(人材机.编码,"9101111") || in(人材机.编码,"9102104") || in(人材机.编码,"9102201") || in(人材机.编码,"9102102") || in(人材机.编码,"9103002")))
}

BEGIN:_过滤配合比普工_Items
${
	filter(items ,"配合比",?配合比.type == "主材" && (in(配合比.编码,"9101106") || in(人材机.编码,"9103001") || in(人材机.编码,"9101108") || in(人材机.编码,"9101110"))&& 配合比.后增子级 != 1)
}

BEGIN:_过滤配合比计工_Items
${
	filter(items ,"配合比",?配合比.type == "主材" && (in(配合比.编码,"9101107") || in(配合比.编码,"9101109") || 
	in(配合比.编码,"9101111") || in(配合比.编码,"9102104") || in(配合比.编码,"9102201") || in(人材机.编码,"9102102") || in(人材机.编码,"9103002")) && 配合比.后增子级 != 1)
}

BEGIN:_定额普工用量合计
${
	sum(_过滤普工_Items(), "人材机", ?人材机.数量);
}

BEGIN:_定额计工用量合计
${
	sum(_过滤计工_Items(), "人材机", ?人材机.数量);
}

BEGIN:_配合比普工用量合计
${
	sum(_过滤配合比普工_Items(), "人材机", ?人材机.数量);
}

BEGIN:_配合比计工用量合计
${
	sum(_过滤配合比计工_Items(), "人材机", ?人材机.数量);
}

BEGIN:_过滤普工_计日工
${
	filter(source ,"人材机",?人材机.type == "人工" && (in(人材机.编码,"9101106") || in(人材机.编码,"9103001") || in(人材机.编码,"9101108") || in(人材机.编码,"9101110")))
}

BEGIN:_过滤技工_计日工
${
	filter(source ,"人材机",?人材机.type == "人工" && (in(人材机.编码,"9101107") || in(人材机.编码,"9101109") || 
	in(人材机.编码,"9101111") || in(人材机.编码,"9102104") || in(人材机.编码,"9102201") || in(人材机.编码,"9102102") || in(人材机.编码,"9103002")))
}

BEGIN:技工人工工日
${
	sum(_过滤定额(), "定额" , ? (1 + _定额地形系数_人工增加()) * _定额计工用量合计() * 定额.人工系数 * 定额.定额系数* 定额.数量 * _项目划分费率() ) +
	sum(_过滤主材_含设备性材料(), "主材" , ?  _配合比计工用量合计() * _项目划分费率() ) +
	sum(_过滤技工_计日工(), "人材机", ?人材机.数量)
}

BEGIN:普工人工工日
${
	sum(_过滤定额(), "定额" , ? (1 + _定额地形系数_人工增加()) * _定额普工用量合计() * 定额.人工系数 * 定额.定额系数* 定额.数量 * _项目划分费率() ) +
	sum(_过滤主材_含设备性材料(), "主材" , ?  _配合比普工用量合计() * _项目划分费率() ) + 
	sum(_过滤普工_计日工(), "人材机",? 人材机.数量)
}

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

BEGIN:_定额普工含量合计
${
	sum(_过滤普工_Items(), "人材机", ?人材机.数量);
}

BEGIN:普工人工含量
${
	sum(_过滤定额(), "定额" , ?_定额普工含量合计())
}

BEGIN:_定额计工含量合计
${
	sum(_过滤计工_Items(), "人材机", ?人材机.数量);
}

BEGIN:技工人工含量
${
	sum(_过滤定额(), "定额" , ?_定额计工含量合计())
}
