

function callActionAjax(actionRoute, jsonActionParameter, functionProcessor) {

	$.ajax({
		url: contextPath + actionRoute,
		type: 'POST',
		data: jsonActionParameter,
		dataType: "json",
		success: function(response) {
			functionProcessor(response);
		},
		error: function(jqXhr, textStatus, errorThrown) {
			showError("Ocurri&oacute; un error.");
		}
	});

}


function llamaObtenerDetalleContratos() {


	var jsonString = '{"idEstudio" : "1", "fechaInicio":"01/01/2021", "fechaFin":"01/01/2022"}';
	var stringJson = JSON.parse(jsonString);
	callActionAjax("/reporte/reportePago/detalleContrato", stringJson, procesaDetalleContratos);

}


$(document).ready(function() {

	$('#fecha').datepicker({
		changeYear: false,
		changeMonth: false,
		minDate: Date.now(),
		maxDate: 0,
		dateFormat: "mm/yy",
	});

	$("#botonConsultar").prop("disabled", false);
	$('#consultaReporte').click(function() {

		var estudioEleccion = 'datComodin';
		var mesEleccion = $('#fecha').val();

		if (validaParametrosEntrada(mesEleccion) != 0) {

			generaReporteAmortizacion(mesEleccion);

			var d_val = new Date(mesEleccion.replace("/", "-") + ' 00:00:00');
			var year = d_val.getFullYear();
			var mes = d_val.getMonth();
			var d = new Date(year, mes + 1, 0);
			showMessage(" Se bloquear\u00E1 del " + mesEleccion + " al fin de mes del env\u00CDo de t\u00CDtulos a SAP. Por favor confirme los d\u00CDas de cierre.");
		} else {
			showError("No se ha seleccionado un valor v\u00E1lido fecha o la fecha seleccionada no tiene el formato adecuado DD/MM/YYYY");
		}
	});




});


function validaParametrosEntrada(estudioEleccion, mesEleccion) {
	var fechaValida = validaFechaMesAnio(mesEleccion);
	if (fechaValida == 0)
		return 0;
	return 1;
}

function procesaDetalleContratos(jsonData) {
	var contratos = jsonData.detalleContratos;
	if (contratos.length > 0 || $("#campoEstudio").val() <= 0) {
		$("#botonConsultar").prop("disabled", false);
	}

}

function llamaObtenerDetalleContratos() {
	showMessage("Se a ejecutado la consulta de datos");
	var jsonString = '{"idEstudio" : "1", "fechaInicio":"01/01/2021", "fechaFin":"01/01/2022"}';
	var stringJson = JSON.parse(jsonString);
	callActionAjax("/reporte/reportePago/detalleContrato", stringJson, llamaReporteInfoAction);

}

var infoReporte = [];

