//@ sourceURL=tabDocumentos.js
/*!
 * Copyright 2021 E.J.I.E., S.A.
 *
 * Licencia con arreglo a la EUPL, Versión 1.1 exclusivamente (la "Licencia");
 * Solo podrá usarse esta obra si se respeta la Licencia.
 * Puede obtenerse una copia de la Licencia en
 *
 *      http://ec.europa.eu/idabc/eupl.html
 *
 * Salvo cuando lo exija la legislación aplicable o se acuerde por escrito,
 * el programa distribuido con arreglo a la Licencia se distribuye "TAL CUAL",
 * SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ni expresas ni implícitas.
 * Véase la Licencia en el idioma concreto que rige los permisos y limitaciones
 * que establece la Licencia.
 */

jQuery(function($) {
	window.initRupI18nPromise.then(function () {
		//Mensaje de carga mientras la pestaña esta vacía de html
		const loadingDiv = `<div class="row">
				<div class="col col-sm text-center">
				<div class="col col-sm text-center processing-container">
				<span class="loading">${$.rup.i18n.base.rup_blockUI.cargando}</span>
			</div>
		</div>`;
		
		$("#loadingDocu").append(loadingDiv);	
		$("."+idioma).show();
	
		var filterCombo = function(item, properties){
			var defaultProperties = {
				width: 'auto',			
				ordered: true,
				rowStriping: true,
				customClasses: ['select-material']
			}
			item.rup_combo($.extend(properties, defaultProperties));
		}
		
		
		$("#rup_feedback_tabDocumentos").rup_feedback(
				{
					type: "ok",
					block: false,
					delay: 3000,
					fadeSpeed: 600,
				}
			);	

		//Dialog
		$('#buscarEntregadoDialog').rup_dialog({
	        type: $.rup.dialog.DIV,
	        autoOpen: false,
	        modal: true,
	        resizable: true,
	        specificLocation:'documentosLayer', /// !! IMPORTANTE !! Si se trata de un dialogo en una pestaña es necesario ponerlo para que no se queden elementos fuera de la pestaña que den problemas al volver a cargar la misma.
	        minHeight:200,       
	        minWidth:850,        
	        title: $.rup.i18n.app.botonera.buscarDocuEntregado,
	        buttons: [
	            {
	                text: $.rup.i18n.app.botonera.cancelar,
	                click: function () { 
	                    $('#buscarEntregadoDialog').rup_dialog('close'); 
	                },
	                btnType: $.rup.dialog.LINK
	                
	            },
	        {
	            text: $.rup.i18n.app.botonera.aceptar,
	            click: function () { 
	                
	            }
	            
	        }

	        ] 
	    });	
		
		$.buscarEntregado = function(documentType,senderId){		
			_buscadorDocuEntregado(documentType,senderId);
//			$('#buscarEntregadoDialog').rup_dialog("open");
		}
		
		var _buscadorDocuEntregado = function(documentType, senderID){		
			 $('#buscarEntregadoDialog').rup_dialog("open");
			 let ajaxDat = {
			          'url': '../../documentos/searchDocumentsDossier',
			  	       'type': 'POST',  	     
			  	       'contentType': 'application/json',
			  	       'dataType': 'json',  	    
			  	       'data': 	$.toJSON( {
	                      "documentType": documentType,
	                      "senderID":senderID
	                   }),
	                   beforeSend: function(){
	 					  Ad74aUtils.bloquearInterfaz();

	                   },
			  	       success: function (data) {		  
			  	    	$("#codDossier_filter_table_from").val(JSON.stringify(data));
			  	    	$("#documentosDossier").rup_table("reload");
//			  	    	_cargarTablaDossierDocus(data);
			  	    	
			  	       },
			  	       error: function (error) {

			  	       },
			  	       complete: function(){
			  	    	 Ad74aUtils.desBloquearInterfaz();
			  	       }
			   	}; 
			    $.rup_ajax(ajaxDat);
			
		}	
		
		//Dialog
		$('#verFirmantesDialog').rup_dialog({
	        type: $.rup.dialog.DIV,
	        autoOpen: false,
	        modal: true,
	        resizable: true,
	        minHeight:200,       
	        minWidth:850,       
	        specificLocation:'documentosLayer', /// !! IMPORTANTE !! Si se trata de un dialogo en una pestaña es necesario ponerlo para que no se queden elementos fuera de la pestaña que den problemas al volver a cargar la misma.
	        title: $.rup.i18n.app.botonera.verFirmantes,
	        buttons: [
	        {
	            text: $.rup.i18n.app.botonera.aceptar,
	            click: function () { 
	            	 $('#verFirmantesDialog').rup_dialog('close'); 
	            }
	            
	        }
	
	        ] 
	    });	
		
		
		//Al volver a la misma pestaña, el dialog se queda inconsitente (Esta en memoria JS pero no en el HTML) Se comprueba y borra para que funcione correctamente el rup_dialog
		if($('div[aria-describedby=tipificar_documentos_dialog]').length == 1){
			$('div[aria-describedby=tipificar_documentos_dialog]').remove();
		}
		$("#tipificar_documentos_dialog").rup_dialog( {
				autoOpen: false,
				closeOnEscape: true,
				resizable: true,
				width:700,
				height:500,		
				position: {my: "center top", at: "center top", of: window},
				classes: {"ui-dialog":"fixed-dialog"},
				dialogClass:"col-xs-12 mt-1",
				type: $.rup.dialog.DIV,
				title: $.rup.i18n.app.botonera.tipificar,
				modal: true,
				buttons : [ 
	                {
	                    text:$.rup.i18n.app.botonera.aceptar,
	                    id:"tipificar_documentosEntrada_btn",
	                    click:  () => {
	                    	var documentoSel = $("#documentosExpAportados").rup_table("getSelectedRows");
	                    	$.rup_ajax({
	    			            url: $.rup.CTX_PATH +"documentos/changeRoleDocument",
	                    	    type:"POST",
	    			            contentType: "application/json",
	    			            dataType: "json",
	    			            data:$.toJSON( {
	    			            	 "roleIDOld":  documentoSel.roleID,
	    		                      "roleID":  $("#tipoID_tipificar_documentos").rup_combo("getRupValue"),
	    		                      "proceedingID":documentoSel.proceedingID,
	    		                      "oidDocumento":documentoSel.oidDocumento
	    		                   }),             	
	    			            success: function (data){
	    			            	_recuperarDocumentos(false, true, false, false);
	    			            	$("#tipificar_documentos_dialog").rup_dialog("close");
	    			            	Ad74aUtils.desBloquearInterfaz();
	    			            	$("#rup_feedback_tabDocumentos").rup_feedback('set', $.rup.i18n.app.feedback.titpificarDocuOK, "ok"); 
	    			            	
	    			            },
	    			            beforeSend: function(){
	    							  Ad74aUtils.cerrarFeedbacks();
	    							  Ad74aUtils.bloquearInterfaz();
	    						},
	    			            error:function(data){
	    					    	  Ad74aUtils.desBloquearInterfaz();
	    					    	  $("#rup_feedback_tabDocumentos").rup_feedback('set', data.responseJSON, "error");
	    					    	
	    			            }
	    			        });
	                    	
	 					}
	                 },
					{
						text : $.rup.i18n.app.botonera.cancelar,
						click : () => {
							$("#tipificar_documentos_dialog").rup_dialog("close");
						},
						btnType : $.rup.dialog.LINK
					}
				],
				open: function(){
					var documento = $("#documentosExpAportados").rup_table("getSelectedRows"); 
					
					filterCombo($("#tipoID_tipificar_documentos"),{
						loadFromSelect:false, 
						source: $.rup.CTX_PATH + 'combo/getRolDocuments?procedureID='+documento.procedureID+'&idActionTelem='+documento.telActionID+'&roleID='+documento.roleID,
						sourceParam: {value: "value", label:idioma == 'es' ? "descripcionEs" : "descripcionEu"},
						  onLoadSuccess: function(){
								$("#tipoID_tipificar_documentos").rup_combo("setRupValue", documento.roleID);
						  }
					});	
	            
				},
				close: function(){
					$("#tipoID_tipificar_documentos").rup_combo("destroy");
				}		    
			});	
		
		
		
		
		$("#documentoExpApor_filter_form").hide();
		$("#documentoExpCons_filter_form").hide();
		$("#documentoExpGen_filter_form").hide();
		
		_recuperarDocumentos(true);
		
	});		
	
	$.downloadDocument = function(oid, nombreDoc){		
		if (oid != null
				&& oid != ''){
			var url = $.rup.CTX_PATH+"documentos/downloadDocument/"+oid+"?nombreDoc="+nombreDoc;
			window.open($.rup_utils.setNoPortalParam(encodeURI(url)));	
		}
	}
	
	
	$.downloadTrace = function(oidTrace){	 
		window.open($.rup_utils.setNoPortalParam($.rup.CTX_PATH+"documentos/getTraceCert/"+oidTrace));		
    };

	var _recuperarDocumentos = function(inicial, reloadApor, reloadCons, reloadGen){
		 let ajaxData = {
				 'url': '../../documentos/documentosExpedienteSol',
			       'type': 'GET',  	  
			       'data': { "idExpediente00": idExpediente00},
			       'contentType': 'application/json',
			       'dataType': 'json',  	       
			       success: function (data) {   	 		
		  	    	$("#docuExpedienteContainer").show();
		  	    	$("#loadingDocu").hide();
		  	    	
		  	    	
		  	    	$("#codApor_filter_table_from").val(JSON.stringify(data["APOR"]));
		  			$("#codCons_filter_table_from").val(JSON.stringify(data["CONS"]));
		  			$("#codGen_filter_table_from").val(JSON.stringify(data["GEN"]));
		  			$("#documentosLayer").removeClass("d-none");
		  			
		  			if(inicial){
		  				_crearTablaDossierDocus();
		  				_cargarTablas();
		  			}else{	
		  				_recargarTablas(reloadApor,reloadCons,reloadGen);
		  			}

		  	       },
		  	       error: function (error) {

		  	       }
		   	}; 
		    $.rup_ajax(ajaxData);
	}
	
		
		var getColumnsModelAport = function(){			
			var getColumnModel = function(name, index, editable, hidden,visible){
				return {
					name: name,
					index: index,
					editable: editable,
					hidden: hidden,
					visible:visible
				}
			};	
			var columnsModel = [];		
			columnsModel.push(getColumnModel( "descripcionEs",  "descripcionEs", false, false,idioma == 'es'));
			columnsModel.push(getColumnModel( "descripcionEu",  "descripcionEu", false, false,idioma == 'eu'));		
			columnsModel.push(getColumnModel( "nombreDocumento",  "nombreDocumento", false, false,true));
			columnsModel.push(getColumnModel( "estado", "estado", false, false,true));
			columnsModel.push(getColumnModel( "fechaDocumentoTimestamp",  "fechaDocumentoTimestamp", false, false,true));
			return columnsModel;
		}
		

	var getColumnsModel = function(){
		var getColumnModel = function(name, index, editable, hidden,visible){
			return {
				name: name,
				index: index,
				editable: editable,
				hidden: hidden,
				visible:visible
			}
		};	
		var columnsModel = [];	
		columnsModel.push(getColumnModel( "descripcionEs",  "descripcionEs", false, false,idioma == 'es'));
		columnsModel.push(getColumnModel( "descripcionEu",  "descripcionEu", false, false,idioma == 'eu'));		
		columnsModel.push(getColumnModel( "nombreDocumento",  "nombreDocumento", false, false,true));		
		columnsModel.push(getColumnModel( "fechaDocumentoTimestamp",  "fechaDocumentoTimestamp", false, false,true));
		columnsModel.push(getColumnModel( "invocationTimestamp",  "invocationTimestamp", false, false,true));
		columnsModel.push(getColumnModel( "invocationResult",  "invocationResult", false, false,true));
		return columnsModel;
	};
	
	var getColumnsModelGen = function(){			
		var getColumnModel = function(name, index, editable, hidden,visible){
			return {
				name: name,
				index: index,
				editable: editable,
				hidden: hidden,
				visible:visible
			}
		};	
		var columnsModel = [];
		columnsModel.push(getColumnModel( "descripcionEs",  "descripcionEs", false, false,idioma == 'es'));
		columnsModel.push(getColumnModel( "descripcionEu",  "descripcionEu", false, false,idioma == 'eu'));	
		columnsModel.push(getColumnModel( "nombreDocumento",  "nombreDocumento", false, false,true));
		columnsModel.push(getColumnModel( "estado", "estado", false, false,true));
		columnsModel.push(getColumnModel( "fechaDocumentoTimestamp",  "fechaDocumentoTimestamp", false, false,true));
		columnsModel.push(getColumnModel( "numFirmas", "numFirmas", false, false,true));
		return columnsModel;
	}
	
	var getColumnsDefs = function(){
		var columnsDefs = [
			{ "targets": 0,
    		   "orderable":true,    		   
       			"width":'45%'	   
    		},    			
		    { "targets": 1,
    		    "render": function(data, type, rowData, settings){			           
	    		 if(rowData.iopTraceID){
	    			 return "<a href='javascript:$.downloadTrace(\"" + rowData.iopTraceID + "\");'>" + data + "</a>";			   
	    		 }else if(rowData.oidDocumento){
	    			 return "<a href='javascript:$.downloadDocument(\"" + rowData.oidDocumento + "\",\""+rowData.nombreDocumento+"\");'>" + data + "</a>";			   
	    		 }else{
	    			 return data;
	    		 }	        	
    		    },
         		"orderable":true,    		   
       			"width":'12%'	 	
		      },
		      { "targets": 2,
	       		  "orderable":false,    		   
	       			"width":'9%'	 
	       	
	       	  },
		      { "targets": 3,
	       		  "orderable":true,    		   
	       			"width":'9%'	 
	       	
	       	  }
	       	  ,
		      { "targets": 4,
	       		  "orderable":false,    		   
	       			"width":'8%',
	       			"render":function(data, type, rowData, settings){
	       				if(data){
	         				return data;
	         			}else{
	         				return "";
	         			}	
	       				
	       			}
	       	
	       	  }
	       		
		   ];
		return columnsDefs;
	};
	
	var getColumnsDefsAport = function(){
		var columnsDefs = [
			{ "targets": 0,
    		   "orderable":true,    		   
      			"width":'40%'	 	   
    		}, 
    		{ "targets": 1,
    		    "render": function(data, type, rowData, settings){			           
	    		 if(rowData.iopTraceID){
	    			 return "<a href='javascript:$.downloadTrace(\"" + rowData.iopTraceID + "\");'>" + data + "</a>";			   
	    		 }else if(rowData.oidDocumento){
	    			 return "<a href='javascript:$.downloadDocument(\"" + rowData.oidDocumento + "\",\""+rowData.nombreDocumento+"\");'>" + data + "</a>";			   
	    		 }else if(rowData.organoEntregado){
	    			 return $.rup.i18n.app.documentos.organoEntregado+" "+rowData.organoEntregado+"<br>"+$.rup.i18n.app.documentos.tipoEntregado+" "+rowData.tipoEntregado+"<br>"+$.rup.i18n.app.documentos.fechaEntregado+" "+rowData.fechaEntregado;
	    		 }else{
	    			 return data;
	    		 }	        	
    		    },
         		"orderable":true,    		   
       			"width":'30%'	 	
		      },
		      { "targets": 2,
	       		  "orderable":false,
	       		 "render": function(data, type, rowData, settings){			           
	       		   if(data=="APOR"){
	    			   return  $.rup.i18n.app.tabsDocumentos.docuEstadoAportado;
	    		   }else if(data == "ENTREGADO"){	    			
	    			  return "<a href='javascript:$.buscarEntregado(\"" + rowData.roleID + "\",\"" + rowData.senderID + "\");'><i class='mdi mdi-file-search-outline' style='margin-right:5px;'></i>"+$.rup.i18n.app.tabsDocumentos.docuEstadoEntregado + "</a>";
	    		   }else{
	    			   return "";
	    		   }
	       		 },    		   
	       			"width":'10%'	 
		      },
		      { "targets": 3,
	       		  "orderable":true,    		   
	       			"width":'10%'	 
	       	 }
	       		
		   ];
		return columnsDefs;
	};
	
	var getColumnsDefsGen = function(){
		var columnsDefs = [
			{ "targets": 0,
    		   "orderable":true,    		   
      			"width":'40%'	 	   
    		},
		    { "targets": 1,
    		    "render": function(data, type, rowData, settings){
	    		 if(rowData.iopTraceID){
	    			 return "<a href='javascript:$.downloadTrace(\"" + rowData.iopTraceID + "\");'>" + data + "</a>";			   
	    		 }else if(rowData.oidDocumento){
	    			 return "<a href='javascript:$.downloadDocument(\"" + rowData.oidDocumento + "\",\""+rowData.nombreDocumento+"\");'>" + data + "</a>";			   
	    		 }else{
	    			 return data;
	    		 }	        	
    		    },
         		"orderable":true,    		   
       			"width":'30%'	 	
		      },
		      { "targets": 2,
	       		  "orderable":false,    		   
	       			"width":'8%',
	       			"render": function(data, type, rowData, settings){			           
	   	    		 if(rowData.estado == "VIGENTE"){
	   	    			 return  $.rup.i18n.app.documentos.vigente;
	   	    		 }else{
	   	    			 return  $.rup.i18n.app.documentos.anulado;
	   	    		 }        	
	       		    }
	       	
	       	  },
		      { "targets": 3,
	       		  "orderable":true,    		   
	       			"width":'7%'	 
	       	
	       	  },
		      { "targets": 4,
	       		  "orderable":false,    		   
	       			"width":'5%',
	       			"render": function(data, type, rowData, settings){	           
		   	    		
		   	    			 return  rowData.numFirmas+"/"+rowData.numFirmasReq;
		   	    		     	
		       		    }
	       	
	       	  }
	       		
		   ];
		return columnsDefs;
	};
	
	
	var _iopCall = function(authorizationID,proceedingID,roleID){		
		 let ajaxDat = {
		          'url': '../../documentos/iopCall',
		  	       'type': 'POST',  	     
		  	       'contentType': 'application/json',
		  	       'dataType': 'json',  	    
		  	       'data': 	$.toJSON( {
                       "authorizationID": authorizationID,
                       "proceedingID":proceedingID,
                       "idExpediente00": idExpediente00,
                       "roleID": roleID
                    }),
                    beforeSend: function(){
  					  Ad74aUtils.bloquearInterfaz();
                    },
		  	       success: function (result) {		  	    	 
		  	    	_recuperarDocumentos(false, false, true, false);
		  	       },
		  	       error: function (error) {
		  	    	 $("#rup_feedback_tabDocumentos").rup_feedback('set',error.responseJSON, "error");
		  	       },
		  	       complete: function(){
		  	    	 Ad74aUtils.desBloquearInterfaz();
		  	       }
		   	}; 
		    $.rup_ajax(ajaxDat);
	} 
		
	var _recargarTablas = function(aportados, consentimiento, generados){
		if(aportados){
			$("#documentosExpAportados").rup_table("reload");
		}
		if(consentimiento){
			$("#documentosExpConsentimiento").rup_table("reload");
		}
		if(generados){
			$("#documentosExpGenerados").rup_table("reload");
		}	
	}
	
	var _pintarTablaFirmantes = function(firmantes){   	 
  	  var table_firmantes = $("<table></table>")
       	.attr({id:"tablaFirmantes"}).addClass("tableFit table-striped table-bordered table-material dataTable dtr-column")					                 
       	.appendTo($('#verFirmantesDialogContent'));

  	  var tbody_firmantes = $("<tbody></tbody>")		                 	               
       	.appendTo(table_firmantes);
  	 
  	  var idFirmanteTH = $("<th></th>")		
  	  	.html($.rup.i18n.app.documentos.firmas.idFirmante)
     		.appendTo(tbody_firmantes);
	  	 
	  	 var nomFirmanteTH = $("<th></th>")				
	  	  	.html($.rup.i18n.app.documentos.firmas.nomFirmante)
     		.appendTo(tbody_firmantes);
	  	 
	  	 var fechaFirmaTH = $("<th></th>")			
	  	   	.html($.rup.i18n.app.documentos.firmas.fechaFirma)
     		.appendTo(tbody_firmantes);
	   
	  	 var estadoTH = $("<th></th>")				
	  	   		.html($.rup.i18n.app.documentos.firmas.estado)
     		.appendTo(tbody_firmantes);
	  	 
  	   $.each ($.parseJSON(firmantes), function( index, firmante ) {

        	 var firmanteTR = $("<tr></tr>")
     		.attr({id:"firmanteRow"+index})
     		.appendTo(tbody_firmantes);

        	var idFirmanteTD = $("<td></td>")
            		.attr({id:"idFirmante"})
            		.html("<span>"+firmante.idFirmante+"</span>")
            		.appendTo(firmanteTR);

        	var nomFirmanteTD = $("<td></td>")
    		.attr({id:"nomFirmante"})
    		.html("<span>"+firmante.nomFirmante+"</span>")
    		.appendTo(firmanteTR);
        	
       	var fechaFirmaTD = $("<td></td>")
    		.attr({id:"fechaFirma"})
    		.html("<span>"+firmante.fechaFirma+"</span>")
    		.appendTo(firmanteTR);
       	
       	var estadoFirma = firmante.estado=="FIRMADO"?$.rup.i18n.app.documentos.firmas.firmado:$.rup.i18n.app.documentos.firmas.pendiente;
       	var estadoTD = $("<td></td>")
    		.attr({id:"estado"})
    		.html("<span>"+estadoFirma+"</span>")
    		.appendTo(firmanteTR);
  	 });
	}
	
	var _cargarTablas = function(){
		
		let configTableDocumentosExpAportados = {
				colModel: getColumnsModelAport(),
				columnDefs:  getColumnsDefsAport(),
				noEdit: true,
				order: [[3, "desc"],[0, "desc"]], 
				filter:{
		  	  		id: "documentoExpApor_filter_form",
		  	  		filterToolbar: "documentoExpApor_filter_toolbar",
		  	  		collapsableLayerId: "documentoExpApor_filter_fieldset",
		  	  		showHidden: true
		     	},
		     	select: {
		       		activate: true,
		       		deleteDoubleClick:true
		   		},
		     	
		   		rowGroup:{
	        		startRender: function (rows, group ) {
	        			
	        			 return "<b>"+group +"</b>";
	        			
	               },
	        	    dataSrc: 'telActionName'
	        	  },
	        	  columnOrderArrows: {
	  			    showOnlyActive: false,
	  			    display: 'inline'
	  			}
			}
		if(!isSoloLecturaSolicitud){
			configTableDocumentosExpAportados.buttons = {
				activate: true,
				contextMenu: true,
				blackListButtons: ['reportsButton','addButton', 'editButton', 'cloneButton', 'deleteButton'],
				myButtons: [
				
					{
						text: function () {
							return $.rup.i18n.app.botonera.tipificar;
						},
						
						id: 'tipificar', // Campo obligatorio si se quiere usar desde el contextMenu
						className: 'btn-material-primary-high-emphasis table_toolbar_btnView',
						icon: "mdi-file-send",
						// Se muestra siempre que sea un numero mayor a 0
						displayRegex : /^[1-9][0-9]*$/,
						insideContextMenu: true, 
						type: 'view',
						action: function (e, dt) {						
							$("#tipificar_documentos_dialog").rup_dialog("open");
						}			
					}
				]			
			}
		}
		
		$("#documentosExpAportados").rup_table(configTableDocumentosExpAportados);	
	
		let configTablaDocumentosExpConsentimiento = {
				colModel: getColumnsModel(),
				columnDefs:  getColumnsDefs(),
				noEdit: true,
				order: [[2, "desc"],[0, "desc"]], 
				filter:{
		  	  		id: "documentoExpCons_filter_form",
		  	  		filterToolbar: "documentoExpCons_filter_toolbar",
		  	  		collapsableLayerId: "documentoExpCons_filter_fieldset",
		  	  		showHidden: true
		     	},
		     	select: {
		       		activate: true,
		       		deleteDoubleClick:true
		   		},
				rowGroup:{
	        		startRender: function (rows, group ) {
	        			 return "<b>"+group +"</b>";	
	               },
	               dataSrc: 'telActionName'
	        	  },
	        	  columnOrderArrows: {
	  			    showOnlyActive: false,
	  			    display: 'inline'
	  			}
			};

		if(!isSoloLecturaSolicitud && ((expedienteJSON.idProcedimiento00 != idProcedimientoINFORME)  || (expedienteJSON.idProcedimiento00 != idProcedimientoBAJA) || ( expedienteJSON.deOficio == constanteNODeOficio))){
			configTablaDocumentosExpConsentimiento.buttons = {
						activate: true,
						contextMenu: true,
						blackListButtons: ['reportsButton','addButton', 'editButton', 'cloneButton', 'deleteButton'],
						myButtons: [
							{
								text: function () {
									return $.rup.i18n.app.botonera.callIOP;
								},
								id: 'callIOPBtn', // Campo obligatorio si se quiere usar desde el contextMenu
								className: 'btn-material-primary-high-emphasis table_toolbar_btnView',
								icon: "mdi-cloud-search",
								custom:true,	
								insideContextMenu: true, // Independientemente de este valor, sera 'false' si no tiene un id definido
								type : 'init',		
								displayRegex:true,
								action: function (e, dt) {
									let selectedRow = $("#documentosExpConsentimiento").rup_table("getSelectedRows");
									let authorizationID = selectedRow.authorizationID;
									let proceedingID = selectedRow.proceedingID;
									let roleID = selectedRow.roleID;
									if(authorizationID != null && authorizationID != '' && authorizationID != undefined){
										_iopCall(authorizationID,proceedingID,roleID);
									}else{
										if($("#documentosExpConsentimiento").rup_table("getContext").aoData.length > 0){
											alert($.rup.i18n.app.errores.errordocumentos);
										}
//										else{
//											//Lanzar todos
//											_iopCallAll();
//										}
									}			
								}
							}
					]	
			};
		}
		$("#documentosExpConsentimiento").rup_table(configTablaDocumentosExpConsentimiento);	
		
		$('#documentosExpConsentimiento').on('tableButtonsAfterToolbarInit', function (event, ctx) {//siempre el boton deshabilitado al inicio y se va a comprobar si tiene permisos
			$('#callIOPBtn').prop('disabled', true);
			if (seOpone != '1'){
				$('#callIOPBtn').prop('disabled', false);
			}
			
		});
		
		/*$('#documentosExpConsentimiento').on("click",function(ctx) {
			
			if($('#documentosExpConsentimiento').rup_table("getSelectedIds").length==0){
				$("#callIOPBtn").prop('disabled', true);
			}else{
				var docu = $('#documentosExpConsentimiento').rup_table("getSelectedRows"); 
				if(docu.conServicioIOP){
					
					$("#callIOPBtn").prop('disabled', false);
				
				}else{
					$("#callIOPBtn").prop('disabled', true);
				}
			}
		});*/
		let configTablaDocumentosExpGenerados = {
				
//				defaultOrder:false,
				colModel: getColumnsModelGen(),
				columnDefs:  getColumnsDefsGen(),
				noEdit: true,
				order: [[3, "desc"],[0, "desc"]], 
				filter:{
		  	  		id: "documentoExpGen_filter_form",
		  	  		filterToolbar: "documentoExpGen_filter_toolbar",
		  	  		collapsableLayerId: "documentoExpGen_filter_fieldset",
		  	  		showHidden: true
		     	},
		     	select: {
		       		activate: true,
		       		deleteDoubleClick:true
		   		},
				columnOrderArrows: {
				    showOnlyActive: false,
				    display: 'inline'
				}
		};
		if(!isSoloLecturaSolicitud){
			configTablaDocumentosExpGenerados.buttons = {
					activate: true,
					contextMenu: true,
					blackListButtons: ['reportsButton','addButton', 'editButton', 'cloneButton', 'deleteButton'],
					myButtons: [
					
						{
							text: function () {
								return $.rup.i18n.app.botonera.verFirmantes;
							},
							id: 'verFirmantesBtn', // Campo obligatorio si se quiere usar desde el contextMenu
							className: 'btn-material-primary-high-emphasis table_toolbar_btnView',
							icon: "mdi-account-search-outline",
							custom:true,
							insideContextMenu: true, // Independientemente de este valor, sera 'false' si no tiene un id definido
							type : 'init',
							action: function (e, dt) {
								
								var oidDocumento = $("#documentosExpGenerados").rup_table("getSelectedRows").oidDocumento; 	
								   $.ajax({
										url: $.rup.CTX_PATH + 'documentos/retrieveSignaturesInfo/'+ oidDocumento,
							             type:'GET',
							             beforeSend: function() {
							           	  Ad74aUtils.bloquearInterfaz();
							            	 $('#verFirmantesDialogContent').html("");
							            	
							             },
							             success: function(firmantes) {	
							             	  Ad74aUtils.desBloquearInterfaz();
							            	 $('#verFirmantesDialog').rup_dialog("open");
							            	 _pintarTablaFirmantes(firmantes);
							             },
							             error: function(xhr){
							              
							             },
							            complete: function(){

							            }
							         });
							}
						}
					]	
			};
		}
		
		$("#documentosExpGenerados").rup_table(configTablaDocumentosExpGenerados);	
		$('#documentosExpGenerados').on('tableButtonsAfterToolbarInit', function (event, ctx) {//siempre el boton deshabilitado al inicio
			$('#verFirmantesBtn').prop('disabled', true);
		});
		
		$('#documentosExpGenerados').on("click",function(ctx) {
			
			if($('#documentosExpGenerados').rup_table("getSelectedIds").length==0){
				$("#verFirmantesBtn").prop('disabled', true);
			}else{
				var docu = $('#documentosExpGenerados').rup_table("getSelectedRows"); 
				if(docu.numFirmas||docu.numFirmasReq){
					
					$("#verFirmantesBtn").prop('disabled', false);
				
				}else{
					$("#verFirmantesBtn").prop('disabled', true);
				}
			}
		});
		
	}
	  var _crearTablaDossierDocus  = function(){
	    	
	    	$("#documentosDossier").rup_table({
	    		colModel: getColumnsModelDossier(),
				columnDefs: getColumnsDefsDossier(), 		
				noEdit: true,
				order: [[1, "desc"]], 
				filter:{
		  	  		id: "documentoDossier_filter_form",
		  	  		filterToolbar: "documentoDossier_filter_toolbar",
		  	  		collapsableLayerId: "documentoDossier_filter_fieldset",
		  	  		showHidden: true
		     	}
				
			});	
	   	}
	  var getColumnsModelDossier = function(){			
			var getColumnModel = function(name, index, editable, hidden,visible){
				return {
					name: name,
					index: index,
					editable: editable,
					hidden: hidden,
					visible:visible
				}
			};	
			var columnsModel = [];
			columnsModel.push(getColumnModel( "nombreDocumento",  "nombreDocumento", false, false,true));
			columnsModel.push(getColumnModel( "fechaDocumentoTimestamp",  "fechaDocumentoTimestamp", false, false,true));
			return columnsModel;
		}
	    
		var getColumnsDefsDossier = function(){
			var columnsDefs = [

			    { "targets": 0,
	    		    "render": function(data, type, rowData, settings){			           
		    		
		    		 return "<a href='javascript:$.downloadDocument(\"" + rowData.oidDocumento + "\",\""+rowData.nombreDocumento+"\");'>" + rowData.nombreDocumento + "</a>";			   
		    		     	
	    		    },
	         		"orderable":true,    		   
	        		"width":'auto'	
//	        			,
//	        		    "orderData": [ 2, 4 ]
			      },		    
			      { "targets": 1,
		       		  "orderable":true,    		   
		        		"width":'auto'
//		        			,
//		        		"render": function(data, type, rowData, settings){			           
//		            		return 	rowData.fechaDocumentoTimestamp;
//		        		    }
		       	 }
		       		
			   ];
			return columnsDefs;
		};
	    
		
		var _cargarTablaDossierDocus = function(data){			
			$("#documentosDossier").DataTable().clear().draw();
			$("#documentosDossier").DataTable().rows.add(data);
			$("#documentosDossier").DataTable().draw();			
		}

});
