Загрузка данных


function callCreateRecordAction(row, onSuccess, onError) {
    var param = {
        queryActionCode: 'qu84aJSQ',
        viewCode: $.urlParam('viewCode'),

        p_date: row.date ? row.date : '',
        p_max_tax_deduction: row.max_tax_deduction ? Number(row.max_tax_deduction) : 400000,
        p_sum_income: row.sum_income ? Number(row.sum_income) : 36000,
        p_sum_tax_deduction: row.sum_tax_deduction ? Number(row.sum_tax_deduction) : null,
        p_type: row.type ? row.type : 'NOT_RECEIVED',
        p_year: row.year ? Number(row.year) : null,
        p_application_termination_contract_id: 60331153,
        p_individual_id: row.individual_id ? Number(row.individual_id) : null
    };

    console.log('ACTION PARAMS', param);

    $.ajax({
        url: 'queryAction/action',
        type: 'POST',
        data: param,
        dataType: 'json',
        success: function (data) {
            console.log('ACTION SUCCESS', data);

            if (typeof onSuccess === 'function') {
                onSuccess(data);
            }
        },
        error: function (request, status, error) {
            console.log('ACTION ERROR status=', status);
            console.log('ACTION ERROR error=', error);
            console.log('ACTION ERROR responseText=', request.responseText);
            console.log('ACTION ERROR request=', request);

            if (typeof onError === 'function') {
                onError(request, status, error);
            }
        }
    });
}



function runCreateRecord(rows, index) {
    if (index >= rows.length) {
        $('#createRecordBtn').prop('disabled', false);
        alert('Готово');
        return;
    }

    var row = rows[index];

    callCreateRecordAction(
        row,
        function (data) {
            runCreateRecord(rows, index + 1);
        },
        function (request, status, error) {
            $('#createRecordBtn').prop('disabled', false);

            console.log('FAILED ROW', row);
            alert('Ошибка при обработке строки ' + (index + 1));
        }
    );
}