Browse Source

变更数目输入判断更改

laiguoran 4 years ago
parent
commit
e7aeb6a3e2

+ 15 - 4
app/public/js/change_information_approval.js

@@ -190,13 +190,18 @@ $(document).ready(() => {
                         return;
                     }
                     validText = ZhCalc.round(validText, findDecimal(select.unit)) || 0;
-                    // 判断是否大于等于限制值,否则无法更改
+                    // 判断是否 正数必须于等于限制值,负数必须小于等于限制值,否则无法更改
                     const usedInfo = _.find(changeUsedData, { id: select.id });
-                    if (usedInfo && validText < usedInfo.used_qty) {
+                    if (usedInfo && validText >= 0 && validText < usedInfo.used_qty) {
                         toastr.error('清单变更数值必须大于等于已调用值 ' + usedInfo.used_qty);
                         SpreadJsObj.reLoadRowData(info.sheet, info.row);
                         changeSpreadObj.setRowValueAndSum(select, info.row, info.col);
                         return;
+                    } else if (usedInfo && validText < 0 && validText > usedInfo.used_qty) {
+                        toastr.error('清单变更数值必须小于等于已调用值 ' + usedInfo.used_qty);
+                        SpreadJsObj.reLoadRowData(info.sheet, info.row);
+                        changeSpreadObj.setRowValueAndSum(select, info.row, info.col);
+                        return;
                     }
                 }
                 select[col.field] = validText;
@@ -278,14 +283,20 @@ $(document).ready(() => {
                             continue;
                         }
                         validText = ZhCalc.round(validText, findDecimal(sortData[curRow].unit)) || 0;
-                        // 判断是否大于等于限制值,否则无法更改
+                        // 判断是否 正数必须于等于限制值,负数必须小于等于限制值,否则无法更改
                         const usedInfo = _.find(changeUsedData, { id: sortData[curRow].id });
-                        if (usedInfo && validText < usedInfo.used_qty) {
+                        if (usedInfo && usedInfo.used_qty >= 0 && validText < usedInfo.used_qty) {
                             toastr.error(hintRow ? '清单' + (hintRow+1) + '行变更数值必须大于等于已调用值 ' + usedInfo.used_qty : '清单变更数值必须大于等于已调用值 ' + usedInfo.used_qty);
                             SpreadJsObj.reLoadRowData(info.sheet, curRow);
                             changeSpreadObj.setRowValueAndSum(sortData[curRow], curRow, curCol);
                             bPaste = false;
                             continue;
+                        } else if (usedInfo && usedInfo.used_qty < 0 && validText > usedInfo.used_qty) {
+                            toastr.error(hintRow ? '清单' + (hintRow+1) + '行变更数值必须小于等于已调用值 ' + usedInfo.used_qty : '清单变更数值必须小于等于已调用值 ' + usedInfo.used_qty);
+                            SpreadJsObj.reLoadRowData(info.sheet, curRow);
+                            changeSpreadObj.setRowValueAndSum(sortData[curRow], curRow, curCol);
+                            bPaste = false;
+                            continue;
                         }
                     }
                     // cLData[colSetting.field] = validText;

+ 12 - 4
app/public/js/change_information_set.js

@@ -277,12 +277,16 @@ $(document).ready(() => {
                     select.oamount = ZhCalc.round(select.oamount, findDecimal(validText)) || 0;
                 }
                 if(col.field === 'camount') {
-                    // 判断是否大于等于限制值,否则无法更改
+                    // 判断是否 正数必须于等于限制值,负数必须小于等于限制值,否则无法更改
                     const usedInfo = _.find(changeUsedData, { id: select.id });
-                    if (usedInfo && validText < usedInfo.used_qty) {
+                    if (usedInfo && usedInfo.used_qty >= 0 && validText < usedInfo.used_qty) {
                         toastr.error('清单变更数值必须大于等于已调用值 ' + usedInfo.used_qty);
                         SpreadJsObj.reLoadRowData(info.sheet, info.row);
                         return;
+                    } else if (usedInfo && usedInfo.used_qty < 0  && validText > usedInfo.used_qty) {
+                        toastr.error('清单变更数值必须小于等于已调用值 ' + usedInfo.used_qty);
+                        SpreadJsObj.reLoadRowData(info.sheet, info.row);
+                        return;
                     }
                     select.spamount = ZhCalc.round(validText, findDecimal(select.unit)) || 0;
                 }
@@ -363,12 +367,16 @@ $(document).ready(() => {
                             validText = ZhCalc.round(validText, findDecimal(sortData[curRow].unit)) || 0;
                         }
                         if(colSetting.field === 'camount') {
-                            // 判断是否大于等于限制值,否则无法更改
+                            // 判断是否 正数必须于等于限制值,负数必须小于等于限制值,否则无法更改
                             const usedInfo = _.find(changeUsedData, { id: sortData[curRow].id });
-                            if (usedInfo && validText < usedInfo.used_qty) {
+                            if (usedInfo && usedInfo.used_qty >= 0 && validText < usedInfo.used_qty) {
                                 toastr.error(hintRow ? '清单' + (hintRow+1) + '行变更数值必须大于等于已调用值 ' + usedInfo.used_qty : '清单变更数值必须大于等于已调用值 ' + usedInfo.used_qty);
                                 bPaste = false;
                                 continue;
+                            } else if (usedInfo && usedInfo.used_qty < 0 && validText > usedInfo.used_qty) {
+                                toastr.error(hintRow ? '清单' + (hintRow+1) + '行变更数值必须小于等于已调用值 ' + usedInfo.used_qty : '清单变更数值必须小于等于已调用值 ' + usedInfo.used_qty);
+                                bPaste = false;
+                                continue;
                             }
                         }
                     }