{% extends 'miningtaxes/base.html' %} {% load i18n %} {% load static %} {% load humanize %} {% load evelinks %} {% block details %}
Overall Monthly Tax Revenue

Monthly Taxes by Users

Taxes by User
{% translate 'Name' %} {% translate 'Corp' %} {% translate 'Taxes Past Due' %} {% translate 'Current Balance' %} {% translate 'Last Paid' %} {% translate 'Actions' %}

Corp Ledgers
{% translate 'Date' %} {% translate 'Name' %} {% translate 'Amount' %} {% translate 'Reason' %}
Average Monthly ISK by System (last 3 months)

Average Monthly Units of Ore by System (last 3 months)

Average Monthly Taxes by System

   
{% translate 'System' %} {% translate 'Ore Type' %} {% translate 'Value' %} {% translate 'Taxes' %}

Unregistered Characters (Missing from MiningTax)
{% translate 'Name' %} {% translate 'System' %} {% translate 'Approx. ISK' %} {% translate 'Ore Units' %} {% translate 'Last Mined' %}
Unknown Characters (Missing from Auth)
{% translate 'Name' %} {% translate 'System' %} {% translate 'Approx. ISK' %} {% translate 'Ore Units' %} {% translate 'Last Mined' %}

Corp Moon Records
{% translate 'Date' %} {% translate 'Name' %} {% translate 'Ore' %} {% translate 'Quantity' %} {% translate 'Location' %}
{% endblock details %} {% block extra_javascript %} {{ block.super }} {% include 'bundles/datatables-js-bs5.html' %} {% endblock %} {% block extra_css %} {% if NIGHT_MODE %} {% else %} {% endif %} {% endblock %} {% block extra_script %} var user_data; var user_table; var unregistered_table; var unknown_table; var corpmoon_table; var csv_data; var tax_csv_data; var tax_sys_data; var curshown = "#basic"; var firstdraw = {"#sys_stats" : true, "#corp_moons" : true, "#basic": false}; var sys_stats_data; function switchview(pane) { if (pane == curshown) { return; } $(curshown).addClass("d-none"); $(pane).removeClass("d-none"); curshown = pane; if (firstdraw[pane]) { if (pane == "#sys_stats") { draw_sys_stats(); } if (pane == "#corp_moons") { draw_corp_moons(); } firstdraw[pane] = false; } } function exportsysdata() { $.get("{% url 'miningtaxes:admin_get_all_activity_json' %}", function(d) { exportToCsv("miningtaxes-allactivity.csv", d.data); }); } function exporttaxdata() { exportToCsv("miningtaxes-revenue.csv", tax_csv_data); } function exportdata() { exportToCsv("miningtaxes-usertaxes.csv", csv_data); } function exportToCsv(filename, rows) { var processRow = function (row) { var finalVal = ''; for (var j = 0; j < row.length; j++) { var innerValue = row[j] === null ? '' : row[j].toString(); if (row[j] instanceof Date) { innerValue = row[j].toLocaleString(); }; var result = innerValue.replace(/"/g, '""'); if (result.search(/("|,|\n)/g) >= 0) result = '"' + result + '"'; if (j > 0) finalVal += ','; finalVal += result; } return finalVal + '\n'; }; var csvFile = ''; for (var i = 0; i < rows.length; i++) { csvFile += processRow(rows[i]); } var blob = new Blob([csvFile], { type: 'text/csv;charset=utf-8;' }); if (navigator.msSaveBlob) { // IE 10+ navigator.msSaveBlob(blob, filename); } else { var link = document.createElement("a"); if (link.download !== undefined) { // feature detection // Browsers that support HTML5 download attribute var url = URL.createObjectURL(blob); link.setAttribute("href", url); link.setAttribute("download", filename); link.style.visibility = 'hidden'; document.body.appendChild(link); link.click(); document.body.removeChild(link); } } } function populate(rowi) { $("#user").html(user_data[rowi].name); $("#userid").val(user_data[rowi].user); const bal = Math.round((user_data[rowi].balance + Number.EPSILON) * 100) / 100 $("#creditbox").val(bal); } function draw_corp_moons() { $.getJSON("{% url 'miningtaxes:admin_corp_mining_history' %}", function (d) { unregistered_table = $('#unregistered').DataTable({ columns: [ { data: 'name' }, { data: 'sys' }, { data: 'isk', render: $.fn.dataTable.render.number(',', '.', 2) }, { data: 'quantity', render: $.fn.dataTable.render.number(',', '.', 0) }, { data: 'last' }, ], order: [[4, "desc"]] }); unknown_table = $('#unknown').DataTable({ columns: [ { data: 'name' }, { data: 'sys' }, { data: 'isk', render: $.fn.dataTable.render.number(',', '.', 2) }, { data: 'quantity', render: $.fn.dataTable.render.number(',', '.', 0) }, { data: 'last' }, ], order: [[4, "desc"]] }); corpmoon_table = $('#corpmoon').DataTable({ columns: [ { data: 'date' }, { data: 'name' }, { data: 'ore' }, { data: 'quantity', render: $.fn.dataTable.render.number(',', '.', 0) }, { data: 'location' }, ], order: [[0, "desc"]] }); unknown_data = d["unknown_data"]; unknown_data.forEach( function(row) { unknown_table.row.add(row); }); unknown_table.draw(); unregistered_data = d["unregistered_data"]; unregistered_data.forEach( function(row) { unregistered_table.row.add(row); }); unregistered_table.draw(); mining_data = d["mining_log"]; mining_data.forEach( function(row) { corpmoon_table.row.add(row); }); corpmoon_table.draw(); }); } var sys_months_data; var sys_months_curi; var sys_months_order; var sys_month_table; function prior() { if (sys_months_curi == 0) { return;} sys_months_curi--; render_sys_month_table(); } function next() { if (sys_months_curi == sys_months_order.length - 1) { return;} sys_months_curi++; render_sys_month_table(); } function render_sys_month_table() { const m = sys_months_order[sys_months_curi]; sys_month_table.clear(); $("#sys_month_disp").html(m); Object.keys(sys_months_data[m]).forEach( function(s) { Object.keys(sys_months_data[m][s]).forEach( function(g) { sys_month_table.row.add({"name": s, "ore": g, "isk": sys_months_data[m][s][g].isk, "tax": sys_months_data[m][s][g].tax}); }); }); sys_month_table.draw(); } function draw_sys_stats() { $.getJSON("{% url 'miningtaxes:admin_mining_by_sys_json' %}", function (d) { sys_months_data = d['tables']; sys_months_order = Object.keys(sys_months_data).sort(); sys_months_curi = sys_months_order.length - 1; sys_month_table = $('#sys_month').DataTable({ columns: [ { data: 'name' }, { data: 'ore' }, { data: 'isk', render: $.fn.dataTable.render.number(',', '.', 2) }, { data: 'tax', render: $.fn.dataTable.render.number(',', '.', 2) } ], order: [[3, "desc"]] }); render_sys_month_table(); var isk = bb.generate({ data: { x: "x", columns: [], type: "bar", }, bar: { width: { ratio: 0.5 } }, axis: { x: {type: "category"}, y: { tick: { format: function(x) { return d3.format(",")(x); } }, label: "ISK" }, }, bindto:"#sys_avg_isk" }); isk.load({columns: d['anal']['isk']}); var isk = bb.generate({ data: { x: "x", columns: [], type: "bar", }, bar: { width: { ratio: 0.5 } }, axis: { x: {type: "category"}, y: { tick: { format: function(x) { return d3.format(",")(x); } }, label: "ISK" }, }, bindto:"#sys_avg_tax" }); isk.load({columns: d['anal']['tax']}); var isk = bb.generate({ data: { x: "x", columns: [], type: "bar", }, bar: { width: { ratio: 0.5 } }, axis: { x: {type: "category"}, y: { tick: { format: function(x) { return d3.format(",")(x); } }, label: "Quantity" }, }, bindto:"#sys_avg_q" }); isk.load({columns: d['anal']['q']}); }); } $(document).ready(function () { $("#syscsv").click(exportsysdata); $.getJSON("{% url 'miningtaxes:admin_tax_revenue_json' %}", function (d) { var taxrevenue = bb.generate({ data: { x: "x", columns: [], axes: { isk: "y"}, type: "bar", }, bar: { width: { ratio: 0.5 } }, legend: { show: false }, axis: { x: { padding: { right: 5000*60*60*12 }, type: "timeseries", tick: { format: "%Y-%m", rotate: 45 } }, y: { tick: { format: function(x) { return d3.format(",")(x); } }, label: "ISK" }, }, bindto:"#taxrevenue" }); taxrevenue.load({columns: [d['xdata'], d['ydata']]}); tax_csv_data = d["csv"]; $("#taxcsv").click(exporttaxdata); } ); $.getJSON("{% url 'miningtaxes:admin_month_json' %}", function (d) { var iskchart = bb.generate({ data: { x: "x", columns: [], axes: { isk: "y"}, }, axis: { x: { padding: { right: 5000*60*60*12 }, type: "timeseries", tick: { format: "%Y-%m", rotate: 45 } }, y: { tick: { format: function(x) { return d3.format(",")(x); } }, label: "ISK" }, }, bindto:"#isk" }); for (var i = 0 ; i < d["ydata"].length; i++) { iskchart.load({columns: [d['xdata'], d['ydata'][i]]}); } iskchart.focus(["all"]); csv_data = d["csv"]; $("#csv").click(exportdata); } ); $.getJSON("{% url 'miningtaxes:admin_main_json' %}", function (d) { user_data = d["data"]; user_data.forEach( function(row) { user_table.row.add(row); }); user_table.draw(); }); user_table = $('#mains').DataTable({ columns: [ { data: 'name' }, { data: 'corp' }, { data: 'taxes_due', render: $.fn.dataTable.render.number(',', '.', 2) }, { data: 'balance', render: $.fn.dataTable.render.number(',', '.', 2) }, { data: 'last_paid' }, { data: 'action' }, ], order: [[2, "desc"]] }); $('#corp_ledgers').DataTable({ ajax: { url: "{% url 'miningtaxes:admin_corp_ledger' %}", dataSrc: 'data', cache: false }, columns: [ { data: 'date' }, { data: 'name' }, { data: 'amount', render: $.fn.dataTable.render.number(',', '.', 2) }, { data: 'reason' }, ], order: [[0, "desc"]] }); /* $('#chars').DataTable({ ajax: { url: "{% url 'miningtaxes:admin_char_json' %}", dataSrc: 'data', cache: false }, columns: [ { data: 'name' }, { data: 'corp' }, { data: 'main_name' }, { data: 'taxes', render: $.fn.dataTable.render.number(',', '.', 2) }, { data: 'credits', render: $.fn.dataTable.render.number(',', '.', 2) }, { data: 'balance', render: $.fn.dataTable.render.number(',', '.', 2) } ], order: [[5, "desc"]] }); */ }); {% endblock %}