Selaa lähdekoodia

订单商品原价计算逻辑变更

hu 1 vuosi sitten
vanhempi
commit
86b8e91dbc

+ 2 - 2
src/custom/restcontroller/webmanage/sale/order/OrderItems.java

@@ -154,11 +154,11 @@ public class OrderItems extends Controller {
             if (!item.containsKey("defaultprice")) {
                 defaultprice = orderItemsHelper.getDefaultprice(itemPrice);
                 price = orderItemsHelper.getPrice(orderRows.get(0), itemPrice, item, itemRowsMap);
-                saleprice = orderItemsHelper.getSalePrice(orderRows.get(0), itemPrice);
+                saleprice = orderItemsHelper.getSalePrice(orderRows.get(0), itemPrice,item,itemRowsMap);
             } else {
                 defaultprice = item.getBigDecimalValue("defaultprice");
                 price = item.getBigDecimalValue("price");
-                saleprice = orderItemsHelper.getSalePrice(orderRows.get(0), itemPrice);
+                saleprice = orderItemsHelper.getSalePrice(orderRows.get(0), itemPrice,item,itemRowsMap);
                 if (price.compareTo(price1) != 0) {
                     sqlList.add(DataContrlLog.createLog(this, "sa_order", sa_orderid, "订单商品【" + itemRow.getString("itemname") + "】由单价:" + price1 + "修改为单价:" + price, "订单修改单价").getSQL());
                 }

+ 10 - 10
src/custom/restcontroller/webmanage/sale/order/OrderItemsHelper.java

@@ -776,18 +776,18 @@ public class OrderItemsHelper extends BaseClass {
         return price;
     }
 
-    public BigDecimal getSalePrice(Row orderRow, ItemPrice itemPrice) throws YosException {
-        String type = orderRow.getString("type");
-        Long sa_promotionid = orderRow.getLong("sa_promotionid");
-        BigDecimal price;
-        switch (type) {
-            case "促销订单":
-                price = itemPrice.getPromotionPrice(sa_promotionid);
-                break;
-            default:
-                price = itemPrice.getGraderateprice();
+    public BigDecimal getSalePrice(Row orderRow, ItemPrice itemPrice,JSONObject item,RowsMap itemRowsMap) throws YosException {
+        BigDecimal price = itemPrice.getGraderateprice();
+        if (itemRowsMap.containsKey(item.getString("itemid"))) {
+            if (itemRowsMap.get(item.getString("itemid")).isNotEmpty()) {
+                if (itemRowsMap.get(item.getString("itemid")).get(0).getBoolean("iscustomsize") && itemRowsMap.get(item.getString("itemid")).get(0).getLong("pricingmetod") == 1) {
+                    price = price.multiply(item.getBigDecimalValue("length").multiply(item.getBigDecimalValue("width")).divide(new BigDecimal("1000000"), 4, BigDecimal.ROUND_HALF_UP));
+                }
+
+            }
         }
 
+
         return price;
     }