//------------------地形增加费（配网电缆建筑、线路安装、线路设备检修）-------------------------------------------
BEGIN:_地形人工系数
${
  ?#{
   ->@工程信息.工程性质 == "技改"
     :
    #{
      ->(in(工程量.编码,"JYX1-1~16")) || (工程量.地形费计算方式 == "工地运输(人力运输)混凝土杆、混凝土预制品、钢管杆、线材的运输(不含机械费)")
        :
        工程量.@_@地形系数.工地运输人力运输混凝土杆混凝土预制品钢管杆线材的运输不含机械费;
      ->(in(工程量.编码,"JYX1-17~22")) || (工程量.地形费计算方式 == "工地运输(人力运输)金具、绝缘子、零星钢材、塔材、其他建筑安装材料的运输(不含机械费)")
        :
        工程量.@_@地形系数.工地运输人力运输金具绝缘子零星钢材塔材其他建筑安装材料的运输不含机械费;
      ->(in(工程量.编码,"JYX1-24^108")) || (工程量.地形费计算方式 == "工地运输汽车、拖拉机运输(不含装卸，沙漠地形没有正式公路时使用)")
        :
        工程量.@_@地形系数.工地运输汽车拖拉机运输不含装卸沙漠地形没有正式公路时使用;
      ->(in(工程量.编码,"JYX2-1~232")) || (工程量.地形费计算方式 == "土石方工程(不含机械费)")
        :
        工程量.@_@地形系数.土石方工程不含机械费;
      ->(in(工程量.编码,"JYX3-1~212,JGX1-1~17,XYX1-1~21,XYX3-1~6,CYX1-1~4")) || (工程量.地形费计算方式 == "基础工程")
        :
        工程量.@_@地形系数.基础工程;
      ->(in(工程量.编码,"JYX4-1~192,JGX2-1~59,XYX2-1~79,CYX2-1~40")) || (工程量.地形费计算方式 == "杆塔工程")
        :
        工程量.@_@地形系数.杆塔工程;
	  ->(in(工程量.编码,"JGX3-1~54")) || (工程量.地形费计算方式 == "概算：架线工程")
        :
        工程量.@_@地形系数.概算架线工程;
      ->(in(工程量.编码,"JYX5-1~60,XYX4-1~77,CYX3-1~27")) || (工程量.地形费计算方式 == "预算：架线工程一般放、紧线(不包含跨越架设、拦河线安装)")
        :
        工程量.@_@地形系数.预算架线工程一般放紧线不包含跨越架设拦河线安装;
      ->(in(工程量.编码,"JYX5-61~119,CYX3-28~42")) || (工程量.地形费计算方式 == "预算：架线工程张力放紧线(不包含跨越架设、拦河线安装)")
        :
        工程量.@_@地形系数.预算架线工程张力放紧线不包含跨越架设拦河线安装;
      ->(in(工程量.编码,"JYX5-245~253")) || (工程量.地形费计算方式 == "预算：架线工程光缆接续(不包括测量)")
        :
        工程量.@_@地形系数.预算架线工程光缆接续不包括测量;
      ->(in(工程量.编码,"JYX6-1~172,JGX4-1~67,XYX5-1~223,CYX4-1~131")) || (工程量.地形费计算方式 == "附件工程")
        :
        工程量.@_@地形系数.附件工程;
	  ->(in(工程量.编码,"JGX6-1~4")) || (工程量.地形费计算方式 == "概算：辅助工程")
        :
        工程量.@_@地形系数.概算辅助工程;
	  ->(in(工程量.编码,"JYX8-1~25")) || (工程量.地形费计算方式 == "预算：辅助工程(基础辅助)施工道路，固沙，护坡、挡土墙及排洪沟砌筑，喷射混凝土护坡")
		:
		工程量.@_@地形系数.预算辅助工程基础辅助施工道路固沙护坡挡土墙及排洪沟砌筑喷射混凝土护坡;	
	  ->(in(工程量.编码,"JYX8-26~45,JYX8-119~130,XYX3-7~25")) || (工程量.地形费计算方式 == "预算：辅助工程(杆塔辅助)杆塔附属设施，防坠落装置安装，线路避雷器安装，监测装置安装调测，耐张线夹X射线探伤")
		:
		工程量.@_@地形系数.预算辅助工程杆塔辅助杆塔附属设施防坠落装置安装线路避雷器安装监测装置安装调测耐张线夹X射线探伤;	
	  ->(in(工程量.编码,"JYX8-46~89")) || (工程量.地形费计算方式 == "预算：辅助工程(索道设施)运输(地形选择按架设索道站所处地带实际地形为准)")
		:
		工程量.@_@地形系数.预算辅助工程索道设施运输地形选择按架设索道站所处地带实际地形为准;	
	  ->(in(工程量.编码,"JYX8-90~118")) || (工程量.地形费计算方式 == "预算：辅助工程(索道设施)安装(地形选择按架设索道站所处地带实际地形为准)")
		:
		工程量.@_@地形系数.预算辅助工程索道设施安装地形选择按架设索道站所处地带实际地形为准;	
        };
   ->@工程信息.工程性质 == "检修"
     :
    #{
	   ->(in(工程量.编码,"JYX1-1~16")) || (工程量.地形费计算方式 == "工地运输(人力运输)混凝土杆、混凝土预制品、钢管杆、线材的运输(不含机械费)")
		:
		工程量.@_@地形系数.工地运输人力运输混凝土杆混凝土预制品钢管杆线材的运输不含机械费;
	   ->(in(工程量.编码,"JYX1-17~22")) || (工程量.地形费计算方式 == "工地运输(人力运输)金具、绝缘子、零星钢材、塔材、其他建筑安装材料的运输(不含机械费)")
		:
		工程量.@_@地形系数.工地运输人力运输金具绝缘子零星钢材塔材其他建筑安装材料的运输不含机械费;
	   ->(in(工程量.编码,"JYX1-24^108")) || (工程量.地形费计算方式 == "工地运输汽车、拖拉机运输(不含装卸，沙漠地形没有正式公路时使用)")
		:
		工程量.@_@地形系数.工地运输汽车拖拉机运输不含装卸沙漠地形没有正式公路时使用;
	   ->(in(工程量.编码,"JYX3-1~212,JYX4-1~192,JYX5-1~119,JYX5-245~253,JYX6-1~172,JGX1-1~17,JGX2-1~59,JGX3-1~54,JGX4-1~67,XYX1-1~21,XYX2-1~79,XYX3-1~25,XYX4-1~77,XYX5-1~223,CYX1-1~4,CYX2-1~40,CYX3-1~42,CYX4-1~131")) || (工程量.地形费计算方式 == "基础、杆塔、防雷设施及接地装置、导线及避雷线、附件检修")
		:
	    工程量.@_@地形系数.基础杆塔防雷设施及接地装置导线及避雷线附件检修;
	   ->(in(工程量.编码,"JYX2-1~232")) || (工程量.地形费计算方式 == "土石方工程(不含机械费)")
        :
        工程量.@_@地形系数.土石方工程不含机械费;
       ->(in(工程量.编码,"JGX6-1~4")) || (工程量.地形费计算方式 == "概算：辅助工程")
        :
        工程量.@_@地形系数.概算辅助工程;
       ->(in(工程量.编码,"JYX8-1~25")) || (工程量.地形费计算方式 == "预算：辅助工程(基础辅助)施工道路，固沙，护坡、挡土墙及排洪沟砌筑，喷射混凝土护坡")
		:
		工程量.@_@地形系数.预算辅助工程基础辅助施工道路固沙护坡挡土墙及排洪沟砌筑喷射混凝土护坡;
	   ->(in(工程量.编码,"JYX8-26~45,JYX8-119~130")) || (工程量.地形费计算方式 == "预算：辅助工程(杆塔辅助)杆塔附属设施，防坠落装置安装，线路避雷器安装，监测装置安装调测，耐张线夹X射线探伤")
		:
		工程量.@_@地形系数.预算辅助工程杆塔辅助杆塔附属设施防坠落装置安装线路避雷器安装监测装置安装调测耐张线夹X射线探伤;
	   ->(in(工程量.编码,"JYX8-46~89")) || (工程量.地形费计算方式 == "预算：辅助工程(索道设施)运输(地形选择按架设索道站所处地带实际地形为准)")
		:
		工程量.@_@地形系数.预算辅助工程索道设施运输地形选择按架设索道站所处地带实际地形为准;
	   ->(in(工程量.编码,"JYX8-90~118")) || (工程量.地形费计算方式 == "预算：辅助工程(索道设施)安装(地形选择按架设索道站所处地带实际地形为准)")
		:
		工程量.@_@地形系数.预算辅助工程索道设施安装地形选择按架设索道站所处地带实际地形为准;
     };
  } / 100
}

