Просмотр исходного кода

Merge remote-tracking branch 'origin/develop' into develop

沈静伟 2 лет назад
Родитель
Сommit
91ba9b685c

+ 2 - 6
src/custom/restcontroller/sale/itemgroup/itemgroup.java

@@ -224,7 +224,7 @@ public class itemgroup extends Controller {
         /**
          * 查询商品明细
          */
-        SQLFactory sqlFactory = new SQLFactory(this, "查询商品列表", pageSize, pageNumber, pageSorting);
+        SQLFactory sqlFactory = new SQLFactory(this, "查询商品列表");
         sqlFactory.addParameter_in("itemids", ids);
         sqlFactory.addParameter("siteid", siteid);
         Rows itemrows = dbConnect.runSqlQuery(sqlFactory.getSQL());
@@ -252,11 +252,7 @@ public class itemgroup extends Controller {
         RowsMap itemclassRowsMap = rowsitemclass.toRowsMap("itemid");
         for (Row row : rows) {
             Rows itemRows = itemRowsMap.get(row.getString("itemid"));
-            if (!itemRows.isEmpty()) {
-                row.put("item",itemRows);
-            } else {
-                row.put("item", new Rows());
-            }
+            row.put("item",itemRows);
 
             Rows coverRows = coverRowsMap.get(row.getString("itemid"));
             if (coverRows.isEmpty()) {

+ 46 - 4
src/custom/restcontroller/webmanage/sale/order/Order.java

@@ -113,7 +113,16 @@ public class Order extends Controller {
             sqlFactory.addParameter("sa_accountclassid", "69");
             sqlList.addAll(updateAccountclassinfos(sa_orderid, 69, sys_enterpriseid));
         } else {
-            sqlFactory.addParameter("sa_accountclassid", beans.order.Order.getDefaultAccount(siteid, type));
+            if(type.equals("促销订单")){
+                Rows accountclassRows = dbConnect.runSqlQuery("select sa_accountclassid from sa_promotion where siteid='"+siteid+"' and sa_promotionid="+content.getLongValue("sa_promotionid"));
+                if(!accountclassRows.isEmpty()){
+                    sqlFactory.addParameter("sa_accountclassid", accountclassRows.get(0).getLong("sa_accountclassid"));
+                }else{
+                    sqlFactory.addParameter("sa_accountclassid", beans.order.Order.getDefaultAccount(siteid, type));
+                }
+            }else{
+                sqlFactory.addParameter("sa_accountclassid", beans.order.Order.getDefaultAccount(siteid, type));
+            }
             sqlList.addAll(updateAccountclassinfos(sa_orderid, beans.order.Order.getDefaultAccount(siteid, type), sys_enterpriseid));
         }
         //品牌ID
@@ -280,8 +289,19 @@ public class Order extends Controller {
         //营销账户类型ID
         if ((type.equals("标准订单") || type.equals("特殊订单")) && content.getString("tradefield").equals("整装工程")) {
             sqlFactory.addParameter("sa_accountclassid", "69");
+
         } else {
-            sqlFactory.addParameter("sa_accountclassid", beans.order.Order.getDefaultAccount(siteid, type));
+            if(type.equals("促销订单")){
+                Rows accountclassRows = dbConnect.runSqlQuery("select sa_accountclassid from sa_promotion where siteid='"+siteid+"' and sa_promotionid="+content.getLongValue("sa_promotionid"));
+                if(!accountclassRows.isEmpty()){
+                    sqlFactory.addParameter("sa_accountclassid", accountclassRows.get(0).getLong("sa_accountclassid"));
+                }else{
+                    sqlFactory.addParameter("sa_accountclassid", beans.order.Order.getDefaultAccount(siteid, type));
+                }
+            }else{
+                sqlFactory.addParameter("sa_accountclassid", beans.order.Order.getDefaultAccount(siteid, type));
+            }
+
         }
 
         //品牌ID
@@ -365,7 +385,17 @@ public class Order extends Controller {
         if ((type.equals("标准订单") || type.equals("特殊订单")) && content.getString("tradefield").equals("整装工程")) {
             sqlList1.addAll(updateAccountclassinfos(sa_orderid, 69, sys_enterpriseid));
         } else {
-            sqlList1.addAll(updateAccountclassinfos(sa_orderid, beans.order.Order.getDefaultAccount(siteid, type), sys_enterpriseid));
+            if(type.equals("促销订单")){
+                Rows accountclassRows = dbConnect.runSqlQuery("select sa_accountclassid from sa_promotion where siteid='"+siteid+"' and sa_promotionid="+content.getLongValue("sa_promotionid"));
+                if(!accountclassRows.isEmpty()){
+                    sqlList1.addAll(updateAccountclassinfos(sa_orderid, accountclassRows.get(0).getLong("sa_accountclassid"), sys_enterpriseid));
+                }else{
+                    sqlList1.addAll(updateAccountclassinfos(sa_orderid, beans.order.Order.getDefaultAccount(siteid, type), sys_enterpriseid));
+                }
+            }else{
+                sqlList1.addAll(updateAccountclassinfos(sa_orderid, beans.order.Order.getDefaultAccount(siteid, type), sys_enterpriseid));
+            }
+
         }
 
         dbConnect.runSqlUpdate(sqlList1);
@@ -1573,6 +1603,7 @@ public class Order extends Controller {
             return getErrReturnObject().setErrMsg("订单不存在").toString();
         }
         Row row = rows.get(0);
+
         if (dbConnect.runSqlQuery("SELECT 1 from sa_dispatch t1 left join sa_dispatch_items t2 on t1.sa_dispatchid=t2.sa_dispatchid and t1.siteid=t2.siteid left join sa_orderitems t3 on t2.sa_orderitemsid=t3.sa_orderitemsid and t2.siteid=t3.siteid WHERE t1.siteid='" + siteid + "' and t3.sa_orderid=" + sa_orderid).isNotEmpty()) {
             return getErrReturnObject().setErrMsg("存在发货单,无法反审核").toString();
         }
@@ -1750,6 +1781,14 @@ public class Order extends Controller {
         if (rows.isEmpty()) {
             return getErrReturnObject().setErrMsg("订单不存在").toString();
         }
+        if (!rows.get(0).getString("status").equals("提交")) {
+            return getErrReturnObject().setErrMsg("订单非提交状态无法退回").toString();
+        }
+        if(rows.get(0).getLong("sa_promotionid")!=0){
+            if (dbConnect.runSqlQuery("SELECT 1 FROM sa_promotion WHERE CURRENT_TIME> enddate AND siteid='" + siteid + "' AND sa_promotionid='" + rows.get(0).getLong("sa_promotionid") + "'").isNotEmpty()) {
+                //return getErrReturnObject().setErrMsg("活动已结束,是否确认退回,退回后无法再次提交").toString();
+            }
+        }
         //通过版本更新订单表头数据
         beans.order.Order.updateOrderWithVersion(this);
         Row row = rows.get(0);
@@ -2509,7 +2548,7 @@ public class Order extends Controller {
         } else {
             sqlFactory.addParameter("rebate_used", 0);
         }
-
+        sqlList.add(DataContrlLog.createLog(this, "sa_order", sa_orderid_copy, "订单复制", "由订单" +row.getString("sonum")+"复制而来").getSQL());
         sqlList.add(sqlFactory.getSQL());
 
         //复制商品
@@ -2961,6 +3000,7 @@ public class Order extends Controller {
                 CashbillEntity entity = new CashbillEntity();
                 entity.setAmount(totalprice.negate());
                 entity.setSource("订单手工关闭");
+                entity.setSourcenote(orderRow.get(0).getString("sonum"));
                 entity.setOwnerid(sa_orderid);
                 entity.setOwnertable("sa_order");
                 entity.setRemarks("由" + orderRow.get(0).getString("sonum") + "订单手工关闭时自动产生");
@@ -2973,6 +3013,7 @@ public class Order extends Controller {
                 CashbillEntity entity = new CashbillEntity();
                 entity.setAmount(orderaccountclassinfo.getBigDecimal("amount").negate());
                 entity.setSource("订单手工关闭");
+                entity.setSourcenote(orderRow.get(0).getString("sonum"));
                 entity.setOwnerid(sa_orderid);
                 entity.setOwnertable("sa_order");
                 entity.setRemarks("由" + orderRow.get(0).getString("sonum") + "订单手工关闭时自动产生");
@@ -2985,6 +3026,7 @@ public class Order extends Controller {
                 CashbillEntity  promotionentity = new CashbillEntity();
                 promotionentity.setAmount((totalprice.subtract(orderaccountclassinfo.getBigDecimal("amount"))).negate());
                 promotionentity.setSource("订单手工关闭");
+                promotionentity.setSourcenote(orderRow.get(0).getString("sonum"));
                 promotionentity.setOwnerid(sa_orderid);
                 promotionentity.setOwnertable("sa_order");
                 promotionentity.setRemarks("由" + orderRow.get(0).getString("sonum") + "订单手工关闭时自动产生");

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

@@ -342,6 +342,10 @@ public class OrderItems extends Controller {
 //            dbConnect.runSqlUpdate("UPDATE sa_orderitems SET amount=amount-rebateamount,price=amount/qty WHERE sa_orderid='" + sa_orderid + "' and siteid='" + siteid + "' and qty!=0");
 //            dbConnect.runSqlUpdate("UPDATE sa_orderitems SET amount=0 WHERE sa_orderid='" + sa_orderid + "' and siteid='" + siteid + "' and qty=0");
 //        }
+
+
+        updateAccountclassinfos(sa_orderid);
+
         return getSucReturnObject().toString();
     }
 
@@ -416,7 +420,10 @@ public class OrderItems extends Controller {
                 sqlList.add("update sa_orderitems set price=" + price + ",amount=" + amount + " where sa_orderitemsid=" + row.getLong("sa_orderitemsid"));
             }
         }
+        sqlList.add(DataContrlLog.createLog(this, "sa_order", sa_orderid, "订单整单折扣变更【"+discountrate+"】","整单折扣").getSQL());
         dbConnect.runSqlUpdate(sqlList);
+
+        updateAccountclassinfos(sa_orderid);
         return getSucReturnObject().toString();
     }
 
@@ -457,7 +464,9 @@ public class OrderItems extends Controller {
                 sqlList.add("update sa_orderitems set price=" + price + ",amount=" + amount + " where sa_orderitemsid=" + row.getLong("sa_orderitemsid"));
             }
         }
+        sqlList.add(DataContrlLog.createLog(this, "sa_order", sa_orderid, "订单商品行价格刷新(恢复原价)","订单商品行价格刷新").getSQL());
         dbConnect.runSqlUpdate(sqlList);
+        updateAccountclassinfos(sa_orderid);
         return getSucReturnObject().toString();
     }
 
@@ -721,7 +730,7 @@ public class OrderItems extends Controller {
                 }else if(convenient.equals("待审核")){
                     where.append(" and t5.status ='提交' ");
                 }else if(convenient.equals("待发货")){
-                    where.append(" t5.status not in ('预提交','新建') and not exists(select 1 from st_stockbill_items s1 inner join st_stockbill s2 on s1.st_stockbillid=s2.st_stockbillid and s1.siteid=s2.siteid where s2.status='审核' and s2.rb=1 and s1.sa_orderitemsid=t1.sa_orderitemsid)");
+                    where.append(" and t5.status not in ('预提交','新建') and not exists(select 1 from st_stockbill_items s1 inner join st_stockbill s2 on s1.st_stockbillid=s2.st_stockbillid and s1.siteid=s2.siteid where s2.status='审核' and s2.rb=1 and s1.sa_orderitemsid=t1.sa_orderitemsid)");
                 }else if(convenient.equals("已发货")){
                     where.append(" and exists(select 1 from st_stockbill_items s1 inner join st_stockbill s2 on s1.st_stockbillid=s2.st_stockbillid and s1.siteid=s2.siteid where s2.status='审核' and s2.rb=1 and s1.sa_orderitemsid=t1.sa_orderitemsid)");
                 }else if(convenient.equals("已取消")){

+ 1 - 1
src/custom/restcontroller/webmanage/sale/promotion/SQL/商品查询.sql

@@ -12,7 +12,7 @@ SELECT
 FROM
 	plm_item t1
 	 LEFT JOIN plm_unit t2 ON t2.unitid = t1.unitid AND t2.siteid = t1.siteid
-	where $where$ and t1.siteid=$siteid$ and t1.status='审核' and t1.itemid not in (select itemid from sa_promotion_items where sa_promotionid=$sa_promotionid$)
+	where $where$ and t1.siteid=$siteid$ and t1.status='审核'
 	  and t1.itemid in (SELECT itemid
                     from plm_item_tradefield
                     WHERE ($where1$)

+ 5 - 1
src/custom/restcontroller/webmanage/sale/promotion/promotionItems.java

@@ -36,6 +36,11 @@ public class promotionItems extends Controller {
          */
         String where = " 1=1 ";
         String where1 = " 1=1 ";
+
+        Long sa_promotionid = content.getLong("sa_promotionid");
+        if (!beans.order.Order.getDefaultIsRepeatValue(siteid, "促销订单")) {
+            where=where+" and t1.itemid not in (select itemid from sa_promotion_items where sa_promotionid="+sa_promotionid+") ";
+        }
         if (content.containsKey("where")) {
             JSONObject whereObject = content.getJSONObject("where");
             if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
@@ -62,7 +67,6 @@ public class promotionItems extends Controller {
             sql = sql.replace("[", "(").replace("]", ")");
             where = where + sql;
         }
-        Long sa_promotionid = content.getLong("sa_promotionid");
         Rows tradefieldrows = dbConnect.runSqlQuery("select tradefield from sa_promotion where siteid='" + siteid + "' and sa_promotionid=" + sa_promotionid);
         JSONArray tradefield = new JSONArray();
         if (!tradefieldrows.isEmpty()) {