/**
* 结算记录函数
*
*/
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;
}