- // ==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);
- }