Greasy Fork is available in English.

Vironomica:Science license

расчет налога на продажу лицензий

  1. // ==UserScript==
  2. // @name Vironomica:Science license
  3. // @namespace virtonomica
  4. // @description расчет налога на продажу лицензий
  5. // @version 1.22
  6. // @include http://igra.aup.ru/*/window/technology_market/bid/*/*/*/set
  7. // @include https://*virtonomic*.*/*/window/technology_market/bid/*/*/*/set
  8. // @grant unsafeWindow
  9. // ==/UserScript==
  10. var run = function() {
  11. var win = (typeof(unsafeWindow) != 'undefined' ? unsafeWindow : top.window);
  12. $ = win.$;
  13. function numberFormat (number) {
  14. number += '';
  15. var parts = number.split('.');
  16. var int = parts[0];
  17. var dec = parts.length > 1 ? '.' + parts[1] : '';
  18. var regexp = /(\d+)(\d{3}(\s|$))/;
  19. while (regexp.test(int)) {
  20. int = int.replace(regexp, '$1 $2');
  21. }
  22. return int + dec;
  23. }
  24. // округленре до центов
  25. function getSumma( val ){
  26. return Math.round( val*100)/100;
  27. }
  28. // расчет налога
  29. function getString( price, min_price ){
  30. //alert( "base = [" + price + "]\npr = " + min_price);
  31. base = price;
  32. if ( 100*base < 100*min_price) base = min_price;
  33. //alert( "base = [" + base + "]");
  34. pr = 0.07*base;
  35. var nalog = getSumma(pr);
  36. var dohod = getSumma(price - nalog);
  37. var info = "";
  38. if (dohod <=0) info = "<b><div style='color: black;background: lightcoral;padding: 4px;'>Не выгодная цена</div></b>";
  39.  
  40. return "<table><tr><td>Базовая цена : <td align=rigth>" + numberFormat(Math.floor(min_price) ) + "<td>.<td>" + (Math.round(100* (min_price - Math.floor(min_price)) ) ) +"<tr><td>Цена : <td align=rigth><font color=black>" + numberFormat(Math.floor(price) ) + "</font><td>.<td><font color=black>" + (Math.round(100* (price - Math.floor(price)) ) ) +"</font><tr><td>Налог: <td align=right><font color=green>"+ numberFormat( Math.floor(nalog) ) + "</font><td>.<td><font color=green>" + (Math.round(100* (nalog - Math.floor( nalog)) ) ) + "</font><tr><td>Доход: <td align=right><font color=green>" + numberFormat( Math.floor( dohod ) ) + "</font><td>.<td><font color=green>" + (Math.round(100* (dohod - Math.floor( dohod )) ) ) + "</font></table>" + info ;
  41. }
  42. //alert( "start" );
  43.  
  44. var qq = $("div", $("div.ww_offertype_1").parent().parent().next() ).eq(0);
  45.  
  46. var min_price = /([\D]+)*([\d\s]+\.*\d*)/.exec( qq.text() )[0].replace(/ /g, "").replace("$",'');
  47.  
  48. var prize = $("#min_price").val();
  49.  
  50. qq.html( getString(prize, min_price) );
  51.  
  52. var min_price = $("#min_price").val();
  53. console.info(min_price);
  54. $("#min_price").change(function(){
  55. this.value = Math.round(this.value*1000)/1000;
  56. $("div", $("div.ww_offertype_1").parent().parent().next().eq(0) ).html( getString(this.value, prize) );
  57. });
  58. //$("#min_price").change( function() {
  59. //console.log('chanhe = ' + this.value);
  60. //alert('change');
  61. //this.value = Math.round(this.value*1000)/1000;
  62. //alert( "this.value = [" + this.value + "]");
  63. //$("div", $("div.ww_offertype_1").parent().parent().next().eq(0) ).html( getString(this.value, prize) );
  64. //alert( "this.value = [" + this.value + "] prize=" + prize);
  65. //});
  66.  
  67. //alert( min_price );
  68.  
  69. //alert( qq.html() );
  70.  
  71. //alert( "END" );
  72. }
  73.  
  74. if(window.top == window) {
  75. var script = document.createElement("script");
  76. script.textContent = '(' + run.toString() + ')();';
  77. document.documentElement.appendChild(script);
  78. }