//@ sourceURL=quejasreclamaciones.js
jQuery(function($){
	initRupI18nPromise.then(function() {
		prepareData();	
		initDialog();
		
		$("#quejasReclamaciones_filter_form").rup_validate({
		    liveCheckingErrors: false,
		    showFieldErrorAsDefault: true,
		    showErrorsInFeedback: true,
		    showFieldErrorsInFeedback: true,
		    rules:{
		    	"fechaQuejaDesde":{date:true},
		    	"fechaQuejaHasta":{date:true},
		    }
		});
		
		$("#quejasReclamaciones_filter_form [ruptype='date']").blur(function(elem) { 

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

		})
	});
	
	function prepareData(){
		
		$.rup_date({
			//yearRange: 'c-100:c+0',
	        from: "fechaQuejaDesde_filter_table",
	        to: "fechaQuejaHasta_filter_table",
	        mask: 'dd/mm/yyyy',
			showButtonPanel : true,
			showOtherMonths : true,
			noWeekend : true
	     });
		
		$.rup_date({
			//yearRange: 'c-100:c+0',
	        from: "fecQueja84_quejasreclamaciones_dialogo_table",
	        to: "fecQueja84_quejasreclamaciones_dialogo_table",
	        mask: 'dd/mm/yyyy',
			showButtonPanel : true,
			showOtherMonths : true,
			noWeekend : true
	     });
		
		$("#idMotivoQueja62_filter_table").rup_combo({
			rowStriping: true,
			source: $.rup.CTX_PATH + 'combo/maestroMotQueja',
			sourceParam: {label: "descEs62", value:"idMotivoQueja62"},
			width: 'auto',
			blank: '',
			customClasses: ['select-material']
		});
		
		$("#procedente84_filter_table").rup_combo({
			rowStriping: true,
			ordered: true,
			loadFromSelect:true,
			sourceParam: {label: "labelDesc", value:"id"},
			width: 'auto',
			blank: '',
			height: 'auto',
			customClasses: ['select-material']
		});
		
		$("#estado84_filter_table").rup_combo({
			rowStriping: true,
			ordered: true,
			loadFromSelect:true,
			sourceParam: {label: "labelDesc", value:"id"},
			width: 'auto',
			blank: '',
			height: 'auto',
			customClasses: ['select-material']
			
		});
		
		$("#idMotivoQueja62_quejasreclamaciones_detail_table").rup_combo({
			rowStriping: true,
			source: $.rup.CTX_PATH + 'combo/maestroMotQueja',
			sourceParam: {label: "descEs62", value:"idMotivoQueja62"},
			width: 'auto',
			blank: '',
			customClasses: ['select-material']
		});
		
		$("#procedente84_quejasreclamaciones_dialog_table").rup_combo({
			rowStriping: true,
			ordered: true,
			loadFromSelect:true,
			sourceParam: {label: "labelDesc", value:"id"},
			width: 'auto',
			blank: '',
			height: 'auto',
			customClasses: ['select-material']
		});
		
		$("#estado84_quejasreclamaciones_dialog_table").rup_combo({
			rowStriping: true,
			ordered: true,
			loadFromSelect:true,
			sourceParam: {label: "labelDesc", value:"id"},
			width: 'auto',
			blank: '',
			height: 'auto',
			customClasses: ['select-material'],
			change:function(){
				if($('#estado84_quejasreclamaciones_dialog_table').rup_combo("getRupValue")!='' && $('#estado84_quejasreclamaciones_dialog_table').rup_combo("getRupValue")==0){
					$('#tiempoResolucion84_quejasreclamaciones_dialog_table').val('');
					$('#tiempoResolucion84_quejasreclamaciones_dialog_table').prop("disabled",true);
				}else{
					$('#tiempoResolucion84_quejasreclamaciones_dialog_table').prop("disabled",false);
				}
			},
			onLoadSuccess: function(obj){
				if($('#estado84_quejasreclamaciones_dialog_table').rup_combo("getRupValue")!='' && $('#estado84_quejasreclamaciones_dialog_table').rup_combo("getRupValue")==0){
					$('#tiempoResolucion84_quejasreclamaciones_dialog_table').val('');
					$('#tiempoResolucion84_quejasreclamaciones_dialog_table').prop("disabled",true);
				}else{
					$('#tiempoResolucion84_quejasreclamaciones_dialog_table').prop("disabled",false);
				}
			}
		});
		
		
	
		
		
		
		let tableColModels = [	
				{ 	name: "idQueja84",
					index: "idQueja84",
					editable: true, 
					hidden: true
				},			
				{ 	name: "solicitantes.identificador01",
					index: "solicitantes.identificador01",
					editable: true, 
					hidden: false
				},			
				{ 	name: "solicitantes.nombreCompleto",
					index: "solicitantes.nombreCompleto",
					editable: true, 
					hidden: false
				},
				{ 	name: "fecqueja84",
					index: "fecqueja84",
					editable: true, 
					hidden: false
				},
				{ 	name: locale=='Es'?"maestroMotQueja.descEs62":'maestroMotQueja.descEu62',
					index: locale=='Es'?"maestroMotQueja.descEs62":'maestroMotQueja.descEu62',
					editable: true, 
					hidden: false
				},
				{ 	name: "procedenteStr",
					index: "procedenteStr",
					editable: true, 
					hidden: false
				},
				{ 	name: "estadoStr",
					index: "estadoStr",
					editable: true, 
					hidden: false
				},
				
				{ 	name: "tiempoResolucion84",
					index: "tiempoResolucion84",
					editable: true, 
					hidden: false
				},
				{ 	name: "observaciones84",
					index: "observaciones84",
					editable: true, 
					hidden: false
				},
				{ 	name: "falta84",
					index: "falta84",
					editable: true, 
					hidden: true
				},
				{ 	name: "usuAlta84",
					index: "usuAlta84",
					editable: true, 
					hidden: true
				},
				{ 	name: "fmodif84",
					index: "fmodif84",
					editable: true, 
					hidden: true
				},
				{ 	name: "usuModif84",
					index: "usuModif84",
					editable: true, 
					hidden: true
				}
				];
		let columnDefs = [ 
//			{
//				"target":2,
//				"render": function(data, type, row, settings){	
//					let nombreCompleto="";
//					if(row.solicitantes.nombre01!=null){
//						nombreCompleto+=row.solicitantes.nombre01;
//					}
//					if(row.solicitantes.apellido101!=null){
//						nombreCompleto+=" "+row.solicitantes.apellido101;
//					}
//					if(row.solicitantes.apellido201!=null){
//						nombreCompleto+=" "+row.solicitantes.apellido201;
//					}
//					
//					return nombreCompleto;
//			}
//			}
//			{
//				"targets": 5,
//				"render": function(data, type, row, settings){	
//					
//					if( data == PROCEDENTE_NO_PROCEDENTE_VAL ){
//						return  PROCEDENTE_NO_PROCEDENTE_DESC;
//					}else if( data == PROCEDENTE_SI_PROCEDENTE_VAL){
//						return  PROCEDENTE_SI_PROCEDENTE_DESC;
//					}
//					return  "";
//				},
//				"orderable": true
//			},
//			{
//				"targets": 6,
//				"render": function(data, type, row, settings){	
//					
//					if( data == ESTADO_PENDIENTE_VAL ){
//						return  ESTADO_PENDIENTE_DESC;
//					}else if( data == ESTADO_RESUELTA_VAL){
//						return  ESTADO_RESUELTA_DESC;
//					}
//					return  "";
//				},
//				"orderable": true
//			}
		];
		const misbotones = [
			]
		
		
		const btnCrearQueja ={
				text: function () {
					return $.rup.i18n.app.quejasYReclamaciones.btnAniadir;
				},
				id: 'btnCrearQueja', // Campo obligatorio si se
											// quiere usar desde el
											// contextMenu
				className: 'btn-material-primary-high-emphasis table_toolbar_btnView',
				icon: "mdi mdi-plus",
				displayRegex: /^\d+$/, // Se muestra siempre
												// que sea un numero
												// mayor a 0
				insideContextMenu: true, // Independientemente de
											// este valor, sera 'false'
											// si no tiene un id
											// definido
				type: 'view',
				action : function(e, dt, node, config) {
					$('#quejasreclamaciones_dialog_form').rup_form("clearForm");
					abrirDialogo("add");
								
				}
			};
		const btnEditar ={
				text: function () {
					return $.rup.i18n.app.quejasYReclamaciones.btnEditar;
				},
				id: 'btnEditarQueja', // Campo obligatorio si se
											// quiere usar desde el
											// contextMenu
				displayRegex: /^[1-9][0-9]*$/,
				className: 'btn-material-primary-high-emphasis table_toolbar_btnView',
				icon: "mdi mdi-playlist-edit",
				type: 'view',
				action : function(e, dt, node, config) {
					$('#quejasreclamaciones_dialog_form').rup_form("clearForm");
					abrirDialogo("edit");				
				}
			};
		const btnEliminar ={
				text: function () {
					return $.rup.i18n.app.quejasYReclamaciones.btnEliminar;
				},
				id: 'btnEliminarQueja', // Campo obligatorio si se
											// quiere usar desde el
											// contextMenu
				className: 'btn-material-primary-high-emphasis table_toolbar_btnView',
				icon: "mdi mdi-trash-can-outline",
				displayRegex: /^[1-9][0-9]*$/,
												// que sea un numero
												// mayor a 0
				insideContextMenu: true, // Independientemente de
											// este valor, sera 'false'
											// si no tiene un id
											// definido
				type: 'view',
				action : function(e, dt, node, config) {
					try {
						$("#quejasReclamaciones_dialog_feedback").rup_feedback("destroy");
					} catch (error) {}

					$("#quejasReclamaciones_dialog_feedback").rup_feedback(
						{
							type: "ok",
							block: false,
							delay: 3000,
							fadeSpeed: 600,
						}
					);
					var id=($('#quejasReclamaciones').rup_table('getSelectedRows')['idQueja84']);
					const ajaxData = {
							'url': $.rup.CTX_PATH +"quejasreclamaciones/"+id,
							'type': 'DELETE',
							'contentType': 'application/json',
							'dataType': 'json',
				            beforeSend: function() {
								Ad74aUtils.bloquearInterfaz();
			                },
			                complete: function() {
			                	Ad74aUtils.desBloquearInterfaz();
			                },
							success: function (data) {
								$('#dialogQuejasreclamaciones').rup_dialog('close');
				            	//$('#rup_feedback_quejasReclamaciones').rup_feedback("option", "delay", null);
				            	$('#rup_feedback_quejasReclamaciones').rup_feedback("set", $.rup.i18n.app.quejasYReclamaciones.deleteExitosa, "ok");
				            	$('#quejasReclamaciones').rup_table("reload");

							},
							error: function (error) {
								console.log(error.responseJSON)
							}
					}
					$.rup_ajax(ajaxData);				
				}
			};
		misbotones.push(btnCrearQueja);
		misbotones.push(btnEditar);
		misbotones.push(btnEliminar);
	
		$("#quejasReclamaciones").rup_table({
			colReorder: {
			 fixedColumnsLeft: 1
			}
			,colModel: tableColModels
			,columnDefs : columnDefs
			,primaryKey: "idQueja84"
			,filter:{
	  	  		id:"quejasReclamaciones_filter_form",
	  	  		filterToolbar:"quejasReclamaciones_filter_toolbar",
	  	  		collapsableLayerId:"quejasReclamaciones_filter_fieldset",
	  	  		showHidden: true
	     	}
			,noEdit : true
	   		,select: {
	       		activate: true
	   		}
			,seeker: {
				activate: true
			}
			,buttons: {
				activate: true,
				contextMenu: false,
				blackListButtons: ['addButton', 'editButton', 'cloneButton', 'copyButton','deleteButton','pdfButton', 'odsButton', 'csvButton'],
				myButtons:misbotones
			}
			,order: [[0, "asc"]]
		});
		
		const abrirDialogo = (oper) =>{
			const divTitleDialog = $("div[aria-describedby='dialogQuejasreclamaciones'] .ui-dialog-title");
			$('#nombreBeneficiario_quejasreclamaciones_dialog_table').prop("disabled",true);
			if(oper=="add"){
				$('#btnGuardarQueja').hide();
				$('#btnInsertQueja').show();
				divTitleDialog.html('<i>'+$.rup.i18n.app.quejasYReclamaciones.tituloDialogoAniadirQuejas+'</i>');
				$('#dialogQuejasreclamaciones').rup_dialog('open');	
			}
			if(oper=="edit"){
				$('#btnGuardarQueja').show();
				$('#btnInsertQueja').hide();
				divTitleDialog.html('<i>'+$.rup.i18n.app.quejasYReclamaciones.tituloDialogoEditarQuejas+'</i>');
				$('#dialogQuejasreclamaciones').rup_dialog('open');	
				recogerDatos();
			}
			
		}
		
		$("#buscarSolicitanteBtn").on('click', () => {
			 
			  if($('#dniSolicitante_quejasreclamaciones_dialog_table').val().length==9){
				  $.rup_ajax({
		              url: $.rup.CTX_PATH +"quejasreclamaciones/obtenerDatosBeneficiario/"+ $("#dniSolicitante_quejasreclamaciones_dialog_table").val(),
		              type: "POST",            
		              dataType: 'json',
		              contentType: 'application/json',
						beforeSend: function() {
							Ad74aUtils.bloquearInterfaz();
		                },
		                complete: function() {
		                	Ad74aUtils.desBloquearInterfaz();
		                },
		              success: function (data){
						if(data.idSolicitante01!=null){
							$('#nombreBeneficiario_quejasreclamaciones_dialog_table').val(data.nombreCompleto);
							$('#idSolicitante84_quejasreclamaciones_dialog_table').val(data.idSolicitante01);
							$("#buscarSolicitanteBtn i").fadeOut();
							$("#buscarSolicitanteBtn i").removeClass("mdi-magnify");
							$("#buscarSolicitanteBtn i").addClass("mdi-check verde");
							$("#buscarSolicitanteBtn i").fadeIn();
							
							setTimeout(() => {
								$("#buscarSolicitanteBtn i").fadeOut();
								$("#buscarSolicitanteBtn i").addClass("mdi-magnify");
								$("#buscarSolicitanteBtn i").removeClass("mdi-check verde");
								$("#buscarSolicitanteBtn i").fadeIn();
							}, 2000);
						}
						else{
							// Inicializar el feedback
							try {
								$("#quejasReclamaciones_dialog_feedback").rup_feedback("destroy");
							} catch (error) {}

							$("#quejasReclamaciones_dialog_feedback").rup_feedback(
								{
									type: "ok",
									block: false,
									delay: 3000,
									fadeSpeed: 600,
								}
							);
							$("#quejasReclamaciones_dialog_feedback").rup_feedback("set", $.rup.i18n.app.avisos.beneficiarioNoEncontrado, "error");
							$("#dniSolicitante_quejasreclamaciones_dialog_table").val('');
							$('#nombreBeneficiario_quejasreclamaciones_dialog_table').val('');
						}
						
		                   
		                    
		              },
		              error: function(error){ 
						alert("error")

		              }
		        });	 
			  }else{
				  $("#dniSolicitante_quejasreclamaciones_dialog_table").val(''); 
				  $('#nombreBeneficiario_quejasreclamaciones_dialog_table').val('');
			  }
			 
		  });
//		Ad74aUtils.number('#tiempoResolucion84_quejasreclamaciones_dialog_table',{
//			"type": "integer",
//			"enteros":9,
//			"decimals": 0,
//		});
		

	}
	
	const initDialog = () => {
		$('#dialogQuejasreclamaciones').rup_dialog({
	        type: $.rup.dialog.DIV,
	        autoOpen: false,
	        modal: true,
	        resizable: false,
	        dialogClass: 'custom_mid_dialog',
	        title: '<i>'+$.rup.i18n.app.quejasYReclamaciones.tituloDialogoQuejas+'</i>',
	        
	        buttons: [
	        	 {
		                text: $.rup.i18n.app.botonera.cancelar,
		                id: "rup_dialogCancelar",
		                click: function () { 
		                	$('#quejasreclamaciones_dialog_form').rup_form("clearForm");
		                	$('#idQueja84_quejasreclamaciones_dialog_table').val('');
		                    $('#dialogQuejasreclamaciones').rup_dialog('close'); 
		                },
		                btnType: $.rup.dialog.LINK
		                
		            },
		        {
		            text: $.rup.i18n.app.botonera.guardar,
		            id: "btnGuardarQueja",
		            click: function () { 
		            	actualizarQueja();
		            },
		            class: 'btn-material btn-material-primary-high-emphasis'
		            
		        },
		        {
		            text: $.rup.i18n.app.quejasYReclamaciones.btnAniadir,
		            id: "btnInsertQueja",
		            click: function () { 
		            	insertQueja();
		            },
		            class: 'btn-material btn-material-primary-high-emphasis'
		            
		        }
		       

	        ],
			open: () => {
				try {
					$("#quejasReclamaciones_dialog_feedback").rup_feedback("destroy");
				} catch (error) {}

				$("#quejasReclamaciones_dialog_feedback").rup_feedback(
					{
						type: "ok",
						block: false,
						delay: 3000,
						fadeSpeed: 600,
					}
				);
				// Añadir iconos a los botones del popup
				$("#btnGuardarQueja").html(`<i class="mdi mdi-content-save"></i> ${$.rup.i18n.app.botonera.guardar}`);
				$("#btnInsertQueja").html(`<i class="mdi mdi-file-plus"></i> ${$.rup.i18n.app.avisos.btnAnyadir}`);
				$("#quejasreclamaciones_dialog_form").rup_validate("resetElements");

			},
			close: function(event, ui) {
				$('#quejasreclamaciones_dialog_form').rup_form("clearForm");
				$('#idQueja84_quejasreclamaciones_dialog_table').val('');
			}
	    });
		
		$('#quejasreclamaciones_dialog_form').rup_validate({
			 feedback:$("#quejasReclamaciones_dialog_feedback"),
				liveCheckingErrors: false,
				showFieldErrorAsDefault: true,
				showErrorsInFeedback: true,
				showFieldErrorsInFeedback: true,
				rules:{
					"dniSolicitante":{required:true},
					"nombreBeneficiarioDialog":{required:true},
					"fecQueja84":{required:true},
					"maestroMotQueja.idMotivoQueja62":{required:true},
					"procedente84":{required:true},
					"estado84":{required:true},
					}
		 });
		
		const insertQueja = () =>{
			try {
				$("#quejasReclamaciones_dialog_feedback").rup_feedback("destroy");
			} catch (error) {}

			$("#quejasReclamaciones_dialog_feedback").rup_feedback(
				{
					type: "ok",
					block: false,
					delay: 3000,
					fadeSpeed: 600,
				}
			);
			if($('#quejasreclamaciones_dialog_form').valid()){
				
				let datos = {};
				datos = window.form2object($('#quejasreclamaciones_dialog_form')[0]);
				datos = JSON.stringify(datos);
				
				const ajaxData = {
						'url': $.rup.CTX_PATH +"quejasreclamaciones/add",
						'type': 'post',
						'contentType': 'application/json',
						'dataType': 'json',
			            data: datos,
			            beforeSend: function() {
							Ad74aUtils.bloquearInterfaz();
		                },
		                complete: function() {
		                	Ad74aUtils.desBloquearInterfaz();
		                },
						success: function (data) {
							$('#dialogQuejasreclamaciones').rup_dialog('close');
			            	//$('#rup_feedback_quejasReclamaciones').rup_feedback("option", "delay", null);
			            	$('#rup_feedback_quejasReclamaciones').rup_feedback("set", $.rup.i18n.app.quejasYReclamaciones.insertExitosa, "ok");
			            	$('#quejasReclamaciones').rup_table("reload");
			            	$('#quejasreclamaciones_dialog_form').rup_form("clearForm");

						},
						error: function (error) {
							console.log(error.responseJSON)
						}
				}
				$.rup_ajax(ajaxData);
			}
		};
		
		
		const actualizarQueja = () =>{
			try {
				$("#quejasReclamaciones_dialog_feedback").rup_feedback("destroy");
			} catch (error) {}

			$("#quejasReclamaciones_dialog_feedback").rup_feedback(
				{
					type: "ok",
					block: false,
					delay: 3000,
					fadeSpeed: 600,
				}
			);
			if($('#quejasreclamaciones_dialog_form').valid()){
				let datos = {};
				datos = window.form2object($('#quejasreclamaciones_dialog_form')[0]);
				datos = JSON.stringify(datos);
				
				const ajaxData = {
						'url': $.rup.CTX_PATH +"quejasreclamaciones/edit",
						'type': 'put',
						'contentType': 'application/json',
						'dataType': 'json',
			            data: datos,
			            beforeSend: function() {
							Ad74aUtils.bloquearInterfaz();
		                },
		                complete: function() {
		                	Ad74aUtils.desBloquearInterfaz();
		                },
						success: function (data) {
							$('#dialogQuejasreclamaciones').rup_dialog('close');
			            	//$('#rup_feedback_quejasReclamaciones').rup_feedback("option", "delay", null);
			            	$('#rup_feedback_quejasReclamaciones').rup_feedback("set", $.rup.i18n.app.quejasYReclamaciones.updateExitosa, "ok");
			            	$('#quejasReclamaciones').rup_table("reload");
			            	$('#quejasreclamaciones_dialog_form').rup_form("clearForm");

						},
						error: function (error) {
							console.log(error.responseJSON)
						}
				}
				$.rup_ajax(ajaxData);
				
			}
		}
		
	
}
	
	const recogerDatos =()=>{
		//llamada ajax
		var id=($('#quejasReclamaciones').rup_table('getSelectedRows')['idQueja84']);
		const url = $.rup.CTX_PATH +'quejasreclamaciones/'+id;
		let data = {};
		const ajaxData = {
				'url': url,
				'type': 'GET',
				'contentType': 'application/json',
				'dataType': 'json',
				beforeSend: function() {
					Ad74aUtils.bloquearInterfaz();
                },
                complete: function() {
                	Ad74aUtils.desBloquearInterfaz();
                	
                },
				success: function (data) {
					if (data != undefined) {
						$('#idQueja84_quejasreclamaciones_dialog_table').val(data.idQueja84);
						$('#dniSolicitante_quejasreclamaciones_dialog_table').val(data.solicitantes.identificador01);
						$('#idSolicitante84_quejasreclamaciones_dialog_table').val(data.solicitantes.idSolicitante01);
						$('#nombreBeneficiario_quejasreclamaciones_dialog_table').val(data.solicitantes.nombreCompleto);
						$('#fecQueja84_quejasreclamaciones_dialogo_table').val(data.fecQueja84);
						$('#procedente84_quejasreclamaciones_dialog_table').rup_combo("setRupValue",data.procedente84);
						$('#estado84_quejasreclamaciones_dialog_table').rup_combo("setRupValue",data.estado84);
						$('#tiempoResolucion84_quejasreclamaciones_dialog_table').val(data.tiempoResolucion84);
						$('#idMotivoQueja62_quejasreclamaciones_detail_table').rup_combo("setRupValue",data.maestroMotQueja.idMotivoQueja62);
						$('#observaciones84_quejasreclamaciones_dialog_table').val(data.observaciones84);
					}
					

				},
				error: function (error) {
					alert(error.responseJSON)
				}
		}
		$.rup_ajax(ajaxData);
	}
	Ad74aUtils.soloNumericos();
});