Преглед изворни кода

创建销售出库单填入收货人信息

hu пре 5 месеци
родитељ
комит
54b465b0d1

+ 31 - 0
src/custom/restcontroller/webmanage/sale/stockbill/stockbill.java

@@ -71,6 +71,12 @@ public class stockbill extends Controller {
         String logisticsmethod = content.getStringValue("logisticsmethod");
         Rows invoicerows = dbConnect.runSqlQuery("select * from sys_enterprise_finance where sys_enterpriseid=" + sys_enterpriseid + " order by isdefault desc");
         Rows addressrows = dbConnect.runSqlQuery("select * from sys_enterprise_contacts where sys_enterpriseid=" + sys_enterpriseid + " order by isdefault desc");
+        RowsMap addressrowsMap = addressrows.toRowsMap("type");
+        Rows departmentrows = dbConnect.runSqlQuery("select depname from sys_department where departmentid=" + departmentid);
+        String depname="";
+        if(departmentrows.isNotEmpty()){
+            depname=departmentrows.get(0).getString("depname");
+        }
         String invoice_enterprisename = content.getStringValue("invoice_enterprisename");
         String invoice_address = content.getStringValue("invoice_address");
         String invoice_taxno = content.getStringValue("invoice_taxno");
@@ -114,7 +120,32 @@ public class stockbill extends Controller {
             } else {
                 insertSQL.setValue("billno", createBillCode("stockbill"));
             }
+            String name="";
+            String phonenumber="";
+            String address="";
+            if (content.getString("rb").equals("1") && type.equals("销售出库")) {
+                if(depname.equals("售后部")){
+                    if(addressrowsMap.containsKey("配件")){
+                        name=addressrowsMap.get("配件").get(0).getString("name");
+                        phonenumber=addressrowsMap.get("配件").get(0).getString("phonenumber");
+                        address=addressrowsMap.get("配件").get(0).getString("address");
+                    }else if(addressrowsMap.containsKey("收货")){
+                        name=addressrowsMap.get("收货").get(0).getString("name");
+                        phonenumber=addressrowsMap.get("收货").get(0).getString("phonenumber");
+                        address=addressrowsMap.get("收货").get(0).getString("address");
+                    }
+                }else{
+                    if(addressrowsMap.containsKey("收货")){
+                        name=addressrowsMap.get("收货").get(0).getString("name");
+                        phonenumber=addressrowsMap.get("收货").get(0).getString("phonenumber");
+                        address=addressrowsMap.get("收货").get(0).getString("address");
+                    }
+                }
+            }
 
+            insertSQL.setValue("name", name);
+            insertSQL.setValue("phonenumber", phonenumber);
+            insertSQL.setValue("address", address);
             insertSQL.setValue("outplace", outplace);
             insertSQL.setValue("delivery", delivery);
             insertSQL.setValue("logisticsmethod", logisticsmethod);

+ 16 - 1
src/custom/restcontroller/webmanage/sale/stockbill/stockbillitems.java

@@ -13,6 +13,7 @@ import common.annotation.API;
 import common.annotation.CACHEING;
 import common.annotation.CACHEING_CLEAN;
 import common.data.*;
+import org.apache.commons.lang.StringUtils;
 import restcontroller.R;
 
 import java.math.BigDecimal;
@@ -151,7 +152,7 @@ public class stockbillitems extends Controller {
         Long st_stockbillid = content.getLong("st_stockbillid");
         JSONArray iteminfos = content.getJSONArray("iteminfos");
         ArrayList<String> sqlList = new ArrayList<>();
-        Rows rowscount = dbConnect.runSqlQuery("select billno,status,sourceobject,stockid,type from st_stockbill where st_stockbillid=" + st_stockbillid);
+        Rows rowscount = dbConnect.runSqlQuery("select billno,status,sourceobject,stockid,type,name,phonenumber,address from st_stockbill where st_stockbillid=" + st_stockbillid);
         if (!rowscount.isEmpty()) {
             if (!rowscount.get(0).getString("status").equals("新建")) {
                 return getErrReturnObject().setErrMsg("非新建状态的出库单无法新增修改").toString();
@@ -207,6 +208,12 @@ public class stockbillitems extends Controller {
                         }else{
                             insertSQL.setValue("stockid", stockRowsMap.get("101").get(0).getLong("stockid"));
                         }
+                    }else if(rowscount.get(0).getString("type").equals("其他出库")){
+                        if(rowscount.get(0).getLong("stockid")!=0){
+                            insertSQL.setValue("stockid", rowscount.get(0).getLong("stockid"));
+                        }else{
+                            insertSQL.setValue("stockid",itemRowsMap.containsKey(iteminfo.getStringValue("itemid"))?itemRowsMap.get(iteminfo.getStringValue("itemid")).get(0).getLong("stockid"):iteminfo.getLongValue("stockid"));
+                        }
                     }else{
                         insertSQL.setValue("stockid", iteminfo.getLong("stockid"));
                     }
@@ -230,6 +237,14 @@ public class stockbillitems extends Controller {
                 insertSQL.setValue("untaxedamount", iteminfo.getBigDecimal("qty").multiply(iteminfo.getBigDecimal("price").divide(new BigDecimal(1.13),2, BigDecimal.ROUND_HALF_UP)));
                 insertSQL.setValue("skucontrol", itemRowsMap.containsKey(iteminfo.getStringValue("itemid"))?itemRowsMap.get(iteminfo.getStringValue("itemid")).get(0).getBoolean("skucontrol"):iteminfo.getBoolean("skucontrol"));
                 i++;
+                if(StringUtils.isBlank(rowscount.get(0).getString("name"))
+                        || StringUtils.isBlank(rowscount.get(0).getString("phonenumber"))
+                        ||  StringUtils.isBlank(rowscount.get(0).getString("address"))){
+                    Rows orderRows =dbConnect.runSqlQuery("select * from sa_order where sa+sa_orderid="+iteminfo.getLongValue("sa_orderid"));
+                    if(orderRows.isNotEmpty()){
+                        sqlList.add("update st_stockbill set name='"+orderRows.get(0).getString("contact")+"',phonenumber='"+orderRows.get(0).getString("phonenumber")+"',address='"+orderRows.get(0).getString("address")+"' where st_stockbillid="+st_stockbillid);
+                    }
+                }
                 sqlList.add(insertSQL.getSQL());
             } else {
                 Rows rows = dbConnect.runSqlQuery(