Procházet zdrojové kódy

销售订单-计算折后单价

jingbb před 2 měsíci
rodič
revize
1a11c5fe38

+ 21 - 14
src/views/saleCode/salesOrder/components/SlaeOrderFormForm.vue

@@ -749,6 +749,7 @@
           item.id=undefined;
           item.sourceType = 'Quo' + item.childId;
           item.taxPrice = item.salePrice;
+          item.discount = formData.doubleDiscount !== ''?formData.doubleDiscount:0;
           if (formData.doubleDiscount && formData.doubleDiscount !== '') {
             item.discountedPrice = Number(item.taxPrice) * (1 - Number(item.discount) / 100);
           } else {
@@ -790,13 +791,18 @@
         }
       }
       function changeDiscount() {
-        var detail = [...SaleOrderFormShipFormProductTable.dataSource];
-        var num = 0;
+        var xTable = SaleOrderFormShipFormProductTableRef.value!.getXTable();
+        var detail = xTable.data,
+        num = 0;
         detail.map((item) => {
+          item.discount = formData.doubleDiscount
+          item.discountedPrice = (Number(item.taxPrice) * (1 - Number(item.discount) / 100)).toFixed(2);
+          item.discountedAmount = (Number(item.discountedPrice) * Number(item.quantity)).toFixed(2);
           num = num + Number(item.discountedAmount);
         });
-        formData.convertedAmount = num * (1 - Number(formData.doubleDiscount) / 100);
-        formData.convertedAmount = Number(formData.convertedAmount).toFixed(2);
+        SaleOrderFormShipFormProductTable.dataSource = detail;
+        // formData.convertedAmount = num * (1 - Number(formData.doubleDiscount) / 100);
+        formData.convertedAmount = num
       }
       async function addContract(data) {
         var allDiscountPrice = 0;
@@ -805,6 +811,7 @@
           item.deliveryTime = formData.deliveryTime&&formData.deliveryTime!==''?formData.deliveryTime:item.deliveryTime;
           item.sourceId = item.childId;
           item.sourceType = 'Con' + item.childId;
+          item.discount = formData.doubleDiscount !== ''?formData.doubleDiscount:0;
           if (formData.doubleDiscount && formData.doubleDiscount !== '') {
             item.discountedPrice = Number(item.taxPrice) * (1 - Number(item.discount) / 100);
           } else {
@@ -885,16 +892,16 @@
         }
       }
       function changeValues(prop) {
-        if (prop.col.key == 'discountedPrice' && prop.row.quantity && prop.row.discountedPrice) {
-          prop.row.discountedAmount = (prop.value * prop.row.quantity).toFixed(2);
-          var arr = SaleOrderFormShipFormProductTableRef.value.getTableData();
-          var allAmount = 0;
-          arr.map((item) => {
-            allAmount = allAmount + Number(item.discountedAmount);
-          });
-          formData.convertedAmount = allAmount;
-          formData.convertedAmount = Number(formData.convertedAmount).toFixed(2);
-        }
+        // if (prop.col.key == 'discountedPrice' && prop.row.quantity && prop.row.discountedPrice) {
+        //   prop.row.discountedAmount = (prop.value * prop.row.quantity).toFixed(2);
+        //   var arr = SaleOrderFormShipFormProductTableRef.value.getTableData();
+        //   var allAmount = 0;
+        //   arr.map((item) => {
+        //     allAmount = allAmount + Number(item.discountedAmount);
+        //   });
+        //   formData.convertedAmount = allAmount;
+        //   formData.convertedAmount = Number(formData.convertedAmount).toFixed(2);
+        // }
         if (prop.col.key == 'quantity' && prop.row.quantity && prop.row.discountedPrice&& prop.row.taxPrice) {
           prop.row.taxAmount = (prop.value * prop.row.taxPrice).toFixed(2);
           prop.row.discountedAmount = (prop.value * prop.row.discountedPrice).toFixed(2);