//费用组合单价变量(用于计算清单的单价费用(综合单价、取费费用单价等)) BEGIN:费用组合单价变量 ${ sum(source,"工程量代理",?工程量代理.结算费用) } //费用组合变量(根据结算条款组合中标费用和结算费用) BEGIN:费用组合变量 ${ sum(source,"工程量代理",?#{ ->清单结算状态() == 1 :工程量代理.结算费用 * 工程量代理.数量; ->清单结算状态() == 2 || 清单结算状态() == 3 || 清单结算状态() == 4 || 清单结算状态() == 7 || 清单结算状态() == 8 :工程量代理.中标费用 * 工程量代理.数量; ->清单结算状态() == 5 :工程量代理.中标费用*工程量代理.中标数量*(1+清单工程量调整幅度()/100) +(工程量代理.数量-工程量代理.中标数量*(1+清单工程量调整幅度()/100))*工程量代理.结算费用; ->清单结算状态() == 6 || 清单结算状态() == 9 || 清单结算状态() == 16 || 清单结算状态() == 17 :工程量代理.结算费用 * 工程量代理.数量; } ) } BEGIN:单条清单结算状态 ${ sum(source,"工程量代理",?清单结算状态()) } BEGIN:清单结算状态 ${ #{ ->(@工程信息.阶段类型 != "结算" && @工程信息.阶段类型 != "审核") || 工程量代理.设备类费用 == 1 :1; -> :#{ ->工程量代理.阶段类型 == @工程信息.阶段类型 || (工程量代理.阶段类型 == "结算" && @工程信息.阶段类型 == "审核") || 一笔性费用清单结算条款() == 1 :1; ->清单项目特征值结算条款() == 1 :1; ->清单量差比例是否超过设置值结算条款() == 0 :#{ ->费用超过合计的比例是否超过设置值结算条款() == 0 :2; ->费用超过合计的比例是否超过设置值结算条款() == 1 :#{ ->工程量代理.数量 - 工程量代理.中标数量 > 0 :16; ->工程量代理.数量 - 工程量代理.中标数量 < 0 :17; }; }; ->清单量差比例是否超过设置值结算条款() == 1 :#{ ->清单金额增减是否超过设置值结算条款() == 0 :#{ ->工程量代理.数量 - 工程量代理.中标数量 > 0 :3; ->工程量代理.数量 - 工程量代理.中标数量 < 0 :4; }; ->清单金额增减是否超过设置值结算条款() == 1 :#{ ->工程量代理.数量 - 工程量代理.中标数量 > 0 :5; ->工程量代理.数量 - 工程量代理.中标数量 < 0 :6; }; }; }; } } BEGIN:一笔性费用清单结算条款 ${ #{ ->工程量代理.一笔性费用 == 0 || 工程量代理.阶段类型 == "" || 工程量代理.阶段类型 == @工程信息.阶段类型 || (工程量代理.阶段类型 == "结算" && @工程信息.阶段类型 == "审核") :0; -> :#{ ->@结算条款.一笔性费用清单结算原则.值 == "按实际发生的量和价结算" :1; ->@结算条款.一笔性费用清单结算原则.值 == "包干费用不可调整" :3; -> :2; }; } } BEGIN:清单项目特征值结算条款 ${ #{ ->一笔性费用清单结算条款() == 3 :0; -> :#{ ->strFind(工程量代理.项目划分类型, "措施项目二") < 0 && 工程量代理.拆除 == 0 :#{ ->@结算条款.项目特征发生变化.应用 == 0 || @结算条款.项目特征发生变化.值 != "是" :0; ->清单项目特征值是否变化() == 0 :0; -> :1; }; ->strFind(工程量代理.项目划分类型, "措施项目二") < 0 && 工程量代理.拆除 == 1 :#{ ->@结算条款.拆除项目特征发生变化.应用 == 0 || @结算条款.拆除项目特征发生变化.值 != "是" :0; ->清单项目特征值是否变化() == 0 :0; -> :1; }; -> :#{ ->@结算条款.措施二项目特征发生变化.应用 == 0 || @结算条款.措施二项目特征发生变化.值 != "是" :0; ->清单项目特征值是否变化() == 0 :0; -> :1; }; }; } } BEGIN:清单项目特征值是否变化 ${ sum(items, "项目特征", ?iif(项目特征.中标项目特征值!=项目特征.项目特征值, 1, 0)) } BEGIN:清单量差比例是否超过设置值结算条款 ${ #{ ->一笔性费用清单结算条款() == 3 :0; ->一笔性费用清单结算条款() == 1 :1; -> :#{ ->工程量代理.中标数量 < 0 :0; ->strFind(工程量代理.项目划分类型, "措施项目二") < 0 && 工程量代理.拆除 == 0 :#{ ->@结算条款.清单工程量调整幅度.应用 == 0 :0; ->工程量代理.数量 - 工程量代理.中标数量 > 0 :iif((工程量代理.数量 - 工程量代理.中标数量)-@结算条款.清单工程量调整幅度.值/100*工程量代理.中标数量 > 0.0001,1,0); -> :iif((工程量代理.中标数量 - 工程量代理.数量)-@结算条款.清单工程量调整幅度.值/100*工程量代理.中标数量 > 0.0001,1,0); }; ->strFind(工程量代理.项目划分类型, "措施项目二") < 0 && 工程量代理.拆除 == 1 :#{ ->@结算条款.拆除清单工程量调整幅度.应用 == 0 :0; ->工程量代理.数量 - 工程量代理.中标数量 > 0 :iif((工程量代理.数量 - 工程量代理.中标数量)-@结算条款.拆除清单工程量调整幅度.值/100*工程量代理.中标数量 > 0.0001,1,0); -> :iif((工程量代理.中标数量 - 工程量代理.数量)-@结算条款.拆除清单工程量调整幅度.值/100*工程量代理.中标数量 > 0.0001,1,0); }; -> :#{ ->@结算条款.措施二清单工程量调整幅度.应用 == 0 :0; ->工程量代理.数量 - 工程量代理.中标数量 > 0 :iif((工程量代理.数量 - 工程量代理.中标数量)-@结算条款.措施二清单工程量调整幅度.值/100*工程量代理.中标数量 > 0.0001,1,0); -> :iif((工程量代理.中标数量 - 工程量代理.数量)-@结算条款.措施二清单工程量调整幅度.值/100*工程量代理.中标数量 > 0.0001,1,0); }; }; } } BEGIN:清单金额增减是否超过设置值结算条款 ${ #{ ->一笔性费用清单结算条款() == 3 :0; ->一笔性费用清单结算条款() == 1 :1; -> :#{ ->工程量代理.中标数量 < 0 :0; ->strFind(工程量代理.项目划分类型, "措施项目二") < 0 && 工程量代理.拆除 == 0 :#{ ->@结算条款.清单金额增减超过.应用 == 0 :1; ->工程量代理.数量 - 工程量代理.中标数量 > 0 :iif(abs(工程量代理.拟定综合单价*(工程量代理.数量-工程量代理.中标数量*(1+@结算条款.清单工程量调整幅度.值/100))+工程量代理.中标合价*(1+@结算条款.清单工程量调整幅度.值/100)-工程量代理.中标单价*工程量代理.数量) > @结算条款.清单金额增减超过.值*10000,1,0); -> :iif(abs(工程量代理.中标单价*工程量代理.数量-工程量代理.拟定综合单价*工程量代理.数量) > @结算条款.清单金额增减超过.值*10000,1,0); }; ->strFind(工程量代理.项目划分类型, "措施项目二") < 0 && 工程量代理.拆除 == 1 :#{ ->@结算条款.拆除清单金额增减超过.应用 == 0 :1; ->工程量代理.数量 - 工程量代理.中标数量 > 0 :iif(abs(工程量代理.拟定综合单价*(工程量代理.数量-工程量代理.中标数量*(1+@结算条款.拆除清单工程量调整幅度.值/100))+工程量代理.中标合价*(1+@结算条款.拆除清单工程量调整幅度.值/100)-工程量代理.中标单价*工程量代理.数量) > @结算条款.拆除清单金额增减超过.值*10000,1,0); -> :iif(abs(工程量代理.中标单价*工程量代理.数量-工程量代理.拟定综合单价*工程量代理.数量) > @结算条款.拆除清单金额增减超过.值*10000,1,0); }; -> :#{ ->@结算条款.措施二清单金额增减超过.应用 == 0 :1; ->工程量代理.数量 - 工程量代理.中标数量 > 0 :iif(abs(工程量代理.拟定综合单价*(工程量代理.数量-工程量代理.中标数量*(1+@结算条款.措施二清单工程量调整幅度.值/100))+工程量代理.中标合价*(1+@结算条款.措施二清单工程量调整幅度.值/100)-工程量代理.中标单价*工程量代理.数量) > @结算条款.措施二清单金额增减超过.值*10000,1,0); -> :iif(abs(工程量代理.中标单价*工程量代理.数量-工程量代理.拟定综合单价*工程量代理.数量) > @结算条款.措施二清单金额增减超过.值*10000,1,0); }; }; } } BEGIN:费用超过合计的比例是否超过设置值结算条款 ${ #{ ->一笔性费用清单结算条款() == 3 :0; ->一笔性费用清单结算条款() == 1 :1; -> :#{ ->工程量代理.中标数量 < 0 :0; ->strFind(工程量代理.项目划分类型, "措施项目二") < 0 && 工程量代理.拆除 == 0 :#{ ->@结算条款.差值占分部分项费比例.应用 == 0 :0; ->工程量代理.中标数量 == 0 :#{ ->工程量代理.数量 != 0 :1; ->工程量代理.数量 == 0 :0; }; -> :iif(abs((工程量代理.数量 - 工程量代理.中标数量)*工程量代理.中标单价/工程量代理.分部分项中标合价) > @结算条款.差值占分部分项费比例.值*0.01,1,0); }; ->strFind(工程量代理.项目划分类型, "措施项目二") < 0 && 工程量代理.拆除 == 1 :#{ ->@结算条款.拆除差值占分部分项费比例.应用 == 0 :0; ->工程量代理.中标数量 == 0 :#{ ->工程量代理.数量 != 0 :1; ->工程量代理.数量 == 0 :0; }; -> :iif(abs((工程量代理.数量 - 工程量代理.中标数量)*工程量代理.中标单价/工程量代理.分部分项中标合价) > @结算条款.拆除差值占分部分项费比例.值*0.01,1,0); }; -> :#{ ->@结算条款.措施二差值占分部分项费比例.应用 == 0 :0; ->工程量代理.中标数量 == 0 :#{ ->工程量代理.数量 != 0 :1; ->工程量代理.数量 == 0 :0; }; -> :iif(abs((工程量代理.数量 - 工程量代理.中标数量)*工程量代理.中标单价/工程量代理.分部分项中标合价) > @结算条款.措施二差值占分部分项费比例.值*0.01,1,0); }; }; } } BEGIN:清单工程量调整幅度 ${ #{ ->strFind(工程量代理.项目划分类型, "措施项目二") < 0 && 工程量代理.拆除 == 0 :@结算条款.清单工程量调整幅度.值; ->strFind(工程量代理.项目划分类型, "措施项目二") < 0 && 工程量代理.拆除 == 1 :@结算条款.拆除清单工程量调整幅度.值; -> :@结算条款.措施二清单工程量调整幅度.值; } } BEGIN:费用表节点是否计算 ${ setparam("是否计算", 1); iif(@工程信息.阶段类型 == "结算" || @工程信息.阶段类型 == "审核", ?{ for(source,"费用表节点", ?{ setparam("类型", 费用表节点.type); setparam("不可竞争费用", 费用表节点.不可竞争费用); },?0); iif(getparam("类型") == "措施建筑" || getparam("类型") == "措施安装" || getparam("类型") == "措施线路", ?{ iif((@结算条款.措施一不可竞争项目随工程量调整而变化.值 == "否" && getparam("不可竞争费用") == 1) || (@结算条款.措施一可竞争项目随工程量调整而变化.值 == "否" && getparam("不可竞争费用") == 0), ?{ setparam("是否计算", 0); }, ?0); }, ?0); iif(getparam("类型") == "规费建筑" || getparam("类型") == "规费安装" || getparam("类型") == "规费线路", ?{ iif((@结算条款.规费不可竞争项目随工程量调整而变化.值 == "否" && getparam("不可竞争费用") == 1) || (@结算条款.规费可竞争项目随工程量调整而变化.值 == "否" && getparam("不可竞争费用") == 0), ?{ setparam("是否计算", 0); }, ?0); }, ?0); }, ?0); getparam("是否计算"); } BEGIN:费用表节点是否按分部分项比例计算 ${ setparam("是否计算", 0); iif(@工程信息.阶段类型 == "结算" || @工程信息.阶段类型 == "审核", ?{ for(source,"费用表节点", ?{ setparam("类型", 费用表节点.type); },?0); iif(getparam("类型") == "措施建筑" || getparam("类型") == "措施安装" || getparam("类型") == "措施线路", ?{ iif(@结算条款.措施一结算办法.值 == "新疆合同结算规则", ?{ setparam("是否计算", 1); }, ?0); }, ?0); iif(getparam("类型") == "规费建筑" || getparam("类型") == "规费安装" || getparam("类型") == "规费线路", ?{ iif(@结算条款.规费结算办法.值 == "新疆合同结算规则", ?{ setparam("是否计算", 1); }, ?0); }, ?0); }, ?0); getparam("是否计算"); }