@ -53,29 +53,63 @@
< script src = "{{ STATIC_URL }}js/lib/jquery.suggestions.min.js" > < / script >
< script >
var index ,
clientForm = $("#client-edit-form" ),
$(document).ready(function() {
var clientForm = $("#client-edit-form") ,
clientSearch = $("#searchClientInput", clientForm ),
clientName = $("#id_name", clientForm),
clientInn = $("#id_inn", clientForm),
clientKpp = $("#id_kpp", clientForm),
clientOqrn = $("#id_ogrn", clientForm),
clientAddress = $("#id_address", clientForm),
bankSearch = $("#searchClientBankInput", clientForm),
bankBic = $("#id_bank_bik", clientForm),
bankFullName = $("#id_bank_name", clientForm),
bankCorrespondentAccount = $("#id_bank_korr_account", clientForm),
bankInputs = [bankBic, bankFullName, bankCorrespondentAccount],
clientInputs = [clientName, clientInn, clientKpp, clientOqrn];
clientInputs = [clientName, clientInn, clientOqrn, clientAddress];
function confirmChangeDataPromise(inputArray) {
var dlg_msg = $('#dialog-message');
var emptyInput = true;
var defer = $.Deferred();
function join(arr) {
var separator = arguments.length > 1 ? arguments[1] : ", ";
return arr.filter(function(n){return n}).join(separator);
for (var i = inputArray.length - 1; i >= 0; --i) {
if (inputArray[i].val()) {
emptyInput = false;
break;
}
}
function showSuggestion(suggestion) {
if (!emptyInput) {
dlg_msg.dialog({
title: 'Изменить данные',
buttons:
{'Да':
function(){
defer.resolve(true);
$(this).dialog('close');
}, 'Нет':
function(){
defer.resolve(false);
$(this).dialog('close');
}
}
}).html('Имеются уже заполненные данные, они будут изменены, продолжить?');
dlg_msg.dialog('open');
var data = suggestion.data;
if (!data) return;
} else {
defer.resolve(true);
}
return defer.promise();
}
function cleanSearchInput() {
clientSearch.val('');
}
function changeDataInInputs(data) {
if (data.type === "LEGAL"|| data.type === "INDIVIDUAL" ) {
if (data.name)
clientName.val(join([data.opf & & data.opf.short || "", data.name.short || data.name.full], " "));
@ -95,27 +129,91 @@
}
bankBic.val(data.bic);
bankCorrespondentAccount.val(data.correspondent_account);
var advancedObj = expandObject(data, 118, "right");
fillResultSearchBankTemplate(advancedObj);
}
}
function showSuggestion(suggestion) {
var data = suggestion.data;
if (!data) return;
if (data.type === "LEGAL"|| data.type === "INDIVIDUAL" ) {
confirmChangeDataPromise(clientInputs).then(function (answer) {
if (answer) {
changeDataInInputs(data)
}
cleanSearchInput();
}) ;
} else {
changeDataInInputs(data)
}
}
function fillInput(input, type) {
function fillInput(input, type, count ) {
input.suggestions({
token: "{{ dadata_api_key }}",
token: daDataExternalApiKey ,
type: type,
count: 5,
count: count ,
onSelect: showSuggestion
});
}
for (index = clientInputs.length - 1; index >= 0; --index) {
fillInput(clientInputs[index], "PARTY" );
bankSearch.on('keyup',(function () {
if (bankSearch.val().length === 0) {
clearResultSearchDiv($("#searchBankResult"));
clearSearchInputs([bankFullName, bankBic, bankCorrespondentAccount]);
}
}));
clientSearch.on('keyup',(function () {
if (clientSearch.val().length === 0) {
clearSearchInputs([clientName, clientInn, clientKpp, clientOqrn, clientAddress]);
} else {
for (index = bankInputs.length - 1; index >= 0; --index) {
fillInput(bankInputs[index], "BANK" );
}
}));
fillInput(clientSearch, "PARTY", 5);
fillInput(bankSearch, "BANK", 1);
});
< / script >
{# TODO: to carry out #}
{% verbatim %}
< script id = "resultSearchBankTemplate" type = "text/x-handlebars-template" >
< table >
< tbody >
< tr >
< td width = "{{ templateColWidth }}" align = "{{ templateColAlign }}" > Наименование:< / td >
{{#if name.full}}
< td > {{ name.full }}< / td >
{{else}}
< td > {{ name.payment }}< / td >
{{/if}}
< / tr >
< tr >
< td > < / td >
< td > < span class = "bank-short-name" > {{ name.payment }}< / span > < / td >
< / tr >
< tr >
< td width = "{{ templateColWidth }}" align = "{{ templateColAlign }}" > БИК:< / td >
< td >
< span class = "bank-bic" > {{ bic }}< / span >
< span class = "bank-account-label" > К/сч:< / span >
< span class = "bank-account" > {{ correspondent_account }}< / span >
< / td >
< / tr >
< / tbody >
< / table >
< / script >
{% endverbatim %}
{% endblock %}