
jQuery(function ($) {
    initRupI18nPromise.then(function () {
		initFilter();
		initTable();
		$('#copagoscargosmensuales_filter_cleanButton').unbind("click");
		$('#copagoscargosmensuales_filter_cleanButton').bind("click",()=>{
			$('#copagoscargosmensuales_filter_form')[0].reset();
			$('#idTerritorio_copagoscargosmensuales_filter_table').rup_combo("refresh");
			$('#anyoDesde_copagoscargosmensuales_filter_table').rup_combo("refresh");
			$('#mesDesde_copagoscargosmensuales_filter_table').rup_combo("refresh");
			$('#estado_copagoscargosmensuales_filter_table').rup_combo("refresh");
			$('#idMotivo_copagoscargosmensuales_filter_table').rup_combo("refresh");
			$('#cuentasErroneas_copagoscargosmensuales_filter_table').rup_combo("refresh");
		});
		
		$("#copagoscargosmensuales_filter_cleanButton").click(()=>{

			$('#copagoscargosmensuales_filter_form')[0].reset();
			$('#idTerritorio_copagoscargosmensuales_filter_table').rup_combo("refresh");
			$('#anyoDesde_copagoscargosmensuales_filter_table').rup_combo("refresh");
			$('#mesDesde_copagoscargosmensuales_filter_table').rup_combo("refresh");
			$('#estado_copagoscargosmensuales_filter_table').rup_combo("refresh");
			$('#idMotivo_copagoscargosmensuales_filter_table').rup_combo("refresh");
			$('#cuentasErroneas_copagoscargosmensuales_filter_table').rup_combo("refresh");
		});
		
		jQuery.validator.addMethod("obligatorioUnFilter", function(value, element,a) {
			let numidendifVal = $('#numIdentif_copagoscargosmensuales_filter_table').val();
			let nombreVal = $('#nombreSolicitante_filter_table').val();
			let ape1Val = $('#apellido1Solicitante_filter_table').val();
			let ape2Val = $('#apellido2Solicitante_filter_table').val();
			let idTerritorioVal = $('#idTerritorio_copagoscargosmensuales_filter_table').val();
			let anyoDesdeVal = $('#anyoDesde_copagoscargosmensuales_filter_table').val();
			let mesDesdeVal = $('#mesDesde_copagoscargosmensuales_filter_table').val();
			let fecCargoDesdeVal = $('#fCargoDesde_copagoscargosmensuales_filter_table').val();
			let fecCargoHastaVal = $('#fCargoHasta_copagoscargosmensuales_filter_table').val();
			let estadoVal = $('#estado_copagoscargosmensuales_filter_table').val();
			let idMotivoVal = $('#idMotivo_copagoscargosmensuales_filter_table').val();
			let cuentasErroneasVal = $('#cuentasErroneas_copagoscargosmensuales_filter_table').val();
			if(numidendifVal=='' && nombreVal=='' && ape1Val =='' && ape2Val == '' && idTerritorioVal=='' && (anyoDesdeVal=='' || anyoDesdeVal==undefined) && (mesDesdeVal=='' || mesDesdeVal==undefined) && fecCargoDesdeVal=='' && fecCargoHastaVal=='' && estadoVal=='' && idMotivoVal=='' && cuentasErroneasVal==''){
				$('#rup_feedback_copagoscargosmensuales').rup_feedback("option", "delay", null);
				$("#rup_feedback_copagoscargosmensuales").rup_feedback('set', $.rup.i18n.app.copagosCargosMensuales.insertarCampos, "error");
				ad74aUtils.limpiarErroresValidacionEnFormulario("copagoscargosmensuales_filter_form");
				return false;
			}
			
				return true;
			
				
										
		 },$.rup.i18n.app.errores.errorTipoIdentificador);
		
		$("#copagoscargosmensuales_filter_form").rup_validate({
		    liveCheckingErrors: false,
		    showFieldErrorAsDefault: true,
		    showErrorsInFeedback: true,
		    showFieldErrorsInFeedback: true,
		    rules:{
		    	"identificador":{obligatorioUnFilter:true},
		    	"nombre":{obligatorioUnFilter:true},
		    	"apellido1":{obligatorioUnFilter:true},
		    	"apellido2":{obligatorioUnFilter:true},
		    	"idTerritorio":{obligatorioUnFilter:true},
		    	"anyo":{obligatorioUnFilter:true},
		    	"mes":{obligatorioUnFilter:true},
		    	"anyoHasta":{obligatorioUnFilter:true},
		    	"mesHasta":{obligatorioUnFilter:true},
		    	"estado":{obligatorioUnFilter:true},
		    	"idMotivo":{obligatorioUnFilter:true},
		    	"cuentasErroneas":{obligatorioUnFilter:true},
		    	
		    	"fCargoDesde":{date:true,obligatorioUnFilter:true},
		    	"fCargoHasta":{date:true,obligatorioUnFilter:true},
		    	"prueba":{obligatorioUnFilter:true}
		    	
		    },
		messages: {       prueba: "El campo es obligatorio."}
		
		});
		
		$("#copagoscargosmensuales_filter_form [ruptype='date']").blur(function(elem) { 

			if(!$(elem.target).valid()){
	            $(elem.target).val('')
	        }

		})
	});
	
	const initFilter = () => {
		$("#idTerritorio_copagoscargosmensuales_filter_table").rup_combo({	
			loadFromSelect:true,
			width: 'auto',
	        ordered: true,
			blank: '',
			customClasses: ['select-material'],
			rowStriping: true
		});
		
		$.rup_date({
			//yearRange: 'c-100:c+0',
	        from: "fCargoDesde_copagoscargosmensuales_filter_table",
	        to: "fCargoHasta_copagoscargosmensuales_filter_table",
	        mask: 'dd/mm/yyyy',
			showButtonPanel : true,
			showOtherMonths : true,
			noWeekend : true
	     });
		
		$("#estado_copagoscargosmensuales_filter_table").rup_combo({
			loadFromSelect:true,
			width: 'auto',
	        ordered: true,
			blank: '',
			customClasses: ['select-material'],
			rowStriping: true
		});
		
		$("#idMotivo_copagoscargosmensuales_filter_table").rup_combo({
			source: $.rup.CTX_PATH + 'combo/motAnuCobro',
			sourceParam: {label: "descripcion", value:"idMotAnuCobro37"},
			loadFromSelect:false,
			width: 'auto',
	        ordered: true,
			blank: '',
			customClasses: ['select-material'],
			rowStriping: true
		});
		
		$("#cuentasErroneas_copagoscargosmensuales_filter_table").rup_combo({
			loadFromSelect:true,
			width: 'auto',
	        ordered: true,
			blank: '',
			customClasses: ['select-material'],
			rowStriping: true
		});
		$("#anyoDesde_copagoscargosmensuales_filter_table").rup_combo({	
			source: $.rup.CTX_PATH + 'combo/anyosCopagos',
			sourceParam: {label: "descripcion", value:"value"},
			loadFromSelect:false,
			width: 'auto',
	        ordered: true,
			blank: '',
			customClasses: ['select-material'],
			rowStriping: true
		});
		
		$("#mesDesde_copagoscargosmensuales_filter_table").rup_combo({
			parent: ["anyoDesde_copagoscargosmensuales_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']
		});

		
	}
	
	const initTable = () => {
		
		const getColumnsModelCopago = function(){
			const getColumnModelCopago = function (name, index, editable, hidden, orderable) {
				return {
					name: name,
					index: index,
					editable: editable,
					hidden: hidden,
					orderable: orderable
				}
			};
			let columnsModelCopago = [];
			columnsModelCopago.push(getColumnModelCopago("idLiquidacion", "idLiquidacion", false, true, false));
			columnsModelCopago.push(getColumnModelCopago("idSolicitante", "idSolicitante", false, true, false));
			columnsModelCopago.push(getColumnModelCopago("identificador", "identificador", true, false));
			columnsModelCopago.push(getColumnModelCopago("nombre", "nombre", true, false));
			columnsModelCopago.push(getColumnModelCopago("idTerritorio", "idTerritorio", true, false));
			columnsModelCopago.push(getColumnModelCopago("idMensualidad", "idMensualidad", true, false));
			columnsModelCopago.push(getColumnModelCopago("refLiquidacion", "refLiquidacion", false, true, false));
			columnsModelCopago.push(getColumnModelCopago("refLiquidacion", "refLiquidacion", true, false));
			columnsModelCopago.push(getColumnModelCopago("fCargo", "fCargo", true, false));
			columnsModelCopago.push(getColumnModelCopago("importe", "importe", true, false));
			columnsModelCopago.push(getColumnModelCopago("estado", "estado", true, false));
			columnsModelCopago.push(getColumnModelCopago("idMotivo", "idMotivo", true, false));
			columnsModelCopago.push(getColumnModelCopago("anyo", "anyo", true, true));
			columnsModelCopago.push(getColumnModelCopago("mes", "mes", true, true));
			columnsModelCopago.push(getColumnModelCopago("fecModifIban", "fecModifIban", true, false));
			return columnsModelCopago;
		};
		const getColumnsDefsCopago = function () {
			return [ 
				{
					"targets": 3,
					"render": function(data, type, row, settings){			           
	    		    	if(row != null && row.idSolicitante != null && row.identificador != null){
	    		    		const url = '../solicitantes/detail/' + row.idSolicitante;
	    		    		return `<a href='javascript:window.open("${url}", "_blank");'>${row.identificador}</a>`;						   
	   	    		 	} 
	    		    	return "";
					}
				},
				{
					"targets": 4,
					"render": function ( data, type, row, meta ) {
						if(row.nombre != undefined && row.nombre != null){
							return row.nombreCompleto;
						}
						return '';
					}
				},
				{
					"targets": 5,
					"render": function (data, type, row, meta){
						if (row.idTerritorio != undefined && row.idTerritorio != null){
							if      ( data == TERRITORIO_SIPCA_ARABA )   	{return TERRITORIO_SIPCA_ARABA_DESC;
							}else if( data == TERRITORIO_SIPCA_GIPUZKOA )	{return TERRITORIO_SIPCA_GIPUZKOA_DESC;
							}else if( data == TERRITORIO_SIPCA_BIZKAIA )	{return TERRITORIO_SIPCA_BIZKAIA_DESC;
							}
						}
						return "";
					}
				},
				{
					"targets": 6,
					"render": function (data, type, row, meta){
						if (row.mes != undefined && row.mes != null){
							let mes = row.mes;
							if      ( mes == eneroId )     {return row.anyo + " - " + eneroDesc;
							}else if( mes == febreroId )	{return row.anyo + " - " + febreroDesc;
							}else if( mes == marzoId )		{return row.anyo + " - " + marzoDesc;
							}else if( mes == abrilId )		{return row.anyo + " - " + abrilDesc;
							}else if( mes == mayoId )		{return row.anyo + " - " + mayoDesc;
							}else if( mes == junioId )		{return row.anyo+ " - " + junioDesc;
							}else if( mes == julioId )		{return row.anyo + " - " + julioDesc;
							}else if( mes == agostoId )	{return row.anyo + " - " + agostoDesc;
							}else if( mes == septiembreId ){return row.anyo + " - " + septiembreDesc;
							}else if( mes == octubreId )	{return row.anyo + " - " + octubreDesc;
							}else if( mes == noviembreId )	{return row.anyo + " - " + noviembreDesc;
							}else if( mes == diciembreId )	{return row.anyo + " - " + diciembreDesc;
							}							
						}
						return "";
					}
				},
				{
					"targets": 8,
					"render": function (data, type, row, meta){
						if (row.idLiquidacion != undefined && row.idLiquidacion != null){
							const url = URL_AE01B + '/liquidaciones/consultar/' + row.idLiquidacion;
	    		    		return `<a href='javascript:window.open("${url}", "_blank");'>${row.refLiquidacion}</a>`;	
						}
						return "";
					}
				},
				{
					"targets": 10,
					"className":"text-right",
					"render": function ( data, type, row, meta ) {
						if(row.importe != undefined && row.importe != null){
							return row.importeStr;
						}
						return "";
					}
				},
				{
					"targets": 11,
					"render": function(data, type, row, settings){	
						if      ( data == ESTADO_LIQ_PEND_COBRO )   {return ESTADO_LIQ_PEND_COBRO_DESC;
						}else if( data == ESTADO_LIQ_ANULADA )		{return ESTADO_LIQ_ANULADA_DESC;
						}else if( data == ESTADO_LIQ_COBRO_PROV )	{return ESTADO_LIQ_COBRO_PROV_DESC;
						}else if( data == ESTADO_LIQ_COBRO_DEF )	{return ESTADO_LIQ_COBRO_DEF_DESC;
						}else if( data == ESTADO_LIQ_VIA_APREMIO )	{return ESTADO_LIQ_VIA_APREMIO_DESC;
						}
						return  '';
					}
				},
				{
					"targets": 12,
					"render": function ( data, type, row, meta ) {
						if(row.motivoDescripcion != undefined){
							return row.motivoDescripcion;
						}
						return '';
					}
				}
			];
		};
		
		const getCustomButtonsCopago = function () {
			let customButonsCopago = [];	
			
			const FN_relanzarCargo = {};
			FN_relanzarCargo.test  = function(){
				let activar = false;
				const selectedRows  = $("#copagoscargosmensuales").rup_table("getSelectedRows");	
				// 1 o mas seleccionado
				if (selectedRows.length == undefined){
					if (selectedRows.estado != null && selectedRows.estado == 2 && selectedRows.exoneracion!=null && selectedRows.exoneracion==0){
						return true;
					}
				}else if (selectedRows.length > 1){
					let listaActivarBtn = true;
					for(var i=0; i < selectedRows.length ; i++){
						if (selectedRows[i].estado != null && selectedRows[i].estado != 2 && selectedRows[i].exoneracion!=null && selectedRows[i].exoneracion!=1){
							listaActivarBtn = false;
					    }
					}
					return listaActivarBtn;
				}else{
					activar = false;
				}
				
				return activar;
			};
			
			const relanzarCargoButton = {
					text: function () {
						return $.rup.i18n.app.botonera.relanzarCargos;
					},
					id: 'relanzarCargo', // Campo obligatorio si se quiere usar desde el contextMenu
					className: 'btn-material-primary-high-emphasis table_toolbar_btnView',
					icon: "mdi mdi-rocket",
					displayRegex: FN_relanzarCargo,			
					insideContextMenu: true, 
					//type: 'view',
					action: function () {
						data = $('#copagoscargosmensuales').rup_table("getSelectedRows");
						listaCop = [];
						if(data.length!=undefined){
							for (let i = 0; i<data.length; i++){
								const listCopagosCargosMensuales= {
										'mensualidad':data[i]['mensualidad'],
										'refLiquidacion':data[i]['refLiquidacion']
								};
								listaCop.push(listCopagosCargosMensuales);
							}
						}
						else{
							const listCopagosCargosMensuales= {
									'mensualidad':data['mensualidad'],
									'refLiquidacion':data['refLiquidacion']
							};
							listaCop.push(listCopagosCargosMensuales);
						}
								 $.rup_ajax({
						              url: $.rup.CTX_PATH +"copagoscargosmensuales/relanzarCargos",
						              type: "POST",
										'contentType': 'application/json',
										'dataType': 'json',
							            data: JSON.stringify(listaCop),
										beforeSend: function() {
											Ad74aUtils.bloquearInterfaz();
						                },
						                complete: function() {
						                	Ad74aUtils.desBloquearInterfaz();
						                },
						              success: function (data){
						            	  $("#rup_feedback_copagoscargosmensuales").rup_feedback("option", "delay", null);
						            	  $("#rup_feedback_copagoscargosmensuales").rup_feedback('set', $.rup.i18n.app.copagosCargosMensuales.textoRelanzarCopagos, "ok");
						            	  
						              },
						              error: function(error){
						            	  $("#rup_feedback_copagoscargosmensuales").rup_feedback('set', error.responseText, "error");
						              }
						        });
							
					}		
			};
			customButonsCopago.push(relanzarCargoButton);
						
			return customButonsCopago;
		};

		$("#copagoscargosmensuales").rup_table({
			colReorder: {
				fixedColumnsLeft: 1
			},
			colModel: getColumnsModelCopago(),
			columnDefs: getColumnsDefsCopago(),
			primaryKey: "idLiquidacion",
			loadOnStartUp:false,
	     	filter:{
	  	  		id:"copagoscargosmensuales_filter_form",
	  	  		filterToolbar:"copagoscargosmensuales_filter_toolbar",
	  	  		collapsableLayerId:"copagoscargosmensuales_filter_fieldset",
	  	  		showHidden: true
	     	},
	     	createTooltipBody: false,// No muestra el tooltip automático de las columnas de la tabla
	     	noEdit: true,
	   		select: {
	       		activate: true,
	       		deleteDoubleClick:true
	   		},
	   		multiSelect: {
	   			style: 'multi'
	   		},
			buttons: {
				activate: true,
				blackListButtons: ['addButton', 'editButton', 'cloneButton', 'deleteButton', 'copyButton', 'pdfButton', 'odsButton', 'csvButton', 'reportsButton'],
				myButtons: getCustomButtonsCopago()
			},
			columnOrderArrows: {
			    showOnlyActive: false,
			    display: 'inline'
			},
			order: [[14, "desc"],[13, "desc"],[3, "asc"]]
		});
		
		$("#copagoscargosmensuales").on('tableAfterInit', function (event, ctx) {
			$('#copagoscargosmensuales_filter_cleanButton').unbind("click");
    		$('#copagoscargosmensuales_filter_cleanButton').bind("click",()=>{
    			$('#copagoscargosmensuales_filter_form')[0].reset();
    			$('#idTerritorio_copagoscargosmensuales_filter_table').rup_combo("refresh");
    			$('#anyoDesde_copagoscargosmensuales_filter_table').rup_combo("refresh");
    			$('#mesDesde_copagoscargosmensuales_filter_table').rup_combo("refresh");
    			$('#estado_copagoscargosmensuales_filter_table').rup_combo("refresh");
    			$('#idMotivo_copagoscargosmensuales_filter_table').rup_combo("refresh");
    			$('#cuentasErroneas_copagoscargosmensuales_filter_table').rup_combo("refresh");
    		});
					});
		
	}
	
	

});