BEGIN:_地形机械系数
${
  ?#{
   ->@工程信息.工程性质 == "技改"
     :
    #{
	   ->(in(工程量.编码,"JYX1-24^108")) || (工程量.地形费计算方式 == "工地运输汽车、拖拉机运输(不含装卸，沙漠地形没有正式公路时使用)")
		:
		工程量.@_@地形系数.工地运输汽车拖拉机运输不含装卸沙漠地形没有正式公路时使用;
	   ->(in(工程量.编码,"JYX3-1~212,JGX1-1~17,XYX1-1~21,XYX3-1~6,CYX1-1~4")) || (工程量.地形费计算方式 == "基础工程")
		:
		工程量.@_@地形系数.基础工程;
	   ->(in(工程量.编码,"JYX4-1~192,JGX2-1~59,XYX2-1~79,CYX2-1~40")) || (工程量.地形费计算方式 == "杆塔工程")
		:
		工程量.@_@地形系数.杆塔工程;
	   ->(in(工程量.编码,"JGX3-1~54")) || (工程量.地形费计算方式 == "概算：架线工程")
		:
		工程量.@_@地形系数.概算架线工程;
	   ->(in(工程量.编码,"JYX5-1~60,XYX4-1~77,CYX3-1~27")) || (工程量.地形费计算方式 == "预算：架线工程一般放、紧线(不包含跨越架设、拦河线安装)")
		:
		工程量.@_@地形系数.预算架线工程一般放紧线不包含跨越架设拦河线安装;
	   ->(in(工程量.编码,"JYX5-61~119,CYX3-28~42")) || (工程量.地形费计算方式 == "预算：架线工程张力放紧线(不包含跨越架设、拦河线安装)")
		:
		工程量.@_@地形系数.预算架线工程张力放紧线不包含跨越架设拦河线安装;
	   ->(in(工程量.编码,"JYX5-245~253")) || (工程量.地形费计算方式 == "预算：架线工程光缆接续(不包括测量)")
		:
		工程量.@_@地形系数.预算架线工程光缆接续不包括测量;
	   ->(in(工程量.编码,"JYX6-1~172,JGX4-1~67,XYX5-1~223,CYX4-1~131")) || (工程量.地形费计算方式 == "附件工程")
		:
		工程量.@_@地形系数.附件工程;
	   ->(in(工程量.编码,"JGX6-1~4")) || (工程量.地形费计算方式 == "概算：辅助工程")
		:
		工程量.@_@地形系数.概算辅助工程;
	   ->(in(工程量.编码,"JYX8-1~25")) || (工程量.地形费计算方式 == "预算：辅助工程(基础辅助)施工道路，固沙，护坡、挡土墙及排洪沟砌筑，喷射混凝土护坡")
		:
		工程量.@_@地形系数.预算辅助工程基础辅助施工道路固沙护坡挡土墙及排洪沟砌筑喷射混凝土护坡;	
	   ->(in(工程量.编码,"JYX8-26~45,JYX8-119~130,XYX3-7~25")) || (工程量.地形费计算方式 == "预算：辅助工程(杆塔辅助)杆塔附属设施，防坠落装置安装，线路避雷器安装，监测装置安装调测，耐张线夹X射线探伤")
		:
		工程量.@_@地形系数.预算辅助工程杆塔辅助杆塔附属设施防坠落装置安装线路避雷器安装监测装置安装调测耐张线夹X射线探伤;	
	   ->(in(工程量.编码,"JYX8-46~89")) || (工程量.地形费计算方式 == "预算：辅助工程(索道设施)运输(地形选择按架设索道站所处地带实际地形为准)")
		:
		工程量.@_@地形系数.预算辅助工程索道设施运输地形选择按架设索道站所处地带实际地形为准;	
	   ->(in(工程量.编码,"JYX8-90~118")) || (工程量.地形费计算方式 == "预算：辅助工程(索道设施)安装(地形选择按架设索道站所处地带实际地形为准)")
		:
		工程量.@_@地形系数.预算辅助工程索道设施安装地形选择按架设索道站所处地带实际地形为准;	
      };
   ->@工程信息.工程性质 == "检修"
     :   
	 #{
	   ->(in(工程量.编码,"JYX1-24^108")) || (工程量.地形费计算方式 == "工地运输汽车、拖拉机运输(不含装卸，沙漠地形没有正式公路时使用)")
		:
		工程量.@_@地形系数.工地运输汽车拖拉机运输不含装卸沙漠地形没有正式公路时使用;
	   ->(in(工程量.编码,"JYX3-1~212,JYX4-1~192,JYX5-1~119,JYX5-245~253,JYX6-1~172,JGX1-1~17,JGX2-1~59,JGX3-1~54,JGX4-1~67,XYX1-1~21,XYX2-1~79,XYX3-1~25,XYX4-1~77,XYX5-1~223,CYX1-1~4,CYX2-1~40,CYX3-1~42,CYX4-1~131")) || (工程量.地形费计算方式 == "基础、杆塔、防雷设施及接地装置、导线及避雷线、附件检修")
		:
		工程量.@_@地形系数.基础杆塔防雷设施及接地装置导线及避雷线附件检修;
	   ->(in(工程量.编码,"JGX6-1~4")) || (工程量.地形费计算方式 == "概算：辅助工程")
		:
		工程量.@_@地形系数.概算辅助工程;
	   ->(in(工程量.编码,"JYX8-1~25")) || (工程量.地形费计算方式 == "预算：辅助工程(基础辅助)施工道路，固沙，护坡、挡土墙及排洪沟砌筑，喷射混凝土护坡")
		:
		工程量.@_@地形系数.预算辅助工程基础辅助施工道路固沙护坡挡土墙及排洪沟砌筑喷射混凝土护坡;	
	   ->(in(工程量.编码,"JYX8-26~45,JYX8-119~130")) || (工程量.地形费计算方式 == "预算：辅助工程(杆塔辅助)杆塔附属设施，防坠落装置安装，线路避雷器安装，监测装置安装调测，耐张线夹X射线探伤")
		:
		工程量.@_@地形系数.预算辅助工程杆塔辅助杆塔附属设施防坠落装置安装线路避雷器安装监测装置安装调测耐张线夹X射线探伤;	
	   ->(in(工程量.编码,"JYX8-46~89")) || (工程量.地形费计算方式 == "预算：辅助工程(索道设施)运输(地形选择按架设索道站所处地带实际地形为准)")
		:
		工程量.@_@地形系数.预算辅助工程索道设施运输地形选择按架设索道站所处地带实际地形为准;	
	   ->(in(工程量.编码,"JYX8-90~118")) || (工程量.地形费计算方式 == "预算：辅助工程(索道设施)安装(地形选择按架设索道站所处地带实际地形为准)")
		:
		工程量.@_@地形系数.预算辅助工程索道设施安装地形选择按架设索道站所处地带实际地形为准;
    };
  } / 100
}

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

