Browse Source

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

dingyl 6 years ago
parent
commit
83277edcb5
18 changed files with 252 additions and 42 deletions
  1. 3 2
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java
  2. 10 10
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CustAramountServiceImpl.java
  3. 10 10
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/VendApamountServiceImpl.java
  4. 20 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/CustomerCheckView.java
  5. 20 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/VendorAcountView.java
  6. 8 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/VerificationServiceImpl.java
  7. 3 1
      applications/money/money-server/src/main/resources/mapper/CustomerCheckViewMapper.xml
  8. 2 0
      applications/money/money-server/src/main/resources/mapper/VendorAcountViewMapper.xml
  9. 1 0
      applications/money/money-server/src/main/resources/mapper/VerificationMapper.xml
  10. 2 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/mapper/ProdIODetailMapper.java
  11. 7 0
      applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/ProdInOutServiceImpl.java
  12. 4 0
      applications/purchase/purchase-server/src/main/resources/mapper/ProdIODetailMapper.xml
  13. 45 0
      frontend/saas-web/app/view/money/payBalance/FormPanelController.js
  14. 46 0
      frontend/saas-web/app/view/money/recBalance/FormPanelController.js
  15. 4 4
      frontend/saas-web/app/view/money/report/AccountBalance.js
  16. 31 5
      frontend/saas-web/app/view/money/report/CustomerCheck.js
  17. 4 4
      frontend/saas-web/app/view/money/report/OtherIODetail.js
  18. 32 6
      frontend/saas-web/app/view/money/report/VendorCheck.js

+ 3 - 2
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java

@@ -46,8 +46,8 @@ public enum BizExceptionCode implements BaseExceptionCode {
     BIZ_TURNPURCHASE_BEFORE(79351, "请先获取UU号(供应商:<u>%s</u>),再进行下单操作"),
     BIZ_NOVENDOR_SAVE(79352, "选择的供应商不存在或已禁用"),
     BIZ_NOCURRENCY_SAVE(79353, "选择的币别不存在"),
-    BIZ_NOPERIOD_UPDATE(79354, "期初日期所在期间结账,不能修改期初金额"),
-    BIZ_NOPERIOD_DELETE(79355, "期初日期所在期间结账,不能删除"),
+    BIZ_NOPERIOD_UPDATE(79354, "期初日期所在期间结账,不能修改期初金额"),
+    BIZ_NOPERIOD_DELETE(79355, "期初日期所在期间结账,不能删除"),
     BIZ_NOCUST_SAVE(79356, "选择的客户不存在或已禁用"),
     BIZ_SAMEVENDAP_SAVE(79357, "已存在相同供应商和币别的期初数据,不能新增"),
     BIZ_SAMECUSTAR_SAVE(79358, "已存在相同客户和币别的期初数据,不能新增"),
@@ -93,6 +93,7 @@ public enum BizExceptionCode implements BaseExceptionCode {
     PURCHASE_ORDER_HASAUDIT(70002, "存在已审核单据,单据编号:%s"),
     PURCHASE_ORDER_HASUNAUDIT(70003, "存在未审核单据,单据编号:%s"),
     PURCHASE_ORDER_HASUPLOAD(70004, "已上传优软商务平台的采购订单不允许反审核,如交易信息发生变更请关闭该订单重新新增订单"),
+    PURCHASE_INOUTORDER_HASCHECK(70005, "反审核失败!该单存在已对账明细,不允许反审核"),
 
 
     //销售

+ 10 - 10
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/CustAramountServiceImpl.java

@@ -352,17 +352,17 @@ public class CustAramountServiceImpl extends CommonBaseServiceImpl<CustAramountM
                         custAramount.setCa_recamount(oldCustAramount.getCa_recamount());
                         custAramount.setCa_preamount(oldCustAramount.getCa_preamount());
                         custAramount.setCa_begindate(oldCustAramount.getCa_begindate());
+                        custAramount.setUpdaterId(companyId);
+                        custAramount.setUpdateTime(new Date());
+                        //期初日期是否已结账
+                        int checkBeginData = getMapper().checkBeginData(sdf.format(custAramount.getCa_begindate()),companyId);
+                        if(checkBeginData > 0){
+                            err.append("第" + (i + 3) + "行 : "+BizExceptionCode.BIZ_NOPERIOD_UPDATE.getMessage()+"!<br/> ");
+                        }
+                        //更新余额
+                        custAramount.setCa_leftamount(custAramount.getCa_beginaramount()-custAramount.getCa_beginprerecamount()+custAramount.getCa_recamount()-custAramount.getCa_preamount());
+                        updateList.add(custAramount);
                     }
-                    custAramount.setUpdaterId(companyId);
-                    custAramount.setUpdateTime(new Date());
-                    //期初日期是否已结账
-                    int checkBeginData = getMapper().checkBeginData(sdf.format(custAramount.getCa_begindate()),companyId);
-                    if(checkBeginData > 0){
-                        err.append("第" + (i + 3) + "行 : "+BizExceptionCode.BIZ_NOPERIOD_UPDATE.getMessage()+"!<br/> ");
-                    }
-                    //更新余额
-                    custAramount.setCa_leftamount(custAramount.getCa_beginaramount()-custAramount.getCa_beginprerecamount()+custAramount.getCa_recamount()-custAramount.getCa_preamount());
-                    updateList.add(custAramount);
                 }else{
                     //新增
                     custAramount.setCreatorId(companyId);

+ 10 - 10
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/VendApamountServiceImpl.java

@@ -349,17 +349,17 @@ public class VendApamountServiceImpl extends CommonBaseServiceImpl<VendApamountM
                         vendApamount.setVa_payamount(oldVendApamount.getVa_payamount());
                         vendApamount.setVa_preamount(oldVendApamount.getVa_preamount());
                         vendApamount.setVa_begindate(oldVendApamount.getVa_begindate());
+                        vendApamount.setUpdaterId(companyId);
+                        vendApamount.setUpdateTime(new Date());
+                        //期初日期是否已结账
+                        int checkBeginData = getMapper().checkBeginData(sdf.format(vendApamount.getVa_begindate()),companyId);
+                        if(checkBeginData > 0){
+                            err.append("第" + (i + 3) + "行 : "+BizExceptionCode.BIZ_NOPERIOD_UPDATE.getMessage()+"!<br/> ");
+                        }
+                        //更新余额
+                        vendApamount.setVa_leftamount(vendApamount.getVa_beginapamount()-vendApamount.getVa_beginprepayamount()+vendApamount.getVa_payamount()-vendApamount.getVa_preamount());
+                        updateList.add(vendApamount);
                     }
