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.
125 lines
5.5 KiB
125 lines
5.5 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('-------', '');
|
|
|
|
$.each(data, function(val, text) {
|
|
options[options.length] = new Option(text, val);
|
|
});
|
|
select.prop('selectedIndex', 0);
|
|
})
|
|
})
|
|
|
|
$('#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];
|
|
console.log(data);
|
|
//$('#id_client').val(client);
|
|
$('#id_client_text').hide();
|
|
$('#id_client-deck').html('<span class="div hilight" data-value='+ data[0] +'><span class="remove div" style="display: inline;">X</span>' + data[1] + '</span>');
|
|
|
|
$('#id_client').html('<option selected="selected" value="'+ data[0] +'"></option>');
|
|
$('#id_client').trigger('change');
|
|
})
|
|
|
|
$.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']);
|
|
}
|
|
});
|
|
})
|
|
})
|
|
})
|
|
//var sender_val = $('input:radio[name=sender_group]:checked', '#doc-form').val();
|
|
var toggle_sender = function(client_type) {
|
|
var sender_val = $('input:radio[name=' + client_type + '_group]:checked', '#doc-form').val();
|
|
console.log(sender_val);
|
|
if (sender_val == 'another') {
|
|
$('#' + client_type).show()
|
|
} else {
|
|
$('#' + client_type).hide()
|
|
}
|
|
}
|
|
|
|
$.each(['sender', 'receiver'], function(i, client_type){
|
|
console.log(client_type);
|
|
toggle_sender(client_type);
|
|
$('input:radio[name=' + client_type + '_group]').change(function(){
|
|
toggle_sender(client_type);
|
|
})
|
|
})
|
|
|
|
if ($('#id_fixes').is(':checked')){
|
|
$('#fix_block').show();
|
|
} else {
|
|
$('#fix_block').hide();
|
|
}
|
|
$('#id_fixes').change(function(){
|
|
$('#fix_block').toggle();
|
|
$('#id_fix_doc_num').val('');
|
|
$('#id_fix_doc_date').val('');
|
|
})
|
|
});
|
|
</script>
|
|
|