Your IP : 18.191.192.229
BX.namespace("BX.Sale.Admin.OrderPayment");
BX.Sale.Admin.OrderPayment = function(params)
{
this.clWindow = null;
this.pdWindow = null;
this.rtWindow = null;
this.psToReturn = params.psToReturn;
this.index = params.index;
this.viewForm = !!params.viewForm;
this.isAvailableChangeStatus = params.isAvailableChangeStatus;
if (this.isAvailableChangeStatus)
{
if (!!params.isPaid)
this.initPaidPopup();
else
this.initNotPaidPopup();
}
this.initToggle();
this.initReloadImg();
this.initDeletePayment();
this.initPaymentSum();
var updater = [];
updater["PAY_SYSTEM_LIST"] = {
callback: this.updatePaySystemList,
context: this
};
updater["PRICE_COD"] = {
callback: this.updatePriceCod,
context: this
};
updater["PAYSYSTEM_ERROR"] = {
callback: BX.Sale.Admin.OrderEditPage.showDialog,
context: this
};
updater["PAYMENT_COMPANY_ID"] = {
callback: this.updateCompany,
context: this
};
BX.Sale.Admin.OrderEditPage.registerFieldsUpdaters(updater);
if (this.viewForm)
{
var psUpdateLink = BX('ps_update_'+this.index);
var orderId = BX('ID');
if (orderId)
orderId = orderId.value;
var paymentId = BX('PAYMENT_ID_'+this.index);
if (paymentId)
paymentId = paymentId.value;
if (psUpdateLink)
{
BX.bind(psUpdateLink, 'click', function ()
{
var request = {
'action' : 'updatePaySystemInfo',
'orderId' : orderId,
'paymentId' : paymentId,
'callback' : function (result)
{
if (result.ERROR && result.ERROR.length > 0)
{
alert(result.ERROR);
}
else
{
location.reload();
}
}
};
BX.Sale.Admin.OrderAjaxer.sendRequest(request);
});
}
}
};
BX.Sale.Admin.OrderPayment.prototype.initPaymentSum = function()
{
var sumField = BX('PAYMENT_SUM_'+this.index);
if (sumField)
{
BX.bind(sumField, 'change', function ()
{
BX.Sale.Admin.OrderEditPage.autoPriceChange = false;
if (BX.Sale.Admin.OrderEditPage.formId != 'order_payment_edit_info_form')
{
BX.Sale.Admin.OrderAjaxer.sendRequest(
BX.Sale.Admin.OrderEditPage.ajaxRequests.refreshOrderData()
);
}
});
}
};
BX.Sale.Admin.OrderPayment.prototype.updateCompany = function(companyList)
{
var company = BX('PAYMENT_COMPANY_ID_'+this.index);
if (company)
company.innerHTML = companyList;
};
BX.Sale.Admin.OrderPayment.prototype.updatePaySystemList = function(paySystemList)
{
var selectControl = BX('PAY_SYSTEM_ID_'+this.index);
if (!selectControl)
return;
var selectedPaySystem = selectControl.options[selectControl.selectedIndex].value;
selectControl.innerHTML = paySystemList;
for (var i in selectControl.options)
{
if (selectControl.options.hasOwnProperty(i) && selectControl.options[i].value == selectedPaySystem)
{
selectControl.options[i].selected = true;
break;
}
}
this.reloadImg();
};
BX.Sale.Admin.OrderPayment.prototype.updatePriceCod = function(priceCod)
{
var blockPriceCod = BX('PAYMENT_PRICE_COD_' + this.index);
if (blockPriceCod)
{
blockPriceCod.value = priceCod;
var parent = blockPriceCod.parentNode.parentNode;
if (priceCod > 0)
parent.style.display = 'table-row';
else
BX.hide(parent);
}
};
BX.Sale.Admin.OrderPayment.prototype.sendAjaxChangeStatus = function(params)
{
var formData = BX.ajax.prepareForm(BX(params.form_name));
var orderId = BX('ID').value;
var paymentId = BX('PAYMENT_ID_'+this.index).value;
var request = {
'method' : params.action,
'action' : 'updatePaymentStatus',
'orderId' : orderId,
'paymentId' : paymentId,
'data' : formData.data,
'callback' : BX.proxy(function(result){
params.callback(result, params)
}, this)
};
if (params.strict && params.strict === true)
{
request['strict'] = params.strict;
}
BX.Sale.Admin.OrderAjaxer.sendRequest(request);
};
BX.Sale.Admin.OrderPayment.prototype.initDeletePayment = function()
{
var obPaidDelete = BX('SECTION_'+this.index+'_DELETE');
if (obPaidDelete)
BX.bind(obPaidDelete, 'click', BX.proxy(this.deletePayment, this));
};
BX.Sale.Admin.OrderPayment.prototype.initToggle = function()
{
var obj = BX('PS_INFO_'+this.index);
BX.bind(obj, 'click', this.togglePsInfo);
obj = BX('SECTION_'+this.index+'_TOGGLE');
BX.bind(obj, 'click', BX.proxy(this.togglePayment, this));
};
BX.Sale.Admin.OrderPayment.prototype.initReloadImg = function()
{
this.obj = BX('PAY_SYSTEM_ID_'+this.index);
BX.bind(this.obj, 'change', BX.proxy(function ()
{
if (BX.Sale.Admin.OrderEditPage.formId != 'order_payment_edit_info_form')
{
BX.Sale.Admin.OrderAjaxer.sendRequest(
BX.Sale.Admin.OrderEditPage.ajaxRequests.refreshOrderData()
);
}
else
{
var objOrderId = BX('order_id');
var objPaymentId = BX('payment_id_'+this.index);
var price = BX('PAYMENT_SUM_'+this.index);
var request = {
'action': 'updatePriceCod',
'orderId': (objOrderId) ? objOrderId.value : 0,
'paymentId': (objPaymentId) ? objPaymentId.value : 0,
'paySystemId': this.obj.value,
'price': (price) ? price.value : 0,
'callback' : BX.proxy(function(result) {
if (result.ERROR && result.ERROR.length > 0)
BX.Sale.Admin.OrderEditPage.showDialog(result.ERROR);
else
this.updatePriceCod(result.PRICE_COD);
}, this)
};
BX.Sale.Admin.OrderAjaxer.sendRequest(request);
}
this.reloadImg();
}, this));
};
BX.Sale.Admin.OrderPayment.prototype.deletePayment = function()
{
if (confirm(BX.message['PAYMENT_CONFIRM_DELETE']))
{
var orderId = (BX('ID')) ? BX('ID').value : 0;
var paymentId = (BX('PAYMENT_ID_'+this.index)) ? BX('PAYMENT_ID_'+this.index).value : 0;
if ((orderId > 0) && (paymentId > 0))
{
var request = {
'action': 'deletePayment',
'orderId': BX('ID').value,
'paymentId': BX('PAYMENT_ID_'+this.index).value,
'callback' : BX.proxy(function(result) {
if (result.ERROR && result.ERROR.length > 0)
{
BX.Sale.Admin.OrderEditPage.showDialog(result.ERROR);
}
else
{
var div = BX.findParent(BX('payment_container_'+this.index), {'tag': div});
BX.cleanNode(div);
}
}, this)
};
BX.Sale.Admin.OrderAjaxer.sendRequest(request);
}
else
{
var div = BX.findParent(BX('payment_container_'+this.index), {'tag': div});
BX.cleanNode(div);
}
}
};
BX.Sale.Admin.OrderPayment.prototype.togglePsInfo = function()
{
var sibling = BX.nextSibling(this);
var bShow = sibling.style.display == 'none';
if (bShow)
{
sibling.style.display = "table";
BX.html(this, BX.message['PAYMENT_TOGGLE_UP']);
}
else
{
BX.hide(sibling);
BX.html(this, BX.message['PAYMENT_TOGGLE_DOWN']);
}
};
BX.Sale.Admin.OrderPayment.prototype.togglePayment = function()
{
BX.toggle(BX('SECTION_'+this.index));
BX.toggle(BX('SECTION_SHORT_'+this.index));
var obShow = BX('SECTION_'+this.index).style.display == 'none';
BX.html(BX('SECTION_'+this.index+'_TOGGLE'), BX.message['PAYMENT_TOGGLE_'+((obShow) ? 'DOWN' : 'UP')]);
};
BX.Sale.Admin.OrderPayment.prototype.reloadImg = function()
{
var logotip = BX('LOGOTIP_'+this.index);
logotip.style.background = 'url('+logoList[BX(this.obj).value]+')';
};
BX.Sale.Admin.OrderPayment.prototype.showReturnWindow = function(action)
{
var table = BX.create('table', {props : {
width : '100%',
className : 'adm-detail-content-table edit-table'
}
});
var tBody = BX.create('tbody');
if (action == 'return')
{
var tr = BX.create('tr', {
children : [
BX.create('td', {
props : { className : 'adm-detail-content-cell-l fwb'},
text : BX.message['PAYMENT_OPERATION_TITLE']+':'
})
]
});
var td = BX.create('td', {props : { className : 'adm-detail-content-cell-r'}});
var select = BX.create('select', {
props : {
id: 'PAY_OPERATION_ID_' + this.index,
className: 'adm-bus-select',
name: 'PAY_RETURN_OPERATION_ID_' + this.index
}
});
for (var i in this.psToReturn)
{
if (!this.psToReturn.hasOwnProperty(i))
continue;
var option = BX.create('option', {
props : {'value' : i},
text : this.psToReturn[i]
});
select.appendChild(option);
}
td.appendChild(select);
tr.appendChild(td);
tBody.appendChild(tr);
tr = BX.create('tr', {
children : [
BX.create('td', {
props : { className : 'adm-detail-content-cell-l fwb'},
text : BX.message['PAYMENT_RETURN_NUM_DOC']+':'
})
]
});
var input = BX.create('input', {
props : {
type : 'text',
className : 'adm-bus-input',
name : 'PAY_RETURN_NUM_'+this.index,
maxlength : 20
}
});
td = BX.create('td', {
props : { className : 'adm-detail-content-cell-r'},
children : [input],
text : BX.message['PAYMENT_OPERATION_TITLE']+':'
});
tr.appendChild(td);
tBody.appendChild(tr);
tr = BX.create('tr', {
children : [
BX.create('td', {
props : { className : 'adm-detail-content-cell-l fwb'},
text : BX.message['PAYMENT_RETURN_DATE']+':'
})
]
});
var obj = this;
td = BX.create('td', {
props : {className : 'adm-detail-content-cell-r tal'},
children : [
BX.create('div', {
props :{className : 'adm-input-wrap adm-calendar-second'},
style : {display: 'inline-block'},
children : [
BX.create('input', {
props : {
type : 'text',
className : 'adm-input adm-calendar-to',
id : 'PAY_RETURN_DATE_'+this.index,
name : 'PAY_RETURN_DATE_'+this.index,
size : 15
}
}),
BX.create('span', {
props : {
className : 'adm-calendar-icon',
title : BX.message['PAYMENT_RETURN_DATE_ALT']
},
events : {
click : function()
{
BX.calendar({node:this, field:'PAY_RETURN_DATE_'+obj.index, form: '', bTime: false, bHideTime: false});
}
}
})
]
})
]
});
tr.appendChild(td);
tBody.appendChild(tr);
}
tr = BX.create('tr', {
children : [
BX.create('td', {
props : {
className : 'adm-detail-content-cell-l fwb'
},
text : BX.message['PAYMENT_RETURN_COMMENT']
}),
BX.create('td', {
props : {className : 'adm-detail-content-cell-r'},
children : [
BX.create('textarea', {
props : {
className : 'adm-bus-textarea',
id : 'PAY_RETURN_COMMENT_'+this.index,
name : 'PAY_RETURN_COMMENT_'+this.index
}
})
]
})
]
});
tBody.appendChild(tr);
table.appendChild(tBody);
if (!this.rtWindow && action == 'return')
{
this.rtWindow = new BX.CDialog({
'content': BX.create('form', {
props : {
id : 'payment_return_form_'+this.index,
name : 'payment_return_form_'+this.index
},
children : [table]
}),
'title': BX.message['PAYMENT_WINDOW_RETURN_TITLE'],
'width': 650,
'height': 250,
'resizable': false,
'buttons': [
new BX.CWindowButton({
'title' : BX.message['PAYMENT_WINDOW_RETURN_BUTTON_SAVE'],
'action' : BX.proxy(function()
{
var params =
{
'index' : this.index,
'action' : 'return',
'form_name' : 'payment_return_form_'+this.index,
'callback' : BX.proxy(function(result) {
if (result.ERROR && result.ERROR.length > 0)
{
BX.Sale.Admin.OrderEditPage.showDialog(result.ERROR);
}
else
{
this.changeNotPaidStatus('NO');
this.initNotPaidPopup();
BX.Sale.Admin.OrderEditPage.callFieldsUpdaters(result.RESULT);
if(typeof result.MARKERS != 'undefined')
{
var node = BX('sale-adm-order-problem-block');
if(node)
node.innerHTML = result.MARKERS;
}
if (result.WARNING && result.WARNING.length > 0)
{
BX.Sale.Admin.OrderEditPage.showDialog(result.WARNING);
}
}
}, this)
};
this.sendAjaxChangeStatus(params);
BX.WindowManager.Get().Close();
}, this),
'className' : 'adm-btn-save'
}),
BX.CDialog.btnCancel
]
});
}
else if(!this.clWindow && action == 'cancel')
{
this.clWindow = new BX.CDialog({
'content': BX.create('form', {
props : {
id : 'payment_cancel_form_'+this.index,
name : 'payment_cancel_form_'+this.index
},
children : [table]
}),
'title': BX.message['PAYMENT_WINDOW_CANCEL_TITLE'],
'width': 650,
'height': 100,
'resizable': false,
'buttons': [
new BX.CWindowButton({
'title' : BX.message['PAYMENT_WINDOW_RETURN_BUTTON_SAVE'],
'action' : BX.proxy(function()
{
var params =
{
'index' : this.index,
'action' : 'cancel',
'form_name' : 'payment_cancel_form_'+this.index,
'callback' : BX.proxy(function(result){
if (result.ERROR && result.ERROR.length > 0)
{
BX.Sale.Admin.OrderEditPage.showDialog(result.ERROR);
}
else
{
this.changeNotPaidStatus('NO');
this.initNotPaidPopup();
BX.Sale.Admin.OrderEditPage.callFieldsUpdaters(result.RESULT);
if(typeof result.MARKERS != 'undefined')
{
var node = BX('sale-adm-order-problem-block');
if(node)
node.innerHTML = result.MARKERS;
}
if (result.WARNING && result.WARNING.length > 0)
{
BX.Sale.Admin.OrderEditPage.showDialog(result.WARNING);
}
}
}, this)
};
this.sendAjaxChangeStatus(params);
BX.WindowManager.Get().Close();
}, this),
'className' : 'adm-btn-save'
}),
BX.CDialog.btnCancel
]
});
}
if (action == 'return')
this.rtWindow.Show();
else
this.clWindow.Show();
};
BX.Sale.Admin.OrderPayment.prototype.showWindowPaidPayment = function()
{
if (!this.pdWindow)
{
var statusOnPaid = BX('AUTO_CHANGE_STATUS_ON_PAID');
var tr = '';
if (statusOnPaid && statusOnPaid.value == 'N')
{
var orderStatus = BX('STATUS_ID');
var options = BX.findChildren(orderStatus, {'tag' : 'option'});
tr += '<tr><td class="adm-detail-content-cell-l fwb" width="40%">'+BX.message['PAYMENT_ORDER_STATUS']+':</td>';
tr += '<td class="adm-detail-content-cell-r tal"><select name="ORDER_STATUS_ID_'+this.index+'" id="ORDER_STATUS_ID_'+this.index+'">';
for (var i in options)
{
if (!options.hasOwnProperty(i))
continue;
tr += options[i].outerHTML;
}
tr += '</select></td></tr>';
var thisIndex = this.index;
BX.Sale.Admin.OrderEditPage.registerFieldsUpdaters({
STATUS_ID: {
callback: function(statusId) { BX('ORDER_STATUS_ID_'+thisIndex).value = statusId; },
context: this
}
});
}
var content = '<table width="100%" class="adm-detail-content-table edit-table">';
content += '<tbody>';
content += '<tr>';
content += '<td class="adm-detail-content-cell-l fwb" width="40%">'+BX.message['PAYMENT_PAY_VOUCHER_DATE']+':</td>';
content += '<td class="adm-detail-content-cell-r tal"><div class="adm-input-wrap adm-calendar-second" style="display: inline-block;">';
content += '<input type="text" class="adm-input adm-calendar-to" id="PAY_VOUCHER_DATE_'+this.index+'" name="PAY_VOUCHER_DATE_'+this.index+'" size="15" value="">';
content += '<span class="adm-calendar-icon" title="'+BX.message['PAYMENT_RETURN_DATE_ALT']+'" onclick="BX.calendar({node:this, field:\'PAY_VOUCHER_DATE_'+this.index+'\', form: \'\', bTime: false, bHideTime: false});"></span>';
content += '</div></td></tr><tr>';
content += '<td class="adm-detail-content-cell-l fwb" width="40%">'+BX.message['PAYMENT_PAY_VOUCHER_NUM']+':</td>';
content += '<td class="adm-detail-content-cell-r tal"><input type="text" class="adm-bus-input" value="" name="PAY_VOUCHER_NUM_'+this.index+'" id="PAY_VOUCHER_NUM_'+this.index+'" maxlength="20">';
content += '</td></tr>';
content += tr;
content += '</tbody></table>';
this.pdWindow = new BX.CDialog({
'content':'<form id="payment_voucher_form_'+this.index+'" name="order_new_table_settings_'+this.index+'">'+content+'</form>',
'title': BX.message['PAYMENT_WINDOW_VOUCHER_TITLE'],
'width': 650,
'height': 200,
'resizable': false,
'buttons': [
new BX.CWindowButton({
'title' : BX.message['PAYMENT_WINDOW_RETURN_BUTTON_SAVE'],
'action' : BX.proxy(function()
{
var params =
{
'index' : this.index,
'action' : 'save',
'form_name' : 'payment_voucher_form_'+this.index,
'callback' : BX.proxy(function(result, params) {
this.callbackUpdatePaymentStatus(result, 'YES', params);
}, this)
};
this.sendAjaxChangeStatus(params);
BX.WindowManager.Get().Close();
}, this),
'className' : 'adm-btn-save'
}),
BX.CDialog.btnCancel
]
});
}
this.pdWindow.Show();
};
BX.Sale.Admin.OrderPayment.prototype.callbackUpdatePaymentStatus = function(result, status, params)
{
if (result.ERROR && result.ERROR.length > 0)
{
BX.Sale.Admin.OrderEditPage.showDialog(result.ERROR);
}
else if (result.NEED_CONFIRM && result.NEED_CONFIRM === true)
{
var confirmTitle = false;
var confirmMessage = false;
if (result.WARNING && result.WARNING.length > 0)
{
confirmMessage = result.WARNING;
}
if (result.CONFIRM_TITLE && result.CONFIRM_TITLE.length > 0)
{
confirmTitle = result.CONFIRM_TITLE ;
}
if (result.CONFIRM_MESSAGE && result.CONFIRM_MESSAGE.length > 0)
{
confirmMessage = confirmMessage + "<br/>" + result.CONFIRM_MESSAGE;
}
BX.Sale.Admin.OrderEditPage.showConfirmDialog(
confirmMessage,
confirmTitle,
BX.proxy(function(){
this.sendStrictUpdatePaymentStatus(status, params)
}, this),
function () {
return;
}
);
}
else
{
this.changePaidStatus(status);
this.initPaidPopup();
BX.Sale.Admin.OrderEditPage.callFieldsUpdaters(result.RESULT);
if(typeof result.MARKERS != 'undefined')
{
var node = BX('sale-adm-order-problem-block');
if(node)
node.innerHTML = result.MARKERS;
}
if (result.WARNING && result.WARNING.length > 0)
{
BX.Sale.Admin.OrderEditPage.showDialog(result.WARNING);
}
}
};
BX.Sale.Admin.OrderPayment.prototype.sendStrictUpdatePaymentStatus = function(status, params)
{
params['strict'] = true;
this.sendAjaxChangeStatus(params);
};
BX.Sale.Admin.OrderPayment.prototype.changeNotPaidStatus = function(status)
{
var btn = BX('BUTTON_PAID_'+this.index);
var shortBtn = BX('BUTTON_PAID_'+this.index+'_SHORT');
if (btn)
{
BX.html(btn, BX.message('PAYMENT_PAID_'+status));
BX.addClass(btn, 'notpay');
}
if (shortBtn)
{
BX.html(shortBtn, BX.message('PAYMENT_PAID_'+status));
BX.addClass(shortBtn, 'notpay');
}
};
BX.Sale.Admin.OrderPayment.prototype.changePaidStatus = function(status)
{
var btn = BX('BUTTON_PAID_'+this.index);
var shortBtn = BX('BUTTON_PAID_'+this.index+'_SHORT');
if (btn)
{
BX.html(btn, BX.message('PAYMENT_PAID_'+status));
BX.removeClass(btn, 'notpay');
}
if (shortBtn)
{
BX.html(shortBtn, BX.message('PAYMENT_PAID_'+status));
BX.removeClass(shortBtn, 'notpay');
}
};
BX.Sale.Admin.OrderPayment.prototype.initNotPaidPopup = function()
{
var indexes = [this.index];
if (this.viewForm)
indexes.push(this.index+'_SHORT');
for (var k in indexes)
{
if (!indexes.hasOwnProperty(k))
continue;
var menu = [
{
'ID': 'PAID',
'TEXT': BX.message('PAYMENT_PAID_YES'),
'ONCLICK': BX.proxy(function ()
{
if (this.viewForm)
{
this.showWindowPaidPayment();
}
else
{
var paymentPaidObj = BX('PAYMENT_PAID_'+indexes[k]);
if (paymentPaidObj)
paymentPaidObj.value = 'Y';
this.changePaidStatus('YES');
}
}, this)
}
];
if (!this.viewForm)
{
menu.unshift(
{
'ID': 'NOT_PAID',
'TEXT': BX.message('PAYMENT_PAID_NO'),
'ONCLICK': BX.proxy(function ()
{
this.changeNotPaidStatus('NO');
var paymentPaidObj = BX('PAYMENT_PAID_'+indexes[k]);
if (paymentPaidObj)
paymentPaidObj.value = 'N';
}, this)
});
}
var act = new BX.COpener({
DIV: BX('BUTTON_PAID_'+indexes[k]).parentNode,
MENU: menu
});
}
};
BX.Sale.Admin.OrderPayment.prototype.initPaidPopup = function()
{
var generalStatusFields = BX.findChildrenByClassName(BX('PAYMENT_BLOCK_STATUS_INFO_'+this.index), 'not_paid', true);
var returnStatusFields = BX.findChildrenByClassName(BX('PAYMENT_BLOCK_STATUS_INFO_'+this.index), 'return', true);
var indexes = [this.index];
if (this.viewForm)
indexes.push(this.index+'_SHORT');
var menu = [
{
'ID': 'CANCEL',
'TEXT': BX.message('PAYMENT_PAID_CANCEL'),
'ONCLICK': BX.proxy(function ()
{
if (this.viewForm)
{
this.showReturnWindow('cancel');
}
else
{
var paymentPaid = BX("PAYMENT_PAID_"+indexes[k]);
if (paymentPaid)
paymentPaid.value = 'N';
var isReturn = BX("PAYMENT_IS_RETURN_"+indexes[k]);
if (isReturn)
isReturn.value = 'N';
var obOperation = BX("OPERATION_ID_"+this.index);
if (obOperation)
obOperation.disabled = true;
this.changeNotPaidStatus('NO');
for (var i in generalStatusFields)
{
if (!generalStatusFields.hasOwnProperty(i))
continue;
BX.style(generalStatusFields[i], 'display', 'table-row');
}
for (var i in returnStatusFields)
{
if (!returnStatusFields.hasOwnProperty(i))
continue;
BX.style(returnStatusFields[i], 'display', 'none');
}
}
}, this)
}
];
if (Object.keys(this.psToReturn).length > 0)
{
menu.push(
{
'ID': 'RETURN',
'TEXT': BX.message('PAYMENT_PAID_RETURN'),
'ONCLICK': BX.proxy(function ()
{
if (this.viewForm)
{
this.showReturnWindow('return');
}
else
{
if (BX("PAYMENT_PAID_" + indexes[k]))
BX("PAYMENT_PAID_" + indexes[k]).value = 'N';
var obOperation = BX("OPERATION_ID_" + this.index);
if (obOperation)
obOperation.disabled = false;
var isReturn = BX("PAYMENT_IS_RETURN_" + indexes[k]);
if (isReturn)
isReturn.value = 'Y';
this.changeNotPaidStatus('NO');
for (var i in generalStatusFields)
{
if (!generalStatusFields.hasOwnProperty(i))
continue;
BX.style(generalStatusFields[i], 'display', 'table-row');
}
for (var i in returnStatusFields)
{
if (!returnStatusFields.hasOwnProperty(i))
continue;
BX.style(returnStatusFields[i], 'display', 'table-row');
}
BX.bind(BX('OPERATION_ID_' + this.index), 'change', function ()
{
var tr = BX.findParent(this, {tag: 'tr'});
if (tr)
{
var style = (this.value != 'Y') ? 'none' : 'table-row';
BX.style(tr.nextElementSibling, 'display', style);
}
});
}
}, this)
}
);
}
if (!this.viewForm)
{
menu.unshift(
{
'ID': 'PAID',
'TEXT': BX.message('PAYMENT_PAID_YES'),
'ONCLICK': BX.proxy(function ()
{
if (this.viewForm)
{
this.showWindowPaidPayment();
}
else
{
var paymentPaid = BX("PAYMENT_PAID_"+indexes[k]);
if (paymentPaid)
paymentPaid.value = 'Y';
this.changePaidStatus('YES');
var obOperation = BX("OPERATION_ID_"+this.index);
if (obOperation)
obOperation.options[obOperation.selectedIndex].value = '';
for (var i in generalStatusFields)
{
if (!generalStatusFields.hasOwnProperty(i))
continue;
BX.style(generalStatusFields[i], 'display', 'none');
}
for (var i in returnStatusFields)
{
if (!returnStatusFields.hasOwnProperty(i))
continue;
BX.style(returnStatusFields[i], 'display', 'none');
}
}
}, this)
}
);
}
for (var k in indexes)
{
if (!indexes.hasOwnProperty(k))
continue;
var act = new BX.COpener({
DIV: BX('BUTTON_PAID_'+indexes[k]).parentNode,
MENU: menu
});
}
};
BX.Sale.Admin.OrderPayment.prototype.setPrice = function(price)
{
var obPrice = BX("PAYMENT_SUM_1");
if (obPrice && BX.Sale.Admin.OrderEditPage.autoPriceChange)
obPrice.value = parseFloat(price).toFixed(2);
};
BX.Sale.Admin.OrderPayment.prototype.getCreateOrderFieldsUpdaters = function()
{
return {
"PRICE": BX.Sale.Admin.OrderPayment.prototype.setPrice
};
};
BX.Sale.Admin.OrderPayment.prototype.showCreateCheckWindow = function(paymentId)
{
ShowWaitWindow();
var request = {
'action': 'addCheckPayment',
'paymentId': paymentId,
'callback' : BX.proxy(function(result)
{
CloseWaitWindow();
if (result.ERROR && result.ERROR.length > 0)
{
BX.Sale.Admin.OrderEditPage.showDialog(result.ERROR);
}
else
{
var text = result.HTML;
var dlg = new BX.CAdminDialog({
'content': text,
'title': BX.message('PAYMENT_CASHBOX_CHECK_ADD_WINDOW_TITLE'),
'resizable': false,
'draggable': false,
'height': '100',
'width': '516',
'buttons': [
{
title: top.BX.message('JS_CORE_WINDOW_SAVE'),
id: 'saveCheckBtn',
name: 'savebtn',
className: top.BX.browser.IsIE() && top.BX.browser.IsDoctype() && !top.BX.browser.IsIE10() ? '' : 'adm-btn-save'
},
{
title: top.BX.message('JS_CORE_WINDOW_CANCEL'),
id: 'cancelCheckBtn',
name: 'cancel'
}
]
});
dlg.Show();
BX.bind(BX('checkTypeSelect'), 'change', function ()
{
var option = this.value;
var disabled = option.indexOf('advance') !== -1;
var parent = BX.findParent(this, {tag : 'tr'});
var tr = parent.nextElementSibling;
var checkboxList = BX.findChildren(tr, {tag : 'input'}, true);
for (var i in checkboxList)
{
if (checkboxList.hasOwnProperty(i))
{
var sibling = checkboxList[i].nextElementSibling;
if (disabled)
{
BX.addClass(sibling, "bx-admin-service-restricted");
}
else
{
BX.removeClass(sibling, "bx-admin-service-restricted");
}
if (checkboxList[i].checked)
checkboxList[i].click();
checkboxList[i].disabled = disabled;
}
}
});
BX.bind(BX("cancelCheckBtn"), 'click', BX.delegate(
function()
{
dlg.Close();
dlg.DIV.parentNode.removeChild(dlg.DIV);
}
),this );
BX.bind(BX("saveCheckBtn"), 'click', BX.delegate(
function()
{
ShowWaitWindow();
var form = BX('check_payment');
var subRequest = {
formData : BX.ajax.prepareForm(form),
action: 'saveCheck',
sessid: BX.bitrix_sessid()
};
BX.ajax(
{
method: 'post',
dataType: 'json',
url: '/bitrix/admin/sale_order_ajax.php',
data: subRequest,
onsuccess: function(saveResult)
{
CloseWaitWindow();
if (saveResult.ERROR && saveResult.ERROR.length > 0)
{
BX.Sale.Admin.OrderEditPage.showDialog(saveResult.ERROR);
}
else
{
BX('PAYMENT_CHECK_LIST_ID_' + paymentId).innerHTML = saveResult.CHECK_LIST_HTML;
if (BX('PAYMENT_CHECK_LIST_ID_SHORT_VIEW' + paymentId) !== undefined && BX('PAYMENT_CHECK_LIST_ID_SHORT_VIEW' + paymentId) !== null)
{
BX('PAYMENT_CHECK_LIST_ID_SHORT_VIEW' + paymentId).innerHTML = saveResult.CHECK_LIST_HTML;
}
dlg.Close();
dlg.DIV.parentNode.removeChild(dlg.DIV);
}
},
onfailure: function(data)
{
CloseWaitWindow();
}
});
}
),this);
}
}, this)
};
BX.Sale.Admin.OrderAjaxer.sendRequest(request, true);
};
BX.Sale.Admin.OrderPayment.prototype.onCheckEntityChoose = function (currentElement, multiSelect)
{
var checked = currentElement.checked;
var paymentType = BX(currentElement.id+"_type");
if (paymentType)
paymentType.disabled = !checked;
if (!multiSelect)
{
var parent = BX.findParent(currentElement, {tag : 'table'});
var inputs = BX.findChildren(parent, {tag : 'input'}, true);
for (var i in inputs)
{
if (inputs.hasOwnProperty(i))
{
if (inputs[i].id === currentElement.id)
continue;
inputs[i].disabled = checked;
}
}
}
};
BX.Sale.Admin.OrderPayment.prototype.sendQueryCheckStatus = function(checkId)
{
ShowWaitWindow();
var request = {
'action': 'sendQueryCheckStatus',
'checkId': checkId,
'callback' : BX.proxy(function(result)
{
if (result.ERROR && result.ERROR.length > 0)
{
BX.Sale.Admin.OrderEditPage.showDialog(result.ERROR);
}
else
{
CloseWaitWindow();
var paymentId = result.PAYMENT_ID;
BX('PAYMENT_CHECK_LIST_ID_' + paymentId).innerHTML = result.CHECK_LIST_HTML;
if (BX('PAYMENT_CHECK_LIST_ID_SHORT_VIEW' + paymentId) !== undefined && BX('PAYMENT_CHECK_LIST_ID_SHORT_VIEW' + paymentId) !== null)
{
BX('PAYMENT_CHECK_LIST_ID_SHORT_VIEW' + paymentId).innerHTML = result.CHECK_LIST_HTML;
}
}
}, this)
};
BX.Sale.Admin.OrderAjaxer.sendRequest(request, true);
};
BX.namespace("BX.Sale.Admin.GeneralPayment");
BX.Sale.Admin.GeneralPayment = {
addNewPayment : function(event, formType)
{
var obOrderId = BX('ID');
if (formType == 'edit')
{
var parent = BX.findParent(event, {tag : 'div'});
var blockNewPaymentElements = BX.findChildrenByClassName(parent, 'adm-bus-pay', true);
var formData = BX.Sale.Admin.OrderEditPage.getAllFormData();
var request = {
'method': 'POST',
'action': 'createNewPayment',
'index': parseInt(blockNewPaymentElements.length)+1,
'formData': formData,
'callback': function (result)
{
var data = BX.processHTML(result.PAYMENT);
var div = BX.create('div');
div.innerHTML = data['HTML'];
parent.insertBefore(div, event);
BX.evalGlobal(data['SCRIPT'][0]['JS']);
BX.Sale.Admin.OrderEditPage.unRegisterFieldUpdater("PRICE", BX.Sale.Admin.OrderPayment.prototype.setPrice);
}
};
BX.Sale.Admin.OrderAjaxer.sendRequest(request);
}
else
{
window.location='sale_order_payment_edit.php?lang='+BX.Sale.Admin.OrderEditPage.languageId+'&order_id='+obOrderId.value+'&backurl='+encodeURIComponent(window.location.pathname+window.location.search);
}
},
useCurrentBudget : function(event)
{
var innerBudget = BX('PAYMENT_INNER_BUDGET_ID');
var select = BX('PAY_SYSTEM_ID_1');
select.value = innerBudget.value;
var logo = BX('LOGOTIP_1');
logo.src = logoList[innerBudget.value];
var obPayable = BX('sale-order-financeinfo-payable');
var obUserBudget = BX('sale-order-financeinfo-user-budget-input');
var payable = parseFloat(obPayable.value);
var userBudget = parseFloat(obUserBudget.value);
var price = payable;
if (userBudget < payable)
price = userBudget;
BX.Sale.Admin.OrderEditPage.autoPriceChange = true;
BX.Sale.Admin.OrderPayment.prototype.setPrice(price);
BX.Sale.Admin.OrderEditPage.autoPriceChange = false;
BX.Sale.Admin.OrderEditPage.showDialog(BX.message['PAYMENT_USE_INNER_BUDGET']);
BX.hide(event);
}
};