You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

219 lines
7.8 KiB

{% extends "base.html" %}
{% block title %}Контрагенты{% endblock %}
{% block content %}
<h2>Добавление и список контрагентов</h2>
<div class='content-white'>
<div class='btn yellow-btn docs-btn'>
<a class="client add-client-link" href="{% url 'customer_clients_add' %}" title="Добавить контрагента">
Добавить контрагента
</a>
</div>
<div class="clear"></div>
<table id="clients" class="list{% if not page.object_list %} hidden{% endif %}">
<tr id='clients_header_row'>
<th style="width: 46%">Контрагент</th>
<th style="width: 18%">Контактное лицо</th>
<th style="width: 14%">Телефон</th>
<th style="width: 10%;">Редактировать</th>
<th style="width: 8%;">Удалить?</th>
</tr>
{% for obj in page.object_list %}
{% include "customer/clients/list_item.html" %}
{% endfor %}
<tr class='white_bg'>
<td colspan='5'>
{% include 'paginator.html' with url_list='customer_clients_list' %}
</td>
</tr>
</table>
</div>
{% endblock %}
{% block dialogs %}
{% include "customer/clients/form.html" with form=client_form is_ajax="True" %}
<form id="client-delete-form" action="" method="post" title="Удалить контрагента" data-dialog-btn-caption="Да, я уверен">
{% csrf_token %}
<div class="errors-layout"></div>
<p>Вы уверены, что хотите удалить контрагента <span class='client'></span>?</p>
</form>
{% endblock %}
{% block js %}
<script src="{{ STATIC_URL }}js/client.commons.js"></script>
<script src="{{ STATIC_URL }}js/client.list.js"></script>
<script src="{{ STATIC_URL }}js/paginator.js"></script>
<script src="{{ STATIC_URL }}js/lib/jquery.suggestions.min.js"></script>
<script>
$(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),
clientInputs = [clientName, clientInn, clientOqrn, clientAddress];
function confirmChangeDataPromise(inputArray) {
var dlg_msg = $('#dialog-message');
var emptyInput = true;
var defer = $.Deferred();
for (var i = inputArray.length - 1; i >= 0; --i) {
if (inputArray[i].val()) {
emptyInput = false;
break;
}
}
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');
} 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], " "));
if (data.name && data.name.full)
clientName.val(join([data.opf && data.opf.full || "", data.name.full], " "));
clientInn.val(data.inn);
clientKpp.val(data.kpp);
clientOqrn.val(data.ogrn);
if (data.address)
clientAddress.val(data.address.value);
} else {
if (data.name && data.name.full || "") {
bankFullName.val(data.name && data.name.full || "");
}
if (data.name && data.name.payment || "") {
bankFullName.val(data.name && data.name.payment || "");
}
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, count) {
input.suggestions({
token: daDataExternalApiKey,
type: type,
count: count,
onSelect: showSuggestion
});
}
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 {
}
}));
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 %}