소스 검색

锁定清单单价

chenshilong 5 년 전
부모
커밋
5edba5a3a8
1개의 변경된 파일32개의 추가작업 그리고 22개의 파일을 삭제
  1. 32 22
      web/building_saas/main/js/models/calc_program.js

+ 32 - 22
web/building_saas/main/js/models/calc_program.js

@@ -1854,28 +1854,38 @@
            };
          };
        } else if ((commonCalcType == 1) || (commonCalcType == 3)) {
-         let sum_rtf = 0,
-           sum_rttf = 0;
-         for (let node of nodes) {
-           let ruf = 0,
-             rtuf = 0,
-             rtf = 0,
-             rttf = 0;
-           if (node.data.feesIndex && node.data.feesIndex[ft.type]) {
-             ruf = parseFloatPlus(node.data.feesIndex[ft.type].unitFee).toDecimal(decimalObj.bills.unitPrice);
-             rtuf = parseFloatPlus(node.data.feesIndex[ft.type].tenderUnitFee).toDecimal(decimalObj.bills.unitPrice);
-             rtf = parseFloatPlus(node.data.feesIndex[ft.type].totalFee).toDecimal(decimalObj.bills.totalPrice);
-             rttf = parseFloatPlus(node.data.feesIndex[ft.type].tenderTotalFee).toDecimal(decimalObj.bills.totalPrice);
-           };
-
-           sum_rtf = (sum_rtf + rtf).toDecimal(decimalObj.process);
-           sum_rttf = (sum_rttf + rttf).toDecimal(decimalObj.process);
-         };
-
-         buf = (sum_rtf / bq).toDecimal(decimalObj.process);
-         btuf = (sum_rttf / btq).toDecimal(decimalObj.process);
-         btf = sum_rtf;
-         bttf = sum_rttf;
+           if (treeNode.data.lockUnitPrice == true){       // 清单单价锁定
+               if (treeNode.data.feesIndex && treeNode.data.feesIndex[ft.type]) {
+                   buf = parseFloatPlus(treeNode.data.feesIndex[ft.type].unitFee).toDecimal(decimalObj.bills.unitPrice);
+                   btuf = parseFloatPlus(treeNode.data.feesIndex[ft.type].tenderUnitFee).toDecimal(decimalObj.bills.unitPrice);
+                   btf = (bq * buf).toDecimal(decimalObj.bills.totalPrice);
+                   bttf = (btq * btuf).toDecimal(decimalObj.bills.totalPrice);
+               }
+           }
+           else{
+               let sum_rtf = 0,
+                   sum_rttf = 0;
+               for (let node of nodes) {
+                   let ruf = 0,
+                       rtuf = 0,
+                       rtf = 0,
+                       rttf = 0;
+                   if (node.data.feesIndex && node.data.feesIndex[ft.type]) {
+                       ruf = parseFloatPlus(node.data.feesIndex[ft.type].unitFee).toDecimal(decimalObj.bills.unitPrice);
+                       rtuf = parseFloatPlus(node.data.feesIndex[ft.type].tenderUnitFee).toDecimal(decimalObj.bills.unitPrice);
+                       rtf = parseFloatPlus(node.data.feesIndex[ft.type].totalFee).toDecimal(decimalObj.bills.totalPrice);
+                       rttf = parseFloatPlus(node.data.feesIndex[ft.type].tenderTotalFee).toDecimal(decimalObj.bills.totalPrice);
+                   };
+
+                   sum_rtf = (sum_rtf + rtf).toDecimal(decimalObj.process);
+                   sum_rttf = (sum_rttf + rttf).toDecimal(decimalObj.process);
+               };
+
+               buf = (sum_rtf / bq).toDecimal(decimalObj.process);
+               btuf = (sum_rttf / btq).toDecimal(decimalObj.process);
+               btf = sum_rtf;
+               bttf = sum_rttf;
+           }
 
          if (calcTools.isBillProject() && (ft.type == 'common' || ft.type == 'rationCommon')) { // 招投标项目, 还要反算
            buf = buf.toDecimal(decimalObj.bills.unitPrice);