function procesaReportePrincipal(jsonData) {

	var colNamesVar = [
		'USUARIOS PRUEBA',
		'PAIS',
		'ADD-ONN',
		'STATUS DE PAGO',
		'ABONO',
		'PRECIO MONEDA LOCAL',
		'MEDIO PAGO NOMBRE',
		'CANTIDAD DE CLIENTES',
		'ID PRODUCTO',
		'NOMBRE DEL PRODUCTO',
		'SUSCRITO ESPECIAL',
		'ID PRODUCTO',
		'NOMBRE DEL PRODUCTO',
		'SUSCRITO ESPECIAL'
	];
	var colModelVar = [
		{ name: 'm2', index: 'm2', width: 80, sortable: false },
		{ name: 'm3', index: 'm3', width: 80, sortable: false },
		{ name: 'm4', index: 'm4', width: 80, sortable: false },
		{ name: 'm5', index: 'm5', width: 80, sortable: false },
		{ name: 'm6', index: 'm6', width: 80, sortable: false },
		{ name: 'm7', index: 'm7', width: 80, sortable: false },
		{ name: 'm8', index: 'm8', width: 80, sortable: false },
		{ name: 'm9', index: 'm9', width: 80, sortable: false },
		{ name: 'm10', index: 'm10', width: 80, sortable: false },
		{ name: 'm11', index: 'm11', width: 80, sortable: false },
		{ name: 'm12', index: 'm12', width: 80, sortable: false },
		{ name: 'm13', index: 'm13', width: 80, sortable: false },
		{ name: 'Total', index: 'Total', width: 80, sortable: false },
		{ name: 'm1', index: 'm1', width: 80, sortable: false }
	];

	var colModelNames = [
		'ordenCompra',
		'proveedor',
		'descripción',
		'codigoDDA',
		'centroCosto',
		'ContratoDDA',
		'programID',
		'valor',
		'fechainicio',
		'fechacontabilizacion',
		'VU AA'];

	var datos = jsonData.reporte;
	var header = jsonData.encabezado;

	var imarcar = 0;
	var porMarcar = [];
	var patron = /^[A-Z]{4}\d{5}[A-Z]$/;


	if (datos.length > 0) {

		for (var i = 0; i < datos.length; i++) {
			if (patron.test(datos[i].concepto))
				porMarcar[imarcar++] = (i + 1);
		}

		$("#botonExportar").prop("disabled", false);

		$("#botonNotificar").prop("disabled", false);
		jQuery("#reporteTable").jqGrid({
			datatype: "local",
			colNames: colNamesVar,
			colModel: colModelVar,
			width: '1000',
			height: '300',
			rowNum: 999999,
			autowidth: false,
			shrinkToFit: false,
			multiselect: false,
			loadComplete: function() {

			}
		});

		jQuery('#reporteTable').jqGrid('clearGridData').jqGrid('setGridParam', { colNames: colNamesVar, colModel: colModelVar, data: datos, datatype: 'local' }).trigger('reloadGrid');

		for (var i = 0; i < colModelNames.length; i++) {
			jQuery("#reporteTable").jqGrid('setLabel', colModelNames[i], header[i]);
		}

		jQuery("#reporteTable").jqGrid('setRowData', 1, false, 'totalContratoRowClass');

		for (var i = 0; i < porMarcar.length; i++) {
			jQuery("#reporteTable").jqGrid('setRowData', porMarcar[i], false, 'contratoRowClass');
		}

		jQuery("#reporteTable").jqGrid('setFrozenColumns');

		infoReporte = datos;

	} else {
		showError("El contrato seleccionado no tiene titulos asociados.");
		jQuery('#reporteTable').jqGrid('clearGridData').jqGrid('setGridParam', { colNames: colNamesVar, colModel: colModelVar, data: datos, datatype: 'local' }).trigger('reloadGrid');
		$("#botonExportar").prop("disabled", true);
		$("#botonNotificar").prop("disabled", true);
	}

}



function procesaReportePrincipalC(jsonData) {
	var datos = jsonData.reporte;

	document.getElementById('reporteTableDiv').innerHTML = "";
	document.getElementById('reporteTableDiv').innerHTML = "<table id='reporteTable' class='pos' ></table>";


	if (datos.length > 0) {
		if (datos[0].m2 == '1') {
			fcarga1(jsonData);
		} if (datos[0].m2 == '2') {
			fcarga2(jsonData);
		} if (datos[0].m2 == '3') {
			fcarga3(jsonData);
		} if (datos[0].m2 == '4') {
			fcarga4(jsonData);
		} if (datos[0].m2 == '5') {
			fcarga5(jsonData);
		}
	}
}
/* Monto País = (Suscriptores x Precio Neto) / Tipo de Cambio */
function fcarga1(jsonData) {

	var colNamesVar = [
		'PERIODO',
		'PA&#205;S',
		'# SUSCRIPTORES',
		'PRECIO NETO ML',
		'MONTO NETO',
		'REVENUE SHARE',
		'MONTO NETO USD'];
	var colModelVar = [{ name: 'm14', index: 'm14', width: 180, sortable: false },
	{ name: 'm5', index: 'm5', width: 180, sortable: false },
	{ name: 'm19', index: 'm19', width: 120, sortable: false },
	{ name: 'm16', index: 'm16', width: 120, sortable: false },
	{ name: 'f1', index: 'f1', width: 120, sortable: false },
	{ name: 'f2', index: 'f2', width: 120, sortable: false },
	{ name: 'fd1', index: 'fd1', width: 120, sortable: false }];

	var colModelNames = colNamesVar;
	var datos = jsonData.reporte;
	var header = jsonData.encabezado;
	var imarcar = 0;
	var porMarcar = [];
	var patron = /^[A-Z]{4}\d{5}[A-Z]$/;

	if (datos.length > 0) {
		for (var i = 0; i < datos.length; i++) {
			if (patron.test(datos[i].concepto))
				porMarcar[imarcar++] = (i + 1);
		}
		jQuery("#reporteTable").jqGrid({
			datatype: "local",
			colNames: colNamesVar,
			colModel: colModelVar,
			width: '1000',
			height: '300',
			rowNum: 999999,
			autowidth: false,
			shrinkToFit: false,
			multiselect: false,
			loadComplete: function() {
			}
		});
		jQuery('#reporteTable').jqGrid('clearGridData').jqGrid('setGridParam', { colNames: colNamesVar, colModel: colModelVar, data: datos, datatype: 'local' }).trigger('reloadGrid');
		for (var i = 0; i < colModelNames.length; i++) {
			jQuery("#reporteTable").jqGrid('setLabel', colModelNames[i], header[i]);
		}
		
		for (var i = 0; i < porMarcar.length; i++) {
			jQuery("#reporteTable").jqGrid('setRowData', porMarcar[i], false, 'contratoRowClass');
		}
		jQuery("#reporteTable").jqGrid('setFrozenColumns');
		infoReporte = datos;
	}
}


