

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){
	         console.error("Error: " + textStatus + " ::: " + errorThrown + " ::: " + jqXhr);
	     }
	 });
	
}


function llamaObtenerDetalleContratos() {
	
	
	var jsonString = '{"idEstudio" : "1", "fechaInicio":"01/01/2021", "fechaFin":"01/01/2022"}';
	//console.log(jsonString);
	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 valido fecha o la fecha seleccionada no tiene el formato adecuado DD/MM/YYYY");
	 }
    });
    
    

	
});


function validaParametrosEntrada(estudioEleccion, mesEleccion){
	console.log( 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);
		//$("#botonNotificar").prop( "disabled", false);
		//$("#botonExportar").prop( "disabled", false);
	}else {/*
		$("#botonConsultar").prop( "disabled", true);
		$("#botonExportar").prop( "disabled", true);
		jQuery('#reporteTable').jqGrid('clearGridData').jqGrid('setGridParam', {colNames:[], colModel:[] ,data: [], datatype: 'local'}).trigger('reloadGrid');
		showError("El estudio seleccionado no tiene contratos asociados");
		console.log('Es nulo');*/
	}
	
}

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

var infoReporte = [];

function procesaReportePrincipal(jsonData) {

	//console.info(JSON.stringify(jsonData));
	//{name:'concepto',index:'concepto', width:150, frozen : true, sortable:false},
	                  
	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++){
			//console.log(datos[i].concepto);
			if(patron.test(datos[i].concepto))
				porMarcar[imarcar++] = (i + 1);
		}
		
		//console.log("por marcar : " + porMarcar);
		
		$("#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.");
		console.log('Es nulo');
		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);
		}
		//$("#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;
	}
}


/* 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);
		}
		//$("#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;
	}
}

/* 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);
		}
		//$("#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;
	}
}
/* 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);
		}
		//$("#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;
	}
}

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


function colocaFechaFin(){
	
}

function llamaReporteInfoAction(){ //Funcion de boton Consultar
	console.log("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{
		//alert($("#fecha").val());
		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"}';
	//console.log(jsonString);
	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");
}


