1
0
Fork 0
SVEN/webseite/public/js/custom.js

357 lines
8.1 KiB
JavaScript

/**
* @TODO Documentation
*/
'use strict';
/*
*Ertellen der Produkt Tabelle aus der Datenbank
*/
if (document.getElementById('produktTabelle'&& 'produkte')) {
request({
type:"GET",
url: "/sven/api/article"
}, function (data) {
data.data = data.data.DATA;
var str = "";
var id = 1;
/*
* Erstellt einen String der die Tabelle beinhaltet
*/
str +='<table>';
str +='<thead>';
str +='<tr>';
str +='<th>Produktnummer</th>';
str +='<th>Marke</th>';
str +='<th>Produktname</th>';
str +='<th>Preis</th>';
str +='</tr>';
str +='</thead>';
str +='<tbody>';
data.data.forEach(function(elem) {
//Durchläuft das Array als Schleife
str +='<tr>';
str +='<td>'+elem.ID+'</td>';
str +='<td>'+elem.Marke+'</td>';
str +='<td>'+elem.Name+'</td>';
str +='<td>'+precisionRound(elem.Verkaufspreis, 2)+'€'+'</td>';
str +='</tr>';
});
str +='</tbody>';
str +='</table>';
$('#produktTabelle').html(str); //JQuerry
/*
*Füllt das Produkteingabefeld mit den vorhandenen Produkten
*/
var str_2 = "";
data.data.forEach(function(elem) {
str_2+='<option value='+elem.ID+'>'+elem.Name+'</option>';
});
$('#produkte').html(str_2); //JQuerry
}, function (data) {
console.log(data);
console.log('Error Produkttabelle');
});
};
/*
*Funktion um die Werte von dem ausgewählten Produkt in den Graphen zu bringen
*/
if (document.getElementById('produkte')) {
var produkt_id = null;
$('#produkte').change(function(){
produkt_id = $(this).val()-1;
});
};
var daten_Menge;
function selectProduct(){
if(!produkt_id) return;
request({
url: "/sven/api/statistics"
}, function (data) {
data.data = data.data.DATA;
var series_2 = [];
var labels_2 = [];
data.data.forEach(function(item) {
if(item.f_Artikel_ID === produkt_id) {
labels_2.push(item.Woche);
series_2.push({x: item.Woche, y: item.Menge});
}
});
daten_Menge = {labels: labels_2, series: [series_2]};
if (document.getElementById('chart2')) {
new Chartist.Bar('#chart2', daten_Menge, {
chartPadding: {
top: 0,
right: 0,
bottom: 40,
left: 40
},
plugins: [
Chartist.plugins.ctAxisTitle({
axisX: {
axisTitle: 'Woche',
axisClass: 'ct-axis-title',
offset: {
x: 0,
y: 20
},
textAnchor: 'middle'
},
axisY: {
axisTitle: 'Menge',
axisClass: 'ct-axis-title',
offset: {
x: 0,
y: -20
},
textAnchor: 'middle',
flipTitle: false
}
})
]
});
};
}, function (data) {
console.log(data);
console.log('Error Produktgraphen');
});
};
if (document.getElementById('chart2')) {
new Chartist.Bar('#chart2', daten_Menge);
};
/*
* Erstellt den 1. Graphen durch errechen der gesammt Menge die in der spezifischen Woche verkauft wurde
*/
if (document.getElementById('chart1')) {
var gesMengen_Daten;
request({
url: "/sven/api/statistics"
}, function (data) {
data.data = data.data.DATA;
var series_Menge = [];
var labels_Menge = [];
var Wochen = {};
data.data.forEach(function(item) {
item.Woche = parseInt(item.Woche);
if(!Wochen[item.Woche]) Wochen[item.Woche] = parseInt(item.Menge);
else Wochen[item.Woche] += parseInt(item.Menge);
});
Object.keys(Wochen).forEach(function(item) {
series_Menge.push(Wochen[item]);
});
labels_Menge =Object.keys(Wochen);
for(var i=0; i<labels_Menge.lenght;i++)
labels_Menge[i]="Woche"+labels_Menge[i];
var gesMengen_Daten = { labels: labels_Menge, series: [series_Menge]};
new Chartist.Bar('#chart1', gesMengen_Daten, {
chartPadding: {
top: 0,
right: 0,
bottom: 40,
left: 40
},
plugins: [
Chartist.plugins.ctAxisTitle({
axisX: {
axisTitle: 'Woche',
axisClass: 'ct-axis-title',
offset: {
x: 0,
y: 20
},
textAnchor: 'middle'
},
axisY: {
axisTitle: 'Menge',
axisClass: 'ct-axis-title',
offset: {
x: 0,
y: -20
},
textAnchor: 'middle',
flipTitle: false
}
})
]
});
}, function (data) {
console.log(data);
console.log('Error Produktgraphen');
});
new Chartist.Bar('#chart1', daten_Menge);
};
/*
* Tabelle vom und fürs Lager
*/
if (document.getElementById('lagerTabelle')) {
request({
type:"GET",
url: "/sven/api/stock",
}, function (data) {
data.data = data.data.DATA;
if(data.data.length == 0) return;
var str = "";
var id = 1;
/*
* Erstellt einen String der die Tabelle beinhaltet
*/
str +='<table>';
str +='<thead>';
str +='<tr>';
str +='<th>Lagerplatz</th>';
str +='<th>Produktname</th>';
str +='<th>Menge</th>';
str +='</tr>';
str +='</thead>';
str +='<tbody>';
data.data.forEach(function(elem) { //Durchläuft das Array als Schleife
str +='<tr>';
str +='<td>'+elem.Lagerplatz+'</td>';
str +='<td>'+elem.f_Artikel_ID+'</td>';
str +='<td>'+elem.Menge+'</td>';
str +='</tr>';
});
str +='</tbody>';
str +='</table>';
$('#lagerTabelle').html(str); //JQuerry
}, function (data) {
console.log(data);
console.log('Error lagerTabelle');
});
};
/*
* Tabelle für erwartete Lieferungen
*/
if (document.getElementById('lieferTabelle')) {
request({
type:"GET",
url: "/sven/api/stockDeliveries"
}, function (data) {
data.data = data.data.DATA;
if(data.data.length == 0) return;
var str = "";
var id = 1;
/*
* Erstellt einen String der die Tabelle beinhaltet
*/
str +='<table>';
str +='<thead>';
str +='<tr>';
str +='<th>Bestellung</th>';
str +='<th>Produktname</th>';
str +='<th>Bestellte Menge</th>';
str +='<th>Ankunftsdatum</th>'
str +='</tr>';
str +='</thead>';
str +='<tbody>';
data.data.forEach(function(elem) { //Durchläuft das Array als Schleife
str +='<tr>';
str +='<td>'+elem.ID+'</td>';
str +='<td>'+elem.f_ProduktID+'</td>';
str +='<td>'+elem.Menge+'</td>';
str +='<td>'+elem.Ankunftsdatum+'</td>';
str +='</tr>';
});
str +='</tbody>';
str +='</table>';
$('#lieferTabelle').html(str);
}, function (data) {
console.log(data);
console.log('Error Lieferungen');
});
};
function precisionRound(number, precision) {
return parseFloat(number).toFixed(precision);
};
function gewinnGraph() {
var gewinn = 0;
if(!produkt_id) return;
request(
{
type:"GET",
url:"/sven/api/article"
}, function(data){
data.data = data.data.DATA;
console.log(data.data);
var series_2 = [];
var labels_2 = [];
gewinn = data.data[produkt_id].Rohgewinn / data.data[produkt_id].Anzahl_pro_Palette;
console.log(produkt_id, data.data[produkt_id].Rohgewinn, data.data[produkt_id].Anzahl_pro_Palette);
request({
type:"GET",
url:"/sven/api/statistics"
}, function(data){
data.data = data.data.DATA;
data.data.forEach(function(item) {
if(item.f_Artikel_ID === produkt_id) {
console.log(item);
labels_2.push(item.Woche);
series_2.push(gewinn);
daten_Menge = {labels: labels_2, series: [series_2]};
if (document.getElementById('chart2')) {
new Chartist.Bar('#chart2', daten_Menge, {
chartPadding: {
top: 0,
right: 0,
bottom: 40,
left: 40
},
plugins: [
Chartist.plugins.ctAxisTitle({
axisX: {
axisTitle: 'Woche',
axisClass: 'ct-axis-title',
offset: {
x: 0,
y: 20
},
textAnchor: 'middle'
},
axisY: {
axisTitle: 'Preis in €',
axisClass: 'ct-axis-title',
offset: {
x: 0,
y: -20
},
textAnchor: 'middle',
flipTitle: false
}
})
]
});
}
}
});
});
}, function (data) {
console.log(data);
console.log('Error 12');
});
};