-                    vendApamount.setUpdaterId(companyId);
-                    vendApamount.setUpdateTime(new Date());
-                    //期初日期是否已结账
-                    int checkBeginData = getMapper().checkBeginData(sdf.format(vendApamount.getVa_begindate()),companyId);
-                    if(checkBeginData > 0){
-                        err.append("第" + (i + 3) + "行 : "+BizExceptionCode.BIZ_NOPERIOD_UPDATE.getMessage()+"!<br/> ");
-                    }
-                    //更新余额
-                    vendApamount.setVa_leftamount(vendApamount.getVa_beginapamount()-vendApamount.getVa_beginprepayamount()+vendApamount.getVa_payamount()-vendApamount.getVa_preamount());
-                    updateList.add(vendApamount);
                 }else{
                     //新增
                     vendApamount.setCreatorId(companyId);

+ 20 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/CustomerCheckView.java

@@ -13,6 +13,10 @@ public class CustomerCheckView {
 
     private  String pi_currency;
 
+    private Double pi_rate;
+
+    private Double pi_mytotal;
+
     private Date pi_date;
 
     private Integer pd_pdno;
@@ -45,6 +49,22 @@ public class CustomerCheckView {
 
     private Double pd_ordertotal;
 
+    public Double getPi_mytotal() {
+        return pi_mytotal;
+    }
+
+    public void setPi_mytotal(Double pi_mytotal) {
+        this.pi_mytotal = pi_mytotal;
+    }
+
+    public Double getPi_rate() {
+        return pi_rate;
+    }
+
+    public void setPi_rate(Double pi_rate) {
+        this.pi_rate = pi_rate;
+    }
+
     public Double getPd_ordertotal(){
         return pd_ordertotal;
     }

+ 20 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/po/VendorAcountView.java

@@ -13,6 +13,10 @@ public class VendorAcountView {
 
     private String pi_currency;
 
+    private Double pi_rate;
+
+    private Double pi_mytotal;
+
     private Date pi_date;
 
     private Integer pd_pdno;
@@ -44,6 +48,22 @@ public class VendorAcountView {
     private int ym;
     private Double pd_ordertotal;
 
+    public Double getPi_rate() {
+        return pi_rate;
+    }
+
+    public void setPi_rate(Double pi_rate) {
+        this.pi_rate = pi_rate;
+    }
+
+    public Double getPi_mytotal() {
+        return pi_mytotal;
+    }
+
+    public void setPi_mytotal(Double pi_mytotal) {
+        this.pi_mytotal = pi_mytotal;
+    }
+
     public Double getPd_ordertotal(){
         return pd_ordertotal;
     }

+ 8 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/VerificationServiceImpl.java

@@ -137,6 +137,14 @@ public class VerificationServiceImpl extends CommonBaseServiceImpl<VerificationM
 
         Verification verification = BeanMapper.map(main,Verification.class);
         if(id.longValue() > 0 ){
+
+            //更新前判断数据库中的币别是否和当前币别一致
+            Verification oldVerification = getMapper().selectByPrimaryKey(id.intValue());
+            if(!oldVerification.getVc_currency().equals(main.getVc_currency())){
+                verificationdetailMapper.deleteByParentPrimaryKey(id);
+                verificationdetMapper.deleteByParentPrimaryKey(id);
+            }
+
             String kind = verification.getVc_kind();
             verification.setVc_kind(transferKind(kind));
             verification.setCompanyId(companyId);

+ 3 - 1
applications/money/money-server/src/main/resources/mapper/CustomerCheckViewMapper.xml

@@ -6,7 +6,9 @@
         <result column="pi_class" property="pi_class" jdbcType="VARCHAR" />
         <result column="pi_custcode" property="pi_custcode" jdbcType="VARCHAR" />
         <result column="pi_custname" property="pi_custname" jdbcType="VARCHAR" />
-        <result column="pi_custname" property="pi_custname" jdbcType="VARCHAR" />
+        <result column="pi_currency" property="pi_currency" jdbcType="VARCHAR" />
+        <result column="pi_rate" property="pi_rate" jdbcType="DOUBLE" />
+        <result column="pi_mytotal" property="pi_mytotal" jdbcType="DOUBLE" />
         <result column="pi_date" property="pi_date" jdbcType="TIMESTAMP" />
         <result column="pd_pdno" property="pd_pdno" jdbcType="INTEGER" />
         <result column="pr_code" property="pr_code" jdbcType="VARCHAR" />

+ 2 - 0
applications/money/money-server/src/main/resources/mapper/VendorAcountViewMapper.xml

@@ -7,6 +7,8 @@
     <result column="pi_vendcode" property="pi_vendcode" jdbcType="VARCHAR" />
     <result column="pi_vendname" property="pi_vendname" jdbcType="VARCHAR" />
     <result column="pi_currency" property="pi_currency" jdbcType="VARCHAR" />
+    <result column="pi_rate" property="pi_rate" jdbcType="DOUBLE" />
+    <result column="pi_mytotal" property="pi_mytotal" jdbcType="DOUBLE" />
     <result column="pi_date" property="pi_date" jdbcType="TIMESTAMP" />
     <result column="pd_pdno" property="pd_pdno" jdbcType="INTEGER" />
     <result column="pr_code" property="pr_code" jdbcType="VARCHAR" />

+ 1 - 0
applications/money/money-server/src/main/resources/mapper/VerificationMapper.xml

@@ -602,6 +602,7 @@
       vc_custid = #{vc_custid,jdbcType=INTEGER},
       vc_custcode = #{vc_custcode,jdbcType=VARCHAR},
       vc_custname = #{vc_custname,jdbcType=VARCHAR},
+      vc_currency = #{vc_currency,jdbcType=VARCHAR},
       vc_turnvendid = #{vc_turnvendid,jdbcType=INTEGER},
       vc_turnvendcode = #{vc_turnvendcode,jdbcType=VARCHAR},
       vc_turnvendname = #{vc_turnvendname,jdbcType=VARCHAR},

+ 2 - 0
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/mapper/ProdIODetailMapper.java

@@ -35,4 +35,6 @@ public interface ProdIODetailMapper extends CommonBaseMapper<ProdIODetail> {
     void getDefaultWarehouseByProduct(@Param("pi_id") Long pi_id);
 
     void updateApcheckStatus(ProdInOutStatusDTO prodInOutStatusDTO);
+
+    int selectApCheckCountByFK(Long id);
 }

+ 7 - 0
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/ProdInOutServiceImpl.java

@@ -382,6 +382,13 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
         if(StringUtils.isEmpty(pi_statuscode)||(!StringUtils.isEmpty(pi_statuscode)&&!pi_statuscode.equals(Status.AUDITED.name()))){
             throw  new BizException(BizExceptionCode.BIZ_UNAUDITED);
         };
+        if (ConfigsCache.current().enableB2B()) {
+            //明细已对账数量
+            int count = prodIODetailMapper.selectApCheckCountByFK(prodInOutDTO.getId());
+            if (count > 0) {
+                throw new BizException(BizExceptionCode.PURCHASE_INOUTORDER_HASCHECK);
+            }
+        }
         Map<String, Object> map = new HashMap<String, Object>();
         map.put("inoutNo",pi_inoutno);
         map.put("class", pi_class);

+ 4 - 0
applications/purchase/purchase-server/src/main/resources/mapper/ProdIODetailMapper.xml

@@ -686,4 +686,8 @@
     AND pd_pdno = #{detno, jdbcType=INTEGER}
     AND companyid = #{companyId, jdbcType=INTEGER}
   </update>
+
+  <select id="selectApCheckCountByFK" resultType="int">
+    SELECT COUNT(*) FROM prodiodetail WHERE pd_piid = #{id} and apcheckStatus = '已对账'
+  </select>
 </mapper>

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

@@ -236,6 +236,51 @@ Ext.define('saas.view.money.payBalance.FormPanelController', {
             me.save();
         }
     },
+
+    onAudit: function(){
+        var me = this,
+        form = this.getView(),
+        viewModel = me.getViewModel(),
+        id = viewModel.get(form._idField);
+
+        var dirty = form.isDirty();
+
+        if(id && dirty) {
+            saas.util.BaseUtil.showConfirm('提示', form.dirtyAuditText)
+            .then(function(yes) {
+                if(yes == 'yes') {
+                    me.onSave();
+                }
+            });
+            return;
+        }
+
+        var valid = form.isValid();
+
+        if(!valid) {
+            saas.util.BaseUtil.showErrorToast(form.invalidText);
+            return false;
+        }
+
+        if(!form.beforeAudit()) {
+            return false;
+        }
+
+        var store1 = viewModel.get('detail0').detailStore,
+            store2 = viewModel.get('detail1').detailStore;
+
+        var sum_pd_amount = store1.sum('pd_amount'); // 付款金额合计
+        var pb_discounts = viewModel.get('pb_discounts'); // 折扣金额
+        var sum_pbd_nowbalance = store2.sum('pbd_nowbalance'); // 本次核销金额合计
+
+        var flag = sum_pd_amount + pb_discounts - sum_pbd_nowbalance;
+         viewModel.set("pb_pbdamount",sum_pbd_nowbalance);
+         viewModel.set("pb_pdamount",sum_pd_amount);
+         viewModel.set("pb_preamount",flag);
+
+        me.audit();
+    },
+
     // vendnamechange:function(dbfindtrigger){
     //     var me = this,
     //         viewModel = me.getViewModel(),

+ 46 - 0
frontend/saas-web/app/view/money/recBalance/FormPanelController.js

@@ -204,6 +204,52 @@ Ext.define('saas.view.money.recBalance.FormPanelController', {
             me.save();
         }
     },
+
+    onAudit: function(){
+        var me = this,
+        form = this.getView(),
+        viewModel = me.getViewModel(),
+        id = viewModel.get(form._idField);
+
+        var dirty = form.isDirty();
+
+        if(id && dirty) {
+            saas.util.BaseUtil.showConfirm('提示', form.dirtyAuditText)
+            .then(function(yes) {
+                if(yes == 'yes') {
+                    me.onSave();
+                }
+            });
+            return;
+        }
+
+        var valid = form.isValid();
+
+        if(!valid) {
+            saas.util.BaseUtil.showErrorToast(form.invalidText);
+            return false;
+        }
+
+        if(!form.beforeAudit()) {
+            return false;
+        }
+
+        var store1 = viewModel.get('detail0').detailStore,
+            store2 = viewModel.get('detail1').detailStore;
+
+        var sum_rd_amount = store1.sum('rd_amount'); // 付款金额合计
+        var rb_discounts = viewModel.get('rb_discounts'); // 折扣金额
+        var sum_rbd_nowbalance = store2.sum('rbd_nowbalance'); // 本次核销金额合计
+
+        var flag = sum_rd_amount + rb_discounts - sum_rbd_nowbalance;
+        viewModel.set("rb_rbdamount",sum_rbd_nowbalance);
+        viewModel.set("rb_rdamount",sum_rd_amount);
+        viewModel.set("rb_preamount",sum_rd_amount-sum_rbd_nowbalance);
+        viewModel.set("rb_preamount",flag);
+
+        me.audit();
+    },
+
     custnamechange:function(dbfindtrigger){
         var me = this,
             viewModel = me.getViewModel(),

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

@@ -43,6 +43,10 @@ Ext.define('saas.view.money.report.AccountBalance', {
         text: '业务类型',
         dataIndex: 'kind',
         width: 100
+    },{
+        text: '币别',
+        dataIndex: 'currency',
+        width: 80,
     }, {
         text: '收入(元)',
         dataIndex: 'inamount',
@@ -69,10 +73,6 @@ Ext.define('saas.view.money.report.AccountBalance', {
         summaryRenderer: function(v, d, f, m) {
             return saas.util.BaseUtil.numberFormat(v, 2, true);
         }
-    },{
-        text: '币别',
-        dataIndex: 'currency',
-        width: 80,
     }, {
         text: '往来单位',
         dataIndex: 'bname',

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

@@ -155,15 +155,41 @@ Ext.define('saas.view.money.report.CustomerCheckCheck', {
             var format = '0,000.' + xr.join('');
             return Ext.util.Format.number(v, format);
         },
-        summaryType: 'sum',
-        summaryLabel: '价税合计',
-        summaryRenderer: function(v) {
-            return saas.util.BaseUtil.numberFormat(v, 2, true);
-        }
+        // summaryType: 'sum',
+        // summaryLabel: '价税合计(本位币)',
+        // summaryRenderer: function(v) {
+        //     return saas.util.BaseUtil.numberFormat(v, 2, true);
+        // }
     },{
         text: '币别',
         dataIndex: 'pi_currency',
         width: 80
+    },{
+        text: '汇率',
+        dataIndex: 'pi_rate',
+        exportFormat: 'Integer',
+        xtype: 'numbercolumn',
+        width: 100,
+        renderer: function(v) {
+            return saas.util.BaseUtil.numberFormat(v, 4, false);
+        }
+    },{
+        text: '价税合计(本位币)',
+        width: 140,
+        xtype: 'numbercolumn',
+        exportFormat: 'Amount',
+        dataIndex: 'pi_mytotal',
+        renderer : function(v, m, r) {
+            var arr = (v + '.').split('.');
+            var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
+            var format = '0,000.' + xr.join('');
+            return Ext.util.Format.number(v, format);
+        },
+        summaryType: 'sum',
+        summaryLabel: '价税合计(本位币)',
+        summaryRenderer: function(v,m,r) {
+            return saas.util.BaseUtil.numberFormat(v, 2, true);
+        }
     }],
 
     listeners: {

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

@@ -80,6 +80,10 @@ Ext.define('saas.view.money.report.OtherIODetail', {
         text: '资金账户',
         dataIndex: 'bl_bankname',
         width: 150
+    },{
+        text: '币别',
+        dataIndex: 'bk_currency',
+        width: 80,
     }, {
         text: '收入(元)',
         dataIndex: 'bl_income',
@@ -107,10 +111,6 @@ Ext.define('saas.view.money.report.OtherIODetail', {
             return saas.util.BaseUtil.numberFormat(v, 2, true);
         }
     }, {
-        text: '币别',
-        dataIndex: 'bk_currency',
-        width: 80,
-    },{
         text: '往来单位',
         dataIndex: 'bl_assname',
         width: 200,

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

@@ -153,18 +153,44 @@ Ext.define('saas.view.money.report.VendorCheck', {
         exportFormat: 'Amount',
         dataIndex: 'pd_ordertotal',
         width: 120,
-        summaryType: 'sum',
-        summaryLabel: '价税合计',
         renderer: function(v) {
-            return saas.util.BaseUtil.numberFormat(v, 2, true);
+            var arr = (v + '.').split('.');
+            var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
+            var format = '0,000.' + xr.join('');
+            return Ext.util.Format.number(v, format);
         },
-        summaryRenderer: function(v) {
-            return saas.util.BaseUtil.numberFormat(v, 2, true);
-        }
+        // summaryType: 'sum',
+        // summaryLabel: '价税合计(本位币)',
+        // summaryRenderer: function(v) {
+        //     return saas.util.BaseUtil.numberFormat(v, 2, true);
+        // }
     },{
         text: '币别',
         dataIndex: 'pi_currency',
         width: 80
+    },{
+        text: '汇率',
+        dataIndex: 'pi_rate',
+        exportFormat: 'Integer',
+        xtype: 'numbercolumn',
+        width: 100,
+        renderer: function(v) {
+            return saas.util.BaseUtil.numberFormat(v, 4, false);
+        }
+    },{
+        text: '价税合计(本位币)',
+        width: 140,
+        xtype: 'numbercolumn',
+        exportFormat: 'Amount',
+        dataIndex: 'pi_mytotal',
+        renderer : function(v, m, r) {
+            var arr = (v + '.').split('.');
+            var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
+            var format = '0,000.' + xr.join('');
+            return Ext.util.Format.number(v, format);
+        },
+        summaryType: 'sum',
+        summaryLabel: '价税合计(本位币)'
     }],
 
     listeners: {