Explorar o código

备用金报账校验逻辑修改

梁世豪 hai 4 meses
pai
achega
ec1dd7d3c0

+ 20 - 1
src/main/resources/mapper/StaBudgetapprovalDao.xml

@@ -1161,8 +1161,27 @@
1161 1161
     <select id="getZbzje" resultType="com.liang.entity.StaBudgetapproval">
1162 1162
         SELECT
1163 1163
             (SELECT XMZYS * 10000 FROM prj_AnnualBudgetDetail WHERE FJ = '' AND NYS = #{nys}) AS XMZYS,
1164
+            (SELECT BYJ * 10000 FROM prj_AnnualBudgetDetail WHERE FJ = '' AND NYS = #{nys}) AS BYJ,
1164 1165
             (SELECT XMZ * 10000 FROM prj_AnnualBudgetDetail WHERE ID = #{fylb} AND NYS = #{nys}) AS KMZYS,
1165
-            (SELECT SUM(BZJE) FROM sta_BudgetApproval WHERE NYS = #{nys} and SPZT = '审批结束' ) AS ZBZJE,
1166
+            (select
1167
+                SUM(sr.bzje)
1168
+            from
1169
+                sta_Reimbursement sr
1170
+                    left join  sta_BudgetApproval sb on sr.fysq = sb.id
1171
+            where
1172
+                sb.NYS = #{nys}
1173
+              and sb.SPZT != '作废'
1174
+                    and sr.spzt != '作废') AS ZBZJE,
1175
+            (select
1176
+                 SUM(sr.bzje)
1177
+             from
1178
+                 sta_Reimbursement sr
1179
+                     left join  sta_BudgetApproval sb on sr.fysq = sb.id
1180
+             where
1181
+                 sb.NYS = #{nys}
1182
+               and sb.SPZT != '作废'
1183
+                and sb.SFBYJ = 1
1184
+                and sr.spzt != '作废' ) AS BYJBZZE,
1166 1185
             (select
1167 1186
                  SUM(sr.bzje)
1168 1187
              from

+ 1 - 1
src/main/resources/mapper/StaReimbursementDao.xml

@@ -33,7 +33,7 @@
33 33
 
34 34
     <!--id查询单个-->
35 35
     <select id="queryById" resultMap="StaReimbursementMap">
36
-        select r.*, b.FYLB, g.FYMC as FYLBMC, b.SQJE
36
+        select r.*, b.FYLB, g.FYMC as FYLBMC, b.SQJE,b.SFBYJ
37 37
         from sta_Reimbursement r
38 38
                  left join sta_BudgetApproval b on b.ID = r.FYSQ
39 39
                  left join prj_AnnualBudgetDetail g on g.ID = b.FYLB

+ 3 - 8
src/main/resources/templates/payapply/update.html

@@ -412,23 +412,18 @@
412 412
                 Message.warning('本次付款金额,不能大于付款计划金额!',2000);
413 413
                 return ;
414 414
             }
415
-            console.log(selectedText[1].replace(/\s+/g, ''))
416
-            console.log(selectedText[2].replace(/\s+/g, ''))
417
-            console.log(bcfkje+parseFloat(selectedText[2].replace(/\s+/g, ''))-oldbcfkje)
418
-/*            if (bcfkje+parseFloat(selectedText[2].replace(/\s+/g, ''))-oldbcfkje>selectedText[1].replace(/\s+/g, '')){
415
+            if (bcfkje+parseFloat(selectedText[2].replace(/\s+/g, ''))-oldbcfkje>selectedText[1].replace(/\s+/g, '')){
419 416
                 Message.warning('该付款计划下已申请付款金额加上本次付款金额,大于付款计划金额!',2000);
420 417
                 return ;
421
-            }*/
418
+            }
422 419
             $.ajax({
423 420
                 url: AjaxUtil.ctx + 'staBudgetapproval/getKmze/?id='+fysq,
424 421
                 type: "post",
425 422
                 async: false,
426 423
                 dataType: "json",
427 424
                 success: function (result) {
428
-                    console.log(result);
429 425
                     if (result.code == 0){
430 426
                         var kmze = result.data;
431
-                        console.log(data);
432 427
                         if (kmze.length > 0){
433 428
                             var kmzes = kmze[0];
434 429
                             fkje = kmzes.yfze;
@@ -450,7 +445,7 @@
450 445
             console.log(fkje-oldbcfkje+bcfkje)
451 446
             console.log((fkje-oldbcfkje+bcfkje) > bzje)
452 447
             if ( (fkje-oldbcfkje+bcfkje) > bzje){
453
-                Message.warning('该报账下付款申请已申请总金额已超出报账金额!',2000);
448
+                alert('该项目费用类别为'+fymc+' 下的付款申请总金额已超出总报账金额,已申请的付款金额为:'+(fkje-oldbcfkje)+'万元,报账金额为:'+bzje+'万元');
454 449
                 return ;
455 450
             }
456 451
             //合同文件

+ 54 - 26
src/main/resources/templates/reimburse/add.html

@@ -163,18 +163,22 @@
163 163
         var sqje = $("#sqje").val();
164 164
         var xmmc = [[${budgetapproval.xmmc}]];
165 165
         var fylb = [[${budgetapproval.fylb}]];
166
+        var sfbyj = [[${budgetapproval.sfbyj}]];
166 167
         xmmc = xmmc.replace(/[\/\\]/g, '_');
167 168
         var htId ;
168 169
 
169 170
         var xmzys;//项目总预算
171
+        var byj;//项目备用金
170 172
         var zbzje;//项目总报账额
171 173
         var kmzys;//科目项目组预算
174
+        var byjbzze;//备用金报账总额
172 175
         var kmybzje;//科目已报账金额
173 176
         var bzId = -1;
174 177
 
175 178
         setTimeout(function() {
176 179
             // 在这里可以进行您的加载操作
177 180
             layer.msg('加载完成!', { icon: 1 });
181
+            getbzje();
178 182
             var fylbmc = document.getElementById('fylbmc').value;
179 183
             var clDiv = document.getElementById('cl'); // 获取 div
180 184
             if ( fylbmc == '(1)外委研究支出费' || fylbmc == '(3)外协测试试验与加工费'){
@@ -599,40 +603,64 @@
599 603
                 }
600 604
             });
601 605
         });
602
-        AjaxUtil.post({
603
-            url: AjaxUtil.ctx + 'staReimbursement/getZbjje/'+fysq+'/'+fylb,
604
-            success:function (data){
605
-                xmzys = data.data.xmzys;
606
-                zbzje = data.data.zbzje;
607
-                kmzys =data.data.kmzys;
608
-                kmybzje =data.data.kmybzje;
606
+        function getbzje() {
607
+            AjaxUtil.post({
608
+                url: AjaxUtil.ctx + 'staReimbursement/getZbjje/' + fysq + '/' + fylb,
609
+                success: function (data) {
610
+                    xmzys = data.data.xmzys;
611
+                    byj = data.data.byj;
612
+                    zbzje = data.data.zbzje;
613
+                    kmzys = data.data.kmzys;
614
+                    byjbzze = data.data.byjbzze;
615
+                    kmybzje = data.data.kmybzje;
609 616
 
610
-            }
611
-        })
617
+                }
618
+            })
619
+        }
612 620
 
613 621
         // 监听确认按钮
614 622
         form.on('submit(saveBtn)', function (data) {
623
+            getbzje()//初始化已报账金额
615 624
             var sqje = parseFloat($("#sqje").val());
616 625
             var bzje = parseFloat($("#bzje").val());
617
-            console.log(kmzys)
618
-            console.log(kmybzje)
619
-            //校验报账金额是否大于科目项目组预算
620
-            if (kmzys == null  && kmzys ==''){
621
-                alert('该报账此费用类别没有项目组预算,请在年度预算中修改项目组预算!!')
622
-                return false;
623
-            }else if (bzje > kmzys){
624
-                alert('报账金额大于该科目项目组预算,请查看年度预算中该科目项目组预算后重新填写!!!')
625
-                return false;
626
-            }else if (bzje + kmybzje >kmzys){
627
-                alert('该科目已申请报账加上当前报账金额,已超过该科目项目组预算!!')
628
-                return false;
629
-            }
630
-            // 获取该项目的总报账金额
631
-            if (xmzys !== null && zbzje !== null) {
632
-                if (zbzje + bzje > xmzys) {
633
-                    alert("该项目已申请报账加上当前报账金额,已超过该项目总预算!!")
626
+            //判断是否是备用金
627
+            if (sfbyj){
628
+                //1.判断当前项目是否有备用金
629
+                if(byj == null || byj == ''){
630
+                    alert('该项目没有备用金,如需继续报账,请在年度预算中修改该项目备用金!!');
634 631
                     return false;
635 632
                 }
633
+                //2.判断当前报账金额是否大于项目备用金
634
+                if (bzje>byj){
635
+                    alert('报账金额已超过年度备用金金额,年度备用金金额为:'+byj+'元');
636
+                    return false;
637
+                }
638
+                //3.判断当前项目备用金已创建的报账金额是否超额
639
+                if (byjbzze + bzje>byj){
640
+                    alert('该项目下备用金已申请报账金额加上当前报账金额,已超过年度备用金金额。该项目下备用金已申请报账金额为:'+byjbzze+'元,年度备用金金额为:'+byj+'元');
641
+                    return false;
642
+                }
643
+            }else {
644
+                //校验报账金额是否大于科目项目组预算
645
+                if (kmzys == null || kmzys == '') {
646
+                    alert('该费用类别没有项目组预算,请在年度预算中修改该费用类别预算!!')
647
+                    return false;
648
+                }
649
+                if (bzje > kmzys) {
650
+                    alert('报账金额大于该费用类别预算,该费用类别预算为:'+kmzys+'元')
651
+                    return false;
652
+                }
653
+                if (bzje + kmybzje > kmzys) {
654
+                    alert('该费用类别下已申请报账金额加上当前报账金额,已超过该费用类别预算。该费用类别下已申请的报账总金额为:'+kmybzje+'元,该费用类别预算为:'+kmzys+'元')
655
+                    return false;
656
+                }
657
+                // 获取该项目的总报账金额
658
+                if (xmzys !== null && zbzje !== null) {
659
+                    if (zbzje + bzje > xmzys) {
660
+                        alert("该项目下已申请报账金额加上当前报账金额,已超过该项目总预算。该项目下已申请的报账总金额为:"+zbzje+'元,项目总预算为:'+xmzys+'元')
661
+                        return false;
662
+                    }
663
+                }
636 664
             }
637 665
             // if (bzje!==null && bzje > sqje * 1.2) {
638 666
             //     alert("报账金额不能超过申请金额的120%!");

+ 55 - 35
src/main/resources/templates/reimburse/update.html

@@ -144,24 +144,28 @@
144 144
             upload = layui.upload;
145 145
         var fysq = $("#fysq").val();
146 146
         var fylb = [[${reimbursement.fylb}]]
147
+        var sfbyj = [[${reimbursement.sfbyj}]];
147 148
 
148 149
         var xmzys;//项目总预算
150
+        var byj;//项目备用金
149 151
         var zbzje;//项目总报账额
150 152
         var kmzys;//科目项目组预算
153
+        var byjbzze;//备用金报账总额
151 154
         var kmybzje;//科目已报账金额
152 155
 
153
-
154
-        AjaxUtil.post({
155
-            url: AjaxUtil.ctx + 'staReimbursement/getZbjje/'+fysq+'/'+fylb,
156
-            success:function (data){
157
-                console.log(data.data)
158
-                xmzys = data.data.xmzys;
159
-                zbzje = data.data.zbzje;
160
-                kmzys =data.data.kmzys;
161
-                kmybzje =data.data.kmybzje;
162
-
163
-            }
164
-        })
156
+        function getbzje() {
157
+            AjaxUtil.post({
158
+                url: AjaxUtil.ctx + 'staReimbursement/getZbjje/' + fysq + '/' + fylb,
159
+                success: function (data) {
160
+                    xmzys = data.data.xmzys;
161
+                    byj = data.data.byj;
162
+                    zbzje = data.data.zbzje;
163
+                    kmzys = data.data.kmzys;
164
+                    byjbzze = data.data.byjbzze;
165
+                    kmybzje = data.data.kmybzje;
166
+                }
167
+            })
168
+        }
165 169
 
166 170
         // //下拉框回显
167 171
         // function set_select(id, value) {
@@ -176,6 +180,7 @@
176 180
 
177 181
 
178 182
         setTimeout(function() {
183
+            getbzje()
179 184
             // 在这里可以进行您的加载操作
180 185
             layer.msg('加载完成!', { icon: 1 });
181 186
             var fylbmc = document.getElementById('fylbmc').value;
@@ -543,32 +548,47 @@
543 548
 
544 549
         // 监听确认按钮
545 550
         form.on('submit(saveBtn)', function (data) {
551
+            getbzje()
546 552
             var sqje = parseFloat($("#sqje").val());
547 553
             var bzje = parseFloat($("#bzje").val());
548 554
             var oldbzje = [[${reimbursement.bzje}]]
549
-            console.log('xmzys='+xmzys)
550
-            console.log('zbzje='+zbzje)
551
-            console.log('kmzys='+kmzys)
552
-            console.log('kmybzje='+kmybzje)
553
-            console.log('oldbzje='+oldbzje)
554
-            console.log('bzje='+bzje)
555
-            if (kmzys == null  && kmzys ==''){
556
-                alert('该报账此费用类别没有项目组预算,请在年度预算中修改项目组预算!!')
557
-                return false;
558
-            }else if (bzje > kmzys){
559
-                alert('报账金额大于该科目项目组预算,请查看年度预算中该科目项目组预算后重新填写!!!')
560
-                return false;
561
-            }else if (bzje + kmybzje -oldbzje >kmzys){
562
-                alert('该科目已申请报账加上当前报账金额,已超过该科目项目组预算!!')
563
-                return false;
564
-            }
565
-            // 获取该项目的总报账金额
566
-            if (xmzys !== null && zbzje !== null) {
567
-                if (zbzje + bzje - oldbzje > xmzys) {
568
-                    alert("该项目已申请报账加上当前报账金额,已超过该项目总预算!!")
569
-                    return false;
570
-                }
571
-            }
555
+           if (sfbyj){
556
+               //1.判断当前项目是否有备用金
557
+               if(byj == null || byj == ''){
558
+                   alert('该项目没有备用金,如需继续报账,请在年度预算中修改该项目备用金!!');
559
+                   return false;
560
+               }
561
+               //2.判断当前报账金额是否大于项目备用金
562
+               if (bzje>byj){
563
+                   alert('报账金额已超过年度备用金金额,年度备用金金额为:'+byj+'元');
564
+                   return false;
565
+               }
566
+               //3.判断当前项目备用金已创建的报账金额是否超额
567
+               if (byjbzze + bzje - oldbzje>byj){
568
+                   alert('该项目下备用金已申请报账金额加上当前报账金额,已超过年度备用金金额。该项目下备用金已申请报账金额为:'+(byjbzze-oldbzje)+'元,年度备用金金额为:'+byj+'元');
569
+                   return false;
570
+               }
571
+           }else {
572
+               if (kmzys == null && kmzys == '') {
573
+                   alert('该报账此费用类别没有项目组预算,请在年度预算中修改项目组预算!!')
574
+                   return false;
575
+               }
576
+               if (bzje > kmzys) {
577
+                   alert('报账金额大于该费用类别预算,该费用类别预算为:'+kmzys+'元')
578
+                   return false;
579
+               }
580
+               if (bzje + kmybzje - oldbzje > kmzys) {
581
+                   alert('该费用类别下已申请报账金额加上当前报账金额,已超过该费用类别预算。该费用类别下已申请的报账总金额为:'+(kmybzje-oldbzje)+'元,该费用类别预算为:'+kmzys+'元')
582
+                   return false;
583
+               }
584
+               // 获取该项目的总报账金额
585
+               if (xmzys !== null && zbzje !== null) {
586
+                   if (zbzje + bzje - oldbzje > xmzys) {
587
+                       alert("该项目下已申请报账金额加上当前报账金额,已超过该项目总预算。该项目下已申请的报账总金额为:"+(zbzje-oldbzje)+'元,项目总预算为:'+xmzys+'元')
588
+                       return false;
589
+                   }
590
+               }
591
+           }
572 592
             // if (bzje!==null && bzje > sqje * 1.2) {
573 593
             //     alert("报账金额不能超过申请金额的120%!");
574 594
             //     return false; // 阻止表单提交

+ 2 - 2
src/main/resources/templates/stabudgetapproval/update_apply.html

@@ -829,7 +829,7 @@
829 829
                     {field: 'ysje', title: '预算(万元)', width: '19%'},
830 830
                     {field: 'ysqje', title: '已申请(元)', width: '19%'},
831 831
                     {field: 'ybzje', title: '已报账(元)',width: '19%'},
832
-                    {field: 'bzzje',title: '报账中费用(元)',width: '18.5%'}
832
+                    {field: 'bzzje',title: '报账中费用(元)',width: '18%'}
833 833
                 ]
834 834
             ]
835 835
         });
@@ -842,7 +842,7 @@
842 842
                     {field: 'ysje', title: '预算(万元)', width: '19%'},
843 843
                     {field: 'ysqje', title: '可申请(元)', width: '19%'},
844 844
                     {field: 'ybzje', title: '可报账(元)',width: '19%'},
845
-                    {field: 'bzzje',title: '',width: '18.5%'}
845
+                    {field: 'bzzje',title: '',width: '18%'}
846 846
                 ]
847 847
             ]
848 848
         });

+ 9 - 9
src/main/resources/templates/stabudgetapproval/view_apply.html

@@ -413,12 +413,12 @@
413 413
                        "ysqje": [[${kmFyInfo.sqje}]],
414 414
                        "ybzje": [[${kmFyInfo.bzje}]]
415 415
                    },
416
-                   {
417
-                       "km": "项目年度经费",
418
-                       "ysje": [[${xmFyInfo.ysje}]],
419
-                       "ysqje": [[${kmFyInfo.ysje}]] * 10000 - [[${kmFyInfo.sqje}]],
420
-                       "ybzje": [[${kmFyInfo.ysje}]] * 10000 - [[${kmFyInfo.bzje}]]
421
-                   },
416
+                   // {
417
+                   //     "km": "项目年度经费",
418
+                   //     "ysje": [[${xmFyInfo.ysje}]],
419
+                   //     "ysqje": [[${kmFyInfo.ysje}]] * 10000 - [[${kmFyInfo.sqje}]],
420
+                   //     "ybzje": [[${kmFyInfo.ysje}]] * 10000 - [[${kmFyInfo.bzje}]]
421
+                   // },
422 422
                    {
423 423
                        "km":"项目备用金",
424 424
                        "ysje":  [[${kmFyInfo.bzje2}]],
@@ -441,10 +441,10 @@
441 441
                    data: dataTj,
442 442
                    cols: [
443 443
                        [
444
-                           {field: 'km', title: '科目名称', width: '30%'},
444
+                           {field: 'km', title: '科目名称', width: '28%'},
445 445
                            {field: 'ysje', title: '预算(万元)', width: '24%', align:'right'},
446 446
                            {field: 'ysqje', title: '已申请(元)', width: '24%',align:'right'},
447
-                           {field: 'ybzje', title: '已报账(元)',width: '25%', align:'right'},
447
+                           {field: 'ybzje', title: '已报账(元)',width: '24%', align:'right'},
448 448
                        ]
449 449
                    ]
450 450
                });
@@ -453,7 +453,7 @@
453 453
                    data: dataTj2,
454 454
                    cols: [
455 455
                        [
456
-                           {field: 'km', title: '科目名称', width: '30%',align:'left'},
456
+                           {field: 'km', title: '科目名称', width: '28%',align:'left'},
457 457
                            {field: 'ysje', title: '预算(万元)', width: '24%', align:'right'},
458 458
                            {field: 'ysqje', title: '可申请(元)', width: '24%', align:'right'},
459 459
                            {field: 'ybzje', title: '可报账(元)',width: '24%', align:'right'}