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.
88 lines
4.0 KiB
88 lines
4.0 KiB
{# заглушка js #}
|
|
<script type="text/javascript">
|
|
$(document).ready(function() {
|
|
$('tr.plat_form').formset({
|
|
prefix: '{{ pformset.prefix }}',
|
|
formCssClass: 'plat_dynamic-form',
|
|
});
|
|
$('tr.row_tbl_items').formset({
|
|
prefix: '{{ formset.prefix }}',
|
|
formCssClass: 'dynamic-form',
|
|
});
|
|
var get_pair = function(model, class1, class2, name1, name2) {
|
|
$('body').on('focusout', '.' + class1 + ' input', function() {
|
|
var $this = $(this);
|
|
var $code_input = $this.closest('.row_tbl_items').find('.' + class2 + ' input');
|
|
var code_input_val = $code_input.val();
|
|
|
|
$.get('/my/docs/ajax_get_pair/' + model + '/' + name1 + '/' + name2 + '/' + $this.val() + '/', function(data){
|
|
if (data['val']) {
|
|
$code_input.val(data['val']);
|
|
if (($code_input.val() != '')&&(($code_input.val() != code_input_val))) {
|
|
$code_input.css('color', 'red')
|
|
} else {
|
|
$code_input.css('color', 'black')
|
|
}
|
|
$this.css('color', 'black');
|
|
}
|
|
});
|
|
})
|
|
}
|
|
get_pair('Country', 'country_code', 'country_name', 'code', 'name');
|
|
get_pair('Country', 'country_name', 'country_code', 'name', 'code');
|
|
get_pair('Measure', 'units', 'units_kod', 'name', 'code');
|
|
get_pair('Measure', 'units_kod', 'units', 'code', 'name');
|
|
|
|
$('#id_client').on('change', function() {
|
|
var client_id = $(this).val();
|
|
$.get('/my/docs/ajax_get_invoices/' + client_id, function(data) {
|
|
var select = $('#id_invoice');
|
|
if(select.prop) {
|
|
var options = select.prop('options');
|
|
}
|
|
else {
|
|
var options = select.attr('options');
|
|
}
|
|
$('option', select).remove();
|
|
options[options.length] = new Option('--', null);
|
|
|
|
$.each(data, function(val, text) {
|
|
options[options.length] = new Option(text, val);
|
|
});
|
|
})
|
|
})
|
|
|
|
$('#id_invoice').on('change', function() {
|
|
var invoice_id = $(this).val();
|
|
$.each($('.row_tbl_items'), function(index, item){
|
|
$(item).find('a.delete-row').trigger('click');
|
|
});
|
|
$.get('/my/docs/ajax_get_client_by_invoice/' + invoice_id, function(data) {
|
|
var client = data[0];
|
|
$('#id_client').val(client);
|
|
})
|
|
$.get('/my/docs/ajax_get_tbl_items/' + invoice_id, function(data) {
|
|
var items = JSON.parse(data);
|
|
$.each(items, function(index, item){
|
|
var name = item['fields']['name'];
|
|
var units = item['fields']['units'];
|
|
var qty = item['fields']['qty'];
|
|
var price = item['fields']['price'];
|
|
var total_price = item['fields']['total_price'];
|
|
$('#tbl_items a.add-row').trigger('click');
|
|
var $last_row = $('.row_tbl_items:visible').last();
|
|
$last_row.find('.name input').val(name);
|
|
$last_row.find('.units input').val(units);
|
|
$last_row.find('.qty input').val(qty);
|
|
$last_row.find('.price input').val(price);
|
|
$last_row.find('.total_price input').val(total_price);
|
|
$.get('/my/docs/ajax_get_pair/Measure/name/code/' + units + '/', function(data){
|
|
if (data['val']) {
|
|
$last_row.find('.units_kod input').val(data['val']);
|
|
}
|
|
});
|
|
})
|
|
})
|
|
})
|
|
});
|
|
</script> |