
jQuery(function ($) {
    initRupI18nPromise.then(function () {
		initFilter();
		initTable();
		
		$("#pagos_filter_cleanButton").click(initFilter);
	});
 
	const initFilter = () => {
		$("#anyoPago74_pagos_filter_table").rup_combo({	
			source: $.rup.CTX_PATH + 'combo/anyos',
			sourceParam: {label: "descripcion", value:"value"},
			loadFromSelect:false,
			width: 'auto',
	        ordered: true,
			blank: '',
			customClasses: ['select-material'],
			rowStriping: true
		});
		
		$("#mesPago74_filter_table").rup_combo({
			parent: ["anyoPago74_pagos_filter_table"],			
			source: $.rup.CTX_PATH + 'combo/meses',
			sourceParam: {label: "descripcion", value:"value"},
			rowStriping: true,
			width: 'auto',
			ordered: false,
			orderedByValue: false,
			blank: '',
			customClasses: ['select-material']
		});
		
		$("#idPrestador74_filter_table").rup_combo({	
			source: $.rup.CTX_PATH + 'combo/prestadores',
			sourceParam: {label: "descripcion"+$.rup_utils.capitalizedLang(), value:"value"},
			loadFromSelect:false,
			width: 'auto',
	        ordered: true,
			blank: '',
			customClasses: ['select-material'],
			rowStriping: true
		});
		
	}
	
	const initTable = () => {
		
		let anadir_pago_dialog = $("#pagos_add_div");
		let anadir_pago_dialog_feedback = $("#pagos_add_feedback");
		let pago_dialog = $("#pagos_detail_div");
		let pago_dialog_feedback = $("#pagos_detail_feedback");
		
		const getColumnsModelPago = function(){
			const getColumnModelPago = function (name, index, editable, hidden, orderable) {
				return {
					name: name,
					index: index,
					editable: editable,
					hidden: hidden,
					orderable: orderable
				}
			};
			let columnsModelPago = [];
			columnsModelPago.push(getColumnModelPago("idPago74", "idPago74", false, true, false));
			columnsModelPago.push(getColumnModelPago("anyoPago74", "anyoPago74", true, false));
			columnsModelPago.push(getColumnModelPago("mesPago74", "mesPago74", true, false));
			columnsModelPago.push(getColumnModelPago("prestadorServicio.idPrestador73", "prestadorServicio.idPrestador73", true, false,false));
			columnsModelPago.push(getColumnModelPago("numBenef", "numBenef", true, false,false));
			columnsModelPago.push(getColumnModelPago("numDias", "numDias", true, false,false));
			columnsModelPago.push(getColumnModelPago("tarifa", "tarifa", true, false,false));
			columnsModelPago.push(getColumnModelPago("numTarifas", "numTarifas", true, true,false));
			columnsModelPago.push(getColumnModelPago("total", "total", true, false,false));
			return columnsModelPago;
		};
		const getColumnsDefsPago = function () {
			return [ 
				{
					"targets": 2,
					"render": function(data, type, row, settings){
						
						return mesesArr[data] || '';						
					}
				},
				{
					"targets": 3,
					"className":"text-left",
					"render": function ( data, type, row, meta ) {
						if(row.prestadorServicio != null && row.prestadorServicio.idPrestador73 != null){
							return row.prestadorServicio.razonSocial73;
						}
						return '';
					}
				},
				{
					"targets": 4,
					"className":"text-right"
				},
				{
					"targets": 5,
					"className":"text-right",
					"render": function( data, type, row, meta ){
						const numero = Number(row.numDias);
					    
					    // Verificar si el valor es un número válido
					    if (isNaN(numero)) {
					        return valor; // Si no es un número, se devuelve el texto original sin cambios
					    }

					    // Formatear el número con puntos en los miles
					    return numero.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");

					}
				},
				{
					"targets": 6,
					"className":"text-right",
					"render": function ( data, type, row, meta ) {
						if(row.numTarifas != undefined && row.numTarifas != null && row.numTarifas > 1){
							return $.rup.i18n.app.pagos.varios;
						}
						const formateador = new Intl.NumberFormat('es-ES', {
							  minimumFractionDigits: 2, // Mínimo de decimales
							  maximumFractionDigits: 7, // Máximo de decimales
							});

							// Formatear el número
							const valorFormateado = formateador.format(row.tarifa);

						return `${valorFormateado} €`;
					}
				},
				{
					"targets": 7,
					"className":"text-right"
				},
				{
					"targets": 8,
					"className":"text-right",
					"render": function ( data, type, row, meta ) {
						return row.totalStr;
					}
				}
			];
		};
		
		const getCustomButtonsPago = function () {
			let customButonsPago = [];	
			
			const FN_verDetallePago = {};
			FN_verDetallePago.test  = function(){
				const selectedRows  = $("#pagos").rup_table("getSelectedRows");	
				// 1 seleccionado
				if ( selectedRows.length == undefined) {
					return true;
				}
				return false;
			};
			const anadirPagoButton = {
					text: function () {
						return $.rup.i18n.app.botonera.anadirPago;
					},
					id: 'anadirPago', // Campo obligatorio si se quiere usar desde el contextMenu
					className: 'btn-material-primary-high-emphasis table_toolbar_btnView',
					icon: "mdi-plus",
					displayRegex: /^\d+$/,			
					insideContextMenu: true, 
					//type: 'view',
					action: function () {
						openDialogAnadirPago();
					}				
			};	
			customButonsPago.push(anadirPagoButton);
			
			const verDetalleButton = {
					text: function () {
						return $.rup.i18n.app.botonera.verDetallePago;
					},
					id: 'verDetallePago', // Campo obligatorio si se quiere usar desde el contextMenu
					className: 'btn-material-primary-high-emphasis table_toolbar_btnView',
					icon: "mdi-playlist-edit",
					displayRegex: FN_verDetallePago,			
					insideContextMenu: true, 
					//type: 'view',
					action: function () {
						$.ajax({
							url: $.rup.CTX_PATH + "pagos/obtenerTarifas",
							type: "POST",
							contentType: "application/json",
							dataType: 'json',
							data: JSON.stringify($("#pagos").rup_table("getSelectedRows")),
							beforeSend: function(){
								reiniciarTablaTarifasDiarias();
								reiniciarTablaTerritorio();
								Ad74aUtils.bloquearInterfaz();
							},
							success: function(data){
								procesarDatosTarifas(JSON.parse(data));
								openDialogVerDetalle();
							},
							complete: function(){
								Ad74aUtils.desBloquearInterfaz();
					       	}
						});
					}		
			};
			customButonsPago.push(verDetalleButton);
						
			return customButonsPago;
		};

		$("#pagos").rup_table({
			colReorder: {
				fixedColumnsLeft: 1
			},
			colModel: getColumnsModelPago(),
			columnDefs: getColumnsDefsPago(),
			primaryKey: "idPago74",
	     	filter:{
	  	  		id:"pagos_filter_form",
	  	  		filterToolbar:"pagos_filter_toolbar",
	  	  		collapsableLayerId:"pagos_filter_fieldset",
	  	  		showHidden: true
	     	},
	     	createTooltipBody: false,// No muestra el tooltip automático de las columnas de la tabla
	     	noEdit: true,
	     	responsive:false,
	   		select: {
	       		activate: true,
	       		deleteDoubleClick:true
	   		},
			buttons: {
				activate: true,
				blackListButtons: ['addButton', 'editButton', 'cloneButton', 'deleteButton', 'copyButton', 'pdfButton', 'odsButton', 'csvButton'],
				myButtons: getCustomButtonsPago()
			},
			columnOrderArrows: {
			    showOnlyActive: false,
			    display: 'inline'
			},
			order: [[1, "desc"], [2, "desc"]]
		});
	}
	
	const openDialogAnadirPago = () =>{
		var propertiesAnadirPago={
				feedback:$("#pagos_add_feedback"),
				liveCheckingErrors: false,
				showFieldErrorAsDefault: true,
				showErrorsInFeedback: true,
				showFieldErrorsInFeedback: true,
				rules:{
				  "anyoPago74":{required:true},
			      "mesPago74":{required:true}
			 }
		};
		$("#pagos_add_form").rup_validate(propertiesAnadirPago);
		
		let anadir_pago_dialog = $("#pagos_add_div");
		let anadir_pago_dialog_feedback = $("#pagos_add_feedback");
		
		try {
			anadir_pago_dialog.rup_dialog("destroy");
		} catch (error) {}
		
		anadir_pago_dialog = $("#pagos_add_div");
		anadir_pago_dialog_feedback = $("#pagos_add_feedback");
		
		anadir_pago_dialog_feedback.rup_feedback (
			{
			  type: "ok",
			  block: false,
			}
		);
		
		anadir_pago_dialog.rup_dialog( {
			type: $.rup.dialog.DIV,
			autoOpen: false,
			modal: true,
			closeOnEscape: true,
			resizable: true,
			//width:600,
			//height:300,
			dialogClass: 'custom_small_dialog',
			title: $.rup.i18n.app.botonera.anadirPago,
			buttons : [ 
                {
                    text:$.rup.i18n.app.botonera.aceptar,
                    id:"anadir_pago_guardar_btn",
                    class: 'btn-material btn-material-primary-high-emphasis',
                    click:  () => {   
                    	$('#pagos_add_div').rup_dialog('close');
                    	Ad74aUtils.openConfirmDialog(
                			'dialogConfirm', 
							$.rup.i18n.app.dialog.title.confirmarAnadirPago, 
							$.rup.i18n.app.dialog.label.confirmarAnadirPago,  
							[
								{
					                text: $.rup.i18n.app.botonera.cancelar,
					                click: function () { 
					                    $('#dialogConfirm').rup_dialog('close'); 
					                },
					                btnType: $.rup.dialog.LINK
					            },
					            {
					            	text: $.rup.i18n.app.botonera.aceptar,
						            id: "btnAnadirPago",
						            class: 'btn-material btn-material-primary-high-emphasis',
						            click: function () { 
						            	$('#dialogConfirm').rup_dialog('close');
						            	if ($("#pagos_add_form").valid()){
				                    		let url = $('#pagos_add_form').attr("action");
				                    		let data = $("#pagos_add_form").rup_form("formToJson");
				                    		
					                    	$.rup_ajax({
					    			            url: url,
					                    	    type: "POST",
					    			            contentType: "application/json",   
				                    			data: JSON.stringify(data), 
					    			            success: function (data){    			            	
					    			            	$("#pagos").rup_table("reload");
					    			            	anadir_pago_dialog.rup_dialog("close");
					    			            	Ad74aUtils.desBloquearInterfaz();
					    			            	$("#rup_feedback_pagos").rup_feedback("option", "delay", "3000");
					    			            	$("#rup_feedback_pagos").rup_feedback('set', $.rup.i18n.app.feedback.operacionOK, "ok"); 
//					    			            	$.rup_messages("msgOK", {
//					    			            		title: "Info",
//					    			            		message:  $.rup.i18n.app.feedback.operacionOK,
//					    			            		buttonText: $.rup.i18nParse($.rup.i18n.app, "message.acceptOK")
//					    			            	});
					    			            },
					    			            beforeSend: function(){
					    			            	Ad74aUtils.cerrarFeedbacks();
					    			            	Ad74aUtils.bloquearInterfaz();
					    						},
					    			            error:function(data){
					    			            	Ad74aUtils.desBloquearInterfaz();
					    			            	console.log(data);
					    			            	$("#rup_feedback_pagos").rup_feedback("option", "delay", null);
					    			            	$("#rup_feedback_pagos").rup_feedback('set', data.responseText, "error");
					    			            }
					    			        });
				                    	}
						            }
					            }
							]
                    	);
 					}
                 },
				{
					text : $.rup.i18n.app.botonera.cancelar,
					id:"anadir_pago_cancelar_btn",
					click : () => {
						anadir_pago_dialog.rup_dialog("close");
					},
					btnType : $.rup.dialog.LINK
				}
			],
			open: function(){
				const pago = $("#pagos").rup_table("getSelectedRows");  
			},
			close: function(){
				anadir_pago_dialog_feedback.rup_feedback("close");
			}		    
		});
		
		Ad74aUtils.number('#anyoPago74_add_div',{
			"type": "integer",
			"enteros":4,
			"decimals":0
		});

//		Ad74aUtils.number('#mesPago74_add_div',{
//			"type": "integer",
//			"enteros":2,
//			"decimals":0,
//			"minVal":1,
//			"maxVal":12
//		});
		
		$("#mesPago74_add_div").rup_combo({	
			source: $.rup.CTX_PATH + 'combo/meses',
			sourceParam: {label: "descripcion", value:"value"},
			loadFromSelect:false,
			width: 'auto',
	        ordered: false,
			customClasses: ['select-material'],
			rowStriping: true,
			onLoadSuccess: function(obj){							
				$("#mesPago74_add_div").rup_combo("select", $("#mesPago74_add_div").val());
				$("#mesPago74_add_div").rup_combo("refresh");				
			}
		});
		
		anadir_pago_dialog.rup_dialog("open");
		const divTitleDialogAnadirPago = $("div[aria-describedby='pagos_add_div'] .ui-dialog-title");
		divTitleDialogAnadirPago.html('<i>'+$.rup.i18n.app.botonera.anadirPago+'</i>');
		anadir_pago_dialog_feedback.rup_feedback("close");
	}
	
	const openDialogVerDetalle = () => {
		Ad74aUtils.hacerPlegable();
		
		if( $("#plegable_tarifaDiaria").hasClass("plegado")){									
			$("#plegable_tarifaDiaria").toggleClass("plegado");
			$("#plegable_tarifaDiaria").prev().children().removeClass("mdi-plus-box-outline");
			$("#plegable_tarifaDiaria").prev().children().addClass("mdi-minus-box-outline");
		}
			
		let pago_dialog = $("#pagos_detail_div");
		let pago_dialog_feedback = $("#pagos_detail_feedback");
		
		try {
			pago_dialog.rup_dialog("destroy");
		} catch (error) {}
		
		pago_dialog = $("#pagos_detail_div");
		pago_dialog_feedback = $("#pagos_detail_feedback");
		
		pago_dialog_feedback.rup_feedback (
			{
			  type: "ok",
			  block: false,
			}
		);	
		
		pago_dialog.rup_dialog( {
			type: $.rup.dialog.DIV,
			autoOpen: false,
			modal: true,
			closeOnEscape: true,
			resizable: true,
			//width:600,
			height:600,
			dialogClass: 'custom_mid_dialog',
			title: FN_generarTitulo($("#pagos").rup_table("getSelectedRows")),
			buttons : [ 
				{
					text: $.rup.i18n.app.botonera.cancelar,
					id:"pago_cancelar_btn",
					click: () => {
						pago_dialog.rup_dialog("close");
					},
					btnType : $.rup.dialog.LINK
				},
				{
					text: $.rup.i18n.app.botonera.beneficiarios,
		            id:"pago_beneficiarios_excel_btn",
		            class: 'btn-material btn-material-primary-high-emphasis mdi mdi-file-excel',
		            click:  () => {
		            	$.rup_ajax({
					        url: $.rup.CTX_PATH + "pagosbeneficiario/excelReport",
		              	    type: "POST",
				            contentType: "application/json",
				            data: JSON.stringify($('#pagos_detail_form').rup_form("formToJson")),     
				            xhrFields:{
				                responseType: 'blob'
				            },
				            success: function (data, status, xhr){
				            	//Si se han devuelto datos
								if (data != null && data != "FAIL") {
									var contentType = xhr.getResponseHeader("Content-Type"); //Obtenemos el tipo de los datos
									var filename = xhr.getResponseHeader("Content-disposition");//Obtenemos el nombre del fichero a desgargar
									filename = filename.substring(filename.lastIndexOf("=") + 1) || "download";

									//Tras el procesado anterior creamos un objeto blob
									var blob = new Blob([data], {type: contentType});
								    
									// IE 10+
									if (navigator.msSaveBlob) {
										navigator.msSaveBlob(blob, filename);
									} else {
										//Descargamos el fichero obtenido en la petición ajax
										var url = URL.createObjectURL(blob);
										var link = document.createElement('a');
										link.href = url;
										link.download = filename;
										document.body.appendChild(link);
										link.click();
										document.body.removeChild(link);
									}
								}
								Ad74aUtils.desBloquearInterfaz();
				            },
				            beforeSend: function(){
				            	Ad74aUtils.cerrarFeedbacks();
				            	Ad74aUtils.bloquearInterfaz();
							},
				            error:function(data){
				            	Ad74aUtils.desBloquearInterfaz();
						    	pago_dialog_feedback.rup_feedback('set', data.responseText, "error");
				            }
		              	});
		            }
				},
				{
		            text: $.rup.i18n.app.botonera.recalcular,
		            id:"pago_recalcular_btn",
		            class: 'btn-material btn-material-primary-high-emphasis mdi mdi-calculator',
		            click:  () => {
		            	Ad74aUtils.openConfirmDialog(
							'dialogConfirm', 
							$.rup.i18n.app.dialog.title.confirmarRecalcularPago, 
							$.rup.i18n.app.dialog.label.confirmarRecalcularPago,  
							[
					        	{
					                text: $.rup.i18n.app.botonera.cancelar,
					                click: function () { 
					                    $('#dialogConfirm').rup_dialog('close'); 
					                },
					                btnType: $.rup.dialog.LINK
					            },
						        {
						            text: $.rup.i18n.app.botonera.aceptar,
						            id: "btnRecalcularPagos",
						            class: 'btn-material btn-material-primary-high-emphasis',
						            click: function () { 
						            	$('#dialogConfirm').rup_dialog('close');
						            	$.rup_ajax({
									        url: $('#pagos_detail_form').attr("action") + "/" + $("#pagos").rup_table("getSelectedRows").idPago74,
						              	    type: "POST",
								            contentType: "application/json",
								            success: function (data){
								            	$("#pagos").rup_table("reload");
								            	pago_dialog.rup_dialog("close");
								            	Ad74aUtils.desBloquearInterfaz();
								            	$.rup_messages("msgOK", {
				    			            		title: "Info",
				    			            		message:  $.rup.i18n.app.feedback.operacionOK,
				    			            		buttonText: $.rup.i18n.app.message.acceptOK				    			            	
				    			            		});
								            },
								            beforeSend: function(){
								            	Ad74aUtils.cerrarFeedbacks();
								            	Ad74aUtils.bloquearInterfaz();
											},
								            error:function(data){
								            	Ad74aUtils.desBloquearInterfaz();
										    	pago_dialog_feedback.rup_feedback('set', data.responseText, "error");
								            }
						              	});
						            }
						        }
					         ]
						);
					}
				}
			],
			open: function(){  
			},
			close: function(){
				pago_dialog_feedback.rup_feedback("close");
			}		    
		});

		$("#detallePagos_mesPago").val($("#pagos").rup_table("getSelectedRows").mesPago74);
		$("#detallePagos_anyoPago").val($("#pagos").rup_table("getSelectedRows").anyoPago74);
		$("#detallePagos_idPago").val($("#pagos").rup_table("getSelectedRows").idPago74);
		// Si es ultimo pago visualizar recalcular pago
		if ($("#detallePagos_mesPago").val() == ultimoMesPago && $("#detallePagos_anyoPago").val() == ultimoAnyoPago){
			$("#pago_recalcular_btn").show();
		}else{
			$("#pago_recalcular_btn").hide();
		}
		
		pago_dialog.rup_dialog("open");
		pago_dialog_feedback.rup_feedback("close");
	}
	
	function FN_generarTitulo(filaElegida){
		let tituloCompleto=$.rup.i18n.app.botonera.detallePago + ": ";
		if(filaElegida.anyoPago74!=null){
			tituloCompleto+=filaElegida.anyoPago74;
		}
		if(filaElegida.mesPago74!=null){
			tituloCompleto+= "-" + mesesArr[filaElegida.mesPago74];			
		}
		if(filaElegida.prestadorServicio.idPrestador73!=null && filaElegida.prestadorServicio.razonSocial73!=null){
			tituloCompleto+="-"+filaElegida.prestadorServicio.razonSocial73;
		}
     	return tituloCompleto;
	}
	
	const reiniciarTablaTarifasDiarias = () => {
		let theadHtml = "<tr><th rowspan='2' style='border-right: 1px solid #cfcfcf;'>"+$.rup.i18n.app.pagos.perfil+"</th><th colspan='2' style='width:50%'>"+$.rup.i18n.app.pagos.tarifaDiaria+"</th></tr>";
		theadHtml +="<tr class='secondary'><th></th></tr>";
		let tbodyHtml = "<tr class='odd'><td colspan='3' class='dataTables_empty' valign='top'>"+$.rup.i18n.app.pagos.noResult+"</td></tr>";
		
		$("#datosPorTarifa > thead").html(theadHtml);
		$("#datosPorTarifa > tbody").html(tbodyHtml);
	}
	
	const reiniciarTablaTerritorio = () => {

		let theadHtml = "<tr><th style='border-right: 1px solid #cfcfcf;'>"+$.rup.i18n.app.pagos.territorio+"</th><th>"+$.rup.i18n.app.pagos.numBeneficiarios+"</th><th>"+$.rup.i18n.app.pagos.numDias+"</th><th>"+$.rup.i18n.app.pagos.importeTotal+"</th></tr>";
		let tbodyHtml = "<tr class='odd'><td>"+$.rup.i18n.app.pagos.araba+"</td><td colspan='3'></td></tr>";
		tbodyHtml += "<tr class='even'><td>"+$.rup.i18n.app.pagos.bizkaia+"</td><td colspan='3' style='text-align: center' valign='top'>"+$.rup.i18n.app.pagos.noResult+"</td></tr>";
		tbodyHtml += "<tr class='odd'><td>"+$.rup.i18n.app.pagos.gipuzkoa+"</td><td colspan='3'></td></tr>";
		let tfootHtml = "<tr class='total'><th style='border-right: 1px solid #cfcfcf;'>"+$.rup.i18n.app.pagos.total+"</th><th></th><th></th><th></th></tr>";
		
		$("#datosPorTerritorio > thead").html(theadHtml);
		$("#datosPorTerritorio > tbody").html(tbodyHtml);
		$("#datosPorTerritorio > tfoot").html(tfootHtml);
	}
	function formatearConPuntos(valor) {
	    // Intentar convertir el valor a número
	    const numero = Number(valor);

	    // Verificar si el valor es un número válido
	    if (isNaN(numero)) {
	        return valor; // Si no es un número, retorna el valor original sin cambios
	    }
	
	    // Convertir el número a string y formatearlo con puntos en los miles
	    return numero.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
	}
	const procesarDatosTarifas = (data) => {
		// Tarifas diarias por nivel de soporte
		if (data.pagosTarifasDiarias.length != 0){
			// Cabecera
			let fechas = data.pagosTarifasDiarias[0]["fechas"];
			
			let theadHtml = "<tr><th rowspan='2' style='border-right: 1px solid #cfcfcf;'>"+$.rup.i18n.app.pagos.perfil+"</th><th colspan='"+fechas.length+"' style='width:75%'>"+$.rup.i18n.app.pagos.tarifaDiaria+"</th></tr>";
			theadHtml += "<tr class='secondary'>";
			
			for (let i = 0; i < fechas.length; i++){
				let diaInicio = "";
				let diaFin = "";
				if (typeof fechas[i].fechaInicio != "undefined"){
					diaInicio = fechas[i].fechaInicio.split('-')[2];
				}
				if (typeof fechas[i].fechaFin != "undefined"){
					diaFin = fechas[i].fechaFin.split('-')[2];
				}else if (typeof fechas[i].fechaInicio != "undefined"){
					diaFin = new Date(fechas[i].fechaInicio.split('-')[0], fechas[i].fechaInicio.split('-')[1] + 1, 0).getDate();
				}
				theadHtml += "<th>"+$.rup.i18n.app.pagos.fechasTarifa.replaceAll("{0}",diaInicio).replaceAll("{1}",diaFin)+"</th>";
			}
			theadHtml += "</tr>";
			$("#datosPorTarifa > thead").html(theadHtml);

			// Body
			let tbodyHtml = "";
			let dependencias = data.pagosTarifasDiarias[1]["dependencias"];
			for (let i = 0; i < dependencias.length; i++){
				if (i % 2 === 0) {
					tbodyHtml += "<tr class='odd'>";
				}else{
					tbodyHtml += "<tr class='even'>";
				}
				
				tbodyHtml += "<td>"+dependencias[i].dependencia+"</td>";
				
				let precios = dependencias[i]["precios"];
				for (let j = 0; j < precios.length; j++){
					let precio = precios[j] == null ? "-": precios[j];
					tbodyHtml += "<td class='text-right'>"+Ad74aUtils.valorFormatoMoneda(precio ,4)+"</td>";
				}
				tbodyHtml += "</tr>";
			}
			$("#datosPorTarifa > tbody").html(tbodyHtml);
		}
		
		// Tarifas por territorio
		if (data.pagosTarifasTerritorio.length != 0){
			// Cabecera
			let theadHtml = "<tr><th style='border-right: 1px solid #cfcfcf;'>"+$.rup.i18n.app.pagos.territorio+"</th><th>"+$.rup.i18n.app.pagos.numBeneficiarios+"</th><th>"+$.rup.i18n.app.pagos.numDias+"</th><th>"+$.rup.i18n.app.pagos.importeTotal+"</th></tr>";
			$("#datosPorTerritorio > thead").html(theadHtml);
			
			// Body y obtener total
			let tbodyHtml = "";
			let totalNumBeneficiarios = 0;
			let totalNumDias = 0;
			let totalImporteTotal = 0;
			for (let i = 0; i < data.pagosTarifasTerritorio.length; i++){
				if (i % 2 === 0) {
					tbodyHtml += "<tr class='odd'>";
				}else{
					tbodyHtml += "<tr class='even'>";
				}
				tbodyHtml += "<td>"+($.rup_utils.capitalizedLang() == "Es" ? data.pagosTarifasTerritorio[i].provinciaDescC : data.pagosTarifasTerritorio[i].provinciaDescE)+"</td>";
				tbodyHtml += "<td class='text-right' >"+ formatearConPuntos(data.pagosTarifasTerritorio[i].totalBeneficiarios) +"</td>";
				tbodyHtml += "<td class='text-right'>"+ formatearConPuntos(data.pagosTarifasTerritorio[i].totalDias) +"</td>";
				tbodyHtml += "<td class='text-right'>"+Ad74aUtils.valorFormatoMoneda(data.pagosTarifasTerritorio[i].totalImporte)+"</td>";
				tbodyHtml += "</tr>";
				
				totalNumBeneficiarios += Number(data.pagosTarifasTerritorio[i].totalBeneficiarios);
				totalNumDias += Number(data.pagosTarifasTerritorio[i].totalDias);
				totalImporteTotal += Number(data.pagosTarifasTerritorio[i].totalImporte);
			}

			$("#datosPorTerritorio > tbody").html(tbodyHtml);
			
			// Pie
			let tfootHtml = "<tr class='total'><th style='border-right: 1px solid #cfcfcf;'>"+$.rup.i18n.app.pagos.total+"</th>";
			tfootHtml += "<th>"+formatearConPuntos(totalNumBeneficiarios)+"</th>";
			tfootHtml += "<th>"+formatearConPuntos(totalNumDias)+"</th>";
			tfootHtml += "<th>"+Ad74aUtils.valorFormatoMoneda(totalImporteTotal)+"</th>";
			tfootHtml += "</tr>";
			$("#datosPorTerritorio > tfoot").html(tfootHtml);
		}
	}
});