/* Monto País = ((Promedio=Total Suscriptores Mes Actual y Mes Anterior) x Precio Neto) / Tipo de Cambio */
function fcarga2(jsonData) {
	var colNamesVar = [
		'PERIODO',
		'# SUSCRIPTORES',
		'PRECIO NETO',
		'MONTO NETO',
		'REVENUE SHARE'];
	var colModelVar = [{ name: 'm14', index: 'm14', width: 180, sortable: false },
	{ name: 'm19', index: 'm19', width: 180, sortable: false },
	{ name: 'm16', index: 'm16', width: 180, sortable: false },
	{ name: 'f3', index: 'f3', width: 180, sortable: false },
	{ name: 'f2', index: 'f2', width: 180, sortable: false }];

	var colModelNames = colNamesVar;
	var datos = jsonData.reporte;
	var header = jsonData.encabezado;
	var imarcar = 0;
	var porMarcar = [];
	var patron = /^[A-Z]{4}\d{5}[A-Z]$/;

	if (datos.length > 0) {
		for (var i = 0; i < datos.length; i++) {
			if (patron.test(datos[i].concepto))
				porMarcar[imarcar++] = (i + 1);
		}
		
		jQuery("#reporteTable").jqGrid({
			datatype: "local",
			colNames: colNamesVar,
			colModel: colModelVar,
			width: '1000',
			height: '300',
			rowNum: 999999,
			autowidth: false,
			shrinkToFit: false,
			multiselect: false,
			loadComplete: function() {
			}
		});
		jQuery('#reporteTable').jqGrid('clearGridData').jqGrid('setGridParam', { colNames: colNamesVar, colModel: colModelVar, data: datos, datatype: 'local' }).trigger('reloadGrid');
		for (var i = 0; i < colModelNames.length; i++) {
			jQuery("#reporteTable").jqGrid('setLabel', colModelNames[i], header[i]);
		}
		
		for (var i = 0; i < porMarcar.length; i++) {
			jQuery("#reporteTable").jqGrid('setRowData', porMarcar[i], false, 'contratoRowClass');
		}
		jQuery("#reporteTable").jqGrid('setFrozenColumns');
		infoReporte = datos;
	}
}

