/** * 结算记录函数 * */ var tobToOrgFun = { initFromOrgList: function () { var req = { sysCode: sysComm.sysCode, }; var opt = { method: 'post', async: false, url: dataUrl.util.queryOrgNameByOrgId(), data: JSON.stringify(req), contentType: 'application/json; charset=utf-8', dataType: 'json', success: function (res) { if (res.code == '8888') { var data = res.data; $("#settleObj").val(data.orgName); $('#settleObj').attr('data-value','[\"' + data.id + '\"]'); } else { console.log("根据当前登录人组织id获取打款组织报错:", res); } } }; sysAjax(opt); }, } tobToOrgFun.initFromOrgList(); var recordFun = { //获取查询参数 getQueryParam: function () { //var toOrgIds = JSON.parse($("#settleObj").attr('data-value')); var status = JSON.parse($("#settleSta").val()); var selectTime = $("#temporary-daterange-btn").val().split(" - "); var startDate = selectTime[0]; var endDate = selectTime[1]; var req = { sysCode: sysComm.sysCode, orgIds: [], status: status, startDate: startDate, endDate: endDate } return req; }, //获取未结算金额 getNoSettleMoney: function () { var req = recordFun.getQueryParam(); var opt = { method: 'post', url: dataUrl.util.queryNoSettleRecordStaticFee(), data: JSON.stringify(req), contentType: 'application/json; charset=utf-8', dataType: 'json', success: function (res) { if (res.code == '8888') { console.log("查询未结算金额"); console.log(res); var totalFee = res.data.settlementTotalFee; var actFee = res.data.settlementActFee; var aliSrvFee = res.data.aliSrvFee; var wxSrvFee = res.data.wxSrvFee; var balanceSrvFee = res.data.balanceSrvFee; //var platformSrvFee = res.data.platformSrvFee; var servFee = balanceSrvFee + wxSrvFee + aliSrvFee; //actFee = totalFee - servFee; totalFee = totalFee == null ? "0.00" : (totalFee / 100).toFixed(2); actFee = actFee == null ? "0.00" : (actFee/100).toFixed(2); servFee = servFee == null ? "0.00" : (servFee/100).toFixed(2); $('#no_act_settlement').html(actFee); $('#no_total_settlement').html(totalFee); $('#no_server_fee').html(servFee); } } }; sysAjax(opt); }, //查询未结算记录 queryNoSettleRecord: function (params) { var req = recordFun.getQueryParam(); req.status = [100, -100, 200, 300]; var pageNum = (params.data.offset / params.data.limit) + 1; //条件查询 req.baseRequest = { pageNum: pageNum, pageSize: params.data.limit }; var opt = { method: 'post', url: dataUrl.util.querySettlementRecordByStatusForOrgId(), data: JSON.stringify(req), contentType: 'application/json; charset=utf-8', dataType: 'json', success: function (res) { if (res.code == '8888') { console.log("查询未结算记录"); console.log(res); params.success(res.data); } } }; sysAjax(opt); } } var fun={ init:function () { /**时间初始化*/ $('#temporary-daterange-btn').val(moment().subtract('days', 7).format('YYYY-MM-DD') + ' - ' + moment().subtract('days', 1).format('YYYY-MM-DD')); $('#temporary-daterange-btn').daterangepicker({ startDate: moment().subtract('days', 7), endDate: moment().subtract('days', 1), opens: 'right', //日期选择框的弹出位置 dateLimit : { days : 30 }, //起止时间的最大间隔 locale: { applyLabel: '确定', cancelLabel: '取消', customRangeLabel: '自定义', daysOfWeek: ['日', '一', '二', '三', '四', '五', '六'], monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月' ], }, ranges: { '昨天': [moment().subtract('days', 1), moment().subtract('days', 1)], '最近一周': [moment().subtract('days', 7), moment().subtract('days', 1)], '最近一个月': [moment().subtract('months', 1), moment().subtract('days', 1)], }, maxDate: moment().subtract('days', 1), //最大时间 }, function (start, end) { $('#temporary-daterange-btn').val(start.format('YYYY-MM-DD ') + ' - ' + end.format('YYYY-MM-DD ')); //alert(start.format('YYYYMMDD') + " " + end.format('YYYYMMDD')); } ); //初始化结算状态 $('#settleSta').selectpicker('refresh'); //查询未结算金额 recordFun.getNoSettleMoney(); //查询已结算、结算中金额汇总 fun.querySettlementFeeSummary(); //默认 结算记录 table fun.createTableDataSettle(); }, //结算单费用汇总 querySettlementFeeSummary:function(){ var req = fun.getQueryParamSettle(); var opt = { method: 'post', async: false, url: dataUrl.util.querySettlementFeeSummary(), data: JSON.stringify(req), contentType: 'application/json; charset=utf-8', dataType: 'json', success: function (res) { if (res.code == '8888') { var data = res.data; $(".temporary-con-title").text($("#settleObj").val()); $.each(data, function(index,item) { if(item.settlementState==400){ $(".temporary-con-mon").eq(1).text(fun.moneyFormatter(item.settlementActFee)); $(".ITD-common-fontsize14.colorsmall").eq(2).find('span').text(fun.moneyFormatter(item.settlementTotalFee)); $(".ITD-common-fontsize14.colorsmall").eq(3).find('span').text(fun.moneyFormatter(item.srvFee)); } else if(item.settlementState==100){ $(".temporary-con-mon").eq(2).text(fun.moneyFormatter(item.settlementActFee)); $(".ITD-common-fontsize14.colorsmall").eq(4).find('span').text(fun.moneyFormatter(item.settlementTotalFee)); $(".ITD-common-fontsize14.colorsmall").eq(5).find('span').text(fun.moneyFormatter(item.srvFee)); } }); } else{ console.log("查询结算单费用汇总报错:",res); } } }; sysAjax(opt); }, //金额处理 moneyFormatter:function(value){ if(value==null || value ==''){ return "0.00"; } else{ return (value/100).toFixed(2); } }, //金额-分处理 moneyToLongFormatter:function(value){ if(value==null || value ==''){ return 0; } else{ return (value)*100; } }, toOrgNameFormatter:function(value){ if(value==null || value==''){ return ''; } return $("#settleObj").val(); }, //默认表格生成 结算记录 table createTableDataSettle:function () { $('#temporaryrecord-table').bootstrapTable('destroy').bootstrapTable({ striped: true,//表格显示条纹 pagination: true, //启动分页 pageNumber: 1, //当前第几页 pageSize: 10, //每页显示的记录数 pageList: [10, 15, 20], //记录数可选列表 sidePagination: 'server',//表示服务端分页 queryParamsType: 'limit', method: 'POST',//请求方法 paginationPreText: '<', paginationNextText: '>', ajax: tableLoadRequestSettle,//自定义ajax加载数据 // uniqueId:'id', columns: [ [ /* { title:'', width: '5%', checkbox: true, valign: "middle", align: 'center', },*/ { field: 'settlementNo', title: '结算单号', valign: "middle", align: 'left', }, { field: 'toOrgName', title: '结算对象', valign: "middle", align: 'left', //formatter: fun.toOrgNameFormatter }, { field: 'settlementActFee', title: '结算金额', valign: "middle", align: 'left', formatter: fun.moneyFormatter }, { field: 'checkDate', title: '第三方手续费', valign: "middle", align: 'left', formatter: fun.srvFeeFormatter }, { field: 'checkDate', title: '交易笔数', valign: "middle", align: 'left', formatter: fun.chargeNumFormatter }, { field: 'settlementState', title: '结算状态', valign: "middle", align: 'left', formatter: fun.settleStaFormatter }, { field: 'bankSeriNo', title: '银行流水号', valign: "middle", align: 'left', formatter: fun.bankStaFormatter }, { field: '', title: '操作', valign: "middle", align: 'left', formatter: fun.operateFormatter }, ] ] }); }, //弹窗 table 所有明细 createSettlementRecordDetail: function () { $('#temporaryall-tableDetail').bootstrapTable('destroy').bootstrapTable({ striped: true,//表格显示条纹 pagination: true, //启动分页 pageNumber: 1, //当前第几页 pageSize: 10, //每页显示的记录数 pageList: [10, 15, 20], //记录数可选列表 sidePagination: 'server',//表示服务端分页 queryParamsType: 'limit', method: 'POST',//请求方法 paginationPreText: '<', paginationNextText: '>', ajax: tableLoadRequestallDetail,//自定义ajax加载数据 // uniqueId:'id', columns: [ [ { field: 'checkDate', title: '时间', valign: "middle", align: 'left', rowspan: 2, width: '10%', formatter:fun.dateFormatter }, {field: 'orgName',title: '结算对象',align: 'left',rowspan: 2,valign: "middle",width: '7%',}, {field: 'settlementActFee',title: '应结金额',align: 'left',rowspan: 2,valign: "middle",width: '7%',formatter:fun.moneyFormatter}, {field: '', title: "微信", valign: "middle", align: "center", colspan: 3, rowspan: 1}, {field: '', title: "支付宝", valign: "middle", align: "center", colspan: 3, rowspan: 1}, {field: '', title: "余额", valign: "middle", align: "center", colspan: 3, rowspan: 1}, {field: 'checkStatus',title: '核账状态',align: 'left',rowspan: 2,valign: "middle",width: '7%',formatter:fun.checkStatusFormatter}, {field: 'checkOpId',title: '核账人',align: 'left',rowspan: 2,valign: "middle",width: '7%',} ], [ { field: 'wxFee', title: '实收', width: '7%', align: "left", formatter: fun.moneyFormatter }, { field: 'wxRefundFee', title: '退费', width: '7%', align: "left", formatter: fun.moneyFormatter }, { field: 'wxSrvFee', title: '手续费', width: '7%', align: "left", formatter: fun.moneyFormatter }, { field: 'aliFee', title: '实收', width: '7%', align: "left", formatter: fun.moneyFormatter }, { field: 'aliRefundFee', title: '退费', width: '7%', align: "left", formatter: fun.moneyFormatter }, { field: 'aliSrvFee', title: '手续费', width: '7%', align: "left", formatter: fun.moneyFormatter }, { field: 'balanceFee', title: '实收', width: '7%', align: "left", formatter: fun.moneyFormatter }, { field: 'balanceRefundFee', title: '退费', width: '7%', align: "left", formatter: fun.moneyFormatter }, { field: 'balanceSrvFee', title: '手续费', width: '7%', align: "left", formatter: fun.moneyFormatter } ] ] }); }, //汇总选中的条数及金额 summaryRowsFee:function(){ var rowsData= $("#temporaryall-table").bootstrapTable('getSelections'); var settlementFee=0; $.each(rowsData, function(index,item) { settlementFee+=item.settlementActFee; }); $("#MonenyALL").text(fun.moneyFormatter(settlementFee)); $("#footNum").text(rowsData.length); }, //日期格式化 dateFormatter:function(value){ if(value==null|value==''){ return '-'; } return DateUtils.long2String(value, 1); }, //交易笔数 chargeNumFormatter:function (value, row, index) { return row.aliChargeNum+row.wxChargeNum+row.balanceChargeNum; }, //服务费 srvFeeFormatter:function (value, row, index) { //+row.platformSrvFee var srvFee = row.aliSrvFee+row.wxSrvFee+row.balanceSrvFee; return fun.moneyFormatter(srvFee); }, //结算状态 settleStaFormatter:function (value, row, index) { // 未结算 已结算 结算中 if(value==null||value==''){ return ''; } else if(value==100){ return "未结算"; } else if(value==200){ return "收款组织已确认"; } else if(value==300){ return "已打款"; } else if(value==400){ return "已结算"; } else{ return "未知"; } }, checkStatusFormatter:function(value){ if(value==null||value==''){ return ''; } else if(value==100){ return "无差异"; } else if(value==-100){ return "有差异"; } else if(value==200){ return "已平账"; } else if(value==300){ return "已核账"; } else if(value==400){ return "已结算"; } else{ return "未知"; } }, //银行流水 上传 bankStaFormatter:function (value, row, index) { if(value==null||value==''){ value='-'; } var operStr =' '+value+''; return operStr; }, //操作 operateFormatter:function (value, row, index) { var operStr =" 查看 "+ " 详细 "; //结算单状态为300已打款时,才会有确认按钮 if(row.settlementState==300){ operStr+=" 确认"; } return operStr; }, //结算记录 参数 getQueryParamSettle:function () { //查询起始日期 var dateStr = $("#temporary-daterange-btn").val(); var dates = dateStr.split(" - "); var startDate = new Date(dates[0]+" 00:00:00".replace(new RegExp(/-/gm) ,"/")); var endDate = new Date(dates[1]+" 23:59:59".replace(new RegExp(/-/gm) ,"/")); //结算对象 var toOrgIds = null; var settleObj = $("#settleObj").attr('data-value'); if(settleObj != null && settleObj != ''){ toOrgIds = JSON.parse(settleObj); } //结算状态 var settlementStates = null; var settleSta = $("#settleSta").selectpicker('val'); if(settleSta != null && settleSta != ''){ settlementStates = JSON.parse(settleSta); } var req = { startDate:startDate, endDate:endDate, toOrgIds:[], settlementStates:settlementStates, flag:false, sysCode: sysComm.sysCode } return req; }, //渲染详细结算单 drawSettlementDetail:function(data){ //结算单号 $("#settleNumcall").text((data.settlementNo)+""); //结算周期 $("#settleNumcall-time").text(fun.dateFormatter(data.startDate)+"至"+fun.dateFormatter(data.endDate)); //结算对象 $("#settlecallObj").text((data.toOrgName)==null?"":(data.toOrgName)); $("#settlecallObj").val(data.toOrgId); //结算总额 $("#settlecallMonery").text(fun.moneyFormatter(data.settlementActFee)); //微信实收 $("#wxFee").text((fun.moneyFormatter(data.wxFee))); //微信退款 $("#wxRefundFee").text(fun.moneyFormatter(data.wxRefundFee)); //微信手续费 $("#wxSrvFee").text(fun.moneyFormatter(data.wxSrvFee)); //微信应结金额 $("#wxFeeTotal").text(fun.moneyFormatter(data.wxFee-data.wxRefundFee-data.wxSrvFee)); //微信支付笔数 $("#wxFeeTotal").val(new Number(data.wxChargeNum)); //支付宝实收 $("#aliFee").text(fun.moneyFormatter(data.aliFee)); //$("#aliFee").text(fun.moneyFormatter(data.)); //支付宝退款 $("#aliRefundFee").text(fun.moneyFormatter(data.aliRefundFee)); //支付宝手续费 $("#aliSrvFee").text(fun.moneyFormatter(data.aliSrvFee)); //支付宝应结金额 $("#aliFeeTotal").text(fun.moneyFormatter(data.aliFee-data.aliRefundFee-data.aliSrvFee)); //支付宝支付笔数 $("#aliFeeTotal").val(new Number(data.aliChargeNum)); //余额实收 $("#balanceFee").text(fun.moneyFormatter(data.balanceFee)); //余额退款 $("#balanceRefundFee").text(fun.moneyFormatter(data.balanceRefundFee)); //余额手续费 $("#balanceSrvFee").text(fun.moneyFormatter(data.balanceSrvFee)); //余额应结金额 $("#balanceFeeTotal").text(fun.moneyFormatter(data.balanceFee-data.balanceRefundFee-data.balanceSrvFee)); //余额支付笔数 $("#balanceFeeTotal").val(new Number(data.balanceChargeNum)); //结算时间 $("#setadvice-endtime").text(data.createDate == null?'-':DateUtils.long2String(data.createDate, 10)); //操作人 $("#setadvice-endNames").text(data.createEmpName==null?'-':data.createEmpName); }, //初始化结算单详情 initSettlementDetail:function(){ //结算周期 $("#settleNumcall-time").text("至"); //结算对象 $("#settlecallObj").text(''); $("#settlecallObj").val(''); //结算总额 $("#settlecallMonery").text(''); //几个金额 $(".liClass").text(''); //结算时间 $("#setadvice-endtime").text(''); //操作人 $("#setadvice-endNames").text(''); }, //查看结算单 settlementDetailInfo:function(settlementNo){ fun.initSettlementDetail(); var req = { settlementNo:settlementNo, sysCode: sysComm.sysCode }; var opt = { method: 'post', async: false, url: dataUrl.util.querySettlementInfoByNo(), data: JSON.stringify(req), contentType: 'application/json; charset=utf-8', dataType: 'json', success: function (res) { if (res.code == '8888') { var data = res.data; if(data==null){ console.log(res); return; } fun.drawSettlementDetail(data); $('#settleadvice-model').modal('show'); } else{ console.log("查看结算单报错:",res); } } }; sysAjax(opt); }, //确认收款 confirmReceiveMoney:function(settlementNo,toOrgId){ var req = { settlementNo:settlementNo, toOrgId:toOrgId, sysCode: sysComm.sysCode }; var opt = { method: 'post', async: false, url: dataUrl.util.confirmReceiveMoney(), data: JSON.stringify(req), contentType: 'application/json; charset=utf-8', dataType: 'json', success: function (res) { if (res.code == '8888') { swal({title:"提示",text:"确认收款成功!",type:"success",timer:3000,allowOutsideClick:true}); //查询未结算金额 recordFun.getNoSettleMoney(); //查询已结算、结算中金额汇总 fun.querySettlementFeeSummary(); //默认 结算记录 table fun.createTableDataSettle(); } else{ console.log("确认收款报错:",res); } } }; sysAjax(opt); } }; fun.init(); //查询按钮 documentBindFunc.on('click','#temporary-queryBtn',function () { //查询未结算金额 recordFun.getNoSettleMoney(); //查询已结算、结算中金额汇总 fun.querySettlementFeeSummary(); //默认 结算记录 table fun.createTableDataSettle(); }); //详情弹窗 documentBindFunc.on('click', '.detailInfo', function() { var settlementNo =$(this).attr('value'); //alert("详情:"+settlementNo); fun.settlementDetailInfo(settlementNo); }); //弹窗 所有明细 table documentBindFunc.on('click', '.listInfo', function() { var settlementNo =$(this).attr('value'); settlementNos = []; settlementNos.push(settlementNo); fun.createSettlementRecordDetail(); $('#settledetail-allmodelDetail').modal('show'); }); //确认收款 documentBindFunc.on('click', '.confirmMoney', function() { var settlementNo =$(this).attr('value'); var toOrgId = $(this).attr('toOrgId'); fun.confirmReceiveMoney(settlementNo,toOrgId); }); //鼠标移动 事件 imgHover $("#imgHover").mouseover(function(){ $(".triangle-up").removeClass('display-none'); $(".temporary-des").removeClass('display-none'); }); $("#imgHover").mouseout(function(){ $(".triangle-up").addClass("display-none"); $(".temporary-des").addClass("display-none"); }); /** * 默认结算记录 table 函数 * 自定义table AJAX请求 * @param {Object} params */ function tableLoadRequestSettle(params) { var req = fun.getQueryParamSettle(); //设置请求参数 var pageNum = (params.data.offset / params.data.limit) + 1; //条件查询 req.baseRequest = { pageNum: pageNum, pageSize: params.data.limit }; var opt = { method: 'post', async: false, url: dataUrl.util.querySettlementListForPage(), data: JSON.stringify(req), contentType: 'application/json; charset=utf-8', dataType: 'json', success: function (res) { if (res.code == '8888') { params.success(res.data); } } }; sysAjax(opt); } /** * 所有明细 table 函数 * 自定义table AJAX请求 * @param {Object} params */ function tableLoadRequestallDetail(params) { var req = { settlementNos:settlementNos, sysCode: sysComm.sysCode }; var pageNum = (params.data.offset / params.data.limit) + 1; //条件查询 req.baseRequest = { pageNum: pageNum, pageSize: params.data.limit }; var opt = { method: 'post', url: dataUrl.util.querySettlementRecordListBySettleNO(), data: JSON.stringify(req), contentType: 'application/json; charset=utf-8', dataType: 'json', success: function (res) { if (res.code == '8888') { console.log("查询结算记录详细"); console.log(res); params.success(res.data); } } }; sysAjax(opt); } //结算单导出 documentBindFunc.on('click', '#record-detailBtn', function() { var req = fun.getQueryParamSettle(); var startDate = DateUtils.date2String(req.startDate,7); var endDate = DateUtils.date2String(req.endDate,7); var orgId=fn.getOrgId();//获取当前登录人组织id var url=dataUrl.util.exportSettlementList(); var forms = settlementExportForm(url,startDate,endDate,false,req.toOrgIds,req.settlementStates,sysComm.sysCode,orgId); forms.submit(); }); //创建结算单导出提交表单 function settlementExportForm(url,startDate,endDate,flag,toOrgIds,settlementStates,sysCode,orgId){ var form = document.createElement("form"); form.style.display='none';; form.action = url; form.method="post"; document.body.appendChild(form); var input = document.createElement("input"); input.name = "startDate"; input.value = startDate; form.appendChild(input); var input2 = document.createElement("input"); input2.name = "endDate"; input2.value = endDate; form.appendChild(input2); var input3 = document.createElement("input"); input3.name = "flag"; input3.value = flag; form.appendChild(input3); var input4 = document.createElement("input"); input4.name = "toOrgIds"; input4.value = toOrgIds; form.appendChild(input4); var input5 = document.createElement("input"); input5.name = "settlementStates"; input5.value = settlementStates; form.appendChild(input5); var input6 = document.createElement("input"); input6.name = "sysCode"; input6.value = sysCode; form.appendChild(input6); var input7 = document.createElement("input"); input7.name = "orgId"; input7.value = orgId; form.appendChild(input7); return form; }