BEGIN:地形人工价差
${
  sum(_过滤定额(),"工程量",?工程量.数量 * 工程量.人工系数 * 工程量.定额系数 * _地形人工系数() * #{
  ->@工程信息.人材机调差方法 == "方法二：人材机按实际单价调差":sum(_过滤人工(),"人材机",?(人材机.市场价不含税 - 人材机.预算价不含税) * 人材机.数量);
  ->:工程量.人工费 * 工程量.@_@人工调差系数 / 100;
  })
}

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

BEGIN:地形机械价差
${
  sum(_过滤定额(),"工程量",?工程量.数量 * 工程量.机械系数 * 工程量.定额系数 * _地形机械系数() * #{
      ->@工程信息.人材机调差方法 == "方法二：人材机按实际单价调差":sum(_过滤机械(),"人材机",?(人材机.市场价不含税 - 人材机.预算价不含税) * 人材机.数量);
	  ->:#{
	   ->(工程量.调差类型  == "建筑" || 工程量.调差类型  == "建筑拆除" || 工程量.调差类型  == "建筑修缮") && 工程量.@_@材机按系数调差 == "否":0;
	   ->:工程量.机械费 * 工程量.@_@机械调差系数 / 100;
      };})
}

//------------------汇总特殊费用-------------------------------------------
BEGIN:人工费
${
   ?_人工费_不含特殊费()+脚手架人工费()+混凝土施工调整人工费()+调试人工费()+地形人工费()
}

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

