/**
* @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');
	});
};
