Explorar o código

1. 上报,超计判断调整
2. 数据检查,超计判断调整

MaiXinRong hai 1 ano
pai
achega
96c6b7d145
Modificáronse 2 ficheiros con 24 adicións e 29 borrados
  1. 9 6
      app/lib/ledger.js
  2. 15 23
      app/public/js/global.js

+ 9 - 6
app/lib/ledger.js

@@ -975,14 +975,17 @@ class checkData {
             }
         }
     }
+    _checkPosOverRange(p) {
+        const end_contract_qty = this.ctx.helper.add(p.pre_contract_qty, p.contract_qty);
+        if (!p.quantity) return !!end_contract_qty;
+        return p.quantity > 0
+            ? end_contract_qty > p.final_1_qty
+            : (p.final_1_qty > 0 ? true : end_contract_qty < p.final_1_qty || end_contract_qty > 0);
+    }
     _checkBillsOverRange(bills, posRange, isTz) {
         if (isTz && posRange.length > 0) {
             for (const p of posRange) {
-                const end_contract_qty = this.ctx.helper.add(p.pre_contract_qty, p.contract_qty);
-                if (!p.quantity && !!end_contract_qty) return true;
-                return p.quantity > 0
-                    ? end_contract_qty > p.quantity
-                    : (p.final_1_qty ? end_contract_qty > p.final_1_qty : end_contract_qty < p.final_1_qty || p.final_1_qty > 0);
+                if (this._checkPosOverRange(p)) return true;
             }
         }
         const end_contract_qty = this.ctx.helper.add(bills.contract_qty, bills.pre_contract_qty);
@@ -997,7 +1000,7 @@ class checkData {
             if (!compare_qty1) return !!end_contract_qty;
             return compare_qty1 > 0
                 ? end_contract_qty > compare_qty2
-                : (compare_qty2 > 0 ? end_contract_qty > compare_qty2 : end_contract_qty < compare_qty2 || end_contract_qty > 0);
+                : (compare_qty2 > 0 ? true : end_contract_qty < compare_qty2 || end_contract_qty > 0);
         }
     }
     checkOverRange() {

+ 15 - 23
app/public/js/global.js

@@ -1027,7 +1027,7 @@ const checkUtils = {
         if (!data.quantity) return !!data.end_contract_qty;
         return data.quantity > 0
             ? data.end_contract_qty > data.final_1_qty
-            : data.end_contract_qty < data.final_1_qty || data.end_contract_qty > 0;
+            : (data.final_1_qty > 0 ? true : data.end_contract_qty < data.final_1_qty || data.end_contract_qty > 0);
     },
     billsOver(data, isTz, relaPos) {
         if (!data) return false;
@@ -1038,29 +1038,21 @@ const checkUtils = {
                     if (checkUtils.posOver(p)) return true;
                 }
             }
-            if (data.is_tp) {
-                if (!data.total_price) return !!data.end_contract_tp;
-                return data.total_price > 0
-                    ? data.end_contract_tp > data.total_price
-                    : data.end_contract_tp < data.total_price || data.end_contract_tp > 0;
-            } else {
-                if (!data.quantity) return !!data.end_contract_qty;
-                return data.quantity > 0
-                    ? data.end_contract_qty > data.final_1_qty
-                    : data.end_contract_qty < data.final_1_qty || data.end_contract_qty > 0;
-            }
+        }
+
+        if (data.is_tp) {
+            const compare_tp = isTz ? data.total_price : data.deal_tp;
+            if (!compare_tp) return !!data.end_contract_tp;
+            return compare_tp > 0
+                ? data.end_contract_tp > compare_tp
+                : data.end_contract_tp < compare_tp || data.end_contract_tp > 0;
         } else {
-            if (data.is_tp) {
-                if (!data.deal_tp) return !!data.end_contract_tp;
-                return data.deal_tp > 0
-                    ? data.end_contract_tp > data.deal_tp
-                    : data.end_contract_tp < data.deal_tp || data.end_contract_tp > 0;
-            } else {
-                if (!data.deal_qty) return !!data.end_contract_qty;
-                return data.deal_qty > 0
-                    ? data.end_contract_qty > data.deal_final_1_qty
-                    : data.end_contract_qty < data.deal_final_1_qty || data.end_contract_qty > 0;
-            }
+            const compare_qty1 = isTz ? data.quantity : data.deal_qty;
+            const compare_qty2 = isTz ? data.final_1_qty : data.deal_final_1_qty;
+            if (!compare_qty1) return !!data.end_contract_qty;
+            return compare_qty1 > 0
+                ? data.end_contract_qty > compare_qty2
+                : (compare_qty2 > 0 ? true : data.end_contract_qty < compare_qty2 || data.end_contract_qty > 0);
         }
     },
     compareCode(str1, str2, symbol = '-') {