/* Monto País = (Máximo de ((Suscriptores x Precio Neto)*50%) vs (Suscriptores x Mínimo Garantizado)) / Tipo de Cambio */
function fcarga3(jsonData) {
	var colNamesVar = [
		'PERIODO',
		'PA&#205;S',
		'# SUSCRIPTORES',
		'PRECIO NETO ML',
		'MONTO NETO ML',
		'MONTO NETO 50%',
		'REVENUE SHARE ML',
		'MAX ML',
		'MAX USD'];
	var colModelVar = [{ name: 'm14', index: 'm14', width: 140, sortable: false },
	{ name: 'm5', index: 'm5', width: 120, sortable: false },
	{ name: 'm19', index: 'm19', width: 120, sortable: false },
	{ name: 'm16', index: 'm16', width: 120, sortable: false },
	{ name: 'm18', index: 'm18', width: 120, sortable: false },
	{ name: 'f3', index: 'f3', width: 120, sortable: false },
	{ name: 'm20', index: 'm20', width: 120, sortable: false },
	{ name: 'm21', index: 'm21', width: 80, sortable: false },
	{ name: 'f2', index: 'f2 ', width: 80, sortable: false }];

	var colModelNames = colNamesVar;
	var datos = jsonData.reporte;
	var header = jsonData.encabezado;
	var imarcar = 0;
	var porMarcar = [];
	var patron = /^[A-Z]{4}\d{5}[A-Z]$/;

	if (datos.length > 0) {
		for (var i = 0; i < datos.length; i++) {
			if (patron.test(datos[i].concepto))
				porMarcar[imarcar++] = (i + 1);
		}
		jQuery("#reporteTable").jqGrid({
			datatype: "local",
			colNames: colNamesVar,
			colModel: colModelVar,
			width: '1000',
			height: '300',
			rowNum: 999999,
			autowidth: false,
			shrinkToFit: false,
			multiselect: false,
			loadComplete: function() {
			}
		});
		jQuery('#reporteTable').jqGrid('clearGridData').jqGrid('setGridParam', { colNames: colNamesVar, colModel: colModelVar, data: datos, datatype: 'local' }).trigger('reloadGrid');
		for (var i = 0; i < colModelNames.length; i++) {
			jQuery("#reporteTable").jqGrid('setLabel', colModelNames[i], header[i]);
		}
		
		for (var i = 0; i < porMarcar.length; i++) {
			jQuery("#reporteTable").jqGrid('setRowData', porMarcar[i], false, 'contratoRowClass');
		}
		jQuery("#reporteTable").jqGrid('setFrozenColumns');
		infoReporte = datos;
	}
}
/* Monto País = ((Suscriptores x (Precio / 1.16)-(24.5 x Suscriptores)) x 2 */
function fcarga4(jsonData) {
	var colNamesVar = [
		'PERIODO',
		'PA&#205;S',
		'# SUSCRIPTORES',
		'PRECIO NETO ML',
		'MONTO NETO',
		'MONTO NETO USD'];
	var colModelVar = [{ name: 'm14', index: 'm14', width: 180, sortable: false },
	{ name: 'm5', index: 'm5', width: 180, sortable: false },
	{ name: 'm19', index: 'm19', width: 120, sortable: false },
	{ name: 'm16', index: 'm16', width: 120, sortable: false },
	{ name: 'f4', index: 'f4', width: 120, sortable: false },
	{ name: 'fd4', index: 'fd4', width: 120, sortable: false }];

	var colModelNames = colNamesVar;
	var datos = jsonData.reporte;
	var header = jsonData.encabezado;
	var imarcar = 0;
	var porMarcar = [];
	var patron = /^[A-Z]{4}\d{5}[A-Z]$/;

	if (datos.length > 0) {
		for (var i = 0; i < datos.length; i++) {
			if (patron.test(datos[i].concepto))
				porMarcar[imarcar++] = (i + 1);
		}
		jQuery("#reporteTable").jqGrid({
			datatype: "local",
			colNames: colNamesVar,
			colModel: colModelVar,
			width: '1000',
			height: '300',
			rowNum: 999999,
			autowidth: false,
			shrinkToFit: false,
			multiselect: false,
			loadComplete: function() {
			}
		});
		jQuery('#reporteTable').jqGrid('clearGridData').jqGrid('setGridParam', { colNames: colNamesVar, colModel: colModelVar, data: datos, datatype: 'local' }).trigger('reloadGrid');
		for (var i = 0; i < colModelNames.length; i++) {
			jQuery("#reporteTable").jqGrid('setLabel', colModelNames[i], header[i]);
		}
		
		for (var i = 0; i < porMarcar.length; i++) {
			jQuery("#reporteTable").jqGrid('setRowData', porMarcar[i], false, 'contratoRowClass');
		}
		jQuery("#reporteTable").jqGrid('setFrozenColumns');
		infoReporte = datos;
	}
}

