{% extends 'miningtaxes/base.html' %}
{% load i18n %}
{% load static %}
{% load humanize %}
{% load evelinks %}
{% block details %}
Overall Monthly Tax Revenue
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
Average Monthly Units of Ore by System
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 %}
{% include 'bundles/datatables-js.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("hidden");
$(pane).removeClass("hidden");
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 %}