
var reporteAmortPptoController = function($scope, $filter, repAmortPptoService) {

	$('#reporteTableDiv').hide();
	$('#imgPrint').hide();
	$scope.mes = '';
	$scope.reporte = '';
	$scope.rep = '';
	$scope.annio = '';
	$scope.fecha = '';

	var fecha = new Date();
	var anioActual = fecha.getFullYear();
	var mes = fecha.getMonth(); // numera los meses de 0 al 11
	var fechaPicker = mes + "/" + anioActual;


	$('#fecha').datepicker({ dateFormat: 'mm/yy' }).datepicker("setDate", "-1m");

	$scope.julio = false;



	$scope.reporteAmortizacion = function() {

		$scope.fecha = document.getElementById('fecha').value;
		if ($scope.fecha != null && $scope.fecha != '') {

			var array_fechasol = $scope.fecha.split("/")  //para fecha en columnas
			$scope.annio = parseInt(array_fechasol[1]);
			$scope.mes = parseInt(array_fechasol[0]);

			repAmortPptoService.repAmortizacionPpto($scope.fecha).then(
				function(data) {
					reporteL = [];
					diferencia = [];
					pdiferencia = [];
					angular.forEach(data.reporteAmortPpto, function(item, $index) {

						if (item.p_utilizado != null && item.p_utilizado != 0) {
							item.p_utilizado = item.p_utilizado + ' %';
						}



						if ($scope.annio == anioActual) {

							if (item.estudio == 'TOTAL') {
								if (item.mes_1 == 0) {
									angular.forEach(data.reporteAmortPpto, function(item, $index) {
										delete item.mes_1;
									});
								}
								if (item.mes_2 == 0) {
									angular.forEach(data.reporteAmortPpto, function(item, $index) {
										delete item.mes_2;
									});
								}
								if (item.mes_3 == 0) {
									angular.forEach(data.reporteAmortPpto, function(item, $index) {
										delete item.mes_3;
									});
								}
								if (item.mes_4 == 0) {
									angular.forEach(data.reporteAmortPpto, function(item, $index) {
										delete item.mes_4;
									});
								}
								if (item.mes_5 == 0) {
									angular.forEach(data.reporteAmortPpto, function(item, $index) {
										delete item.mes_5;
									});
								}
								if (item.mes_6 == 0) {
									angular.forEach(data.reporteAmortPpto, function(item, $index) {
										delete item.mes_6;
									});
								}
								if (item.mes_7 == 0) {
									angular.forEach(data.reporteAmortPpto, function(item, $index) {
										delete item.mes_7;

									});
									$scope.julio = true;
								}
								if (item.mes_8 == 0) {
									angular.forEach(data.reporteAmortPpto, function(item, $index) {
										delete item.mes_8;
									});
								}
								if (item.mes_9 == 0) {
									angular.forEach(data.reporteAmortPpto, function(item, $index) {
										delete item.mes_9;
									});
								}
								if (item.mes_10 == 0) {
									angular.forEach(data.reporteAmortPpto, function(item, $index) {
										delete item.mes_10;
									});
								}
								if (item.mes_11 == 0) {
									angular.forEach(data.reporteAmortPpto, function(item, $index) {
										delete item.mes_11;
									});
								}
								if (item.mes_12 == 0) {
									angular.forEach(data.reporteAmortPpto, function(item, $index) {
										delete item.mes_12;
									});
								}
							}
						} else {
							$('#ene').show();
							$('#feb').show();
							$('#mar').show();
							$('#abr').show();
							$('#may').show();
							$('#jun').show();
							$('#jul').show();
							$('#ago').show();
							$('#sep').show();
							$('#oct').show();
							$('#nov').show();
							$('#dic').show();
							
						}


						reporteL.push(item);

					});//termina foreach
					// calcula filas "Diferencia y % ejercido"......................
					for (var k = 0; k < reporteL.length; k++) {
						if (reporteL[k].estudio == 'TOTAL') {
							for (var L = 0; L < reporteL.length; L++) {
								if (reporteL[L].estudio == 'SAP') {

									reporteL.push({
										estudio: 'Diferencia',
										mes_1: reporteL[k].mes_1 - reporteL[L].mes_1,
										mes_2: reporteL[k].mes_2 - reporteL[L].mes_2,
										mes_3: reporteL[k].mes_3 - reporteL[L].mes_3,
										mes_4: reporteL[k].mes_4 - reporteL[L].mes_4,
										mes_5: reporteL[k].mes_5 - reporteL[L].mes_5,
										mes_6: reporteL[k].mes_6 - reporteL[L].mes_6,
										mes_7: reporteL[k].mes_7 - reporteL[L].mes_7,
										mes_8: reporteL[k].mes_8 - reporteL[L].mes_8,
										mes_9: reporteL[k].mes_9 - reporteL[L].mes_9,
										mes_10: reporteL[k].mes_10 - reporteL[L].mes_10,
										mes_11: reporteL[k].mes_11 - reporteL[L].mes_11,
										mes_12: reporteL[k].mes_12 - reporteL[L].mes_12,
										ejercido: reporteL[k].ejercido - reporteL[L].ejercido
									});
								}
							}
						}
					}

					for (var k = 0; k < reporteL.length; k++) {
						if (reporteL[k].estudio == 'TOTAL') {
							for (var L = 0; L < reporteL.length; L++) {
								if (reporteL[L].estudio == 'Diferencia') {
									reporteL.push({
										estudio: '% Diferencia',
										mes_1: ((reporteL[L].mes_1 / reporteL[k].mes_1) * 100).toFixed(2) + ' %',
										mes_2: ((reporteL[L].mes_2 / reporteL[k].mes_2) * 100).toFixed(2) + ' %',
										mes_3: ((reporteL[L].mes_3 / reporteL[k].mes_3) * 100).toFixed(2) + ' %',
										mes_4: ((reporteL[L].mes_4 / reporteL[k].mes_4) * 100).toFixed(2) + ' %',
										mes_5: ((reporteL[L].mes_5 / reporteL[k].mes_5) * 100).toFixed(2) + ' %',
										mes_6: ((reporteL[L].mes_6 / reporteL[k].mes_6) * 100).toFixed(2) + ' %',
										mes_7: ((reporteL[L].mes_7 / reporteL[k].mes_7) * 100).toFixed(2) + ' %',
										mes_8: ((reporteL[L].mes_8 / reporteL[k].mes_8) * 100).toFixed(2) + ' %',
										mes_9: ((reporteL[L].mes_9 / reporteL[k].mes_9) * 100).toFixed(2) + ' %',
										mes_10: ((reporteL[L].mes_10 / reporteL[k].mes_10) * 100).toFixed(2) + ' %',
										mes_11: ((reporteL[L].mes_11 / reporteL[k].mes_11) * 100).toFixed(2) + ' %',
										mes_12: ((reporteL[L].mes_12 / reporteL[k].mes_12) * 100).toFixed(2) + ' %',
										ejercido: ((reporteL[L].ejercido / reporteL[k].ejercido) * 100).toFixed(2) + ' %'
									});
								}
							}
						}
						if (reporteL[k].estudio == 'TOTAL') {
							reporteL[k].estudio = 'Total General';
						}
						if (reporteL[k].estudio == 'SAP') {
							reporteL[k].estudio = 'Total SAP';
						}
					}

					$scope.reporte = reporteL;
					$scope.rep = reporteL;

					$('#reporteTableDiv').show();


				})
				.catch(function(error) {
					console.log("ERROR. al recuperar reporte......");
				}
				);
		} else {
			console.log("no selecciono año");
		}
	}
	$scope.exportarReporte = function() {

		var dataIn2 = { "error": "from front front", "reporte": $scope.reporte }

		repAmortPptoService.descargarArchivoExcel(dataIn2).then(function(data) {

		});

	}

	/*
	 * 
	 * FUNCIONALES GENERALES
	 * 
	 * */
	$scope.printReport = function() {
		$('#reporteTableDiv').printThis({
			importCSS: true,
			importStyle: true,
			header: "<h3 style='width: 950px; font-weight:bold;'><img style='padding-right: 50px;' src='" + contextPath + "/design/img/common/Clarovideo.png'/>REPORTE DE SEGUIMIENTO AL PRESUPUESTO  " + $scope.annio + "</h3>"

		});
	}

	$scope.fmaFront = function(fecha) {

		return fecha != null ? fechaMesAnnio(fecha) : "";
	}

	function fechaMesAnnio(fecha) {
		var fsplited = fecha.split("/");
		if (fsplited.length == 3)
			return getMesStr(" " + fsplited[2]);
		else
			return fecha;
	}

	function getMesStr(mes) {
		var meses = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"];
		return meses[parseInt(mes) - 1];
	}

};

registraController("reporteAmortPptoController", reporteAmortPptoController);