/* Monto País = Suscriptores x Precio Neto */
function fcarga5(jsonData) {



	var colNamesVar = [
		'PERIODO',
		'PA&#205;S',
		'# SUSCRIPTORES',
		'PRECIO NETO ML',
		'MONTO NETO',
		'REVENUE SHARE',
		'MONTO NETO USD'];
	var colModelVar = [{ name: 'm14', index: 'm14', width: 180, sortable: false },
	{ name: 'm5', index: 'm5', width: 180, sortable: false },
	{ name: 'm19', index: 'm19', width: 120, sortable: false },
	{ name: 'm16', index: 'm16', width: 120, sortable: false },
	{ name: 'f5', index: 'f5', width: 120, sortable: false },
	{ name: 'f2', index: 'f2', width: 120, sortable: false },
	{ name: 'fd1', index: 'fd1', width: 120, sortable: false }];

	var colModelNames = colNamesVar;
	var datos = jsonData.reporte;
	var header = jsonData.encabezado;
	var imarcar = 0;
	var porMarcar = [];
	var patron = /^[A-Z]{4}\d{5}[A-Z]$/;

	if (datos.length > 0) {
		jQuery("#reporteTable").jqGrid({
			datatype: "local",
			colNames: colNamesVar,
			colModel: colModelVar,
			width: '1000',
			height: '300',
			rowNum: 999999,
			autowidth: false,
			shrinkToFit: false,
			multiselect: false,
			loadComplete: function() {
			}
		});
		jQuery('#reporteTable').jqGrid('clearGridData').jqGrid('setGridParam', { colNames: colNamesVar, colModel: colModelVar, data: datos, datatype: 'local' }).trigger('reloadGrid');
		for (var i = 0; i < colModelNames.length; i++) {
			jQuery("#reporteTable").jqGrid('setLabel', colModelNames[i], header[i]);
		}
		
		for (var i = 0; i < porMarcar.length; i++) {
			jQuery("#reporteTable").jqGrid('setRowData', porMarcar[i], false, 'contratoRowClass');
		}
		jQuery("#reporteTable").jqGrid('setFrozenColumns');
		infoReporte = datos;
	}
}


function colocaFechaFin() {

}

function llamaReporteInfoAction() { //Funcion de boton Consultar
	var jsonString = '{"idCon" : "0", "fechaInicio": "' + $("#fecha").val() + '"}';
	var stringJson = JSON.parse(jsonString);
	callActionAjax("/admin/addonsRS/reporteSusc", stringJson, procesaReportePrincipal);
}


function llamaReporteCargaAction() { //Funcion de boton Consultar
	if ($("#campoEstudio").val() <= 0) {
		showError("Es necesario seleccionar el Estudio.");
	} else {
		
		var jsonString = '{"idCon" : "0", "fechaInicio": "' + $("#fecha").val() + '", "fechaFin":"01/01/2022", "idEstudio": "' + $("#campoEstudio").val() + '" }';
		var stringJson = JSON.parse(jsonString);
		callActionAjax("/admin/addonsRM/reporteCalc", stringJson, procesaReportePrincipalC);
	}
}

function guardarHistorico() { //Funcion de boton Consultar
	if ($("#campoEstudio").val() <= 0) {
		showError("Es necesario seleccionar el Estudio.");
	} else {
		if (confirm('\u00BFEst\u00E1 seguro de guardar en el historial estos datos? Despu\u00E9s de esto ya no se podr\u00E1n modificar los valores de nuevo para este mes.')) {
			var jsonString = '{"idCon" : "0", "fechaInicio": "' + $("#fecha").val() + '", "fechaFin":"01/01/2022", "idEstudio": "' + $("#campoEstudio").val() + '" }';
			var stringJson = JSON.parse(jsonString);
			callActionAjax("/admin/addonsRM/guardarHistorico", stringJson, procesaReportePrincipalC);
		}
	}
}

function descargarReporteEnExcel() {


	var url = contextPath + '/admin/addonsRM/reporteSuscriptoresExcel.action?idEstudio=' + $("#campoEstudio").val() + '&fechaInicio=' + $("#fecha").val();
	window.open(url);
}

function llamaObtenerDetalleContratos() {


	var jsonString = '{"idEstudio" : "' + $("#campoEstudio").val() + '", "fechaInicio":"01/01/2021", "fechaFin":"01/01/2022"}';
	var stringJson = JSON.parse(jsonString);
	callActionAjax("/admin/revenuePorc/detalleContrato", stringJson, procesaDetalleContratos);

}


function notificarSAP() {
	var jsonString = '{"idCon" : "' + $("#campoContrato").val() + '", "fechaInicio":"01/01/2021", "fechaFin":"01/01/2022", "idEstudio":"' + $("#campoEstudio").val() + '"}';
	var stringJson = JSON.parse(jsonString);
	callActionAjax("/admin/reporteContingencia/notificaSAP", stringJson, procesaReportePrincipal);
	showMessage("Se a ejecutado el prodeso de Notificacion SAP");
}


