<div id="payment" class="whitebg pl10 pr10 pb10 borderline mtop10">
<div class="title_c2 mar-t-10">
<div class="title3 pointer" οnclick="$('#t5').toggle();"> <h2><b class="titicon icon4"></b>付款信息</h2></div>
<span class="cost_text2"><b class="costicon icon2">付</b><span id="payment_pay_amount">¥${editPaymentPayAmountSpan}</span></span>
<span class="cost_text1"><b class="costicon icon1">报</b><span id="payment_apply_amount">¥${editPaymentApplyAmountSpan}</span></span>
</div>
<div id="t5" class="pannel1 mtop10" style="display:none">
<div>
<ul class="ex_tab" id="payment_account_type">
<li class="current" id="payment_default">默认账号</li>
<li id="payment_hand">手工输入</li>
</ul>
</div>
<a class="tool_btn" id="del_payment"><b class="toolicon delete_icon"></b> 删除行</a>
<a class="tool_btn" id="add_payment"><b class="toolicon copy_icon"></b> 新增行</a>
<a class="tool_btn" id="copy_payment"><b class="toolicon add_icon"></b> 复制行</a>
<div class="clear"></div>
<div class="content mtop10">
<form id="pay_line_form">
<div class="tab1">
<table width="100%" cellpadding="0" cellspacing="0" class="table2" id="payment_table1">
<tbody>
<tr>
<th width="3%"><input type="checkbox" id="select_all_1" /></th>
<th width="12%">供应商名称</th>
<th width="10%">收款户名</th>
<th width="10%">银行名称</th>
<th width="10%">支行</th>
<th width="15%">收款账号</th>
<th width="8%">支付方式</th>
<th width="8%">币种</th>
<th width="8%">报账金额</th>
<th width="8%">本次支付金额</th>
<th width="8%">用途</th>
</tr>
<tr class="bulebg ">
<td colspan="9">合计</td>
<td><span name="table_apply_amount"></span></td>
<td><span name="table_pay_amount"></span></td>
</tr>
</tbody>
</table>
</div>
<div class="tab2" style="display:none;">
<table width="100%" cellpadding="0" cellspacing="0" class="table2" id="payment_table2">
<tbody>
<tr>
<th width="3%"><input type="checkbox" name="" id="select_all_2"/></th>
<th width="12%">是否员工供应商</th>
<th width="10%">收款户名</th>
<th width="10%">银行名称</th>
<th width="10%">支行</th>
<th width="15%">收款账号</th>
<th width="8%">支付方式</th>
<th width="8%">币种</th>
<th width="8%">报账金额</th>
<th width="8%">本次支付金额</th>
<th width="8%">用途</th>
</tr>
<tr class="bulebg">
<td colspan="9">合计</td>
<td><span name="table_apply_amount"></span></td>
<td><span name="table_pay_amount"></span></td>
</tr>
</tbody>
</table>
</div>
</form>
</div>
</div>
</div>
<script type="text/javascript">
var payment;
function initPayment(opts){
payment = new Payment(opts);
p_initCg();
return payment;
}
function p_initCg(){
var headerId = p_getQueryString('boeHeaderId');
if(headerId !=null && headerId !=""){
$.ajax({
url: '/easServlet?method=com.zte.eas.boe.business.BusinessCenter4Boe.boe__getBoeBase',
type: 'POST',
dataType: 'json',
data: {'boeHeaderId': headerId},
success:function(data){
if(data){
payment.addRows(data.boePaymentList);
$('[name=apply_amount]',"#pay_line_form").trigger('blur');
$('[name=payment_amount]',"#pay_line_form").trigger('blur');
}
}
});
}
}
function p_getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = decodeURI(window.location.search).substr(1).match(reg);
if (r != null)
return unescape(r[2]);
else
return null;
};
//查询员工供应商及账户信息
function initVendorAccountLov(index){
var cmMainDiv = $(".CM_main");
if(!userInfo){
var userInfo = $.fn.eas("getUserInfo");
}
var valueField = "vendor_id"+index+",vendor_number"+index+",vendor_name"+index+",bank_account_name"+index
+",bank_name"+index+",bank_branch_name"+index+",bank_account_num"+index;
$("#vendor_name"+index).doLov("paymentVendorLov"+index,
"lov.payment.employeeVendorAndVendorBankAccount",
valueField,
'查询员工供应商及账户信息',
{'viewField':'vendor_number','conditionField':'vendor_number'},
userInfo.erpOrgId+','+userInfo.orgId,null,null,null,null,cmMainDiv
);
}
// 查询支行信息
function initSubBankLov(index){
var cmMainDiv = $(".CM_main");
var valueField = "bank_branch_code"+index+",bank_branch_name"+index;
$("#bank_branch_name"+index).doLov("paymentSubBankLov"+index,
"lov.subBankInfo.query",
valueField,
'查询支行信息',
{'viewField':'bank_branch_name'+index,'conditionField':'bank_branch_name'+index},
null,function(selector){
$("bank_branch_name"+index).attr("readonly",true);
},null,null,null,cmMainDiv
);
}
// 查询银行信息
function initBankLov(index){
var cmMainDiv = $(".CM_main");
var valueField = "bank_code"+index+",bank_name"+index;
$("#bank_name"+index).doLov("paymentBankLov"+index,
"lov.bankInfo.query",
valueField,
'查询银行信息',
{'viewField':'bank_name'+index,'conditionField':'bank_name'+index},
null,function(selector){
$("bank_name"+index).attr("readonly",true);
},null,null,null,cmMainDiv
);
}
var Payment = function(opts){
this.pay_line_index=0;
this._default={
setNotPay:null,
setAleradyPay:null,
getVendorInfo:null
};
this.setting=$.extend(this._default,opts);
this.show=function(){
$("#payment").show();
};
this.hide=function(){
$("#payment").hide();
};
this.getDivId=function(){
return "payment";
};
this._payemnt_validate=function(){
var applyAm = Number($("#apply_amount").text());
$("#pay_line_form .nullValue").removeClass('nullValue');
var requiredList = $("#pay_line_form").find('.required').trigger('blur');
if($("#pay_line_form .nullValue").length>0){return false;}
var table1Tr = $("#payment_table1 tr:not(:first):not(:last)");
var table2Tr = $("#payment_table2 tr:not(:first):not(:last)");
var total = 0;
for(var i = 0;i<table1Tr.length;i++){
var applyAmount = $(table1Tr[i]).find("[name=apply_amount]");
var paymentAmount =$(table1Tr[i]).find("[name=payment_amount]");
if(Number(applyAmount.val()||0)<Number(paymentAmount.val()||0)){
paymentAmount.addClass('nullValue');
alert('本次支付金额不能大于报账金额');
return false;
}else{
paymentAmount.removeClass('nullValue');
}
total += Number(applyAmount.val()||-1);
}
for(var i = 0;i<table2Tr.length;i++){
var applyAmount = $(table2Tr[i]).find("[name=apply_amount]");
var paymentAmount =$(table2Tr[i]).find("[name=payment_amount]");
if(Number(applyAmount.val()||0)<Number(paymentAmount.val()||0)){
paymentAmount.addClass('nullValue');
alert('本次支付金额不能大于报账金额');
return false;
}else{
paymentAmount.removeClass('nullValue');
}
total += Number(applyAmount.val());
}
if(applyAm != total){
alert("付款行总金额和报账单头报账金额不一致");
return false;
}
return true;
};
this.getTrCommCloumn=function(tr){
var inputs = $(tr).find('input');
var selects = $(tr).find('select');
var result = {};
for(var i = 1;i<inputs.length;i++){
var ele = $(inputs[i]);
// try{
var k = ele.attr('name').replace(/_(\w)/g,function(_,w){
return w.toUpperCase();});
// }
// catch(e){}
result[k] = ele.val();
result.paymentModeName = $(tr).find('[name=payment_mode_code]').find("option:selected").text();
}
if(selects.length>0){
var select = selects[0];
var selectName = $(select).attr('name').replace(/_(\w)/g,function(_,w){return w.toUpperCase();});
if(selectName == "isEmployeeVendor"){
result["isEmployeeVendor"] = $(select).find('option:selected').val();
}
}
delete(result["bankBranchCode"]);
delete(result["bankCode"]);
return result;
};
this.getPaymentData=function(){
var _data = $("#pay_line_form").toJson();
var result = [];
var table1Tr = $("#payment_table1 tr:not(:first):not(:last)");
for(var i=0;i<table1Tr.length;i++){
var tr = table1Tr[i];
result.push($.extend($(tr).data('line'),this.getTrCommCloumn(tr)));
}
var table2Tr = $("#payment_table2 tr:not(:first):not(:last)");
for(var i=0;i<table2Tr.length;i++){
var tr = table2Tr[i];
var p = $(tr).data('line')||{};
p.isEmployeeVendor = $(tr).find('[name=is_employee_vendor]').val();
result.push($.extend(p,this.getTrCommCloumn(tr)));
}
return result;
};
this.initDefault=function(vendorId){
$this = this;
$.ajax({
url: '/easServlet?method=com.zte.eas.boe.business.BusinessCenter4Boe.vendor__getBankAccount',
type: 'POST',
dataType: 'json',
data: {'vendorId': vendorId},
success:function(account){
$this.addRow(account);
}
});
};
this.addRow=function(account){
var pay_line_index = this.pay_line_index;
var defalutFlag = !(account === undefined);
var boePaymentId = "";
var paymentType = "";
if(account != undefined){
boePaymentId = account.boePaymentId ||"";
paymentType = account.paymentType;
//草稿进入
if(boePaymentId != ""){
if(paymentType == "0"){
defalutFlag = true;
}
if(paymentType == "1"){
defalutFlag = false;
}
}
}
var tab = defalutFlag ? $("#payment_table1"):$("#payment_table2");
var index = tab.find("tr:not(:first)").length;
var _form = tab[0].insertRow((index));
$("<td width='7%;'><input type='checkbox' name='pay_checkbox'/><input type='hidden' name='bank_branch_code' id='bank_branch_code"+pay_line_index+"'/> <input type='hidden' name='bank_code' id='bank_code"+pay_line_index+"'/></td>").appendTo(_form);
//var _form = $("<form></form>");
//第二格
var td2 = $("<td></td>");
var _name = 'vendor_name';//+pay_line_index
var vendorId = defalutFlag ? (account.vendorId||""):"";
vendorNumber = defalutFlag ? (account.vendorNumber||""):"";
var vendorName = defalutFlag ? (account.vendorName||""):"";
var td2HTML = defalutFlag ? $("<input type='hidden' id='paymentType' name='paymentType' value='0'/><input name='is_employee_vendor' id='is_employee_vendor"+pay_line_index+"' type='hidden' value='Y' /><input name='vendor_id' id='vendor_id"+pay_line_index+"' type='hidden' value='"+vendorId+"' />"
+"<input name='vendor_number' id='vendor_number"+pay_line_index+"' type='hidden' value='"+vendorNumber+"' />"
+"<input name='"+_name+"' id='"+_name+pay_line_index+"' type='text' value='"+vendorName+"' />"):$("<input type='hidden' id='paymentType' name='paymentType' value='1'/><select name='is_employee_vendor'><option value='Y'>是</option><option value='N'>否</option></select>");
td2HTML.appendTo(td2);
td2.appendTo(_form);
//
var _requiredClassName = defalutFlag ? "text_center input-text12 nullborder":"input-text required";
//var _className = defalutFlag ? "text_center input-text12 nullborder":"input-text"
_name = "bank_account_name";//+pay_line_index
this.getInputTd(_name,(account ? account.bankAccountName:""),_requiredClassName,defalutFlag).appendTo(_form);
_name = "bank_name";//+pay_line_index
this.getInputTd(_name,(account ? account.bankName:""),_requiredClassName,defalutFlag).appendTo(_form);
_name = "bank_branch_name";//+pay_line_index
this.getInputTd(_name,(account ? account.bankBranchName:""),_requiredClassName,defalutFlag).appendTo(_form);
_name = "bank_account_num";//+pay_line_index
this.getInputTd(_name,(account ? account.bankAccountNum:""),_requiredClassName,defalutFlag).appendTo(_form);
var pmcId = "payment_mode_code"+this.pay_line_index;
_name = "payment_mode_code";//+pay_line_index
$("<td><select name="+_name+" id="+pmcId+"></select></td>").appendTo(_form);
this.initSelect(pmcId,"SIE_BOE_PAYMENT_PAYMENT_MODE_CODE");
$("<td><select><option value='CNY'>人民币</option></select></td>").appendTo(_form);
_name = "apply_amount";//+pay_line_index
this.getInputTd(_name,"","input-text required").appendTo(_form);
_name = "payment_amount";//+pay_line_index
this.getInputTd(_name,"","input-text").appendTo(_form);
_name = "memo";//+pay_line_index
this.getInputTd(_name,"","input-text").appendTo(_form);
//查询供应商及账户信息
initVendorAccountLov(this.pay_line_index);
initBankLov(this.pay_line_index); //银行信息
initSubBankLov(this.pay_line_index); //支行新增
this.pay_line_index++;
return _form;
};
this.getInputTd=function(name,value,_class,readonly){
var _input = $("<input class='input-text8p'/>");
if("memo" == name){
_input.attr("style","text-align:start;");
}
else{
_input.attr("style","text-align:center;");
}
_input.attr("name",name);
_input.attr("id",name+this.pay_line_index);
_input.attr("value",value);
_input.attr("class",_class);
if(readonly){
_input.attr("readonly","readonly");
}
else{
_input.attr("style","text-align:start;");
}
if("apply_amount" == name || "payment_amount" == name ){
_input.attr("onkeyup","if(isNaN(value))execCommand('undo')");
_input.attr("onafterpaste","if(isNaN(value))execCommand('undo')");
}
var td = $("<td></td>");
_input.appendTo(td);
return td;
};
this.getDataTable=function(){
if($("#payment_default").hasClass('current')){
return $("#payment_table1");
}else{
return $("#payment_table2");
}
};
this.initSelect=function(targetId,lookupType){
$("#"+targetId).eas('select',{
valueField: 'lookupValue',
txtField: 'lookupValueName',
queryParams: {
lookupType:lookupType,
sort:"asc"
}
});
};
this.changeAmount=function(applyFlag){
var table1Tr = $("#payment_table1 tr:not(:first):not(:last)");
var table2Tr = $("#payment_table2 tr:not(:first):not(:last)");
var _array = [];
for(var i = 0;i<table1Tr.length;i++){
_array.push(table1Tr[i]);
}
for(var i = 0;i<table2Tr.length;i++){
_array.push(table2Tr[i]);
}
//table2Tr.push(table1Tr);
var total = 0;
var name = applyFlag ? "apply_amount":"payment_amount";
for(var i=0;i<_array.length;i++){
total += Number($(_array[i]).find("[name="+name+"]").val());
}
name = applyFlag ? "payment_apply_amount":"payment_pay_amount";
$("#"+name).text("¥"+total.toFixed(2));
this.setPagePayInfo();
};
this.setPagePayInfo=function(){
if(this.setting.setNotPay!=null && this.setting.setAleradyPay!=null
&& typeof this.setting.setNotPay =='function'
&& typeof this.setting.setAleradyPay == 'function'){
var applyAmount = $("#payment_apply_amount").text();
var payAmount = $("#payment_pay_amount").text();
if(applyAmount.length>0)
applyAmount = applyAmount.substring(1);
if(payAmount.length>0)
payAmount = payAmount.substring(1);
this.setting.setNotPay(Number(applyAmount)-Number(payAmount));
this.setting.setAleradyPay(Number(payAmount));
}
};
this.changeTableAmount=function(obj,applyFlag){
var table = $(obj).parents('table')[0];
var trs = $(table).find("tr:not(:first):not(:last)");
var name = applyFlag?"apply_amount":"payment_amount";
var total = 0;
for(var i=0;i<trs.length;i++){
total += Number($(trs[i]).find("[name="+name+"]").val());
}
name = applyFlag ? "table_apply_amount" : "table_pay_amount";
$(table).find("[name="+name+"]").text(total.toFixed(2));
};
this.checkRequired=function(obj){
var value = $(obj).val();
if(value==null||value==""){
$(obj).addClass('nullValue');
return false;
}else{
$(obj).removeClass('nullValue');
}
return true;
};
this.initRowEleVal = function(p,tr){
var hiddenValue = {};
for(var k in p){
var _k = k.replace(/([A-Z])/g,'_$1').toLowerCase();
var ele = $(tr).find("[name="+_k+"]");
if(ele.length==1){
if(ele.is('span')){
ele.text(p[k]);
}else{
ele.val(p[k]);
}
}else{
hiddenValue[k] = p[k];
}
}
var boePaymentId = p.boePaymentId||"";
if(""==boePaymentId){
$(tr).find("[name=apply_amount]").val(Number($(tr).find("[name=apply_amount]").val()).toFixed(2));
if(""==$(tr).find("[name=payment_amount]").val()){
$(tr).find("[name=payment_amount]").val($(tr).find("[name=apply_amount]").val());
}
$(tr).find("[name=payment_amount]").val(Number($(tr).find("[name=payment_amount]").val()).toFixed(2));
$('[name=apply_amount]',"#pay_line_form").trigger('blur');
$('[name=payment_amount]',"#pay_line_form").trigger('blur');
}
$(tr).data('line',hiddenValue);
};
this.addRows= function(paymentList){
if(paymentList && $.isArray(paymentList)){
for(var i = 0;i < paymentList.length;i++){
var p = paymentList[i];
delete(p["employeeId"]);
delete(p["employeeNumber"]);
delete(p["employeeName"]);
var tr;
tr=this.addRow(p);
/* if(p.isEmployeeVendor=='Y'){
tr=this.addRow({});
}else{
tr=this.addRow(p);
} */
this.initRowEleVal(p,tr);
}
}
}
}
function triggerTrBlur(tr){
$(tr).find("[name=apply_amount]").val(Number($(tr).find("[name=apply_amount]").val()).toFixed(2));
$(tr).find("[name=payment_amount]").val($(tr).find("[name=apply_amount]").val());
$('[name=apply_amount]',"#pay_line_form").trigger('blur');
$('[name=payment_amount]',"#pay_line_form").trigger('blur');
}
$(document).ready(function() {
// 付款信息
$("ul.ex_tab").on("click",function(event){
var target = event.target;
var index = $(target).index();
if(index == 0){ //默认账号
$(target).addClass("current");
$(target).siblings().removeClass("current");
$("div.tab1").show();
$("div.tab2").hide();
}else if(index ==1){ //手工输入
$(target).addClass("current");
$(target).siblings().removeClass("current");
$("div.tab1").hide();
$("div.tab2").show();
}
});
//var payment = ;
$("#del_payment").bind('click', function(event) {
var currentDataTable = payment.getDataTable();
$("[name=pay_checkbox]:checked",currentDataTable).parent().parent().remove();
var rowLength = currentDataTable.find('tr:not(:first):not(:last)').length;
$('[name=apply_amount]',"#pay_line_form").trigger('blur');
$('[name=payment_amount]',"#pay_line_form").trigger('blur');
if(rowLength == 0){
currentDataTable.find('span[name=table_apply_amount]').text("0.00");
currentDataTable.find('span[name=table_pay_amount]').text("0.00");
}
if($('[name=apply_amount]',"#pay_line_form").length == 0){
currentDataTable.find('span[name=table_apply_amount]').text("0.00");
$("#payment_apply_amount").text("¥"+Number("0.00").toFixed(2));
}
if($('[name=payment_amount]',"#pay_line_form").length == 0){
currentDataTable.find('span[name=table_pay_amount]').text("0.00");
$("#payment_pay_amount").text("¥"+Number("0.00").toFixed(2));
}
});
$("#select_all_1").bind('click',function(){
this.checked?$("[name=pay_checkbox]",$("#payment_table1")).prop('checked',true):$("[name=pay_checkbox]",$("#payment_table1")).prop('checked',false);
})
$("#select_all_2").bind('click',function(){
this.checked?$("[name=pay_checkbox]",$("#payment_table2")).prop('checked',true):$("[name=pay_checkbox]",$("#payment_table2")).prop('checked',false);
})
$("#copy_payment").bind('click',function(){
var currentDataTable = payment.getDataTable();
var checkboxs = $("[name=pay_checkbox]:checked",currentDataTable);
var length = checkboxs.length;
if(length!=1){
alert('复制请勾选一行');
return;
}
var selectRow = $(checkboxs[0]).parents('tr')[0];
var rowData = payment.getTrCommCloumn(selectRow);
var newRow;
if(rowData.paymentType == "0"){
newRow = payment.addRow(rowData);
}
else{
newRow = payment.addRow();
}
payment.initRowEleVal(rowData,newRow);
});
$("#add_payment").bind('click',function(){
if(payment==null){return;}
var _selectType = $("#payment_account_type .current")[0].id;
var currentDataTable = payment.getDataTable();
var paymentRows = currentDataTable.find('tr');
var _employeeList = payment.setting.getVendorInfo();
var addDefaultFlag = true;
if(_employeeList == null || _employeeList.length == 0 || paymentRows.length >= _employeeList.length+2){
addDefaultFlag = false;
}
if(_selectType == "payment_default"){
if(!addDefaultFlag){
var tr=payment.addRow({});
triggerTrBlur(tr);
}
else{
$.ajax({
url: '/easServlet?method=com.zte.zas.common.business.BusinessCenter4System.fbpEmployee__getEmployeeVendorAndBankAccountInfoList',
type: 'POST',
async:false,
dataType: 'json',
data: {'employeeList':_employeeList},
success:function(data){
if(data){
//如果查询到员工供应商和账户信息
if(data!=null && data.length>0){
payment.addRows(data);
}
else{
for(var i=0;i<_employeeList.length;i++){
var applyAmount = _employeeList[i].applyAmount;
var tr = payment.addRow({});
$(tr).find('input[name=apply_amount]').val(applyAmount);
$(tr).find('input[name=payment_amount]').val(applyAmount);
triggerTrBlur(tr);
}
}
}
}
});
}
}else{
if(!addDefaultFlag){
var tr = payment.addRow();
triggerTrBlur(tr);
}
else{
for(var i=0;i<_employeeList.length;i++){
var applyAmount = _employeeList[i].applyAmount;
var tr = payment.addRow();
$(tr).find('input[name=apply_amount]').val(applyAmount);
$(tr).find('input[name=payment_amount]').val(applyAmount);
triggerTrBlur(tr);
}
}
}
});
$("#pay_line_form").delegate('.required', 'blur', function(){
if(payment==null){return;}
payment.checkRequired(this);
});
$("#pay_line_form").undelegate('[name=apply_amount]', 'blur').delegate('[name=apply_amount]', 'blur', function(event) {
if(payment==null){return;}
$(this).val(Number($(this).val()).toFixed(2));
payment.checkRequired(this);//if(!){return};
payment.changeAmount(true);
payment.changeTableAmount(this,true);
});
$("#pay_line_form").delegate('[name=payment_amount]', 'blur', function(event) {
if(payment==null){return;}
$(this).val(Number($(this).val()).toFixed(2));
payment.changeAmount(false);
payment.changeTableAmount(this,false);
});
});
</script>
<div class="title_c2 mar-t-10">
<div class="title3 pointer" οnclick="$('#t5').toggle();"> <h2><b class="titicon icon4"></b>付款信息</h2></div>
<span class="cost_text2"><b class="costicon icon2">付</b><span id="payment_pay_amount">¥${editPaymentPayAmountSpan}</span></span>
<span class="cost_text1"><b class="costicon icon1">报</b><span id="payment_apply_amount">¥${editPaymentApplyAmountSpan}</span></span>
</div>
<div id="t5" class="pannel1 mtop10" style="display:none">
<div>
<ul class="ex_tab" id="payment_account_type">
<li class="current" id="payment_default">默认账号</li>
<li id="payment_hand">手工输入</li>
</ul>
</div>
<a class="tool_btn" id="del_payment"><b class="toolicon delete_icon"></b> 删除行</a>
<a class="tool_btn" id="add_payment"><b class="toolicon copy_icon"></b> 新增行</a>
<a class="tool_btn" id="copy_payment"><b class="toolicon add_icon"></b> 复制行</a>
<div class="clear"></div>
<div class="content mtop10">
<form id="pay_line_form">
<div class="tab1">
<table width="100%" cellpadding="0" cellspacing="0" class="table2" id="payment_table1">
<tbody>
<tr>
<th width="3%"><input type="checkbox" id="select_all_1" /></th>
<th width="12%">供应商名称</th>
<th width="10%">收款户名</th>
<th width="10%">银行名称</th>
<th width="10%">支行</th>
<th width="15%">收款账号</th>
<th width="8%">支付方式</th>
<th width="8%">币种</th>
<th width="8%">报账金额</th>
<th width="8%">本次支付金额</th>
<th width="8%">用途</th>
</tr>
<tr class="bulebg ">
<td colspan="9">合计</td>
<td><span name="table_apply_amount"></span></td>
<td><span name="table_pay_amount"></span></td>
</tr>
</tbody>
</table>
</div>
<div class="tab2" style="display:none;">
<table width="100%" cellpadding="0" cellspacing="0" class="table2" id="payment_table2">
<tbody>
<tr>
<th width="3%"><input type="checkbox" name="" id="select_all_2"/></th>
<th width="12%">是否员工供应商</th>
<th width="10%">收款户名</th>
<th width="10%">银行名称</th>
<th width="10%">支行</th>
<th width="15%">收款账号</th>
<th width="8%">支付方式</th>
<th width="8%">币种</th>
<th width="8%">报账金额</th>
<th width="8%">本次支付金额</th>
<th width="8%">用途</th>
</tr>
<tr class="bulebg">
<td colspan="9">合计</td>
<td><span name="table_apply_amount"></span></td>
<td><span name="table_pay_amount"></span></td>
</tr>
</tbody>
</table>
</div>
</form>
</div>
</div>
</div>
<script type="text/javascript">
var payment;
function initPayment(opts){
payment = new Payment(opts);
p_initCg();
return payment;
}
function p_initCg(){
var headerId = p_getQueryString('boeHeaderId');
if(headerId !=null && headerId !=""){
$.ajax({
url: '/easServlet?method=com.zte.eas.boe.business.BusinessCenter4Boe.boe__getBoeBase',
type: 'POST',
dataType: 'json',
data: {'boeHeaderId': headerId},
success:function(data){
if(data){
payment.addRows(data.boePaymentList);
$('[name=apply_amount]',"#pay_line_form").trigger('blur');
$('[name=payment_amount]',"#pay_line_form").trigger('blur');
}
}
});
}
}
function p_getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = decodeURI(window.location.search).substr(1).match(reg);
if (r != null)
return unescape(r[2]);
else
return null;
};
//查询员工供应商及账户信息
function initVendorAccountLov(index){
var cmMainDiv = $(".CM_main");
if(!userInfo){
var userInfo = $.fn.eas("getUserInfo");
}
var valueField = "vendor_id"+index+",vendor_number"+index+",vendor_name"+index+",bank_account_name"+index
+",bank_name"+index+",bank_branch_name"+index+",bank_account_num"+index;
$("#vendor_name"+index).doLov("paymentVendorLov"+index,
"lov.payment.employeeVendorAndVendorBankAccount",
valueField,
'查询员工供应商及账户信息',
{'viewField':'vendor_number','conditionField':'vendor_number'},
userInfo.erpOrgId+','+userInfo.orgId,null,null,null,null,cmMainDiv
);
}
// 查询支行信息
function initSubBankLov(index){
var cmMainDiv = $(".CM_main");
var valueField = "bank_branch_code"+index+",bank_branch_name"+index;
$("#bank_branch_name"+index).doLov("paymentSubBankLov"+index,
"lov.subBankInfo.query",
valueField,
'查询支行信息',
{'viewField':'bank_branch_name'+index,'conditionField':'bank_branch_name'+index},
null,function(selector){
$("bank_branch_name"+index).attr("readonly",true);
},null,null,null,cmMainDiv
);
}
// 查询银行信息
function initBankLov(index){
var cmMainDiv = $(".CM_main");
var valueField = "bank_code"+index+",bank_name"+index;
$("#bank_name"+index).doLov("paymentBankLov"+index,
"lov.bankInfo.query",
valueField,
'查询银行信息',
{'viewField':'bank_name'+index,'conditionField':'bank_name'+index},
null,function(selector){
$("bank_name"+index).attr("readonly",true);
},null,null,null,cmMainDiv
);
}
var Payment = function(opts){
this.pay_line_index=0;
this._default={
setNotPay:null,
setAleradyPay:null,
getVendorInfo:null
};
this.setting=$.extend(this._default,opts);
this.show=function(){
$("#payment").show();
};
this.hide=function(){
$("#payment").hide();
};
this.getDivId=function(){
return "payment";
};
this._payemnt_validate=function(){
var applyAm = Number($("#apply_amount").text());
$("#pay_line_form .nullValue").removeClass('nullValue');
var requiredList = $("#pay_line_form").find('.required').trigger('blur');
if($("#pay_line_form .nullValue").length>0){return false;}
var table1Tr = $("#payment_table1 tr:not(:first):not(:last)");
var table2Tr = $("#payment_table2 tr:not(:first):not(:last)");
var total = 0;
for(var i = 0;i<table1Tr.length;i++){
var applyAmount = $(table1Tr[i]).find("[name=apply_amount]");
var paymentAmount =$(table1Tr[i]).find("[name=payment_amount]");
if(Number(applyAmount.val()||0)<Number(paymentAmount.val()||0)){
paymentAmount.addClass('nullValue');
alert('本次支付金额不能大于报账金额');
return false;
}else{
paymentAmount.removeClass('nullValue');
}
total += Number(applyAmount.val()||-1);
}
for(var i = 0;i<table2Tr.length;i++){
var applyAmount = $(table2Tr[i]).find("[name=apply_amount]");
var paymentAmount =$(table2Tr[i]).find("[name=payment_amount]");
if(Number(applyAmount.val()||0)<Number(paymentAmount.val()||0)){
paymentAmount.addClass('nullValue');
alert('本次支付金额不能大于报账金额');
return false;
}else{
paymentAmount.removeClass('nullValue');
}
total += Number(applyAmount.val());
}
if(applyAm != total){
alert("付款行总金额和报账单头报账金额不一致");
return false;
}
return true;
};
this.getTrCommCloumn=function(tr){
var inputs = $(tr).find('input');
var selects = $(tr).find('select');
var result = {};
for(var i = 1;i<inputs.length;i++){
var ele = $(inputs[i]);
// try{
var k = ele.attr('name').replace(/_(\w)/g,function(_,w){
return w.toUpperCase();});
// }
// catch(e){}
result[k] = ele.val();
result.paymentModeName = $(tr).find('[name=payment_mode_code]').find("option:selected").text();
}
if(selects.length>0){
var select = selects[0];
var selectName = $(select).attr('name').replace(/_(\w)/g,function(_,w){return w.toUpperCase();});
if(selectName == "isEmployeeVendor"){
result["isEmployeeVendor"] = $(select).find('option:selected').val();
}
}
delete(result["bankBranchCode"]);
delete(result["bankCode"]);
return result;
};
this.getPaymentData=function(){
var _data = $("#pay_line_form").toJson();
var result = [];
var table1Tr = $("#payment_table1 tr:not(:first):not(:last)");
for(var i=0;i<table1Tr.length;i++){
var tr = table1Tr[i];
result.push($.extend($(tr).data('line'),this.getTrCommCloumn(tr)));
}
var table2Tr = $("#payment_table2 tr:not(:first):not(:last)");
for(var i=0;i<table2Tr.length;i++){
var tr = table2Tr[i];
var p = $(tr).data('line')||{};
p.isEmployeeVendor = $(tr).find('[name=is_employee_vendor]').val();
result.push($.extend(p,this.getTrCommCloumn(tr)));
}
return result;
};
this.initDefault=function(vendorId){
$this = this;
$.ajax({
url: '/easServlet?method=com.zte.eas.boe.business.BusinessCenter4Boe.vendor__getBankAccount',
type: 'POST',
dataType: 'json',
data: {'vendorId': vendorId},
success:function(account){
$this.addRow(account);
}
});
};
this.addRow=function(account){
var pay_line_index = this.pay_line_index;
var defalutFlag = !(account === undefined);
var boePaymentId = "";
var paymentType = "";
if(account != undefined){
boePaymentId = account.boePaymentId ||"";
paymentType = account.paymentType;
//草稿进入
if(boePaymentId != ""){
if(paymentType == "0"){
defalutFlag = true;
}
if(paymentType == "1"){
defalutFlag = false;
}
}
}
var tab = defalutFlag ? $("#payment_table1"):$("#payment_table2");
var index = tab.find("tr:not(:first)").length;
var _form = tab[0].insertRow((index));
$("<td width='7%;'><input type='checkbox' name='pay_checkbox'/><input type='hidden' name='bank_branch_code' id='bank_branch_code"+pay_line_index+"'/> <input type='hidden' name='bank_code' id='bank_code"+pay_line_index+"'/></td>").appendTo(_form);
//var _form = $("<form></form>");
//第二格
var td2 = $("<td></td>");
var _name = 'vendor_name';//+pay_line_index
var vendorId = defalutFlag ? (account.vendorId||""):"";
vendorNumber = defalutFlag ? (account.vendorNumber||""):"";
var vendorName = defalutFlag ? (account.vendorName||""):"";
var td2HTML = defalutFlag ? $("<input type='hidden' id='paymentType' name='paymentType' value='0'/><input name='is_employee_vendor' id='is_employee_vendor"+pay_line_index+"' type='hidden' value='Y' /><input name='vendor_id' id='vendor_id"+pay_line_index+"' type='hidden' value='"+vendorId+"' />"
+"<input name='vendor_number' id='vendor_number"+pay_line_index+"' type='hidden' value='"+vendorNumber+"' />"
+"<input name='"+_name+"' id='"+_name+pay_line_index+"' type='text' value='"+vendorName+"' />"):$("<input type='hidden' id='paymentType' name='paymentType' value='1'/><select name='is_employee_vendor'><option value='Y'>是</option><option value='N'>否</option></select>");
td2HTML.appendTo(td2);
td2.appendTo(_form);
//
var _requiredClassName = defalutFlag ? "text_center input-text12 nullborder":"input-text required";
//var _className = defalutFlag ? "text_center input-text12 nullborder":"input-text"
_name = "bank_account_name";//+pay_line_index
this.getInputTd(_name,(account ? account.bankAccountName:""),_requiredClassName,defalutFlag).appendTo(_form);
_name = "bank_name";//+pay_line_index
this.getInputTd(_name,(account ? account.bankName:""),_requiredClassName,defalutFlag).appendTo(_form);
_name = "bank_branch_name";//+pay_line_index
this.getInputTd(_name,(account ? account.bankBranchName:""),_requiredClassName,defalutFlag).appendTo(_form);
_name = "bank_account_num";//+pay_line_index
this.getInputTd(_name,(account ? account.bankAccountNum:""),_requiredClassName,defalutFlag).appendTo(_form);
var pmcId = "payment_mode_code"+this.pay_line_index;
_name = "payment_mode_code";//+pay_line_index
$("<td><select name="+_name+" id="+pmcId+"></select></td>").appendTo(_form);
this.initSelect(pmcId,"SIE_BOE_PAYMENT_PAYMENT_MODE_CODE");
$("<td><select><option value='CNY'>人民币</option></select></td>").appendTo(_form);
_name = "apply_amount";//+pay_line_index
this.getInputTd(_name,"","input-text required").appendTo(_form);
_name = "payment_amount";//+pay_line_index
this.getInputTd(_name,"","input-text").appendTo(_form);
_name = "memo";//+pay_line_index
this.getInputTd(_name,"","input-text").appendTo(_form);
//查询供应商及账户信息
initVendorAccountLov(this.pay_line_index);
initBankLov(this.pay_line_index); //银行信息
initSubBankLov(this.pay_line_index); //支行新增
this.pay_line_index++;
return _form;
};
this.getInputTd=function(name,value,_class,readonly){
var _input = $("<input class='input-text8p'/>");
if("memo" == name){
_input.attr("style","text-align:start;");
}
else{
_input.attr("style","text-align:center;");
}
_input.attr("name",name);
_input.attr("id",name+this.pay_line_index);
_input.attr("value",value);
_input.attr("class",_class);
if(readonly){
_input.attr("readonly","readonly");
}
else{
_input.attr("style","text-align:start;");
}
if("apply_amount" == name || "payment_amount" == name ){
_input.attr("onkeyup","if(isNaN(value))execCommand('undo')");
_input.attr("onafterpaste","if(isNaN(value))execCommand('undo')");
}
var td = $("<td></td>");
_input.appendTo(td);
return td;
};
this.getDataTable=function(){
if($("#payment_default").hasClass('current')){
return $("#payment_table1");
}else{
return $("#payment_table2");
}
};
this.initSelect=function(targetId,lookupType){
$("#"+targetId).eas('select',{
valueField: 'lookupValue',
txtField: 'lookupValueName',
queryParams: {
lookupType:lookupType,
sort:"asc"
}
});
};
this.changeAmount=function(applyFlag){
var table1Tr = $("#payment_table1 tr:not(:first):not(:last)");
var table2Tr = $("#payment_table2 tr:not(:first):not(:last)");
var _array = [];
for(var i = 0;i<table1Tr.length;i++){
_array.push(table1Tr[i]);
}
for(var i = 0;i<table2Tr.length;i++){
_array.push(table2Tr[i]);
}
//table2Tr.push(table1Tr);
var total = 0;
var name = applyFlag ? "apply_amount":"payment_amount";
for(var i=0;i<_array.length;i++){
total += Number($(_array[i]).find("[name="+name+"]").val());
}
name = applyFlag ? "payment_apply_amount":"payment_pay_amount";
$("#"+name).text("¥"+total.toFixed(2));
this.setPagePayInfo();
};
this.setPagePayInfo=function(){
if(this.setting.setNotPay!=null && this.setting.setAleradyPay!=null
&& typeof this.setting.setNotPay =='function'
&& typeof this.setting.setAleradyPay == 'function'){
var applyAmount = $("#payment_apply_amount").text();
var payAmount = $("#payment_pay_amount").text();
if(applyAmount.length>0)
applyAmount = applyAmount.substring(1);
if(payAmount.length>0)
payAmount = payAmount.substring(1);
this.setting.setNotPay(Number(applyAmount)-Number(payAmount));
this.setting.setAleradyPay(Number(payAmount));
}
};
this.changeTableAmount=function(obj,applyFlag){
var table = $(obj).parents('table')[0];
var trs = $(table).find("tr:not(:first):not(:last)");
var name = applyFlag?"apply_amount":"payment_amount";
var total = 0;
for(var i=0;i<trs.length;i++){
total += Number($(trs[i]).find("[name="+name+"]").val());
}
name = applyFlag ? "table_apply_amount" : "table_pay_amount";
$(table).find("[name="+name+"]").text(total.toFixed(2));
};
this.checkRequired=function(obj){
var value = $(obj).val();
if(value==null||value==""){
$(obj).addClass('nullValue');
return false;
}else{
$(obj).removeClass('nullValue');
}
return true;
};
this.initRowEleVal = function(p,tr){
var hiddenValue = {};
for(var k in p){
var _k = k.replace(/([A-Z])/g,'_$1').toLowerCase();
var ele = $(tr).find("[name="+_k+"]");
if(ele.length==1){
if(ele.is('span')){
ele.text(p[k]);
}else{
ele.val(p[k]);
}
}else{
hiddenValue[k] = p[k];
}
}
var boePaymentId = p.boePaymentId||"";
if(""==boePaymentId){
$(tr).find("[name=apply_amount]").val(Number($(tr).find("[name=apply_amount]").val()).toFixed(2));
if(""==$(tr).find("[name=payment_amount]").val()){
$(tr).find("[name=payment_amount]").val($(tr).find("[name=apply_amount]").val());
}
$(tr).find("[name=payment_amount]").val(Number($(tr).find("[name=payment_amount]").val()).toFixed(2));
$('[name=apply_amount]',"#pay_line_form").trigger('blur');
$('[name=payment_amount]',"#pay_line_form").trigger('blur');
}
$(tr).data('line',hiddenValue);
};
this.addRows= function(paymentList){
if(paymentList && $.isArray(paymentList)){
for(var i = 0;i < paymentList.length;i++){
var p = paymentList[i];
delete(p["employeeId"]);
delete(p["employeeNumber"]);
delete(p["employeeName"]);
var tr;
tr=this.addRow(p);
/* if(p.isEmployeeVendor=='Y'){
tr=this.addRow({});
}else{
tr=this.addRow(p);
} */
this.initRowEleVal(p,tr);
}
}
}
}
function triggerTrBlur(tr){
$(tr).find("[name=apply_amount]").val(Number($(tr).find("[name=apply_amount]").val()).toFixed(2));
$(tr).find("[name=payment_amount]").val($(tr).find("[name=apply_amount]").val());
$('[name=apply_amount]',"#pay_line_form").trigger('blur');
$('[name=payment_amount]',"#pay_line_form").trigger('blur');
}
$(document).ready(function() {
// 付款信息
$("ul.ex_tab").on("click",function(event){
var target = event.target;
var index = $(target).index();
if(index == 0){ //默认账号
$(target).addClass("current");
$(target).siblings().removeClass("current");
$("div.tab1").show();
$("div.tab2").hide();
}else if(index ==1){ //手工输入
$(target).addClass("current");
$(target).siblings().removeClass("current");
$("div.tab1").hide();
$("div.tab2").show();
}
});
//var payment = ;
$("#del_payment").bind('click', function(event) {
var currentDataTable = payment.getDataTable();
$("[name=pay_checkbox]:checked",currentDataTable).parent().parent().remove();
var rowLength = currentDataTable.find('tr:not(:first):not(:last)').length;
$('[name=apply_amount]',"#pay_line_form").trigger('blur');
$('[name=payment_amount]',"#pay_line_form").trigger('blur');
if(rowLength == 0){
currentDataTable.find('span[name=table_apply_amount]').text("0.00");
currentDataTable.find('span[name=table_pay_amount]').text("0.00");
}
if($('[name=apply_amount]',"#pay_line_form").length == 0){
currentDataTable.find('span[name=table_apply_amount]').text("0.00");
$("#payment_apply_amount").text("¥"+Number("0.00").toFixed(2));
}
if($('[name=payment_amount]',"#pay_line_form").length == 0){
currentDataTable.find('span[name=table_pay_amount]').text("0.00");
$("#payment_pay_amount").text("¥"+Number("0.00").toFixed(2));
}
});
$("#select_all_1").bind('click',function(){
this.checked?$("[name=pay_checkbox]",$("#payment_table1")).prop('checked',true):$("[name=pay_checkbox]",$("#payment_table1")).prop('checked',false);
})
$("#select_all_2").bind('click',function(){
this.checked?$("[name=pay_checkbox]",$("#payment_table2")).prop('checked',true):$("[name=pay_checkbox]",$("#payment_table2")).prop('checked',false);
})
$("#copy_payment").bind('click',function(){
var currentDataTable = payment.getDataTable();
var checkboxs = $("[name=pay_checkbox]:checked",currentDataTable);
var length = checkboxs.length;
if(length!=1){
alert('复制请勾选一行');
return;
}
var selectRow = $(checkboxs[0]).parents('tr')[0];
var rowData = payment.getTrCommCloumn(selectRow);
var newRow;
if(rowData.paymentType == "0"){
newRow = payment.addRow(rowData);
}
else{
newRow = payment.addRow();
}
payment.initRowEleVal(rowData,newRow);
});
$("#add_payment").bind('click',function(){
if(payment==null){return;}
var _selectType = $("#payment_account_type .current")[0].id;
var currentDataTable = payment.getDataTable();
var paymentRows = currentDataTable.find('tr');
var _employeeList = payment.setting.getVendorInfo();
var addDefaultFlag = true;
if(_employeeList == null || _employeeList.length == 0 || paymentRows.length >= _employeeList.length+2){
addDefaultFlag = false;
}
if(_selectType == "payment_default"){
if(!addDefaultFlag){
var tr=payment.addRow({});
triggerTrBlur(tr);
}
else{
$.ajax({
url: '/easServlet?method=com.zte.zas.common.business.BusinessCenter4System.fbpEmployee__getEmployeeVendorAndBankAccountInfoList',
type: 'POST',
async:false,
dataType: 'json',
data: {'employeeList':_employeeList},
success:function(data){
if(data){
//如果查询到员工供应商和账户信息
if(data!=null && data.length>0){
payment.addRows(data);
}
else{
for(var i=0;i<_employeeList.length;i++){
var applyAmount = _employeeList[i].applyAmount;
var tr = payment.addRow({});
$(tr).find('input[name=apply_amount]').val(applyAmount);
$(tr).find('input[name=payment_amount]').val(applyAmount);
triggerTrBlur(tr);
}
}
}
}
});
}
}else{
if(!addDefaultFlag){
var tr = payment.addRow();
triggerTrBlur(tr);
}
else{
for(var i=0;i<_employeeList.length;i++){
var applyAmount = _employeeList[i].applyAmount;
var tr = payment.addRow();
$(tr).find('input[name=apply_amount]').val(applyAmount);
$(tr).find('input[name=payment_amount]').val(applyAmount);
triggerTrBlur(tr);
}
}
}
});
$("#pay_line_form").delegate('.required', 'blur', function(){
if(payment==null){return;}
payment.checkRequired(this);
});
$("#pay_line_form").undelegate('[name=apply_amount]', 'blur').delegate('[name=apply_amount]', 'blur', function(event) {
if(payment==null){return;}
$(this).val(Number($(this).val()).toFixed(2));
payment.checkRequired(this);//if(!){return};
payment.changeAmount(true);
payment.changeTableAmount(this,true);
});
$("#pay_line_form").delegate('[name=payment_amount]', 'blur', function(event) {
if(payment==null){return;}
$(this).val(Number($(this).val()).toFixed(2));
payment.changeAmount(false);
payment.changeTableAmount(this,false);
});
});
</script>