您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Обобщение Финансовый отчёт->По статьям, Финансовый отчёт->По подразделениям
当前为
// ==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.23 // ==/UserScript== /////////// // Функции var funFinReport = function (id, val){ switch(id) { case 'int_str': return ('<td class="nowrap' + (val<0?' moneySmallerZero':'') + '" align="right">' + val.toFixed(2).replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ') + ' $</td>'); break; case 'floatParse': return ( parseFloat( val.replace(/\s+/g, '').replace(/\$/g, '') ) ); break; default: return; } } ////////////// // По статьям 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] += funFinReport( 'floatParse', $(this).html() ); i++; }); } } // Выведем результат $( "#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>' + funFinReport('int_str',n[0][0]) + funFinReport('int_str',n[0][1]) + funFinReport('int_str',n[0][2]) + funFinReport('int_str',n[0][3]) + funFinReport('int_str',n[0][4]) +'</tr>' +'<tr class="even" onmouseout="this.className = \'even\'" onmouseover="this.className = \'selected\'">' +'<td style="padding-left: 30px">Расходы</td>' + funFinReport('int_str',n[1][0]) + funFinReport('int_str',n[1][1]) + funFinReport('int_str',n[1][2]) + funFinReport('int_str',n[1][3]) + funFinReport('int_str',n[1][4]) +'</tr>' +'<tr class="odd" onmouseout="this.className = \'odd\'" onmouseover="this.className = \'selected\'">' +'<td style="padding-left: 30px">Сумма</td>' + funFinReport('int_str',n[0][0]-n[1][0]) + funFinReport('int_str',n[0][1]-n[1][1]) + funFinReport('int_str',n[0][2]-n[1][2]) + funFinReport('int_str',n[0][3]-n[1][3]) + funFinReport('int_str',n[0][4]-n[1][4]) +'</tr>'); } ///////////////////// // По подразделениям var run1 = function(){ var n = [[0,0,0,0,0],[0,0]]; $('#mainContent > table.grid > tbody > tr').each(function() { if( $(this).hasClass('odd') || $(this).hasClass('even') ) { n[1][0]++; n[1][1] = 0; $(this).find('td.nowrap').each(function() { n[0][ n[1][1] ] += funFinReport( 'floatParse',$(this).html() ); n[1][1]++; }); n[0][3] = n[0][0]-n[0][1]-n[0][2]; } }).find('td > table.paging').parent().parent().before( '<tr style="background: #EEFACA"> <td colspan="3">Итого:</td>' +'<td class="nowrap" align="center">' + n[1][0] + '</td>' + funFinReport('int_str',n[0][0]) + funFinReport('int_str',n[0][1]) + funFinReport('int_str',n[0][2]) + funFinReport('int_str',n[0][3]) +'<td class="nowrap" align="right">' + Math.round(n[0][3]/(n[0][1]+n[0][2])*100).toFixed(2) + ' %</td> </tr>' ); } window.onload = function() { var url = window.location.href, script = document.createElement("script"); script.textContent = 'var funFinReport = ' + funFinReport.toString() + ';'; document.documentElement.appendChild(script); script = document.createElement("script"); if( url.indexOf('by_units') + 1 ) script.textContent = '(' + run1.toString() + ')();'; else script.textContent = '(' + run.toString() + ')();'; document.documentElement.appendChild(script); }