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 {
"extends": {
"info": {
"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",
"description": "校验单据是否被引用 e.g. CheckReferenceRelation('REF_FLAG','1','当前单据已被引用,暂时无法删除。')",
"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
* @date 2021-09-13
*/
export default {
billFiled:{
billFiled: {
BMJJFL: 9999,
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()
let index = num.indexOf('.')
if (index !== -1) {
......@@ -19,8 +45,8 @@ export default {
}
return parseFloat(num).toFixed(decimal)
},
getFormulaParamValue(obj){
if(obj){
getFormulaParamValue(obj) {
if (obj) {
return obj.getResult().Value
}
return obj
......
......@@ -169,6 +169,7 @@ import SubTableJointString from "@/formula/SubTableJointString"
import LoginUserIsContianRole from "@/formula/SubTableJointString"
import SubTableSetBaseData from "@/formula/SubTableSetBaseData"
import UpdateBillReferenceRelationshipFunction from "./formula/UpdateBillReferenceRelationshipFunction";
import AmountComp from "./formula/AmountComp";
export default {
actions: {
updateFieldAction,
......@@ -341,7 +342,8 @@ export default {
UpdateImageInfoRefState,
UpdateBillReferenceRelationshipFunction,
ClearImageInfoRefState,
CheckReferenceRelation
CheckReferenceRelation,
AmountComp,
},
routes : {
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