Отчет

Обобщение Финансовый отчёт->По статьям, Финансовый отчёт->По подразделениям

目前為 2015-05-25 提交的版本,檢視 最新版本

// ==UserScript==
// @name        Отчет
// @namespace   virtonomica
// @description Обобщение  Финансовый отчёт->По статьям, Финансовый отчёт->По подразделениям
// @include     http://*virtonomica*.*/*/main/company/view/*/finance_report/by_units*
// @include     http://*virtonomica*.*/*/main/company/view/*/finance_report/by_item
// @include     http://*virtonomica.*/*/main/unit/view/*/finans_report/by_item
// @version     1.16
// ==/UserScript==

var run = function() {
    var n = [[0,0,0,0,0],[0,0,0,0,0]],
    str = [
        [ // Доходы
            "Возвращение аукционного залога",
            "Прочие доходы",
            "Продажа товаров",
            "Продажа технологий",
            "Продажа имущества",
            "Продажа электроэнергии потребителям",
        
            "Продажа ценных бумаг",
            "Доход от купленных облигаций"
        ],
        [ // Расходы
            "Аукционный залог",
            "Ликвидация предприятий",
            "Налог на продажу имущества",
            "Остальные",
            "Сборы рынка технологий",
            "Покупка товаров",
            "Покупка технологий",
            "Внедрение технологий",
            "Расходы на транспортировку",
            "Таможенные пошлины",
            "Заработная плата",
            "Топливо, энергия",
            "Реклама",
            "Расходы на персонал",
            "Складские расходы",
            "Брак, потери",
            "Налог на прибыль",
            "Налог на продажу технологий и технологических лицензий",
        
            "Общепроизводственные расходы",
            "Аренда помещений",
            "Управленческие расходы",
            "Выплаты по инновациям",
        
            "Покупка имущества",
            "Строительство и модернизация",
            "Закупка и ремонт оборудования",
            "Внедрение инноваций",
        
            "Покупка ценных бумаг",
            "Комиссия за выпуск ценных бумаг",
            "Погашение облигаций"
        ]
    ];

    for(var y in str) {
        for(var s in str[y]) {
            var i = 0;
            $("tr:contains(" + str[y][s] + ") > td.nowrap").each(function() {
                n[y][i] +=  parseFloat( $(this).html().replace(/\s+/g, '').replace(/\$/g, '') );
                i++;
            });
        }
    }

    // Выведем результат
    function int_str(a){
        return ('<td class="nowrap" align="right"><span class=' + (a<0?'moneySmallerZero':'nowrap') + '>' + a.toFixed(2).replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ') + '</span>$</td>');
    }
    $( "#mainContent > table" ).append( "<tr><td class='title colspan='6'>Всего</td></tr>"
                                       +"<tr class='odd' onmouseout=\"this.className = 'odd'\" onmouseover=\"this.className = 'selected'\">"
                                       +"<td style='padding-left: 30px'>Доходы</td>"
                                       + int_str(n[0][0])
                                       + int_str(n[0][1])
                                       + int_str(n[0][2])
                                       + int_str(n[0][3])
                                       + int_str(n[0][4])
                                       +"</tr>"
                                       +"<tr class='even' onmouseout=\"this.className = 'even'\" onmouseover=\"this.className = 'selected'\">"
                                       +"<td style='padding-left: 30px'>Расходы</td>"
                                       + int_str(n[1][0])
                                       + int_str(n[1][1])
                                       + int_str(n[1][2])
                                       + int_str(n[1][3])
                                       + int_str(n[1][4])
                                       +"</tr>"
                                       +"<tr class='odd' onmouseout=\"this.className = 'odd'\" onmouseover=\"this.className = 'selected'\">"
                                       +"<td style='padding-left: 30px'>Сумма</td>"
                                       + int_str(n[0][0]-n[1][0])
                                       + int_str(n[0][1]-n[1][1])
                                       + int_str(n[0][2]-n[1][2])
                                       + int_str(n[0][3]-n[1][3]) 
                                       + int_str(n[0][4]-n[1][4])
                                       +"</tr>");
}

var run1 = function(){
    var num = [0,0,0,0,0], n = 0;
    $('#mainContent > table.grid > tbody > tr').each(function() {
        if( $(this).hasClass('odd') || $(this).hasClass('even') ) {
            num[0] += parseFloat( $(this).find('td:nth-child(5)').html().replace(/\s+/g, '').replace(/\$/g, '') );
            num[1] += parseFloat( $(this).find('td:nth-child(6)').html().replace(/\s+/g, '').replace(/\$/g, '') );
            num[2] += parseFloat( $(this).find('td:nth-child(7)').html().replace(/\s+/g, '').replace(/\$/g, '') );
            num[3] = num[0]-num[1]-num[2];
            num[4] = Math.round( num[0] / (num[3]/100) );

            n++;
        }
    }).find('td > table.paging').parent().parent().before(
        '<tr style="background: #EEFACA"> <td colspan="3">Итого :</td>'
        +'<td class="nowrap">' + n + '</td>'
        +'<td align="right" class="nowrap">' + num[0].toFixed(2).replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ') + '$</td>'
        +'<td align="right" class="nowrap">' + num[1].toFixed(2).replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ') + '$</td>'
        +'<td align="right" class="nowrap">' + num[2].toFixed(2).replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ') + '$</td>'
        +'<td align="right" class="nowrap"><span class=' + (num[3]<0?'moneySmallerZero':'nowrap') + '>' + num[3].toFixed(2).replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ') + '</span>$</td>'
        +'<td align="right" class="nowrap"></td> </tr>'
    );
}

window.onload = function()
{
    var url = window.location.href,
        script = document.createElement("script");
    if( url.indexOf('by_units') + 1 )
        script.textContent = '(' + run1.toString() + ')();';
    else
        script.textContent = '(' + run.toString() + ')();';
    
    document.documentElement.appendChild(script);
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址