Commit 0cd90f43 by 乔延琦

Merge branch 'develop-fengjiansheng' into 'develop'

feat(@gms/gms-plugin-billexpand): 增加金额比较公式

See merge request GFP/RBC/rbc-frontend!18
parents 861bfd6e a1a9cd77
...@@ -3765,6 +3765,22 @@ export default { ...@@ -3765,6 +3765,22 @@ export default {
"extends": { "extends": {
"info": { "info": {
"param": [], "param": [],
"name": "AmountComp",
"description": "金额比较公式 e.g. AmountComp(BXD_H.BXJEXX,BXD_H.BXJEX1)",
"title": "金额比较公式",
"return": 1
}
},
"description": "",
"title": "金额比较公式",
"value": "AmountComp"
},
{
"discard": false,
"path": "通用",
"extends": {
"info": {
"param": [],
"name": "CheckReferenceRelation", "name": "CheckReferenceRelation",
"description": "校验单据是否被引用 e.g. CheckReferenceRelation('REF_FLAG','1','当前单据已被引用,暂时无法删除。')", "description": "校验单据是否被引用 e.g. CheckReferenceRelation('REF_FLAG','1','当前单据已被引用,暂时无法删除。')",
"title": "校验单据是否被引用", "title": "校验单据是否被引用",
......
import _ from "./FormulaConstants";
/**
* 金额比较公式
* 比较左右两个操作数是否相等 参数可以是返回值类型为number的公式
* @author fengjiansheng
* @date 2022-02-07
*/
export default {
formulaName: "AmountComp",
execute: function () {
if (arguments && arguments[0] && arguments[0].length === 2) {
let leftOperand = arguments[0][0];
let rightOperand = arguments[0][1];
if (leftOperand && rightOperand) {
leftOperand = _.getFormulaParamValue(leftOperand);
rightOperand = _.getFormulaParamValue(rightOperand);
if (_.isNumber(leftOperand) && _.isNumber(rightOperand)) {
return _.isAmountEqual(leftOperand, rightOperand);
} else {
console.error(this.formulaName + _.ERROR_MSG.PARAM_TYPE);
return false;
}
} else {
return false;
}
} else {
console.error(this.formulaName + _.ERROR_MSG.PARAM_NUM);
return false;
}
},
getResultType: function () {
return _.resultType.boolean;
}
}
import _ from 'lodash'
/** /**
* 公式常量 * 公式常量
* @author fengjiansheng * @author fengjiansheng
* @date 2021-09-13 * @date 2021-09-13
*/ */
export default { export default {
billFiled:{ billFiled: {
BMJJFL: 9999, BMJJFL: 9999,
NULL: 0, NULL: 0,
},
resultType: {
anyType: 0,
boolean: 1,
datetime: 2,
number: 3,
string: 6,
},
ERROR_MSG: {
PARAM_TYPE: "公式配置错误,参数类型不匹配。",
PARAM_NUM: "公式配置错误,参数个数不匹配。",
}, },
moneyFormatDecimal : (num, decimal) => { toNumber(a) {
return _.toNumber(a);
},
isNumber(a) {
return _.isNumber(a);
},
isAmountEqual(a, b) {
if (this.isNumber(a) && this.isNumber(b)) {
return Math.abs(this.toNumber(a) - this.toNumber(b)) <= 0.0000001;
} else {
throw new Error("invalid param");
}
},
moneyFormatDecimal(num, decimal) {
num = num.toString() num = num.toString()
let index = num.indexOf('.') let index = num.indexOf('.')
if (index !== -1) { if (index !== -1) {
...@@ -19,8 +45,8 @@ export default { ...@@ -19,8 +45,8 @@ export default {
} }
return parseFloat(num).toFixed(decimal) return parseFloat(num).toFixed(decimal)
}, },
getFormulaParamValue(obj){ getFormulaParamValue(obj) {
if(obj){ if (obj) {
return obj.getResult().Value return obj.getResult().Value
} }
return obj return obj
......
...@@ -169,6 +169,7 @@ import SubTableJointString from "@/formula/SubTableJointString" ...@@ -169,6 +169,7 @@ import SubTableJointString from "@/formula/SubTableJointString"
import LoginUserIsContianRole from "@/formula/SubTableJointString" import LoginUserIsContianRole from "@/formula/SubTableJointString"
import SubTableSetBaseData from "@/formula/SubTableSetBaseData" import SubTableSetBaseData from "@/formula/SubTableSetBaseData"
import UpdateBillReferenceRelationshipFunction from "./formula/UpdateBillReferenceRelationshipFunction"; import UpdateBillReferenceRelationshipFunction from "./formula/UpdateBillReferenceRelationshipFunction";
import AmountComp from "./formula/AmountComp";
export default { export default {
actions: { actions: {
updateFieldAction, updateFieldAction,
...@@ -341,7 +342,8 @@ export default { ...@@ -341,7 +342,8 @@ export default {
UpdateImageInfoRefState, UpdateImageInfoRefState,
UpdateBillReferenceRelationshipFunction, UpdateBillReferenceRelationshipFunction,
ClearImageInfoRefState, ClearImageInfoRefState,
CheckReferenceRelation CheckReferenceRelation,
AmountComp,
}, },
routes : { routes : {
showPrint: { showPrint: {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment