Browse Source

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

zhoudw 7 years ago
parent
commit
7510914d93
63 changed files with 600 additions and 1347 deletions
  1. 2 0
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/po/BillCodeSeq.java
  2. 5 4
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/ExcelServiceImpl.java
  3. 6 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/CustomerController.java
  4. 7 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/VendorController.java
  5. 4 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/BankinformationMapper.java
  6. 2 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/CustomerMapper.java
  7. 2 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/VendorMapper.java
  8. 2 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/CustomerService.java
  9. 2 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/VendorService.java
  10. 26 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/BankinformationServiceImpl.java
  11. 69 4
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CustomerServiceImpl.java
  12. 69 4
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/VendorServiceImpl.java
  13. 2 3
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/WarehouseServiceImpl.java
  14. 8 0
      applications/document/document-server/src/main/resources/mapper/BankinformationMapper.xml
  15. 3 0
      applications/document/document-server/src/main/resources/mapper/CustomerMapper.xml
  16. 4 0
      applications/document/document-server/src/main/resources/mapper/VendorMapper.xml
  17. 1 1
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java
  18. 1 1
      applications/sale/sale-server/src/main/resources/mapper/ProdInOutMapper.xml
  19. 2 0
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/AccountCenterServiceImpl.java
  20. 1 1
      frontend/saas-portal-web/src/components/conenter/company.vue
  21. 17 5
      frontend/saas-portal-web/src/components/conenter/enterprise.vue
  22. 23 36
      frontend/saas-portal-web/src/components/conenter/problem.vue
  23. 1 1
      frontend/saas-portal-web/src/components/conenter/qiyexiangxi.vue
  24. 25 0
      frontend/saas-portal-web/src/pages/cell/cell.html
  25. 0 0
      frontend/saas-portal-web/src/pages/cell/cell.js
  26. 15 0
      frontend/saas-portal-web/src/pages/cell/cell.vue
  27. 0 108
      frontend/saas-portal-web/static/css/animate.css
  28. 3 3
      frontend/saas-portal-web/static/css/gongsi.css
  29. 40 920
      frontend/saas-portal-web/static/css/main.css
  30. 5 3
      frontend/saas-web/app/view/core/base/GridPanel.js
  31. 26 3
      frontend/saas-web/app/view/core/dbfind/types/ProductDbfindTrigger.js
  32. 25 23
      frontend/saas-web/app/view/core/dbfind/types/ProductMultiDbfindTrigger.js
  33. 5 1
      frontend/saas-web/app/view/core/form/FormPanel.js
  34. 6 44
      frontend/saas-web/app/view/core/report/ReportPanel.js
  35. 3 0
      frontend/saas-web/app/view/document/kind/Kind.js
  36. 1 1
      frontend/saas-web/app/view/home/infoCardList/Payment.js
  37. 17 23
      frontend/saas-web/app/view/home/infoCardList/SaleOut.js
  38. 1 1
      frontend/saas-web/app/view/home/infoCardList/UnauditCheckIn.js
  39. 8 6
      frontend/saas-web/app/view/main/Navigation.scss
  40. 1 1
      frontend/saas-web/app/view/money/payBalance/FormPanel.js
  41. 2 2
      frontend/saas-web/app/view/money/payBalance/FormPanelController.js
  42. 1 1
      frontend/saas-web/app/view/money/recBalance/FormPanel.js
  43. 6 6
      frontend/saas-web/app/view/money/report/CustomerCheck.js
  44. 14 4
      frontend/saas-web/app/view/money/report/PayDetail.js
  45. 22 8
      frontend/saas-web/app/view/money/report/RecDetail.js
  46. 6 6
      frontend/saas-web/app/view/money/report/VendorCheck.js
  47. 50 0
      frontend/saas-web/app/view/money/verification/FormPanelController.js
  48. 1 1
      frontend/saas-web/app/view/purchase/purchaseIn/FormPanel.js
  49. 1 0
      frontend/saas-web/app/view/purchase/purchaseIn/QueryPanel.js
  50. 1 1
      frontend/saas-web/app/view/purchase/purchaseOut/FormPanel.js
  51. 2 23
      frontend/saas-web/app/view/sale/sale/FormPanel.js
  52. 5 11
      frontend/saas-web/app/view/sale/sale/FormPanelController.js
  53. 1 1
      frontend/saas-web/app/view/sale/saleIn/FormPanel.js
  54. 13 11
      frontend/saas-web/app/view/sale/saleIn/FormPanelController.js
  55. 1 1
      frontend/saas-web/app/view/sale/saleOut/FormPanel.js
  56. 9 2
      frontend/saas-web/app/view/sale/saleOut/FormPanelController.js
  57. 1 1
      frontend/saas-web/app/view/stock/appropriationInOut/FormPanel.js
  58. 10 8
      frontend/saas-web/app/view/stock/make/FormPanel.js
  59. 0 53
      frontend/saas-web/app/view/stock/make/FormPanelController.js
  60. 1 1
      frontend/saas-web/app/view/stock/otherIn/FormPanel.js
  61. 1 1
      frontend/saas-web/app/view/stock/otherOut/FormPanel.js
  62. 4 0
      frontend/saas-web/ext/packages/ux/src/feature/MySummary.js
  63. 8 8
      frontend/saas-web/resources/json/navigation.json

+ 2 - 0
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/po/BillCodeSeq.java

@@ -14,6 +14,8 @@ public enum  BillCodeSeq {
 
     VENDOR("供应商资料", "Vendor"),
 
+    BANKINFORMATION("资金账户资料", "Bankinformation"),
+
     WAREHOUSE("仓库资料", "Warehouse"),
 
     PURCHASE("采购订单", "Purchase"),

+ 5 - 4
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/ExcelServiceImpl.java

@@ -84,10 +84,11 @@ public class ExcelServiceImpl implements ExcelService{
         di.setDi_toformal(0);
         di.setDi_success(0);
         List<Map<String,String>> datas = new ArrayList<Map<String,String>>();
-        String cols = "[{\"description\":\"物料编号\",\"necessary\":\"true\",\"position\":\"main\",\"field\":\"pr_code\",\"codefield\":true}," +
-                "{\"description\":\"物料名称\",\"necessary\":\"true\",\"position\":\"main\",\"field\":\"pr_detail\",\"codefield\":false},{\"description\":\"规格\",\"necessary\":\"true\",\"position\":\"main\",\"field\":\"pr_spec\",\"codefield\":false},{\"description\":\"类型\",\"necessary\":\"true\",\"position\":\"main\",\"field\":\"pr_kind\",\"codefield\":false},{\"description\":\"型号\",\"necessary\":\"false\",\"position\":\"main\",\"field\":\"pr_orispeccode\",\"codefield\":false}" +
-                ",{\"description\":\"品牌\",\"necessary\":\"false\",\"position\":\"main\",\"field\":\"pr_brand\",\"codefield\":false},{\"description\":\"单位\",\"necessary\":\"true\",\"position\":\"main\",\"field\":\"pr_unit\",\"codefield\":false},{\"description\":\"仓库编号\",\"necessary\":\"false\",\"position\":\"main\",\"field\":\"pr_whcode\",\"codefield\":false},{\"description\":\"仓库名称\",\"necessary\":\"false\",\"position\":\"main\",\"field\":\"pr_whname\",\"codefield\":false},{\"description\":\"最新采购单价\",\"necessary\":\"false\",\"position\":\"main\",\"field\":\"pr_purcprice\",\"codefield\":false}" +
-                ",{\"description\":\"最新出货单价\",\"necessary\":\"false\",\"position\":\"main\",\"field\":\"pr_saleprice\",\"codefield\":false},{\"description\":\"替代料仓库编号\",\"necessary\":\"true\",\"position\":\"detail\",\"field\":\"pd_whcode\",\"codefield\":false},{\"description\":\"替代料仓库名称\",\"necessary\":\"false\",\"position\":\"detail\",\"field\":\"pd_whname\",\"codefield\":false},{\"description\":\"期初数量\",\"necessary\":\"true\",\"position\":\"detail\",\"field\":\"pd_num\",\"codefield\":false},{\"description\":\"单位成本\",\"necessary\":\"true\",\"position\":\"detail\",\"field\":\"pd_price\",\"codefield\":false}]";
+        DataTemplet dataTemplet = dataTempletMapper.selectByCaller(caller, companyId);
+        String cols = dataTemplet.getDt_columns();
+        if (StringUtils.isEmpty(cols)) {
+            throw new BizException(12135, "没有查询到对应的excel配置");
+        }
         //前端列表信息
         List<TempletSet> templetSets = JSONArray.parseArray(cols, TempletSet.class);
         Map<String, List<TempletSet>> columns = CollectionUtils.groupBy(templetSets, TempletSet::getPosition);

+ 6 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/CustomerController.java

@@ -174,4 +174,10 @@ public class CustomerController {
         return Result.success();
     }
 
+    //导入保存至列表
+    @RequestMapping("/saveToFormal")
+    public Result saveToFormal(Integer id, boolean update) {
+        customerService.saveToFormal(id, update);
+        return Result.success();
+    }
 }

+ 7 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/VendorController.java

@@ -134,4 +134,11 @@ public class VendorController {
         return Result.success();
     }
 
+    //导入保存至列表
+    @RequestMapping("/saveToFormal")
+    public Result saveToFormal(Integer id, boolean update) {
+        vendorService.saveToFormal(id, update);
+        return Result.success();
+    }
+
 }

+ 4 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/BankinformationMapper.java

@@ -31,4 +31,8 @@ public interface BankinformationMapper extends CommonBaseMapper<Bankinformation>
 
     Double selectamount(Long id);
 
+    int validateCodeWhenInsert(@Param("code") String code, @Param("companyId") Long companyId);
+
+    int validateCodeWhenUpdate(@Param("code") String code, @Param("id") Long id, @Param("companyId") Long company);
+
 }

+ 2 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/CustomerMapper.java

@@ -37,4 +37,6 @@ public interface CustomerMapper extends CommonBaseMapper<Customer> {
     int validNameAndCodeWhenRelated(Customer customer);
 
     List<ComboDTO> getCombo(@Param("id") Long id,@Param("companyId") Long companyId);
+
+    Long selectIdByCode(@Param("code") String code, @Param("companyId") Long companyId);
 }

+ 2 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/VendorMapper.java

@@ -31,4 +31,6 @@ public interface VendorMapper extends CommonBaseMapper<Vendor> {
     int validFinish(@Param("id") Long id,@Param("companyId") Long companyId);
 
     void check(Map<String, Object> map);
+
+    Long selectIdByCode(@Param("code") String code, @Param("companyId") Long companyId);
 }

+ 2 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/CustomerService.java

@@ -44,4 +44,6 @@ public interface CustomerService extends CommonBaseService<CustomerMapper, Custo
     PageInfo<CustomerList> getDbfind(PageRequest page, ListReqDTO listReqDTO);
 
     List<ComboDTO> getAddressCombo(Long id);
+
+    void saveToFormal(Integer id, boolean update);
 }

+ 2 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/VendorService.java

@@ -95,4 +95,6 @@ public interface VendorService extends CommonBaseService<VendorMapper, Vendor>{
      * @return
      */
     boolean batchDelete(BatchDealBaseDTO baseDTOs);
+
+    void saveToFormal(Integer id, boolean update);
 }

+ 26 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/BankinformationServiceImpl.java

@@ -3,11 +3,13 @@ package com.usoftchina.saas.document.service.impl;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
+import com.usoftchina.saas.commons.api.MaxnumberService;
 import com.usoftchina.saas.commons.api.MessageLogService;
 import com.usoftchina.saas.commons.dto.ComboDTO;
 import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.commons.exception.BizExceptionCode;
+import com.usoftchina.saas.commons.po.BillCodeSeq;
 import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.document.entities.Bankinformation;
 import com.usoftchina.saas.document.entities.Banksubledger;
@@ -17,6 +19,7 @@ import com.usoftchina.saas.document.service.BankinformationService;
 import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.utils.DateUtils;
+import com.usoftchina.saas.utils.RegexpUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -41,6 +44,8 @@ public class BankinformationServiceImpl extends CommonBaseServiceImpl<Bankinform
     private BanksubledgerMapper banksubledgerMapper;
     @Autowired
     private MessageLogService messageLogService;
+    @Autowired
+    private MaxnumberService maxnumberService;
 
     @Transactional
     @Override
@@ -53,6 +58,9 @@ public class BankinformationServiceImpl extends CommonBaseServiceImpl<Bankinform
         bankinformation.setCreatorName(BaseContextHolder.getUserName());
         int bid = Math.toIntExact(bankinformation.getId());
 
+        String bk_code = RegexpUtils.replaceSpecCharacter(bankinformation.getBk_bankcode());
+        String code = pushMaxnubmer(bk_code, bankinformation.getId());
+
         String bktion = bankinformationMapper.selectBankcode(bankinformation.getBk_bankcode() ,BaseContextHolder.getCompanyId());
         //先判断ID,再判断编号
         if (bankinformation.getId() == 0)
@@ -61,6 +69,7 @@ public class BankinformationServiceImpl extends CommonBaseServiceImpl<Bankinform
                 throw new BizException(500, BizExceptionCode.ACCOUNT_EXISTS.getMessage());
             }
             bankinformation.setBk_thisamount(bankinformation.getBk_beginamount());
+            bankinformation.setBk_bankcode(code);
             bankinformationMapper.insertSelective(bankinformation);
             Banksubledger banksubledger = this.changBanksubledger(bankinformation);
             banksubledgerMapper.insertSelective(banksubledger);
@@ -220,4 +229,21 @@ public class BankinformationServiceImpl extends CommonBaseServiceImpl<Bankinform
         }
         return null;
     }
+
+    /**
+     * @Description: 检验获取并更新单号
+     * @Param: [code, id]
+     * @return: java.lang.String
+     * @Author: chenwei
+     * @Date: 2018/10/26
+     */
+    private String pushMaxnubmer(String code, Long id) {
+        if (null == code) {
+            throw new BizException(BizExceptionCode.NULL_CODE);
+        }
+        Long companyId = BaseContextHolder.getCompanyId();
+        Integer count = "0".equals(String.valueOf(id)) ? getMapper().validateCodeWhenInsert(code, companyId) :
+                getMapper().validateCodeWhenUpdate(code, id, companyId);
+        return maxnumberService.pushMaxnubmer(count, code, BillCodeSeq.BANKINFORMATION.getCaller()).getData();
+    }
 }

+ 69 - 4
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CustomerServiceImpl.java

@@ -1,5 +1,6 @@
 package com.usoftchina.saas.document.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
@@ -11,25 +12,25 @@ import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.commons.exception.BizExceptionCode;
 import com.usoftchina.saas.commons.po.BillCodeSeq;
+import com.usoftchina.saas.commons.po.DataImportDetail;
 import com.usoftchina.saas.commons.po.Operation;
 import com.usoftchina.saas.commons.po.Status;
 import com.usoftchina.saas.context.BaseContextHolder;
-import com.usoftchina.saas.document.dto.CustomerDTO;
-import com.usoftchina.saas.document.dto.CustomerFormDTO;
-import com.usoftchina.saas.document.dto.CustomeraddressDTO;
-import com.usoftchina.saas.document.dto.CustomercontactDTO;
+import com.usoftchina.saas.document.dto.*;
 import com.usoftchina.saas.document.entities.*;
 import com.usoftchina.saas.document.mapper.*;
 import com.usoftchina.saas.document.service.CustomerService;
 import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.page.PageRequest;
 import com.usoftchina.saas.utils.BeanMapper;
+import com.usoftchina.saas.utils.CollectionUtils;
 import com.usoftchina.saas.utils.DateUtils;
 import com.usoftchina.saas.utils.RegexpUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
+import sun.reflect.generics.tree.LongSignature;
 
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -59,6 +60,8 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
     private SubledgerMapper subledgerMapper;
     @Autowired
     private CustomerMapper customerMapper;
+    @Autowired
+    private DataImportMapper dataImportMapper;
 
 
     @Override
@@ -488,6 +491,68 @@ public class CustomerServiceImpl extends CommonBaseServiceImpl<CustomerMapper, C
         return getMapper().getCombo(id,BaseContextHolder.getCompanyId());
     }
 
+    @Override
+    public void saveToFormal(Integer id, boolean update) {
+        if (null == id || "0".equals(id)) {
+            return;
+        }
+        Long companyId = BaseContextHolder.getCompanyId();
+        StringBuilder err = new StringBuilder();
+        List<CustomerFormDTO> list = new ArrayList<>();
+        CustomerFormDTO listDTO = null;
+        List<DataImportDetail> details = dataImportMapper.selectDataById(id);
+        if (!CollectionUtils.isEmpty(details)) {
+            Map<String, List<DataImportDetail>> datas = CollectionUtils.groupBy(details, DataImportDetail::getDd_codevalue);
+            Integer detno = null;
+            for (String code : datas.keySet()) {
+                listDTO = new CustomerFormDTO();
+                List<CustomercontactDTO> details_ = new ArrayList<>();
+                int i = getMapper().validateCodeWhenInsert(code, companyId);
+                List<DataImportDetail> data = datas.get(code);
+                DataImportDetail main = dataImportMapper.selectMainBycode(code, id, companyId);
+                CustomerDTO customerDTO = JSONObject.parseObject(main.getDd_maindata(), CustomerDTO.class);
+                customerDTO.setCu_status(Status.OPEN.getDisplay());
+                customerDTO.setCu_statuscode(Status.OPEN.name());
+                //编号不存在
+                if (i == 0) {
+                    customerDTO.setId(0l);
+                    //编号存在、需要更新
+                } else if (update){
+                    Long cu_id = getMapper().selectIdByCode(code, companyId);
+                    customerDTO.setId(cu_id);
+                    //编号存在、不需要处理
+                } else {
+                    continue;
+                }
+                //添加从表
+                if (data.size() > 0) {
+                    detno = 1;
+                    for (DataImportDetail vendorDetail : data) {
+                        CustomercontactDTO detail = JSONObject.parseObject(vendorDetail.getDd_detaildata(), CustomercontactDTO.class);
+                        if (null != detail) {
+                            detail.setCc_cuid(customerDTO.getId());
+                            detail.setCc_detno(detno);
+                            detno++;
+                            details_.add(detail);
+                        }
+                    }
+                }
+                listDTO.setMain(customerDTO);
+                listDTO.setItems1(details_);
+                listDTO.setItems2(new ArrayList<CustomeraddressDTO>());
+                list.add(listDTO);
+            }
+            if (err.length() > 0) {
+                dataImportMapper.updateDataImportError(err.toString(), id);
+                throw new BizException(12345, err.toString());
+            }
+            for (CustomerFormDTO  dto : list) {
+                saveFormData(dto);
+            }
+            dataImportMapper.updateDataImport(id);
+        }
+    }
+
 
     private List<CustomerList> getListByMode(ListReqDTO req) {
         List<CustomerList> list = null;

+ 69 - 4
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/VendorServiceImpl.java

@@ -1,5 +1,6 @@
 package com.usoftchina.saas.document.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
@@ -10,21 +11,22 @@ import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.ListReqDTO;
 import com.usoftchina.saas.commons.exception.BizExceptionCode;
 import com.usoftchina.saas.commons.po.BillCodeSeq;
+import com.usoftchina.saas.commons.po.DataImportDetail;
 import com.usoftchina.saas.commons.po.Operation;
 import com.usoftchina.saas.commons.po.Status;
 import com.usoftchina.saas.context.BaseContextHolder;
+import com.usoftchina.saas.document.dto.ProductListDTO;
 import com.usoftchina.saas.document.dto.VendorDTO;
 import com.usoftchina.saas.document.dto.VendorListDTO;
-import com.usoftchina.saas.document.entities.Subledger;
-import com.usoftchina.saas.document.entities.Vendor;
-import com.usoftchina.saas.document.entities.VendorList;
-import com.usoftchina.saas.document.entities.Vendorcontact;
+import com.usoftchina.saas.document.entities.*;
+import com.usoftchina.saas.document.mapper.DataImportMapper;
 import com.usoftchina.saas.document.mapper.SubledgerMapper;
 import com.usoftchina.saas.document.mapper.VendorMapper;
 import com.usoftchina.saas.document.mapper.VendorcontactMapper;
 import com.usoftchina.saas.document.service.VendorService;
 import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.page.PageRequest;
+import com.usoftchina.saas.utils.CollectionUtils;
 import com.usoftchina.saas.utils.DateUtils;
 import com.usoftchina.saas.utils.RegexpUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -52,6 +54,8 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
     private SubledgerMapper subledgerMapper;
     @Autowired
     private VendorMapper vendorMapper;
+    @Autowired
+    private DataImportMapper dataImportMapper;
 
     @Override
     public PageInfo<VendorDTO> getVendorsByCondition(PageRequest page, ListReqDTO listReqDTO) {
@@ -429,6 +433,67 @@ public class VendorServiceImpl extends CommonBaseServiceImpl<VendorMapper, Vendo
         return true;
     }
 
+    @Override
+    public void saveToFormal(Integer id, boolean update) {
+        if (null == id || "0".equals(id)) {
+            return;
+        }
+        Long companyId = BaseContextHolder.getCompanyId();
+        StringBuilder err = new StringBuilder();
+        List<VendorListDTO> list = new ArrayList<>();
+        VendorListDTO listDTO = null;
+        List<DataImportDetail> details = dataImportMapper.selectDataById(id);
+        if (!CollectionUtils.isEmpty(details)) {
+            Map<String, List<DataImportDetail>> datas = CollectionUtils.groupBy(details, DataImportDetail::getDd_codevalue);
+            Integer detno = null;
+            for (String code : datas.keySet()) {
+                listDTO = new VendorListDTO();
+                List<Vendorcontact> details_ = new ArrayList<>();
+                int i = getMapper().validateCodeWhenInsert(code, companyId);
+                List<DataImportDetail> data = datas.get(code);
+                DataImportDetail main = dataImportMapper.selectMainBycode(code, id, companyId);
+                Vendor vendor = JSONObject.parseObject(main.getDd_maindata(), Vendor.class);
+                vendor.setVe_status(Status.OPEN.getDisplay());
+                vendor.setVe_statuscode(Status.OPEN.name());
+                //编号不存在
+                if (i == 0) {
+                    vendor.setId(0l);
+                    //编号存在、需要更新
+                } else if (update){
+                    Long pr_id = getMapper().selectIdByCode(code, companyId);
+                    vendor.setId(pr_id);
+                    //编号存在、不需要处理
+                } else {
+                    continue;
+                }
+                //添加从表
+                if (data.size() > 0) {
+                    detno = 1;
+                    for (DataImportDetail productDetail : data) {
+                        Vendorcontact detail = JSONObject.parseObject(productDetail.getDd_detaildata(), Vendorcontact.class);
+                        if (null != detail) {
+                            detail.setVc_veid(vendor.getId());
+                            detail.setVc_detno(detno);
+                            detno++;
+                            details_.add(detail);
+                        }
+                    }
+                }
+                listDTO.setMain(vendor);
+                listDTO.setItems(details_);
+                list.add(listDTO);
+            }
+            if (err.length() > 0) {
+                dataImportMapper.updateDataImportError(err.toString(), id);
+                throw new BizException(12345, err.toString());
+            }
+            for (VendorListDTO  dto : list) {
+                saveFormData(dto);
+            }
+            dataImportMapper.updateDataImport(id);
+        }
+    }
+
     private List<VendorDTO> getList(ListReqDTO listReqDTO){
         Long companyId = BaseContextHolder.getCompanyId();
         String condition = listReqDTO.getFinalCondition();

+ 2 - 3
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/WarehouseServiceImpl.java

@@ -232,8 +232,7 @@ public class WarehouseServiceImpl extends CommonBaseServiceImpl<WarehouseMapper,
     public void delete(Long id) {
         //删除前检测物料是否存在默认仓库
         Long companyId = BaseContextHolder.getCompanyId();
-        companyId = 1l;
-        Integer num = 0;
+        int num = 0;
         num = warehouseMapper.deleteCheckProduct(id, companyId);
         if (num > 0) {
             throw new BizException(BizExceptionCode.PRODUCT_HAS_WAREHOUSE);
@@ -254,8 +253,8 @@ public class WarehouseServiceImpl extends CommonBaseServiceImpl<WarehouseMapper,
     private void singleDelete(Long id) {
         if (null != id) {
             //主表删除
-            getMapper().deleteByPrimaryKey(id);
             DocBaseDTO docBaseDTO = getBaseDTOById(id);
+            getMapper().deleteByPrimaryKey(id);
             //日志
             messageLogService.delete(docBaseDTO);
         }

+ 8 - 0
applications/document/document-server/src/main/resources/mapper/BankinformationMapper.xml

@@ -347,4 +347,12 @@
     <parameter property="v_companyid" jdbcType="INTEGER" mode="IN" />
     <parameter property="v_res" jdbcType="VARCHAR" mode="OUT" />
   </parameterMap>
+
+
+  <select id="validateCodeWhenInsert" resultType="int">
+        select count(*) from bankinformation where bk_bankcode = #{code} and companyId =#{companyId}
+    </select>
+  <select id="validateCodeWhenUpdate" resultType="int" >
+        select count(*) from bankinformation where bk_bankcode = #{code} and bk_id != #{id} and companyId =#{companyId}
+    </select>
 </mapper>

+ 3 - 0
applications/document/document-server/src/main/resources/mapper/CustomerMapper.xml

@@ -408,5 +408,8 @@
     SELECT ca_address display,ca_address value FROM customeraddress WHERE ca_cuid=#{id} and COMPANYID=#{companyId} order by ca_id desc
   </select>
 
+  <select id="selectIdByCode" resultType="long">
+    select ve_id from VENDOR where ve_code=#{code} and companyId=#{companyId}
+  </select>
 
 </mapper>

+ 4 - 0
applications/document/document-server/src/main/resources/mapper/VendorMapper.xml

@@ -482,5 +482,9 @@
         <parameter property="v_companyid" jdbcType="INTEGER" mode="IN" />
         <parameter property="v_res" jdbcType="VARCHAR" mode="OUT" />
     </parameterMap>
+
+    <select id="selectIdByCode" resultType="long">
+        select ve_id from VENDOR where ve_code=#{code} and companyId=#{companyId}
+    </select>
 </mapper>
 

+ 1 - 1
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java

@@ -704,7 +704,7 @@ public class SaleServiceImpl implements SaleService{
         }
         Long companyId = BaseContextHolder.getCompanyId();
         List<HashMap<String, Object>> list = prodInOutMapper.getWareHouseByCode(code, companyId);
-        if (null != list) {
+        if (null != list && list.size() > 0) {
             return list.get(0);
         }
         return null;

+ 1 - 1
applications/sale/sale-server/src/main/resources/mapper/ProdInOutMapper.xml

@@ -536,7 +536,7 @@ update ProdInOut SET
   </update>
 
   <select id="getWareHouseByCode" resultType="java.util.HashMap">
-    select pr_whid,pr_whcode,pr_whname from product where pr_code=#{code} and companyid=#{companyId} and pr_statuscode='OPEN'
+    select pr_whid,pr_whcode,pr_whname from product where pr_code=#{code} and companyid=#{companyId} and pr_statuscode='ENABLE'
   </select>
   <update id="updateCreator">
     update ProdInOut set creatorId = #{userId} , createTime=now(), creatorName=#{userName} where pi_id=#{id}

+ 2 - 0
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/AccountCenterServiceImpl.java

@@ -101,6 +101,8 @@ public class AccountCenterServiceImpl implements AccountCenterService {
         if (role != null) {
             accountService.bindRole(accountId, role.getId());
         }
+        //清除角色缓存
+        accountService.clearCache(accountId);
         return Result.success(company.getId());
     }
 

+ 1 - 1
frontend/saas-portal-web/src/components/conenter/company.vue

@@ -56,7 +56,7 @@
       </div>
     </div>
 
-        <div class="gs-qiyebox" ref="qiyebox" style="margin-top: 70px;" :class="isheigh ? 'heigh' : ''">
+        <div class="gs-qiyebox" ref="qiyebox" :class="isheigh ? 'heigh' : ''">
             <!-- 点击查看企业详情 -->
             <div v-for="(d , i) in arr " :key="i" class="gs-xiangqing xs">
                 <div class="left gs-xqleft" @click= "getEnterpriseInfo(d)">

+ 17 - 5
frontend/saas-portal-web/src/components/conenter/enterprise.vue

@@ -48,9 +48,9 @@
                 </div>
     <!-- 个人信息------------------------------------------------------------------- -->
                 <div :class= "{gsqiye:nowindex == 1}">
-                    <div class="over gr-worp" style="margin-bottom: 30px;margin-top: 60px;">
+                    <div class="over gr-worp" style="margin-bottom: 30px;">
                         <div class="left gr-left">
-                            <img src="../../../static/img/qiye/yonghu@2x.png" alt="">
+                            <img src="/static/img/qiye/yonghu@2x.png" alt="">
                         </div>
                         <div class="left gr-right">
                             <ul>
@@ -74,14 +74,14 @@
 
                 <div :class="{gsqiye:nowindex == 2}">
                     <div class="gs-anquanxinxi">
-                        <div class="over aq-title"><span class="left">登录密码</span><button class="right dianji">更换密码</button></div>
+                        <div class="over aq-title"><span class="left">登录密码</span><button @click="changpasd" class="right dianji">更换密码</button></div>
                         <div class="aq-text">
                             <p>安全性高的密码可以使账号更安全,建议您定期更换密码,并且设置一个包含数字和字母,长度超过8位以上的密码。
                             </p>
                         </div>
                     </div>
                     <div class="gs-anquanxinxi">
-                        <div class="over aq-title"><span class="left">手机验证</span><button class="right dianji">修改手机号</button></div>
+                        <div class="over aq-title"><span class="left">手机验证</span><button @click="changphone" class="right dianji">修改手机号</button></div>
                         <div class="aq-text">
                             <p>您绑定的手机:{{mobile}}。若已丢失或停用,请立即更换,避免账户被盗。
                             </p>
@@ -112,7 +112,8 @@ import { setTimeout } from 'timers';
             }
         },
         mounted(){
-            let mob = this.mytoken.mobile;
+            let mob = this.mytoken.mobile.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2');
+            this.mobile = mob
         },
         computed :{
             setTokenPage() {
@@ -130,6 +131,14 @@ import { setTimeout } from 'timers';
                 frame.postMessage('', '*')
                 Session.remove()
                 window.location.href=this.$url.sso+'/logquit?appId=sp&returnURL=https://'+window.location.host
+            },
+            //修改密码
+            changpasd(){
+                window.location.href = 'https://sso.ubtob.com/reset/forgetPasswordValidationAccount?returnURL='+this.$url.web+'&appId=sp'
+            },
+            //修改手机号
+            changphone(){
+                window.location.href = 'https://sso.ubtob.com/validation/phoneValidation?returnURL='+this.$url.web+'&appId=sp'
             }
         },
     }
@@ -140,4 +149,7 @@ import { setTimeout } from 'timers';
         padding-top: 100px;
         background: #FDFDFD;
     }
+    .gsqiye div:last-child {
+        margin-bottom: 100px;
+    }
 </style>

+ 23 - 36
frontend/saas-portal-web/src/components/conenter/problem.vue

@@ -13,33 +13,19 @@
                 </div>
                 <button class="bz-btn">搜索</button>
               </div>
-              <div class="bz-content">
-                <div class="bz-right">
-                  <div class="bz-right-conent">
-                    <div class= "shows">
-                      <ul>
-                        <li>
-                          <span class="left bz-yuandian"></span>
-                          <span class="left">方式不同吧好像是差不多 </span>
-                          <img @click="shows" class="right bz-copy" :class="isrotate ? 'rotates' : 'norotate'" src="/static/img/Triangle Copy 4.png" alt="">
-                          <div class="Text-content" :class="isshow ? 'dispays' : 'hides'">
-                            <p>警方圣诞快乐JFK的实力积分积分累积角度考虑实际疯狂的世界佛教埃及空军看见反抗类毒素解放就</p>
-                          </div>
-                        </li>
-                        <li>
-                          <span class="left bz-yuandian"></span>
-                          <span class="left">XXXXXXXXXXXXXXX操作文档</span>
-                          <img class="right bz-copy" src="/static/img/Triangle Copy 4.png" alt="">
-                        </li>
-                        <li>
-                          <span class="left bz-yuandian"></span>
-                          <span class="left">XXXXXXXXXXXXXXX操作文档</span>
-                          <img class="right bz-copy" src="/static/img/Triangle Copy 4.png" alt="">
-                        </li>
-                      </ul>
+              <div class="bz-right-conent">
+                <ul>
+                  <li v-for="(d , i) in arr" :key="i">
+                    <div class="over" @click="shows(d,i)" style="cursor: pointer">
+                      <span class="left bz-yuandian"></span>
+                      <span class="left">{{d.title}}</span>
+                      <img  class="right bz-copy" :class="d.isshow ? 'rotates' : 'norotate'" src="/static/img/Triangle Copy 4.png" alt="">
                     </div>
-                  </div>
-                </div>
+                    <div ref="title" class="Text-content" :class="d.isshow ? 'dispays' : 'hides'">
+                      <p ref="text">{{d.centent}}</p>
+                    </div>
+                  </li>
+                </ul>
               </div>
             </div>
           </div>
@@ -51,14 +37,18 @@
     export default {
         data(){
           return {
-            isshow: false,
-            isrotate: false
+            arr:[
+              {isshow: true, title:'方式不同吧好像是差不多',centent:'警方圣诞快乐JFK的实力积分积分累积角度考虑实际疯狂的世界佛教埃及空军看见反抗类毒素解放就'},
+              {isshow: false, title:'XXXXXXXXXXXXXXX操作文档',centent:'警方圣诞快发顺丰到付乐JFK的实力积分积分累积角度狂的世界佛教埃及空军看见反抗类毒素解放就'},
+              {isshow: false, title:'XXXXXXXXXXXXX操作文档',centent:'警方圣诞快分积分累积角度考虑实际疯狂的世界佛教埃及空军看见反抗类毒素解放就'},
+            ]
           }
         },
         methods: {
-          shows(){
-            this.isshow = !this.isshow
-            this.isrotate = !this.isrotate
+          shows(d,i){
+            d.isshow = !d.isshow
+            let textH =  this.$refs.text[i].offsetHeight;
+            this.$refs.title[i].style.height = textH + 'px'
           }
         }
     }
@@ -66,16 +56,13 @@
 
 <style scoped>
 .dispays {
-  /* display: block; */
-  height: 60px;
   transition: All 0.4s ease-in-out;
   -webkit-transition: All 0.4s ease-in-out;
   -moz-transition: All 0.4s ease-in-out;
   -o-transition: All 0.4s ease-in-out;
 }
 .hides {
-  /* display: none; */
-  height: 0;
+  height: 0 !important;
   margin-bottom: -13px;
   transition: All 0.4s ease-in-out;
   -webkit-transition: All 0.4s ease-in-out;
@@ -128,7 +115,7 @@
 }
 .bz-copy {
     margin-right: 7px;
-    cursor: pointer;
+    margin-top: 5px;
     transition: All 0.4s ease-in-out;
     -webkit-transition: All 0.4s ease-in-out;
     -moz-transition: All 0.4s ease-in-out;

+ 1 - 1
frontend/saas-portal-web/src/components/conenter/qiyexiangxi.vue

@@ -5,7 +5,7 @@
         <div v-if="xiugai">
             <div class="gs-worp qy-worp" style="width:100%">
                 <div class="qy-title">
-                    <span><img @click= "gobick" style="float: left;padding: 20px; cursor:pointer" src="../../../static/img/fanhui.png" alt=""></span>
+                    <span><img @click= "gobick" style="float: left;padding: 20px; cursor:pointer" src="/static/img/fanhui.png" alt=""></span>
                     <span>企业基本信息</span>
                     <span v-if="isxiugaiId" @click="xiugaiqiye" class="qy-xiugai dianji">修改</span>
                 </div>

+ 25 - 0
frontend/saas-portal-web/src/pages/cell/cell.html

@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>Document</title>
+</head>
+<body>
+    <div id="app">hello</div>
+    <script>
+        // iframe接收消息
+        window.addEventListener('message', function(e) {
+            if (e.data == 'removeToken') {
+                if (e.source != window.parent) {
+                    return;
+                }
+                var storeKey = 'app-state-session';
+                localStorage.removeItem(storeKey);
+                window.parent.postMessage("success", "*");
+            }
+        });
+    </script>
+</body>
+</html>

+ 0 - 0
frontend/saas-portal-web/src/pages/cell/cell.js


+ 15 - 0
frontend/saas-portal-web/src/pages/cell/cell.vue

@@ -0,0 +1,15 @@
+<template>
+    <div>
+
+    </div>
+</template>
+
+<script>
+    export default {
+        
+    }
+</script>
+
+<style scoped>
+
+</style>

+ 0 - 108
frontend/saas-portal-web/static/css/animate.css

@@ -23,116 +23,8 @@ Copyright (c) 2013 Daniel Eden
           animation-duration: 2s;
 }
 
-@-webkit-keyframes bounce {
-  0%, 20%, 50%, 80%, 100% {
-    -webkit-transform: translateY(0);
-    transform: translateY(0);
-  }
-
-  40% {
-    -webkit-transform: translateY(-30px);
-    transform: translateY(-30px);
-  }
-
-  60% {
-    -webkit-transform: translateY(-15px);
-    transform: translateY(-15px);
-  }
-}
-
-@keyframes bounce {
-  0%, 20%, 50%, 80%, 100% {
-    -webkit-transform: translateY(0);
-    -ms-transform: translateY(0);
-    transform: translateY(0);
-  }
-
-  40% {
-    -webkit-transform: translateY(-30px);
-    -ms-transform: translateY(-30px);
-    transform: translateY(-30px);
-  }
-
-  60% {
-    -webkit-transform: translateY(-15px);
-    -ms-transform: translateY(-15px);
-    transform: translateY(-15px);
-  }
-}
-
-.bounce {
-  -webkit-animation-name: bounce;
-  animation-name: bounce;
-}
-
-@-webkit-keyframes flash {
-  0%, 50%, 100% {
-    opacity: 1;
-  }
-
-  25%, 75% {
-    opacity: 0;
-  }
-}
-
-@keyframes flash {
-  0%, 50%, 100% {
-    opacity: 1;
-  }
-
-  25%, 75% {
-    opacity: 0;
-  }
-}
-
-.flash {
-  -webkit-animation-name: flash;
-  animation-name: flash;
-}
-
 /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
 
-@-webkit-keyframes pulse {
-  0% {
-    -webkit-transform: scale(1);
-    transform: scale(1);
-  }
-
-  50% {
-    -webkit-transform: scale(1.1);
-    transform: scale(1.1);
-  }
-
-  100% {
-    -webkit-transform: scale(1);
-    transform: scale(1);
-  }
-}
-
-@keyframes pulse {
-  0% {
-    -webkit-transform: scale(1);
-    -ms-transform: scale(1);
-    transform: scale(1);
-  }
-
-  50% {
-    -webkit-transform: scale(1.1);
-    -ms-transform: scale(1.1);
-    transform: scale(1.1);
-  }
-
-  100% {
-    -webkit-transform: scale(1);
-    -ms-transform: scale(1);
-    transform: scale(1);
-  }
-}
-
-.pulse {
-  -webkit-animation-name: pulse;
-  animation-name: pulse;
-}
 
 @-webkit-keyframes rubberBand {
   0% {

+ 3 - 3
frontend/saas-portal-web/static/css/gongsi.css

@@ -99,7 +99,7 @@
 }
 .gsqiye {
     display: block !important;
-    margin-top: -30px;
+    margin-top: 70px;
 }
 .gs-xiangqing {
     height: 112px;
@@ -276,7 +276,7 @@
     border-radius: 4px;
     overflow: hidden;
     margin-bottom: 24px;
-    padding: 28px 93px 28px 103px;
+    padding: 28px 70px;
 }
 .aq-title span {
     font-family: PingFangSC-Medium;
@@ -296,7 +296,7 @@
 .aq-text {
     font-family: PingFangSC-Regular;
     font-size: 14px;
-    color: #243A52;
+    color: #808D98;
     text-align: left;
     margin-top: 20px;
 }

File diff suppressed because it is too large
+ 40 - 920
frontend/saas-portal-web/static/css/main.css


+ 5 - 3
frontend/saas-web/app/view/core/base/GridPanel.js

@@ -12,9 +12,11 @@ Ext.define('saas.view.core.base.GridPanel', {
     requires: [
         'Ext.grid.plugin.Exporter'
     ],
-    plugins: {
-        gridexporter: true
-    },
+    plugins: [{
+        ptype: 'gridexporter',
+    }, {
+        ptype: 'menuclipboard'
+    }],
 
     cls:'core-base-gridpanel',
     

+ 26 - 3
frontend/saas-web/app/view/core/dbfind/types/ProductDbfindTrigger.js

@@ -47,7 +47,7 @@ Ext.define('saas.view.core.dbfind.types.ProductDbfindTrigger', {
         width: 110
     }, {
         text: "单位",
-        dataIndex: "pr_spec",
+        dataIndex: "pr_unit",
         width: 80
     },{
         text: "品牌",
@@ -64,9 +64,32 @@ Ext.define('saas.view.core.dbfind.types.ProductDbfindTrigger', {
             var format = '0,000.' + xr.join();
             return Ext.util.Format.number(v, format);
         }
-    },{
+    }, {
         text: "采购提前期",
         dataIndex: "pr_leadtime",
-        xtype:'hidden'
+        hidden: true
+    }, {
+        text: "仓库id",
+        dataIndex: "pr_whid",
+        hidden: true
+    }, {
+        text: "仓库编号",
+        dataIndex: "pr_whcode",
+        hidden: true
+    }, {
+        text: "仓库",
+        dataIndex: "pr_whname",
+        width: 200,
+        hidden: true
+    }, {
+        text: "最新采购单价",
+        dataIndex: "pr_purcprice",
+        xtype: 'numbercolumn',
+        hidden:true
+    }, {
+        text: "最新出货单价",
+        dataIndex: "pr_saleprice",
+        xtype: 'numbercolumn',
+        hidden:true
     }]
 });

+ 25 - 23
frontend/saas-web/app/view/core/dbfind/types/ProductMultiDbfindTrigger.js

@@ -11,27 +11,6 @@ Ext.define('saas.view.core.dbfind.types.ProductMultiDbfindTrigger', {
     dataUrl: '/api/document/product/list',
     addXtype: 'document-product-formpanel',
     addTitle: '物料资料',
-    //放大镜赋值设置
-    dbfinds: [{
-        from: 'id',
-        to: 'pd_prodid',
-        ignore: true
-    }, {
-        from: 'pr_code',
-        to: 'pd_prodcode'
-    }, {
-        from: 'pr_detail',
-        to: 'pr_detail'
-    }, {
-        from: 'pr_spec',
-        to: 'pr_spec'
-    }, {
-        from: 'pr_purcprice',
-        to: 'pd_price'
-    }, {
-        from: 'pr_zxbzs',
-        to: 'pr_zxbzs'
-    }],
     //联想设置
     dbtpls: [{
         field: 'pr_code',
@@ -75,7 +54,7 @@ Ext.define('saas.view.core.dbfind.types.ProductMultiDbfindTrigger', {
         width: 110
     }, {
         text: "单位",
-        dataIndex: "pr_spec",
+        dataIndex: "pr_unit",
         width: 80
     },{
         text: "品牌",
@@ -95,7 +74,30 @@ Ext.define('saas.view.core.dbfind.types.ProductMultiDbfindTrigger', {
     }, {
         text: "采购提前期",
         dataIndex: "pr_leadtime",
-        xtype:'hidden'
+        hidden: true
+    }, {
+        text: "仓库id",
+        dataIndex: "pr_whid",
+        hidden: true
+    }, {
+        text: "仓库编号",
+        dataIndex: "pr_whcode",
+        hidden: true
+    }, {
+        text: "仓库",
+        dataIndex: "pr_whname",
+        width: 200,
+        hidden: true
+    }, {
+        text: "最新采购单价",
+        dataIndex: "pr_purcprice",
+        xtype: 'numbercolumn',
+        hidden:true
+    }, {
+        text: "最新出货单价",
+        dataIndex: "pr_saleprice",
+        xtype: 'numbercolumn',
+        hidden:true
     }]
 
 });

+ 5 - 1
frontend/saas-web/app/view/core/form/FormPanel.js

@@ -379,6 +379,10 @@ Ext.define('saas.view.core.form.FormPanel', {
                 return;
             }
 
+            if(item.readOnly){
+                item.defaultReadOnly = item.readOnly;
+            }
+
             if (bind) {
                 if (!Ext.isString(bind)) {
                     Ext.apply(bind, {
@@ -433,7 +437,7 @@ Ext.define('saas.view.core.form.FormPanel', {
 
         Ext.Array.each(items, function(item) {
             if(typeof item.setReadOnly  == 'function') {
-               item.setReadOnly (!able);
+               item.setReadOnly (item.defaultReadOnly || !able);
             }
         });
     },

+ 6 - 44
frontend/saas-web/app/view/core/report/ReportPanel.js

@@ -139,9 +139,11 @@ Ext.define('saas.view.core.report.ReportPanel', {
                 sortableColumns: false,
                 enableColumnHide: false,
                 rowLines: false,
-                plugins: {
-                    gridexporter: true
-                },
+                plugins: [{
+                    ptype: 'gridexporter',
+                }, {
+                    ptype: 'menuclipboard'
+                }],
                 features: [{
                     ftype: 'groupingsummary',
                     hideGroupedHeader: false,
@@ -159,15 +161,6 @@ Ext.define('saas.view.core.report.ReportPanel', {
                     displayInfo: true,
                     store: store
                 }],
-                actions: {
-                    copy: {
-                        iconCls: 'x-fa fa-copy',
-                        text: '复制单元格',
-                        handler: function() {
-                            me.onCopy(me.selectedData);
-                        }
-                    }
-                },
                 viewConfig: {
                     deferEmptyText: false,
                     emptyText: '无数据',
@@ -217,7 +210,6 @@ Ext.define('saas.view.core.report.ReportPanel', {
             proxy: {
                 type: 'ajax',
                 url: me.listUrl,
-                // url: 'http://192.168.253.58:8560/api/sale/report/saleDetail',
                 timeout: 8000,
                 actionMethods: {
                     read: 'GET'
@@ -276,10 +268,6 @@ Ext.define('saas.view.core.report.ReportPanel', {
                 }
             },
             listeners: {
-                load: function() {
-                    var grid = me.items.items[1];
-                    grid.fireEvent('mysummarychange', grid);
-                },
                 beforeload: function (store, op) {
                     var condition = me.getConditions(),
                     defaultCondition = me.defaultCondition,
@@ -578,31 +566,5 @@ Ext.define('saas.view.core.report.ReportPanel', {
 
     applyParams: function(p) {
         return p;
-    },
-
-    getContextMenu: function() {
-        var me = this,
-        grid = me.items.items[1];
-
-        return grid.contextMenu || (grid.contextMenu = grid.add({
-            xtype: 'menu',
-            items: [
-                // Actions can be converted into MenuItems
-                '@copy',
-            ]
-        }));
-    },
-
-    onCopy: function(text) {
-		var target = Ext.DomHelper.append(document.body, {
-			tag: 'textarea',
-			style: 'opacity: 0;position: absolute;top: -10000px;right: 0;',
-			html: text
-		});
-		target.focus();
-		target.select();
-	    document.execCommand('Copy');
-	    target.blur();
-	    document.body.removeChild(target);
-	},
+    }
 });

+ 3 - 0
frontend/saas-web/app/view/document/kind/Kind.js

@@ -64,6 +64,9 @@ Ext.define('saas.view.document.kind.Kind', {
         margin: '10 0 0 0',
         flex: 1,
         frame:true,
+        plugins: [{
+            ptype: 'menuclipboard'
+        }],
         bind:{
             selection: '{selectedCompany}'
         },

+ 1 - 1
frontend/saas-web/app/view/home/infoCardList/Payment.js

@@ -36,7 +36,7 @@ Ext.define('saas.view.home.infoCardList.Payment', {
     }, {
         text: '供应商名称',
         dataIndex: 'pi_vendname',
-        width: 150
+        width: 250
     }, {
         text: '审核状态',
         align: 'center',

+ 17 - 23
frontend/saas-web/app/view/home/infoCardList/SaleOut.js

@@ -19,46 +19,51 @@ Ext.define('saas.view.home.infoCardList.SaleOut', {
     }, {
         text: '单据编号',
         dataIndex: 'sa_code',
-        width: 200
+        width: 150
     }, {
         text: '单据状态',
         align: 'center',
         dataIndex: 'sa_status',
-        width: 120
+        width: 90
+    }, {
+        text: '业务状态',
+        align: 'center',
+        dataIndex: 'sa_sendstatus',
+        width: 90
     }, {
         text: '单据日期',
         dataIndex: 'sa_date',
         xtype: 'datecolumn',
-        width: 200
+        width: 110
     }, {
         text: '客户名称',
         dataIndex: 'sa_custname',
-        width: 120
+        width: 250
     }, {
         text: '明细序号',
         dataIndex: 'sd_detno',
         xtype: 'numbercolumn',
-        width: 120,
+        width: 100,
         renderer: function (v) {
             return Ext.util.Format.number(v, '0');
         }
     }, {
         text: '物料编号',
         dataIndex: 'sd_prodcode',
-        width: 120
+        width: 150
     }, {
         text: '物料名称',
         dataIndex: 'pr_detail',
-        width: 120
+        width: 200
     }, {
         text: '物料规格',
         dataIndex: 'pr_spec',
-        width: 120
+        width: 150
     }, {
         text: '数量',
         dataIndex: 'sd_qty',
         xtype: 'numbercolumn',
-        width: 120,
+        width: 110,
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
@@ -69,7 +74,7 @@ Ext.define('saas.view.home.infoCardList.SaleOut', {
         text: '单价',
         dataIndex: 'sd_price',
         xtype: 'numbercolumn',
-        width: 120,
+        width: 110,
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 8 ? 8 : arr[1].length)).fill('0');
@@ -80,7 +85,7 @@ Ext.define('saas.view.home.infoCardList.SaleOut', {
         text: '已转数',
         dataIndex: 'sd_yqty',
         xtype: 'numbercolumn',
-        width: 120,
+        width: 110,
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
@@ -91,18 +96,7 @@ Ext.define('saas.view.home.infoCardList.SaleOut', {
         text: '已出货数',
         dataIndex: 'sd_sendqty',
         xtype: 'numbercolumn',
-        width: 120,
-        renderer: function (v) {
-            var arr = (v + '.').split('.');
-            var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
-            var format = '0.' + xr.join();
-            return Ext.util.Format.number(v, format);
-        },
-    }, {
-        text: '已审核采购单数',
-        dataIndex: 'sd_pdqty',
-        xtype: 'numbercolumn',
-        width: 180,
+        width: 110,
         renderer: function (v) {
             var arr = (v + '.').split('.');
             var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');

+ 1 - 1
frontend/saas-web/app/view/home/infoCardList/UnauditCheckIn.js

@@ -36,7 +36,7 @@ Ext.define('saas.view.home.infoCardList.UnauditCheckIn', {
     }, {
         text: '供应商名称',
         dataIndex: 'pi_vendname',
-        width: 150
+        width: 250
     }, {
         text: '审核状态',
         align: 'center',

+ 8 - 6
frontend/saas-web/app/view/main/Navigation.scss

@@ -127,16 +127,17 @@ $nav-font-color-over: #fff;
         border-bottom-right-radius: 4px;
 
         .menu {
+            width: 200px;
+            letter-spacing: 1px;
+            display: flex;
+            flex-direction: column;
 
-            &:first-child {
+            &:nth-child(2) {
                 .menu-content {
-                    border-right: 1px dashed #dce2e4;
+                    border-left: 1px dashed #dce2e4;
                 }
             }
 
-            width: 200px;
-            letter-spacing: 1px;
-
             .menu-title {
                 padding-left: 30px;
                 background: #EEF9FE;
@@ -152,7 +153,8 @@ $nav-font-color-over: #fff;
             }
 
             .menu-content {
-
+                height: 100%;
+                
                 .menuitem {
                     padding-left: 25px;
                     margin: 6px;

+ 1 - 1
frontend/saas-web/app/view/money/payBalance/FormPanel.js

@@ -30,7 +30,7 @@ Ext.define('saas.view.money.payBalance.FormPanel', {
         name: 'id',
         fieldLabel: 'id'
     }, {
-        xtype: 'textfield',
+        xtype: 'hidden',
         name: 'pb_kind',
         fieldLabel: '单据类型',
         defaultValue: '付款单',

+ 2 - 2
frontend/saas-web/app/view/money/payBalance/FormPanelController.js

@@ -214,8 +214,8 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
         var sum_pbd_nowbalance = store2.sum('pbd_nowbalance'); // 本次核销金额合计
 
         var flag = sum_pd_amount + pb_discounts - sum_pbd_nowbalance;
-         viewModel.set("pb_pbdamount",sum_rbd_nowbalance);
-         viewModel.set("pb_pdamount",sum_rd_amount);
+         viewModel.set("pb_pbdamount",sum_pbd_nowbalance);
+         viewModel.set("pb_pdamount",sum_pd_amount);
          viewModel.set("pb_preamount",flag);
         if(flag != 0) {
             var t = flag > 0 ? '大' : '小';

+ 1 - 1
frontend/saas-web/app/view/money/recBalance/FormPanel.js

@@ -33,7 +33,7 @@ Ext.define('saas.view.money.recBalance.FormPanel', {
         name: 'rb_custid',
         fieldLabel: '客户ID'
     }, {
-        xtype: 'textfield',
+        xtype: 'hidden',
         name: 'rb_kind',
         fieldLabel: '单据类型',
         defaultValue: '收款单',

+ 6 - 6
frontend/saas-web/app/view/money/report/CustomerCheck.js

@@ -11,7 +11,7 @@ Ext.define('saas.view.money.report.CustomerCheckCheck', {
     listUrl: '/api/money/report/customercheck',
     defaultCondition: null,
     reportTitle: '客户对账单',
-    QueryWidth: 0.2,
+    QueryWidth: 0.4,
     autoLoad: false,
     //筛选:客户、日期(必填)
     searchItems: [{
@@ -26,11 +26,11 @@ Ext.define('saas.view.money.report.CustomerCheckCheck', {
             }
         }
     }, {
-        xtype: 'monthdatefield',
-        name: 'ym',
-        fieldLabel: '期初日期',
-        columnWidth: 0.2
-    }, {
+    //     xtype: 'monthdatefield',
+    //     name: 'ym',
+    //     fieldLabel: '期初日期',
+    //     columnWidth: 0.2
+    // }, {
         xtype: 'condatefield',
         name: 'pi_date',
         fieldLabel: '单据日期',

+ 14 - 4
frontend/saas-web/app/view/money/report/PayDetail.js

@@ -39,10 +39,16 @@ Ext.define('saas.view.money.report.PayDetail', {
             dataIndex: 'pi_inoutno',
             width: 150
         }, {
-            text: '单据类型',
-            dataIndex: 'pi_class',
-            width: 110
-        }, {
+            text:'供应商编号',
+            dataIndex:'pi_vendcode',
+            width: 150,
+            hidden: true
+        },{
+            text:'供应商名称',
+            width: 200,
+            dataIndex:'pi_vendname',
+            hidden: true
+        },{
             text: '采购员',
             dataIndex: 'pu_buyercode',
             width: 110
@@ -131,5 +137,9 @@ Ext.define('saas.view.money.report.PayDetail', {
             text: '备注',
             dataIndex: 'pi_remark',
             width: 250
+        }, {
+            text: '供应商名称',
+            dataIndex: 'pi_vendname',
+            hidden:true
         }]
 });

+ 22 - 8
frontend/saas-web/app/view/money/report/RecDetail.js

@@ -35,6 +35,16 @@ Ext.define('saas.view.money.report.RecDetail', {
             dataIndex: 'pi_inoutno',
             width: 150
         }, {
+            text: '客户编号',
+            dataIndex: 'pi_custcode',
+            width: 150,
+            hidden: true
+        }, {
+            text: '客户名称',
+            dataIndex: 'pi_custname',
+            width: 200,
+            hidden: true
+        },{
             text: '单据类型',
             dataIndex: 'pi_class',
             width: 110
@@ -44,16 +54,16 @@ Ext.define('saas.view.money.report.RecDetail', {
             width: 110
         }, {
             text: '单据日期',
+            xtype: 'datecolumn',
             dataIndex: 'rb_date',
             width: 110
-        },
-        // }, {
-        //     text: '序号',
-        //     dataIndex: 'pd_pdno',
-        //     xtype: 'numbercolumn',
-        //     width: 80
-        // },{
-        {
+        }, {
+            text: '序号',
+            dataIndex: 'pd_pdno',
+            xtype: 'numbercolumn',
+            width: 80,
+            hidden: true
+        },{
             text:'期初应收',
             dataIndex:'cu_beginaramount',
             xtype: 'numbercolumn',
@@ -125,5 +135,9 @@ Ext.define('saas.view.money.report.RecDetail', {
             text: '备注',
             dataIndex: 'pd_unit',
             width: 250
+        }, {
+            text: '客户名称',
+            dataIndex: 'pi_custname',
+            hidden:true
         }]
 });

+ 6 - 6
frontend/saas-web/app/view/money/report/VendorCheck.js

@@ -11,7 +11,7 @@ Ext.define('saas.view.money.report.VendorCheck', {
     listUrl: '/api/money/report/vendorCheck',
     defaultCondition: null,
     reportTitle: '供应商对账单',
-    QueryWidth:0.2,
+    QueryWidth:0.4,
     autoLoad:false,
     //筛选:供应商、日期(必填)
     searchItems: [ {
@@ -26,11 +26,11 @@ Ext.define('saas.view.money.report.VendorCheck', {
             }
         }
     }, {
-        xtype: 'monthdatefield',
-        name: 'ym',
-        fieldLabel: '期初日期',
-        columnWidth: 0.2
-    }, {
+    //     xtype: 'monthdatefield',
+    //     name: 'ym',
+    //     fieldLabel: '期初日期',
+    //     columnWidth: 0.2
+    // }, {
         xtype: 'condatefield',
         name: 'pi_date',
         fieldLabel: '单据日期',

+ 50 - 0
frontend/saas-web/app/view/money/verification/FormPanelController.js

@@ -485,6 +485,56 @@ Ext.define('saas.view.money.verification.FormPanelController', {
         return defaultCondition;
     },
 
+    /**
+     * 清空所有从表数据
+     */
+    clearDetails: function() {
+        var me = this;
+        
+        me.clearDetail0();
+        me.clearDetail1();
+    },
+
+    /**
+     * 清空第一个从表数据
+     */
+    clearDetail0: function(f, n, o) {
+        var me = this,
+        form = me.getView(),
+        grid = form.query('detailGridField')[0];
+        me.clearDetail(grid);
+    },
+
+    /**
+     * 清空第二个从表数据
+     */
+    clearDetail1: function() {
+        var me = this,
+        form = me.getView(),
+        grid = form.query('detailGridField')[1];
+        me.clearDetail(grid);
+    },
+
+    /**
+     * 清空一个从表数据
+     */
+    clearDetail: function(grid) {
+        var datas = [],
+        emptyRows = grid.emptyRows,
+        detnoColumn = grid.detnoColumn,
+        detno = 0,
+        store = grid.getStore();
+        
+        Ext.Array.each(new Array(emptyRows), function() {
+            detno += 1;
+            var data = {};
+            data[detnoColumn] = detno;
+            datas.push(data);
+        })
+        store.removeAll();
+        store.add(datas);
+    },
+
     onSave: function() {
         var me = this,
             form = me.getView(),

+ 1 - 1
frontend/saas-web/app/view/purchase/purchaseIn/FormPanel.js

@@ -41,7 +41,7 @@ Ext.define('saas.view.purchase.purchaseIn.FormPanel', {
         allowBlank: true,
         columnWidth: 0
     },{
-        xtype : "textfield", 
+        xtype : "hidden", 
         name : "pi_class", 
         fieldLabel : "单据类型", 
         readOnly:true,

+ 1 - 0
frontend/saas-web/app/view/purchase/purchaseIn/QueryPanel.js

@@ -66,6 +66,7 @@ Ext.define('saas.view.purchase.purchaseIn.QueryPanel', {
         name: 'pd_whname',
         fieldLabel: '仓库',
         emptyText:'请输入仓库编号或名称',
+        showDetail: true
     }, {
         xtype: 'textfield',
         name: 'pi_pucode',

+ 1 - 1
frontend/saas-web/app/view/purchase/purchaseOut/FormPanel.js

@@ -35,7 +35,7 @@ Ext.define('saas.view.purchase.purchaseOut.FormPanel', {
         name: 'pi_ioid',
         fieldLabel: 'pi_ioid'
     },{
-        xtype : "textfield", 
+        xtype : "hidden", 
         name : "pi_class", 
         fieldLabel : "单据类型", 
         readOnly:true,

+ 2 - 23
frontend/saas-web/app/view/sale/sale/FormPanel.js

@@ -64,30 +64,9 @@ Ext.define('saas.view.sale.sale.FormPanel', {
         allowBlank : false
     }, {
         name : "sa_toplace", 
-        editable:false,
-        xtype : "remotecombo", 
-        storeUrl:'/api/document/address/getCombo',
+        xtype : "textfield", 
         fieldLabel : "交货地址", 
-        allowBlank : false, 
-        columnWidth : 0.5,
-        hiddenBtn:false,//true 则会关闭新增按钮功能
-        addHandler:function(b){
-            var document = Ext.create('saas.view.document.kind.Kind',{});
-            var form = this.ownerCmp.ownerCt;
-            this.dialog = form.getController().getView().add({
-                xtype: 'document-kind-childwin',
-                bind: {
-                    title: '新增交货地址'
-                },
-                dataKind:'address',
-                belong:document.etc['address'],
-                _parent:form,
-                _combo:this.ownerCmp,
-                record:null,
-                session: true
-            });
-            this.dialog.show();
-        }
+        columnWidth : 0.5
     }, {
         name : "detailGridField", 
         xtype : "detailGridField", 

+ 5 - 11
frontend/saas-web/app/view/sale/sale/FormPanelController.js

@@ -54,21 +54,15 @@ Ext.define('saas.view.sale.sale.FormPanelController', {
                 beforerender: function (f) {
                     Ext.apply(f, {
                         dbfinds: [{
-                            from: 'pr_code',
-                            to: 'sd_prodcode'
+                            from: 'pr_code', to: 'sd_prodcode'
                         }, {
-                            from: 'pr_saleprice',
-                            to: 'sd_price'
+                            from: 'pr_saleprice', to: 'sd_price'
                         }, {
-                            from: 'pr_detail',
-                            to: 'pr_detail'
+                            from: 'pr_detail', to: 'pr_detail'
                         }, {
-                            from: 'pr_spec',
-                            to: 'pr_spec'
+                            from: 'pr_spec', to: 'pr_spec'
                         }, {
-                            from: 'id',
-                            to: 'sd_prodid',
-                            ignore: true
+                            from: 'id', to: 'sd_prodid', ignore: true
                         }],
                     });
 

+ 1 - 1
frontend/saas-web/app/view/sale/saleIn/FormPanel.js

@@ -30,7 +30,7 @@ Ext.define('saas.view.sale.saleIn.FormPanel', {
         name: 'id',
         fieldLabel: 'id'
     }, {
-        xtype : "textfield", 
+        xtype : "hidden", 
         name : "pi_class", 
         fieldLabel : "单据类型", 
         readOnly:true,

+ 13 - 11
frontend/saas-web/app/view/sale/saleIn/FormPanelController.js

@@ -29,19 +29,21 @@ Ext.define('saas.view.sale.saleIn.FormPanelController', {
                 beforerender: function (f) {
                     Ext.apply(f, {
                         dbfinds: [{
-                                from: 'id',
-                                to: 'pd_prodid',
-                                ignore: true
-                            },
-                            {
-                                from: 'pr_code',
-                                to: 'pd_prodcode'
+                                from: 'id', to: 'pd_prodid', ignore: true 
+                            }, { 
+                                from: 'pr_code', to: 'pd_prodcode' 
                             }, {
-                                from: 'pr_detail',
-                                to: 'pr_detail'
+                                from: 'pr_detail', to: 'pr_detail'
                             }, {
-                                from: 'pr_spec',
-                                to: 'pr_spec'
+                                from: 'pr_spec', to: 'pr_spec'
+                            }, {
+                                from:'pr_whid',to:'pd_whid'
+                            }, {
+                                from:'pr_whcode',to:'pd_whcode'
+                            }, {
+                                from:'pr_whname',to:'pd_whname'
+                            }, {
+                                from:'pr_saleprice',to:'pd_sendprice'
                             }
                         ],
                     });

+ 1 - 1
frontend/saas-web/app/view/sale/saleOut/FormPanel.js

@@ -40,7 +40,7 @@ Ext.define('saas.view.sale.saleout.FormPanel', {
         name: 'id',
         fieldLabel: 'id'
     }, {
-        xtype : "textfield", 
+        xtype : "hidden", 
         name : "pi_class", 
         fieldLabel : "单据类型", 
         readOnly:true,

+ 9 - 2
frontend/saas-web/app/view/sale/saleOut/FormPanelController.js

@@ -27,13 +27,20 @@ Ext.define('saas.view.sale.saleout.FormPanelController', {
                     Ext.apply(f,{
                         dbfinds:[{
                             from:'id',to:'pd_prodid',ignore:true 
-                        },
-                        {
+                        }, {
                             from:'pr_code',to:'pd_prodcode'
                         }, {
                             from:'pr_detail',to:'pr_detail'
                         }, {
                             from:'pr_spec',to:'pr_spec'
+                        }, {
+                            from:'pr_whid',to:'pd_whid'
+                        }, {
+                            from:'pr_whcode',to:'pd_whcode'
+                        }, {
+                            from:'pr_whname',to:'pd_whname'
+                        }, {
+                            from:'pr_saleprice',to:'pd_sendprice'
                         }],
                     }) ;   
 

+ 1 - 1
frontend/saas-web/app/view/stock/appropriationInOut/FormPanel.js

@@ -31,7 +31,7 @@ Ext.define('saas.view.stock.appropriationInOut.FormPanel', {
         allowBlank: true,
         columnWidth: 0
     },{
-        xtype : "textfield", 
+        xtype : "hidden", 
         name : "pi_class", 
         fieldLabel : "单据类型", 
         readOnly:true,

+ 10 - 8
frontend/saas-web/app/view/stock/make/FormPanel.js

@@ -391,14 +391,16 @@ Ext.define('saas.view.stock.make.FormPanel', {
         controller = me.getController(),
         viewModel = me.getViewModel(),
         grid = me.down('detailGridField'),
-        data = grid.getTrueData()
-        str='';
-        Ext.Array.each(data,function(item){
-            if(item.mm_price==0){     
-                str=str+item.mm_detno+'行'+item.mm_prodcode+'物料成本单价为0!'+'<br>'
-            }
-        });
-    
+        data = grid.getTrueData(),
+        str='',
+        type = viewModel.get('ma_type');
+        if ('拆件' == type) {
+            Ext.Array.each(data,function(item){
+                if(item.mm_price==0){     
+                    str=str+item.mm_detno+'行'+item.mm_prodcode+'物料成本单价为0!'+'<br>'
+                }
+            });
+        }
         if(str!=''){
             saas.util.BaseUtil.showConfirm('提示',str)
             .then(function(y) {

+ 0 - 53
frontend/saas-web/app/view/stock/make/FormPanelController.js

@@ -101,59 +101,6 @@ Ext.define('saas.view.stock.make.FormPanelController', {
 
         });
     },
-    initCopyData: function (formData) {
-        var me = this;
-        var form = this.getView();
-        var detailCount = form.detailCount;
-        var main = formData.main;
-        var auditTexts = form.auditTexts;
-
-        // 单号、id清空
-        main[form._idField] = 0;
-        main[form._codeField] = '';
-        // 单据状态为录入状态(未审核)
-        main[form._statusCodeField] = auditTexts.unAuditCode;
-        main[form._statusField] = auditTexts.unAuditText;
-        //录入人,录入日期,审核人,审核日期清空
-        main['creatorId'] = null;
-        main['creatorName'] = null;
-        main['createTime'] = null;
-        main['updaterId'] = null;
-        main['updaterName'] = null;
-        main['updateTime'] = null;
-        main[form._auditmanField] = null;
-        main[form._auditdateField] = null;
-        //数量,单价,金额(主表)
-        main['ma_qty'] = 0;
-        main['ma_price'] = 0;
-        main['ma_total'] = 0;
-        for (var k in main) {
-            // 主表日期改为当前日期
-            if (saas.util.BaseUtil.isDateString(main[k])) {
-                main[k] = Ext.Date.format(new Date, 'Y-m-d H:i:s');
-            }
-        }
-
-        for (var j = 0; j < detailCount; j++) {
-            var detail = formData['detail' + j];
-            for (var x = 0; x < detail.length; x++) {
-                var d = detail[x];
-
-                for (var k in d) {
-                    // 从表id清空
-                    delete d['id'];
-                    delete d['mm_price'];
-                    delete d['mm_qty'];
-                    delete d['mm_amount'];
-                    // 从表日期清空
-                    if (saas.util.BaseUtil.isDateString(d[k])) {
-                        d[k] = '';
-                    }
-                }
-            }
-        }
-        return me.myInitCopyData(formData);;
-    },
     price_change: function (v) {
         var me = this,
             viewModel = me.getViewModel(),

+ 1 - 1
frontend/saas-web/app/view/stock/otherIn/FormPanel.js

@@ -34,7 +34,7 @@ Ext.define('saas.view.stock.otherIn.FormPanel', {
         allowBlank: true,
         columnWidth: 0
     },{
-        xtype : "textfield", 
+        xtype : "hidden", 
         name : "pi_class", 
         fieldLabel : "单据类型", 
         readOnly:true,

+ 1 - 1
frontend/saas-web/app/view/stock/otherOut/FormPanel.js

@@ -33,7 +33,7 @@ Ext.define('saas.view.stock.otherOut.FormPanel', {
         allowBlank: true,
         columnWidth: 0
     }, {
-        xtype: "textfield",
+        xtype: "hidden",
         name: "pi_class",
         fieldLabel: "单据类型",
         readOnly: true,

+ 4 - 0
frontend/saas-web/ext/packages/ux/src/feature/MySummary.js

@@ -30,6 +30,10 @@ Ext.define('Ext.ux.feature.MySummary', {
 
         me.callParent([grid]);
 
+        grid.store.on('load', function() {
+            this.fireEvent('mysummarychange', grid);
+        }, grid);
+
         grid.on({
             mysummarychange: me.refreshData,
             scope: me

+ 8 - 8
frontend/saas-web/resources/json/navigation.json

@@ -29,6 +29,10 @@
             "id": "report-purchasepay",
             "text": "采购付款一览表",
             "viewType": "purchase-report-purchasepay"
+        }, {
+            "text": "供应商对账单",
+            "id": "monry-report-vendorcheck",
+            "viewType":"monry-report-vendorcheck"
         }]
     }]
 }, {
@@ -66,6 +70,10 @@
             "id": "report-saleprofit",
             "text": "销售利润表",
             "viewType": "sale-report-saleprofit"
+        }, {
+            "text": "客户对账单",
+            "id": "monry-report-customercheck",
+            "viewType":"monry-report-customercheck"
         }]
     }]
 }, {
@@ -153,17 +161,9 @@
     }, {
         "text": "报表",
         "items": [{
-            "text": "供应商对账单",
-            "id": "monry-report-vendorcheck",
-            "viewType":"monry-report-vendorcheck"
-        }, {
             "text": "应付账款明细表",
             "id": "monry-report-paydetail",
             "viewType":"monry-report-paydetail"
-        }, {
-            "text": "客户对账单",
-            "id": "monry-report-customercheck",
-            "viewType":"monry-report-customercheck"
         }, {
             "text": "应收账款明细表",
             "id": "monry-report-recdetail",

Some files were not shown because too many files changed in this diff