浏览代码

Merge branch 'master' of http://192.168.2.4:3000/chengqiang/sg_finalAcountAuto

chengqiang 5 年之前
父节点
当前提交
c3f0142784

+ 7 - 7
src/main/java/com/jeeplus/modules/sg/overheadline/service/OverheadLineService.java

@@ -502,7 +502,7 @@ public class OverheadLineService {
         double wordtotal1 =  BashInfo.getJkCs(csqd);//获取措施费清单计价表一合计
         double[] divisiontotal=ExcelUtil.getDoubleArray(importExcel,BashInfo.PROJECTNAME,2,new int[]{12,15});//获取分部分项比对数据清单
         List<Settlement> settlements=SettementUtil.getComparison(settlementList,builtTotal,divisiontotal,wordtotal1,wordtotal2,otherTotal,gfFees,cbperson);
-        Boolean f = SettementUtil.getFlag;
+        Boolean f = SettementUtil.getJgjsDeveloper(settlementList);
         settlementService.save(settlements,id);
 
         //将本体工程费用明细存入集合
@@ -773,7 +773,7 @@ public class OverheadLineService {
             originalJzFees[2][3] = originalJzFees[2][3] + csxmFees[3];
             //电缆结算汇总
             List<Settlement> dlSettlements = SettementUtil.getDLComparison(settlementList,builtTotal,division,word1total,word2total,otherDlTotal,feesDlCount,cbperson);
-            Boolean f = SettementUtil.getFlag;
+            Boolean f = SettementUtil.getJgjsDeveloper(settlementList);
             //数据核验并保存数据库
             settlementService.save(dlSettlements,id);
             for(int i=0;i<originalTotalJzFees.length;i++){
@@ -855,7 +855,7 @@ public class OverheadLineService {
             }
             //结算汇总
             List<Settlement> dlSettlements = SettementUtil.getDLComparison(settlementList,builtTotal,division,word1total,word2total,otherDlTotal,feesDlCount,cbperson);
-            Boolean f = SettementUtil.getFlag;
+            Boolean f = SettementUtil.getJgjsDeveloper(settlementList);
             //数据核验并保存数据库
             settlementService.save(dlSettlements,id);
             for(int i=0;i<originalTotalAzFees.length;i++){
@@ -963,7 +963,7 @@ public class OverheadLineService {
             originalJzFees[2][3] = originalJzFees[2][3] + csxmFees[3];
 
             List<Settlement> dlSettlements = SettementUtil.getDLComparison(settlementList,builtTotal,division,word1total,word2total,otherDlTotal,feesDlCount,cbperson);
-            Boolean f = SettementUtil.getFlag;
+            Boolean f = SettementUtil.getJgjsDeveloper(settlementList);
             //数据核验并保存数据库
             settlementService.save(dlSettlements,id);
             //将本体工程费用明细存入集合
@@ -1269,7 +1269,7 @@ public class OverheadLineService {
             }
             //电缆结算汇总
             List<Settlement> dlSettlements = SettementUtil.getDLComparison(settlementList,builtTotal,division,word1total,word2total,otherDlTotal,feesDlCount,cbperson);
-            Boolean f = SettementUtil.getFlag;
+            Boolean f = SettementUtil.getJgjsDeveloper(settlementList);
             //数据核验并保存数据库
             settlementService.save(dlSettlements,id);
             for(int i=0;i<originalTotalJzFees.length;i++){
@@ -1336,7 +1336,7 @@ public class OverheadLineService {
             }
             //结算汇总
             List<Settlement> dlSettlements = SettementUtil.getDLComparison(settlementList,builtTotal,division,word1total,word2total,otherDlTotal,feesDlCount,cbperson);
-            Boolean f = SettementUtil.getFlag;
+            Boolean f = SettementUtil.getJgjsDeveloper(settlementList);
             //数据核验并保存数据库
             settlementService.save(dlSettlements,id);
             for(int i=0;i<originalTotalAzFees.length;i++){
@@ -1420,7 +1420,7 @@ public class OverheadLineService {
                     jxslAz = zgAz / (fbrAzFee - zgAz); //安装进项税率
             }
             List<Settlement> dlSettlements = SettementUtil.getDLComparison(settlementList,builtTotal,division,word1total,word2total,otherDlTotal,feesDlCount,cbperson);
-            Boolean f = SettementUtil.getFlag;
+            Boolean f = SettementUtil.getJgjsDeveloper(settlementList);
             //数据核验并保存数据库
             settlementService.save(dlSettlements,id);
             //将本体工程费用明细存入集合

+ 95 - 3
src/main/java/com/jeeplus/modules/sg/overheadline/util/SettementUtil.java

@@ -597,14 +597,14 @@ public class SettementUtil {
             }
         }
         doubles[0]=doubles[1]+doubles[2]+doubles[3]+doubles[4]+doubles[5]+doubles[6]-minus+addcount;//默认竣工结算比对金额 默认为不减去发包人
-        getFlag = false;//默认 变量为 flase 传给 其他方法进行判断
+//        getFlag = false;//默认 变量为 flase 传给 其他方法进行判断
         if (flag){//如果为true 说明存在 工程结算价
             doubles[0] = doubles[0]+ minus - addcount;//还原
         }
         if ((jgjeCount-5.0)>=doubles[0]||(jgjeCount+5.0)<=doubles[0]){
             //减去发包人
             doubles[0]=doubles[1]+doubles[2]+doubles[3]+doubles[4]+doubles[5]+doubles[6]-doubles[7]-minus+addcount;
-            getFlag = true;//改变 变量为 flase 传给 其他方法进行判断
+//            getFlag = true;//改变 变量为 flase 传给 其他方法进行判断
         }
         if (flag){//如果为true 说明存在 工程结算价
             doubles[0] = doubles[0]+ minus - addcount;
@@ -672,7 +672,8 @@ public class SettementUtil {
                     break;
             }
         }
-        if (getFlag){//为true时 减去发包人费
+        Boolean jgjsDeveloper = getJgjsDeveloper(settlements);
+        if (jgjsDeveloper){//为true时 减去发包人费
             count =addcount-fbrMoney-minus;
         }else {//否则
             count=addcount-minus;//不减去
@@ -1210,4 +1211,95 @@ public class SettementUtil {
         settlement.setRemarks(importExcel.getValue(i+1,3));
         return settlement;
     }
+
+
+    //判断是否减去发包人
+    public static Boolean getJgjsDeveloper(List<Settlement> settlements){
+        boolean flagDeveloper = false;
+        double[] doubles = new double[8]; //定义数组 (可改)
+        boolean flag= false; //用作判断是否存在 工程结算价/最终结算价 等等。
+        String name=""; //settlement对象名称
+        double money=0.0;//settlement对象金额
+        double minus = 0.0;// 减去的金额合计
+        double addcount = 0.0;//加上的金额合计
+        double jgjeCount = 0.0;//存放竣工结算价金额
+        for (Settlement settlement:settlements){
+            name = settlement.getEntryName();
+            money = settlement.getMoney();
+            if (name.equals(BDZ_TBNAME)){//如果为投标报价
+                name=BashInfo.JS_JGJS; //name=竣工结算
+            }
+            if(name.equals(BDZ_TBRNAME)){//如果为 投标人采购设备费
+                name=BashInfo.JS_CBRF; //承包人费
+            }
+            if (name.equals(BDZ_ZBRNAME)){ //如果为招标人费
+                name=BashInfo.JS_FBRF;//发包人采购材料费
+            }
+            //如果包含 “扣”  “减” “下浮”
+            if (name.contains(RESON_KYJ)||name.contains(RESON_XF)||name.contains(RESON_KYJ1)){
+                if (!name.equals(RESON_XFHZJ)){//如果 不等于下浮造价
+                    name = RESON_KYJ; //赋值name:“扣”
+                }
+            }
+            if (name.equals(RESON_ZZJS)){//工程结算价 兼容
+                name = BashInfo.JS_GCJS;
+            }
+            if (name.equals(RESON_ZZFC)){//工程结算价 兼容
+                name = BashInfo.JS_GCJS;
+            }
+            if (name.equals(RESON_ZGTB)){//工程结算价 兼容
+                name = BashInfo.JS_GCJS;
+            }
+            if (name.equals(RESON_XFHZJ)){//工程结算价 兼容
+                name = BashInfo.JS_GCJS;
+            }
+            switch (name) {
+                case BashInfo.JS_FBFX://分部分项工程费
+                    doubles[1]=money;
+                    break;
+                case BashInfo.JS_CBRF://承包人采购设备费
+                    doubles[2]=money;
+                    break;
+                case BashInfo.JS_CSXM://措施项目费
+                    doubles[3]=money;
+                    break;
+                case BashInfo.JS_QTXM://其他项目费
+                    doubles[4]=money;
+                    break;
+                case BashInfo.JS_GF://规费
+                    doubles[5]=money;
+                    break;
+                case BashInfo.JS_SJ://税金
+                    doubles[6]=money;
+                    break;
+                case BashInfo.JS_FBRF://发包人采购材料费
+                    doubles[7]=money;
+                    break;
+                case RESON_KYJ://扣
+                    minus += money; //需要减去的金额累加
+                    break;
+                default: //如果以上不匹配
+                    if (name.equals(BashInfo.JS_JGJS)){//如果等于 "竣工结算价合计"
+                        jgjeCount=money; //存储  "竣工结算价合计" 金额
+                    }else if (!name.equals(BashInfo.JS_GCJS)){ //如果不等于 工程结算价
+                        addcount+=money; //需要加上的金额 累加
+                    }
+                    if (name.equals(BashInfo.JS_GCJS)){ //如果name为 工程结算价
+                        flag=true;//存在 工程结算价/最终结算价 等等
+                    }
+                    break;
+            }
+        }
+        doubles[0]=doubles[1]+doubles[2]+doubles[3]+doubles[4]+doubles[5]+doubles[6]-minus+addcount;//默认竣工结算比对金额 默认为不减去发包人
+
+        if (flag){//如果为true 说明存在 工程结算价
+            doubles[0] = doubles[0]+ minus - addcount;//还原
+        }
+        if ((jgjeCount-5.0)>=doubles[0]||(jgjeCount+5.0)<=doubles[0]){
+            //减去发包人
+            doubles[0]=doubles[1]+doubles[2]+doubles[3]+doubles[4]+doubles[5]+doubles[6]-doubles[7]-minus+addcount;
+            flagDeveloper = true;//改变 变量为 flase 传给 其他方法进行判断
+        }
+        return flagDeveloper;
+    }
 }

+ 27 - 0
src/main/java/com/jeeplus/modules/sg/project/web/ProjectController.java

@@ -266,6 +266,33 @@ public class ProjectController extends BaseController {
         return "modules/sg/project/withholdForm";
     }
 
+    /**
+     * 甲供调整页面
+     */
+    @RequestMapping("materialOffsetForm")
+    public String materialOffsetForm(String id,Model model){
+        WbsProject wbsProject = projectService.get(id);
+        List<WbsItem> list = null;
+        if(wbsProject != null){
+            list = wbsProject.getWbsItems();
+        }
+        model.addAttribute("list",list);
+        return "modules/sg/project/materialOffsetForm";
+    }
+
+    /**
+     * 税金页面
+     */
+    @RequestMapping("taxDeductionsForm")
+    public String taxDeductionsForm(String id,Model model){
+        WbsProject wbsProject = projectService.get(id);
+        List<WbsItem> list = null;
+        if(wbsProject != null){
+            list = wbsProject.getWbsItems();
+        }
+        model.addAttribute("list",list);
+        return "modules/sg/project/taxDeductionsForm";
+    }
 
     /**
      * 添加诚信扣款、甲供材超供抵扣工程款、税金处理

+ 3 - 3
src/main/java/com/jeeplus/modules/sg/substation/service/SubstationService.java

@@ -229,7 +229,7 @@ public class SubstationService {
             azTotal.addAll(zwtx);
             //结算汇总
             List<Settlement> settlementBdzs = SettementUtil.getDLComparison(settlementsBdz,builtTotal,division,word1total,word2total,otherBdzTotal,feesBdzCount,cbperson);
-            Boolean f = SettementUtil.getFlag;
+            Boolean f = SettementUtil.getJgjsDeveloper(settlementsBdz);
             settlementService.save(settlementBdzs,id);
             for(JkxlDetailFee jkxlDetailFee:jzTotal){
                  double originalTotalCost = jkxlDetailFee.getOriginalTotalCost();
@@ -517,7 +517,7 @@ public class SubstationService {
             //结算汇总保存
             List<Settlement> settlementBdzs = SettementUtil.getDLComparison(settlementsBdz,builtTotal,division,word1total,word2total,otherBdzTotal,feesBdzCount,cbperson);
             settlementService.save(settlementBdzs,id);
-            Boolean f = SettementUtil.getFlag;
+            Boolean f = SettementUtil.getJgjsDeveloper(settlementsBdz);
             for(JkxlDetailFee jkxlDetailFee:jzTotal){
                 double originalTotalCost = jkxlDetailFee.getOriginalTotalCost();
                 double originalFbrCost = jkxlDetailFee.getOriginalFbrCost();
@@ -716,7 +716,7 @@ public class SubstationService {
             azTotal.addAll(zwtx);
             List<Settlement> settlementBdzs = SettementUtil.getDLComparison(settlementsBdz,builtTotal,division,word1total,word2total,otherBdzTotal,feesBdzCount,cbperson);
             settlementService.save(settlementBdzs,id);
-            Boolean f = SettementUtil.getFlag;
+            Boolean f = SettementUtil.getJgjsDeveloper(settlementsBdz);
             for(JkxlDetailFee jkxlDetailFee:azTotal){
                 double originalTotalCost = jkxlDetailFee.getOriginalTotalCost();
                 double originalFbrCost = jkxlDetailFee.getOriginalFbrCost();

+ 47 - 2
src/main/webapp/webpage/modules/sg/project/management.js

@@ -45,7 +45,7 @@ layui.config({
                 {field:'xmsl',width:145,title:"结算书数量"},
                 {field:'cjsq',width:145,title: '创建时期'},
                 {field:'djr',width:130,title:'登记人'},
-                {field:'op',align:'center',title:"操作",minWidth:400,maxWidth:600,templet:function(d){
+                {field:'op',align:'center',title:"操作",minWidth:500,maxWidth:700,templet:function(d){
                         ////对操作进行初始化
                         var xml = "";
                         if(d.status==1){ //工程按钮
@@ -55,7 +55,9 @@ layui.config({
                                 +"<a style='margin-top: 3px;' class='layui-btn layui-btn-xs layui-btn-danger' id=delPro"+d.id+" onclick=\"deleteProject('"+d.id+"')\">删除</a>"
                                 // +"<br>"
                                 +"<a style='margin-top: 3px;' class='layui-btn layui-btn-warm layui-btn-xs' lay-event=''href=\"${ctx}/project/exportone?id=" + d.id+"\">导出wbs工程</a>"
-                                +"<a style='margin-top: 3px;' class='layui-btn layui-btn-normal layui-btn-xs'onclick=\"withhold( '${ctx}/project/withholdform?id=" + d.id + "&tabId=1')\">诚信扣款</a><div>";
+                                +"<a style='margin-top: 3px;' class='layui-btn layui-btn-normal layui-btn-xs'onclick=\"withhold( '${ctx}/project/withholdform?id=" + d.id + "&tabId=1')\">诚信扣款</a></div>";
+                                // +"<a style='margin-top: 3px;' class='layui-btn layui-btn-warm layui-btn-xs'onclick=\"materialOffset( '${ctx}/project/materialOffsetForm?id=" + d.id + "&tabId=1')\">甲供材抵扣</a>"
+                                // +"<a style='margin-top: 3px;' class='layui-btn layui-btn-warm layui-btn-xs'onclick=\"taxDeductions( '${ctx}/project/taxDeductionsForm?id=" + d.id + "&tabId=1')\">税额扣减</a></div>";
 
                         }
                         if(d.status==2){ //项目表头操作
@@ -217,7 +219,50 @@ function look(url) { //工程 查看
 
     })
 }
+    function materialOffset(url) { //甲供材扣抵
+    layer.open({
+        type: 2,
+        title: '甲供材扣抵',
+        area: ['70%', '90%'],
+        offset:['7%','14%'],
+        shade: 0.8,
+        shadeClose: true,
+        fixed: true, //不固定
+        maxmin: true,
+        content: url,//查看的路径
+        btn: ['确定','关闭'],
+        yes: function(index, layero){
+            var bodyparent = layer.getChildFrame('body', index); //获取子类页面body下内容
+            bodyparent.find('#updatebtn').click(); // 点击修改页面隐藏的按钮
+        }
+        ,btn2: function(index, layero){
+            layer.close(index);
+        }
+
+    })
+}
 
+    function taxDeductions(url) { //税金处理
+    layer.open({
+        type: 2,
+        title: '税金处理',
+        area: ['70%', '90%'],
+        offset:['7%','14%'],
+        shade: 0.8,
+        shadeClose: true,
+        fixed: true, //不固定
+        maxmin: true,
+        content: url,//查看的路径
+        btn: ['确定','关闭'],
+        yes: function(index, layero){
+            var bodyparent = layer.getChildFrame('body', index); //获取子类页面body下内容
+            bodyparent.find('#updatebtn').click(); // 点击修改页面隐藏的按钮
+        }
+        ,btn2: function(index, layero){
+            layer.close(index);
+        }
+    })
+}
 function update(url) { //修改
     layer.open({
         type: 2,

+ 73 - 0
src/main/webapp/webpage/modules/sg/project/materialOffsetForm.js

@@ -0,0 +1,73 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<script type="text/javascript">
+    var str = ''
+    layui.use(['table','form','layedit', 'laydate'], function(){
+        var table = layui.table //生产数据表格
+        ,form = layui.form;
+        form.render();//表格渲染
+        table.render({
+        elem: '#longtable'
+        ,title: '甲供材抵扣'
+        ,id:'checktable'
+        ,limit:Number.MAX_VALUE
+        ,cols: [[ //生产表头
+            {field:'itemName',title:'项目名称'}
+            ,{field:'unitType',title:'扣抵工程款',edit: 'text'}
+
+        ]]
+        ,data:[ //数据导入
+        <c:if test="${ not empty list}">
+        <c:forEach items="${list}" var="data" varStatus="index">
+        {
+            "id":"${data.id}",
+            "unitType": "${data.unitType}",
+            "itemName": "${data.itemName}"
+        },
+        </c:forEach>
+        </c:if>
+        ]
+        ,page: false
+        ,done: function(res, curr, count){
+            for(var p in res.data){
+                str = str+res.data[p].id+',';
+            }
+         }
+        });
+
+        table.on('edit(longtable)', function(obj){ //注:edit是固定事件名,test是table原始容器的属性 lay-filter="对应的值"
+            var field = obj.field;
+            if(field == 'unitType'){
+               var value = obj.value;
+               if(isNaN(value)){ //判断输入是否是数字
+                    layer.msg('请输入有效数字',{icon: 5,offset:['40%','40%']});
+                     return false;
+               }
+            }
+        });
+    });
+    function updateProject(){
+        var nameString = "";
+        $('table tr').each(function () {
+            var unitType = $(this).find('td:eq(1)').text();
+            if(unitType == ''){
+                unitType = null
+            }
+            nameString += unitType+",";
+        })
+        var unitTypes = nameString.substring(5,nameString.length);
+        var ids = str.substring(0,str.length-1);
+         $.ajax({
+            type:"post",
+            url:"${ctx}/project/withhold",
+            data:{'ids':ids,'unitTypes':unitTypes},
+            success:function(result){
+                layer.msg(result.msg, {icon: 6,offset:['38%','38%']},function () {
+                parent.location.reload();
+        });
+    }
+    });
+}
+
+
+
+</script>

+ 38 - 0
src/main/webapp/webpage/modules/sg/project/materialOffsetForm.jsp

@@ -0,0 +1,38 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+    <title>甲供材扣抵</title>
+    <link rel="stylesheet" href="${ctxp}/static/plugin/assets/layui/css/layui.css">
+    <link rel="stylesheet" href="${ctxp}/static/plugin/assets/common.css"/>
+    <script type="text/javascript" src="${ctxp}/static/plugin/assets/jquery-3.2.1.min.js"></script>
+    <script src="${ctxp}/static/plugin/assets/layui/layui.js"></script>
+    <%@include file="materialOffsetForm.js"%>
+</head>
+<style>
+    .layui-table-view .layui-table {width:100%}
+    .layui-table-cell .layui-form-checkbox[lay-skin="primary"]{top: 50%;transform: translateY(-50%);}
+    .mydiv{padding: 5px 7px;border: whitesmoke;line-height: 98%;margin-top: 2px}
+</style>
+<body>
+<div class="layui-btn-group suretable" style="display: none;">
+    <button class="layui-btn"  data-type="getCheckData" id="freenl">确定</button>
+</div>
+<input id="updatebtn" type="button" onclick="updateProject()" style="display: none" />
+    <%--<div class="layui-form-item">--%>
+        <%--<div class="" style="margin-left: 10px;margin-top: 10px;">--%>
+            <%--<span id="mylable2">项目调整</span>--%>
+            <%--<span>:</span>--%>
+            <%--<span id="readid2">200</span>--%>
+        <%--</div>--%>
+        <%--<div class="" style="margin-left: 10px;">--%>
+            <%--<input type="radio" name="mydiv" value="1" title="增加" checked="">--%>
+            <%--<input type="radio" name="mydiv" value="2" title="减少">--%>
+        <%--</div>--%>
+    <%--</div>--%>
+
+<div style="margin-left: 7px;margin-right: 7px">
+<table class="layui-hide" id="longtable" lay-filter="longtable"></table>
+</div>
+</body>
+</html>

+ 73 - 0
src/main/webapp/webpage/modules/sg/project/taxDeductionsForm.js

@@ -0,0 +1,73 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<script type="text/javascript">
+    var str = ''
+    layui.use(['table','form','layedit', 'laydate'], function(){
+        var table = layui.table //生产数据表格
+        ,form = layui.form;
+        form.render();//表格渲染
+        table.render({
+        elem: '#longtable'
+        ,title: '税金处理'
+        ,id:'checktable'
+        ,limit:Number.MAX_VALUE
+        ,cols: [[ //生产表头
+            {field:'itemName',title:'项目名称'}
+            ,{field:'unitType',title:'税额扣减',edit: 'text'}
+
+        ]]
+        ,data:[ //数据导入
+        <c:if test="${ not empty list}">
+        <c:forEach items="${list}" var="data" varStatus="index">
+        {
+            "id":"${data.id}",
+            "unitType": "${data.unitType}",
+            "itemName": "${data.itemName}"
+        },
+        </c:forEach>
+        </c:if>
+        ]
+        ,page: false
+        ,done: function(res, curr, count){
+            for(var p in res.data){
+                str = str+res.data[p].id+',';
+            }
+         }
+        });
+
+        table.on('edit(longtable)', function(obj){ //注:edit是固定事件名,test是table原始容器的属性 lay-filter="对应的值"
+            var field = obj.field;
+            if(field == 'unitType'){
+               var value = obj.value;
+               if(isNaN(value)){ //判断输入是否是数字
+                    layer.msg('请输入有效数字',{icon: 5,offset:['40%','40%']});
+                     return false;
+               }
+            }
+        });
+    });
+    function updateProject(){
+        var nameString = "";
+        $('table tr').each(function () {
+            var unitType = $(this).find('td:eq(1)').text();
+            if(unitType == ''){
+                unitType = null
+            }
+            nameString += unitType+",";
+        })
+        var unitTypes = nameString.substring(5,nameString.length);
+        var ids = str.substring(0,str.length-1);
+         $.ajax({
+            type:"post",
+            url:"${ctx}/project/withhold",
+            data:{'ids':ids,'unitTypes':unitTypes},
+            success:function(result){
+                layer.msg(result.msg, {icon: 6,offset:['38%','38%']},function () {
+                parent.location.reload();
+        });
+    }
+    });
+}
+
+
+
+</script>

+ 38 - 0
src/main/webapp/webpage/modules/sg/project/taxDeductionsForm.jsp

@@ -0,0 +1,38 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+    <title>税金扣减</title>
+    <link rel="stylesheet" href="${ctxp}/static/plugin/assets/layui/css/layui.css">
+    <link rel="stylesheet" href="${ctxp}/static/plugin/assets/common.css"/>
+    <script type="text/javascript" src="${ctxp}/static/plugin/assets/jquery-3.2.1.min.js"></script>
+    <script src="${ctxp}/static/plugin/assets/layui/layui.js"></script>
+    <%@include file="taxDeductionsForm.js"%>
+</head>
+<style>
+    .layui-table-view .layui-table {width:100%}
+    .layui-table-cell .layui-form-checkbox[lay-skin="primary"]{top: 50%;transform: translateY(-50%);}
+    .mydiv{padding: 5px 7px;border: whitesmoke;line-height: 98%;margin-top: 2px}
+</style>
+<body>
+<div class="layui-btn-group suretable" style="display: none;">
+    <button class="layui-btn"  data-type="getCheckData" id="freenl">确定</button>
+</div>
+<input id="updatebtn" type="button" onclick="updateProject()" style="display: none" />
+    <%--<div class="layui-form-item">--%>
+        <%--<div class="" style="margin-left: 10px;margin-top: 10px;">--%>
+            <%--<span id="mylable2">项目调整</span>--%>
+            <%--<span>:</span>--%>
+            <%--<span id="readid2">200</span>--%>
+        <%--</div>--%>
+        <%--<div class="" style="margin-left: 10px;">--%>
+            <%--<input type="radio" name="mydiv" value="1" title="增加" checked="">--%>
+            <%--<input type="radio" name="mydiv" value="2" title="减少">--%>
+        <%--</div>--%>
+    <%--</div>--%>
+
+<div style="margin-left: 7px;margin-right: 7px">
+<table class="layui-hide" id="longtable" lay-filter="longtable"></table>
+</div>
+</body>
+</html>

+ 94 - 28
src/main/webapp/webpage/modules/sg/project/withholdForm.js

@@ -14,6 +14,8 @@
             {field:'itemName',title:'项目名称'}
             ,{field:'unitType',title:'单位工程',edit: 'text'}
             ,{field:'integrityFee',title:'诚信扣款'}
+            ,{field:'materialoffset',title:'扣抵工程款'}
+            ,{field:'taxdeductions',title:'税额扣减'}
 
         ]]
         ,data:[ //数据导入
@@ -23,7 +25,9 @@
             "id":"${data.id}",
             "unitType": "${data.unitType}",
             "integrityFee": "${data.integrityFee}",
-            "itemName": "${data.itemName}"
+            "itemName": "${data.itemName}",
+            "materialoffset":"",
+            "taxdeductions":""
         },
         </c:forEach>
         </c:if>
@@ -35,6 +39,8 @@
                      }
                  $('table tr').each(function () {
                       var unitType = $(this).find('td:eq(1)').text()
+                        $(this).find('td:eq(3)').attr("data-edit","text")
+                        $(this).find('td:eq(4)').attr("data-edit","text")
                       if(unitType != null && unitType != ''){
                          $(this).find('td:eq(2)').attr("data-edit","text")
                       }
@@ -84,39 +90,99 @@
                 layer.msg('请输入有效数字',{icon: 5,offset:['40%','40%']});
                  return false;
            }
+            if(value<0){
+                layer.msg('诚信扣款不能为负数',{icon: 5,offset:['40%','40%']});
+                return false;
+            }
+        }
+        if(field === 'materialoffset'){
+            var value = obj.value;
+            if(isNaN(value)){ //判断输入是否是数字
+                layer.msg('请输入有效数字',{icon: 5,offset:['40%','40%']});
+                return false;
+            }
+            if(value<0){
+                layer.msg('扣抵工程款不能为负数',{icon: 5,offset:['40%','40%']});
+                return false;
+            }
+        }
+        if(field === 'taxdeductions'){
+            var value = obj.value;
+            if(isNaN(value)){ //判断输入是否是数字
+                layer.msg('请输入有效数字',{icon: 5,offset:['40%','40%']});
+                return false;
+            }
+            if(value<0){
+                layer.msg('税金不能为负数',{icon: 5,offset:['40%','40%']});
+                return false;
+            }
         }
     });
     });
     function updateProject(){
-    var nameString = "";
-    var nameString1 = "";
-    $('table tr').each(function () {
-        var unitType = $(this).find('td:eq(1)').text();
-        var fee = $(this).find('td:eq(2)').text();
-        if(unitType == ''){
-           unitType = null
-        }
-        if(fee == ''){
-            fee = null
-        }
-        nameString += unitType+",";
-        nameString1 += fee+",";
-    })
-    var unitTypes = nameString.substring(5,nameString.length);
-    var fees = nameString1.substring(5,nameString1.length);
-    var ids = str.substring(0,str.length-1);
-    $.ajax({
-    type:"post",
-    url:"${ctx}/project/withhold",
-    data:{'ids':ids,'fees':fees,'unitTypes':unitTypes},
-    success:function(result){
-       layer.msg(result.msg, {icon: 6,offset:['38%','38%']},function () {
-        parent.location.reload();
-     });
-     }
+        var nameString = "";
+        var nameString1 = "";
+        var materialString = "";
+        var taxString = "";
+        $('table tr').each(function () {
+            var unitType = $(this).find('td:eq(1)').text();
+            var fee = $(this).find('td:eq(2)').text();
+            var materialOffset = $(this).find('td:eq(3)').text();
+            var taxDeductions = $(this).find('td:eq(4)').text();
+            if(unitType == ''){
+               unitType = null
+            }else{
+              if(fee == ''){
+                layer.msg('您已输入单位工程,该诚信扣款不能为空',{icon: 5,offset:['40%','40%']});
+                throw SyntaxError;
+              }
+            }
+            if(fee == ''){
+                fee = null
+            }else{
+                judge(fee,'诚信扣款');
+            }
+            if(materialOffset == ''){
+                materialOffset = null;
+            }else{
+                judge(materialOffset,'扣抵工程款');
+            }
+            if(taxDeductions == ''){
+                taxDeductions = null;
+            }else{
+                judge(taxDeductions,'税额扣减');
+            }
+            nameString += unitType+",";
+            nameString1 += fee+",";
+            materialString += materialOffset+",";
+            taxString+=taxDeductions+",";
+        })
+        var unitTypes = nameString.substring(5,nameString.length);
+        var fees = nameString1.substring(5,nameString1.length);
+        var materialStrings = materialString.substring(5,materialString.length);
+        var taxStrings= taxString.substring(5,taxString.length);
+        var ids = str.substring(0,str.length-1);
+        $.ajax({
+        type:"post",
+        url:"${ctx}/project/withhold",
+        data:{'ids':ids,'fees':fees,'unitTypes':unitTypes,'decFunds':materialStrings,'texs':taxStrings},
+        success:function(result){
+           layer.msg(result.msg, {icon: 6,offset:['38%','38%']},function () {
+            parent.location.reload();
+         });
+         }
     });
 }
 
-
+function judge(value,name){
+    if(isNaN(value)){ //判断输入是否是数字
+        layer.msg(name+':请输入有效数字',{icon: 5,offset:['40%','40%']});
+        throw SyntaxError;
+    }
+        if(value<0){
+        layer.msg(name+'不能为负数',{icon: 5,offset:['40%','40%']});
+        throw SyntaxError;
+    }
+}
 
 </script>

+ 48 - 2
src/main/webapp/webpage/modules/sg/projecttem/manageList.js

@@ -25,14 +25,16 @@
         {field:'xmsl',width:180,title:"结算书数量"},
         {field:'cjsq',width:200,title: '创建时期'},
         {field:'djr',width:200,title:'登记人'},
-        {field:'op',align:'center',title:"操作",minWidth:200,templet:function(d){
+        {field:'op',align:'center',title:"操作",minWidth:330,templet:function(d){
     ////对操作进行初始化
     var xml = "";
     if(d.status==1){ //工程 表头
     xml += "<div><a class='layui-btn layui-btn-primary layui-btn-xs' onclick=\"look( '${ctx}/project/tem/form?id=" + d.id + "&tabId=1')\">查看</a>"
         +"<a class='layui-btn layui-btn-xs'  onclick=\"update( '${ctx}/project/tem/form?id=" + d.id + "&tabId=2')\">修改</a>"
         +"<a class='layui-btn layui-btn-normal layui-btn-xs' lay-event='add'>添加结算书</a>"
-    +"<a  class='layui-btn layui-btn-warm layui-btn-xs'onclick=\"withhold( '${ctx}/project/withholdform?id=" + d.id + "&tabId=1')\">诚信扣款</a></div>";
+        +"<a  class='layui-btn layui-btn-warm layui-btn-xs'onclick=\"withhold( '${ctx}/project/withholdform?id=" + d.id + "&tabId=1')\">诚信扣款</a></div>";
+        // +"<a  class='layui-btn layui-btn-warm layui-btn-xs'onclick=\"materialOffset( '${ctx}/project/materialOffsetForm?id=" + d.id + "&tabId=1')\">甲供材抵扣</a>"
+        // +"<a  class='layui-btn layui-btn-warm layui-btn-xs'onclick=\"taxDeductions( '${ctx}/project/taxDeductionsForm?id=" + d.id + "&tabId=1')\">税额扣减</a>";
     }
     if(d.status==2){
         xml +="<span class='myspan'>操作</span>";
@@ -192,5 +194,49 @@ function update(url) {//修改工程下项目
 
     })
 }
+    function materialOffset(url) { //甲供材扣抵
+    layer.open({
+        type: 2,
+        title: '甲供材扣抵',
+        area: ['70%', '90%'],
+        offset:['7%','14%'],
+        shade: 0.8,
+        shadeClose: true,
+        fixed: true, //不固定
+        maxmin: true,
+        content: url,//查看的路径
+        btn: ['确定','关闭'],
+        yes: function(index, layero){
+            var bodyparent = layer.getChildFrame('body', index); //获取子类页面body下内容
+            bodyparent.find('#updatebtn').click(); // 点击修改页面隐藏的按钮
+        }
+        ,btn2: function(index, layero){
+            layer.close(index);
+        }
+
+    })
+}
+
+    function taxDeductions(url) { //税金处理
+    layer.open({
+        type: 2,
+        title: '税金处理',
+        area: ['70%', '90%'],
+        offset:['7%','14%'],
+        shade: 0.8,
+        shadeClose: true,
+        fixed: true, //不固定
+        maxmin: true,
+        content: url,//查看的路径
+        btn: ['确定','关闭'],
+        yes: function(index, layero){
+            var bodyparent = layer.getChildFrame('body', index); //获取子类页面body下内容
+            bodyparent.find('#updatebtn').click(); // 点击修改页面隐藏的按钮
+        }
+        ,btn2: function(index, layero){
+            layer.close(index);
+        }
+    })
+}
 </script>