BEGIN:乙供物料类材料费不含税
${
    ?_乙供物料类材料费_非宏变量()
}

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

BEGIN:人工价差
${
   ?_人工价差_不含特殊费()+脚手架人工价差()+混凝土施工调整人工价差()+调试人工价差()+地形人工价差()
}

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

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

BEGIN:机械价差
${
   ?_机械价差_不含特殊费()+地形机械价差()
}


BEGIN:材料价差不含税
${
   ?甲供材料价差不含税()+乙供材料价差不含税()
}

BEGIN:材料价差含税
${
   ?甲供材料价差含税()+乙供材料价差含税()
}

//------------------以下变量为开发使用，开发自行维护-------------------------------------------
BEGIN:_过滤非拆除定额
${
    filter(source,"工程量",?工程量.type =="定额" && #{
	->@工程信息.工程性质 == "技改"
	:
	#{
	->工程量.专业属性 == "架空" || 工程量.专业属性 == "陆上电缆" || 工程量.专业属性 == "海底电缆" || 工程量.专业属性 == "通信"
	:
	工程量.调差类型 != "建筑拆除" && 工程量.调差类型 != "安装拆除";
	};
	->@工程信息.工程性质 == "检修"
	:
	#{
	->工程量.专业属性 == "架空" || 工程量.专业属性 == "陆上电缆" || 工程量.专业属性 == "海底电缆"  || 工程量.专业属性 == "通信"
	:
	工程量.调差类型 == "建筑修缮" || 工程量.调差类型 == "设备检修" || 工程量.调差类型 == "建筑拆除" || 工程量.调差类型 == "安装拆除";
	};
	} == 1)
}

BEGIN:建筑拆分人工材料_价差不含税
${
    sum(_过滤定额(),"工程量",?工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
      ->(工程量.调差类型 == "建筑") || (工程量.调差类型  == "建筑拆除" ) || (工程量.调差类型  == "建筑修缮" )
        :
		sum(_过滤材料(),"人材机",?#{
		->人材机.拆分 == 0
		  :
		  0;
		->人材机.拆分 == 1
		  :
		  sum(_过滤人工_定额重算(),"拆分子项",?
		  #{
		  ->拆分子项.type == "人工"
		    :
		    拆分子项.预算价不含税 * 拆分子项.数量 * #{
			->工程量.调差类型 == "建筑":拆分子项.@_@人工调差系数 /100;
			->工程量.调差类型 == "建筑修缮":拆分子项.@_@人工调差系数 /100;
			->工程量.调差类型 == "建筑拆除":拆分子项.@_@人工调差系数 /100;
			};
		    } * 人材机.数量);
		  });})
}

BEGIN:建筑拆分人工材料_价差含税
${
    sum(_过滤定额(),"工程量",?工程量.数量 * 工程量.材料系数 * 工程量.定额系数 * #{
      ->(工程量.调差类型 == "建筑") || (工程量.调差类型  == "建筑拆除" ) || (工程量.调差类型  == "建筑修缮" )
        :
		sum(_过滤材料(),"人材机",?#{
		->人材机.拆分 == 0
		  :
		  0;
		->人材机.拆分 == 1
		  :
		  sum(_过滤人工_定额重算(),"拆分子项",?
		  #{
		  ->拆分子项.type == "人工"
		    :
		    拆分子项.预算价含税 * 拆分子项.数量 * #{
			->工程量.调差类型 == "建筑":拆分子项.@_@人工调差系数 /100;
			->工程量.调差类型 == "建筑修缮":拆分子项.@_@人工调差系数 /100;
			->工程量.调差类型 == "建筑拆除":拆分子项.@_@人工调差系数 /100;
			};
		    } * 人材机.数量);
		  });})
}
 