Vue.component('listadoConfiguracionesVentas', function(resolve) {
	axios.get('listadoConfiguracionesVentas/').then((template)=> {
		resolve({
			template: template.data,
			delimiters : [ "{[{", "}]}" ],
			data: function () {
				return {
					vacios: [undefined, null, ''], modeVer: false, tituloModal: '', 
					perPage: 10, currentPage: 1, buscador: '', camposVista: '', totalDatos:0,
					customizacion : [
						{key:'acciones', label:'Acciones', visible:false, sortable: false, tdClass:'text-center'},
						{key:'idSucursal__nombre', label:'Sucursal', visible : false, sortable: true, tdClass:'text-left'},
						{key:'idImpuesto__nombre', label:'Impuesto', visible : false, sortable: true},
						{key:'resolucionPrefijo', label:'Prefijo de Resolución', visible : false, sortable: true},
						{key:'porcentajeServicio', label:'Porcentaje del Servicio', visible : false, sortable: true, tdClass:'text-center'},

					], 
					objSucursales: [], objImpuestos: [], idSucursalGestion: '', 
					objListadoConfiguracionesVentas: [], 
					dicConfiguracion: { 
						id: '', sucursal: '', impuesto: '', porcentajeServicio: 0, resolucion:'',  existencia:false, cajero:'', resolucionPrefijo:'', 
						autenticacionCodigo: true, confirmarComanda: true, confirmarGuardarPedido: true, confirmarFinalizarPedido: true, 
						liberarMesaAutomaticamente: true, cerrarModalComandar: false, siempreComandar: false, autenticacionHuellaDigital: false, 
						solicitarAutenticacionSiempre: false, anulacionProducto: false, responsableIva: false, urlQr: '', cufe: '', firmaDigital: '', 
						enivarFacturaAlma: false, agregarPropinaAutomaticamente: false, reimprimirFacturaVenta: false, anulacionAdministrador: false, 
						autorretenedor: false, granContribuyecte: false, cerrarSesionComandar: false, preguntarImprimirFactura: false, totalizarPrecioVentaProducto: false, 
						verDetalleCierre: false, cambiarPedidoMesaMesero: false, correosCierre: "", ivaProducto: false, notificarComandaSonidoImpresora: false, 
					},

					imprimirComanda: false, imprimirComandaCancelacion: false, imprimirComandaCambioMesa: false, 
					impresoraCocina: '', impresoraCocina2: '', impresoraCocina3: '', impresoraBar: '', impresoraBar2: '', impresoraBar3: '', 
					impresoraPostre: '', impresoraPostre2: '', impresoraPostre3: '', 
					imagenImpresion: '', imagenImpresionUrl: '', errorImagenImpresion: false, imagenImpresionArchivo: '', 
					imagenQrPago: '', imagenQrPagoUrl: '', errorImagenQrPago: false, imagenQrPagoArchivo: '', 
					datosGestion: {}, accionGestion: "", bancoQrPago: "", titularQrPago: "", numeroQrPago: "", 
				}
			}, 

			computed:{
				visibleCustomizacion() { return app.customizacion.filter(field => field.visible) }
			}, 

			methods:{
				showModal( ventana ){ this.$refs[ventana].show(); },
				hideModal( ventana ){ this.$refs[ventana].hide(); },

				tagValidator(tag){
					return app.validarFormatoEmail(tag); 
				}, 

				cargarDatosSeccion(){
					app.cargarVista('listadoConfiguracionesVentas');
					this.listadoSucursales();
					this.listadoImpuestos();
					this.listadoConfiguracionesVentas();
				},

				listadoConfiguracionesVentas () {
					app.loading = true;
					axios.post( 
						"/Estructura/listadoConfiguracionesVentas", 
						"sucursal=" + this.idSucursalGestion,
					).then((result) => {
						this.objListadoConfiguracionesVentas = result.data["configuracionesVentas"];
						this.totalDatos = this.objListadoConfiguracionesVentas.length;
						app.loading = false;
					}).catch( error => app.erroServidor( '' ) );
				}, 

				filtrando( datos ){
					this.totalDatos = datos.length;
					this.currentPage = 1;
				},

				cambiarPerPage( valor ){ console.log(valor); this.perPage = valor; },

				gestionarSalonFila( data ){
					this.modeVer = true; this.tituloModal = "Detalle de Configuración de Venta"; 
					var correosCierre = !app.vacios.includes(data.correosCierre) ? data.correosCierre.split(",") : []; 
					this.dicConfiguracion = { 
						id: data.id, 
						sucursal: data.idSucursal__id, 
						impuesto: data.idImpuesto__id, 
						porcentajeServicio: data.porcentajeServicio, 
						resolucion: data.resolucion, 
						resolucionPrefijo: data.resolucionPrefijo, 
						cajero: data.cajero, 
						notificar: data.notificar, 
						autenticacionCodigo: data.autenticacionCodigo, 
						confirmarComanda: data.confirmarComanda, 
						confirmarGuardarPedido: data.confirmarGuardarPedido, 
						confirmarFinalizarPedido: data.confirmarFinalizarPedido, 
						liberarMesaAutomaticamente: data.liberarMesaAutomaticamente, 
						cerrarModalComandar: data.cerrarModalComandar, 
						siempreComandar: data.siempreComandar, 
						autenticacionHuellaDigital: data.autenticacionHuellaDigital, 
						solicitarAutenticacionSiempre: data.solicitarAutenticacionSiempre, 
						anulacionProducto: data.anulacionProducto, 
						enivarFacturaAlma: data.enivarFacturaAlma, 
						agregarPropinaAutomaticamente: data.agregarPropinaAutomaticamente, 
						reimprimirFacturaVenta: data.reimprimirFacturaVenta, 
						anulacionAdministrador: data.anulacionAdministrador, 
						cerrarSesionComandar: data.cerrarSesionComandar, 
						preguntarImprimirFactura: data.preguntarImprimirFactura, 
						totalizarPrecioVentaProducto: data.totalizarPrecioVentaProducto, 
						ivaProducto: data.ivaProducto, 
						notificarComandaSonidoImpresora: data.notificarComandaSonidoImpresora, 
						verDetalleCierre: data.verDetalleCierre, 
						cambiarPedidoMesaMesero: data.cambiarPedidoMesaMesero, 
						correosCierre: correosCierre, 
						autorretenedor: data.autorretenedor, 
						granContribuyecte: data.granContribuyecte, 
						responsableIva: data.responsableIva, 
						urlQr: data.urlQr, 
						cufe: data.cufe, 
						firmaDigital: data.firmaDigital, 
						existencia:false 
					};
					this.showModal( "modalEdicionConfiguracionVenta" );
				},

				solicitarCodigoAccion(accion, ventana, data){
					this.datosGestion = data; this.accionGestion = accion; 
					app.abrirModalGestionCodigosCalculadora("gestionar-configuracion-puntoventa"); 
				}, 
				
				gestionarSalon( accion, ventana, data ){
					setTimeout(()=>{
						if ( accion == 'crear' ){
							this.dicConfiguracion = { 
								id: '', sucursal: '', impuesto: '', porcentajeServicio: 0, resolucion:'', existencia:false, cajero:'', 
								resolucionPrefijo: '', notificar: true, autenticacionCodigo: true, confirmarComanda: true, 
								confirmarGuardarPedido: true, confirmarFinalizarPedido: true, liberarMesaAutomaticamente: true, 
								cerrarModalComandar: false, siempreComandar: false, autenticacionHuellaDigital: false, 
								solicitarAutenticacionSiempre: false, anulacionProducto: false, responsableIva: false, reimprimirFacturaVenta: false, 
								urlQr: "", cufe: "", firmaDigital: "", enivarFacturaAlma: false, agregarPropinaAutomaticamente: false, 
								anulacionAdministrador: false, autorretenedor: false, granContribuyecte: false, cerrarSesionComandar: false, 
								preguntarImprimirFactura: false, totalizarPrecioVentaProducto: false, verDetalleCierre: false, 
								cambiarPedidoMesaMesero: false, correosCierre: [], ivaProducto: false, notificarComandaSonidoImpresora: false, 
							};
							this.showModal( ventana );
						}

						if ( accion == 'editar' ){
							this.modeVer = false; this.tituloModal = "Edición de Configuración de Venta";
							var correosCierre = !app.vacios.includes(data.correosCierre) ? data.correosCierre.split(",") : []; 
							this.dicConfiguracion = { 
								id: data.id, 
								sucursal: data.idSucursal__id, 
								impuesto: data.idImpuesto__id, 
								porcentajeServicio: data.porcentajeServicio, 
								resolucion: data.resolucion, 
								resolucionPrefijo: data.resolucionPrefijo, 
								cajero: data.cajero, 
								notificar: data.notificar, 
								autenticacionCodigo: data.autenticacionCodigo, 
								confirmarComanda: data.confirmarComanda, 
								confirmarGuardarPedido: data.confirmarGuardarPedido, 
								confirmarFinalizarPedido: data.confirmarFinalizarPedido, 
								liberarMesaAutomaticamente: data.liberarMesaAutomaticamente, 
								cerrarModalComandar: data.cerrarModalComandar, 
								siempreComandar: data.siempreComandar, 
								autenticacionHuellaDigital: data.autenticacionHuellaDigital, 
								solicitarAutenticacionSiempre: data.solicitarAutenticacionSiempre, 
								anulacionProducto: data.anulacionProducto, 
								enivarFacturaAlma: data.enivarFacturaAlma, 
								agregarPropinaAutomaticamente: data.agregarPropinaAutomaticamente, 
								reimprimirFacturaVenta: data.reimprimirFacturaVenta, 
								anulacionAdministrador: data.anulacionAdministrador, 
								cerrarSesionComandar: data.cerrarSesionComandar, 
								preguntarImprimirFactura: data.preguntarImprimirFactura, 
								verDetalleCierre: data.verDetalleCierre, 
								totalizarPrecioVentaProducto: data.totalizarPrecioVentaProducto, 
								ivaProducto: data.ivaProducto, 
								notificarComandaSonidoImpresora: data.notificarComandaSonidoImpresora, 
								cambiarPedidoMesaMesero: data.cambiarPedidoMesaMesero, 
								correosCierre: correosCierre, 
								responsableIva: data.responsableIva, 
								autorretenedor: data.autorretenedor, 
								granContribuyecte: data.granContribuyecte, 
								urlQr: data.urlQr, 
								cufe: data.cufe, 
								firmaDigital: data.firmaDigital, 
								existencia:false 
							};
							this.showModal( ventana );
						}
					});
				},

				validarCodigoResposnable(codigo){
					app.loading = true; this.idUsuarioResponsable = ""; 
					axios.post( "/Estructura/validarCodigoResposnable", "codigo=" + codigo,).then((result) => {
						setTimeout(()=>{
							if (!app.vacios.includes(result.data["respuesta"].id) && !app.vacios.includes(result.data["respuesta"].usuarioUsername) && result.data.respuesta.rol=='Administrador'){
								this.idUsuarioResponsable = result.data["respuesta"].usuarioUsername; 
								if (this.accionGestion=="editar"){
									this.gestionarSalon( this.accionGestion, "modalEdicionConfiguracionVenta", this.datosGestion ); 
								}else{
									this.confirmarEliminarConfiguracionVenta(this.datosGestion); 
								}
								app.loading = false; 
							} else{
								Swal.fire({title:'¡Error de Autenticación!', type:'error', showConfirmButton: false, timer:2000});
								app.loading = false; 
								app.abrirModalGestionCodigosCalculadora("gestionar-configuracion-puntoventa"); 
							}
						});
					}).catch( error => {
						app.erroServidor( '' ); 
					});
				}, 

				validarValorCero( campo ){
					setTimeout(()=>{
						if ( campo=='porcentaje' && (this.dicConfiguracion.porcentajeServicio==='' || this.dicConfiguracion.porcentajeServicio<0) ){
							this.dicConfiguracion.porcentajeServicio = 0;
						}
					});
				},

				confirmarRegistrarConfiguracionVenta( ventana ){
					Swal.fire({
						title: '¿Guardar Registro?', type: 'warning', showCancelButton: true, allowOutsideClick: false,
						confirmButtonColor: '#28a745', cancelButtonColor: '#d33', confirmButtonText: 'Aceptar', cancelButtonText: 'Cancelar'
					}).then((result) => {
						if (result.value) {
							this.registrarConfiguracionVenta( ventana );
						}else{ Swal.fire( { title:'¡Canceló!', type:'error', showConfirmButton: false, timer:2000 } ); }
					});
				},

				confirmarEditarConfiguracionVenta( ventana ){
					Swal.fire({
						title: '¿Guardar Registro?', type: 'warning', showCancelButton: true, allowOutsideClick: false,
						confirmButtonColor: '#28a745', cancelButtonColor: '#d33', confirmButtonText: 'Aceptar', cancelButtonText: 'Cancelar'
					}).then((result) => {
						if (result.value) {
							this.editarConfiguracionVenta( ventana );
						}else{ Swal.fire( { title:'¡Canceló!', type:'error', showConfirmButton: false, timer:2000 } ); }
					});
				},

				registrarConfiguracionVenta ( ventana ) {
					this.dicConfiguracion.existencia = false;
					this.hideModal( ventana );
					app.loading = true;
					axios.post( 
						"/Estructura/registrarConfiguracionVenta" , 
						"impuesto=" + this.dicConfiguracion.impuesto +
						"&&porcentajeServicio=" + this.dicConfiguracion.porcentajeServicio +
						"&&resolucion=" + this.dicConfiguracion.resolucion +
						"&&resolucionPrefijo=" + this.dicConfiguracion.resolucionPrefijo +
						"&&cajero=" + this.dicConfiguracion.cajero +
						"&&notificar=" + app.procesarTrueFalse(this.dicConfiguracion.notificar) +
						"&&autenticacionCodigo=" + app.procesarTrueFalse(this.dicConfiguracion.autenticacionCodigo) +
						"&&confirmarComanda=" + app.procesarTrueFalse(this.dicConfiguracion.confirmarComanda) +
						"&&confirmarGuardarPedido=" + app.procesarTrueFalse(this.dicConfiguracion.confirmarGuardarPedido) +
						"&&confirmarFinalizarPedido=" + app.procesarTrueFalse(this.dicConfiguracion.confirmarFinalizarPedido) +
						"&&liberarMesaAutomaticamente=" + app.procesarTrueFalse(this.dicConfiguracion.liberarMesaAutomaticamente) +
						"&&cerrarModalComandar=" + app.procesarTrueFalse(this.dicConfiguracion.cerrarModalComandar) +
						"&&siempreComandar=" + app.procesarTrueFalse(this.dicConfiguracion.siempreComandar) +
						"&&autenticacionHuellaDigital=" + app.procesarTrueFalse(this.dicConfiguracion.autenticacionHuellaDigital) +
						"&&solicitarAutenticacionSiempre=" + app.procesarTrueFalse(this.dicConfiguracion.solicitarAutenticacionSiempre) +
						"&&anulacionProducto=" + app.procesarTrueFalse(this.dicConfiguracion.anulacionProducto) +
						"&&enivarFacturaAlma=" + app.procesarTrueFalse(this.dicConfiguracion.enivarFacturaAlma) +
						"&&agregarPropinaAutomaticamente=" + app.procesarTrueFalse(this.dicConfiguracion.agregarPropinaAutomaticamente) +
						"&&reimprimirFacturaVenta=" + app.procesarTrueFalse(this.dicConfiguracion.reimprimirFacturaVenta) +
						"&&anulacionAdministrador=" + app.procesarTrueFalse(this.dicConfiguracion.anulacionAdministrador) +
						"&&cerrarSesionComandar=" + app.procesarTrueFalse(this.dicConfiguracion.cerrarSesionComandar) +
						"&&preguntarImprimirFactura=" + app.procesarTrueFalse(this.dicConfiguracion.preguntarImprimirFactura) +
						"&&totalizarPrecioVentaProducto=" + app.procesarTrueFalse(this.dicConfiguracion.totalizarPrecioVentaProducto) +
						"&&ivaProducto=" + app.procesarTrueFalse(this.dicConfiguracion.ivaProducto) +
						"&&notificarComandaSonidoImpresora=" + app.procesarTrueFalse(this.dicConfiguracion.notificarComandaSonidoImpresora) +
						
						"&&verDetalleCierre=" + app.procesarTrueFalse(this.dicConfiguracion.verDetalleCierre) +
						"&&cambiarPedidoMesaMesero=" + app.procesarTrueFalse(this.dicConfiguracion.cambiarPedidoMesaMesero) +
						"&&correosCierre=" + this.dicConfiguracion.correosCierre +
						
						"&&sucursal=" + this.dicConfiguracion.sucursal +
						"&&responsableIva=" + app.procesarTrueFalse(this.dicConfiguracion.responsableIva) +
						"&&autorretenedor=" + app.procesarTrueFalse(this.dicConfiguracion.autorretenedor) +
						"&&granContribuyecte=" + app.procesarTrueFalse(this.dicConfiguracion.granContribuyecte) +
						"&&urlQr=" + this.dicConfiguracion.urlQr +
						"&&cufe=" + this.dicConfiguracion.cufe +
						"&&firmaDigital=" + this.dicConfiguracion.firmaDigital +

						"&&usuario=" + app.usuarioActual.usuario, 
					).then((result) => {
						if ( result.data.mensaje == 'Registro Exitoso' ){
							Swal.fire( { title:'¡Guardado Exitoso!', type:'success', showConfirmButton: false, timer:2000 } );
							this.listadoConfiguracionesVentas();
						}else{
							this.dicConfiguracion.existencia = true;
							app.loading = false;
							Swal.fire( { title:'¡Error de Registro!', type:'error', showConfirmButton: false, timer:2000 } );
							this.showModal( ventana );
						}
					}).catch( error => app.erroServidor( '' ) );
				}, 
				
				editarConfiguracionVenta ( ventana ) {
					this.hideModal( ventana );
					app.loading = true;
					axios.post( 
						"/Estructura/editarConfiguracionVenta" , 
						"configuracion=" + this.dicConfiguracion.id +
						"&&impuesto=" + this.dicConfiguracion.impuesto +
						"&&porcentajeServicio=" + this.dicConfiguracion.porcentajeServicio +
						"&&resolucion=" + this.dicConfiguracion.resolucion +
						"&&resolucionPrefijo=" + this.dicConfiguracion.resolucionPrefijo +
						"&&cajero=" + this.dicConfiguracion.cajero +
						"&&notificar=" + app.procesarTrueFalse(this.dicConfiguracion.notificar) +
						"&&autenticacionCodigo=" + app.procesarTrueFalse(this.dicConfiguracion.autenticacionCodigo) +
						"&&confirmarComanda=" + app.procesarTrueFalse(this.dicConfiguracion.confirmarComanda) +
						"&&confirmarGuardarPedido=" + app.procesarTrueFalse(this.dicConfiguracion.confirmarGuardarPedido) +
						"&&confirmarFinalizarPedido=" + app.procesarTrueFalse(this.dicConfiguracion.confirmarFinalizarPedido) +
						"&&liberarMesaAutomaticamente=" + app.procesarTrueFalse(this.dicConfiguracion.liberarMesaAutomaticamente) +
						"&&cerrarModalComandar=" + app.procesarTrueFalse(this.dicConfiguracion.cerrarModalComandar) +
						"&&siempreComandar=" + app.procesarTrueFalse(this.dicConfiguracion.siempreComandar) +
						"&&autenticacionHuellaDigital=" + app.procesarTrueFalse(this.dicConfiguracion.autenticacionHuellaDigital) +
						"&&solicitarAutenticacionSiempre=" + app.procesarTrueFalse(this.dicConfiguracion.solicitarAutenticacionSiempre) +
						"&&anulacionProducto=" + app.procesarTrueFalse(this.dicConfiguracion.anulacionProducto) +
						"&&enivarFacturaAlma=" + app.procesarTrueFalse(this.dicConfiguracion.enivarFacturaAlma) +
						"&&agregarPropinaAutomaticamente=" + app.procesarTrueFalse(this.dicConfiguracion.agregarPropinaAutomaticamente) +
						"&&reimprimirFacturaVenta=" + app.procesarTrueFalse(this.dicConfiguracion.reimprimirFacturaVenta) +
						"&&anulacionAdministrador=" + app.procesarTrueFalse(this.dicConfiguracion.anulacionAdministrador) +
						"&&cerrarSesionComandar=" + app.procesarTrueFalse(this.dicConfiguracion.cerrarSesionComandar) +
						"&&preguntarImprimirFactura=" + app.procesarTrueFalse(this.dicConfiguracion.preguntarImprimirFactura) +
						"&&totalizarPrecioVentaProducto=" + app.procesarTrueFalse(this.dicConfiguracion.totalizarPrecioVentaProducto) +
						"&&ivaProducto=" + app.procesarTrueFalse(this.dicConfiguracion.ivaProducto) +
						"&&notificarComandaSonidoImpresora=" + app.procesarTrueFalse(this.dicConfiguracion.notificarComandaSonidoImpresora) +
						
						"&&verDetalleCierre=" + app.procesarTrueFalse(this.dicConfiguracion.verDetalleCierre) +
						"&&cambiarPedidoMesaMesero=" + app.procesarTrueFalse(this.dicConfiguracion.cambiarPedidoMesaMesero) +
						"&&correosCierre=" + this.dicConfiguracion.correosCierre +

						"&&sucursal=" + this.dicConfiguracion.sucursal +

						"&&responsableIva=" + app.procesarTrueFalse(this.dicConfiguracion.responsableIva) +
						"&&autorretenedor=" + app.procesarTrueFalse(this.dicConfiguracion.autorretenedor) +
						"&&granContribuyecte=" + app.procesarTrueFalse(this.dicConfiguracion.granContribuyecte) +
						"&&urlQr=" + this.dicConfiguracion.urlQr +
						"&&cufe=" + this.dicConfiguracion.cufe +
						"&&firmaDigital=" + this.dicConfiguracion.firmaDigital +

						"&&usuario=" + this.idUsuarioResponsable, 
						/* "&&usuario=" + app.usuarioActual.usuario,  */
					).then((result) => {
						if ( result.data.mensaje == 'Registro Exitoso' ){
							Swal.fire( { title:'¡Guardado Exitoso!', type:'success', showConfirmButton: false, timer:2000 } );
							this.listadoConfiguracionesVentas();
						}else{
							app.loading = false;
							Swal.fire( { title:'¡Error de Registro!', type:'error', showConfirmButton: false, timer:2000 } );
							this.showModal( ventana );
						}
					}).catch( error => app.erroServidor( '' ) );
				}, 

				confirmarEliminarConfiguracionVenta( data ){
					Swal.fire({
						title: '¿Eliminar Registro?', type: 'warning', showCancelButton: true, allowOutsideClick: false,
						confirmButtonColor: '#28a745', cancelButtonColor: '#d33', confirmButtonText: 'Aceptar', cancelButtonText: 'Cancelar'
					}).then((result) => {
						if (result.value) {
							this.eliminarConfiguracionVenta( data );
						}else{ Swal.fire( { title:'¡Canceló!', type:'error', showConfirmButton: false, timer:2000 } ); }
					});
				},

				eliminarConfiguracionVenta ( data ) {
					app.loading = true;
					axios.post( 
						"/Estructura/eliminarConfiguracionVenta" , 
						"configuracion=" + data.id +
						"&&sucursal=" + data.idSucursal__nombre +
						"&&impuesto=" + data.idImpuesto__nombre +						

						"&&usuario=" + this.idUsuarioResponsable, 
						/* "&&usuario=" + app.usuarioActual.usuario,  */
					).then((result) => {
						Swal.fire( { title:'¡Eliminación Exitosa!', type:'success', showConfirmButton: false, timer:2000 } );
						this.listadoConfiguracionesVentas();
						
					}).catch( error => app.erroServidor( '' ) );
				}, 

				/*  */
					gestionarDatosConfiguracionVentaImpresion(item, event){
						item = JSON.parse(JSON.stringify(item)); 
						this.dicConfiguracion = item; 

						this.imprimirComanda = item.imprimirComanda; 
						this.imprimirComandaCancelacion = item.imprimirComandaCancelacion; 
						this.imprimirComandaCambioMesa = item.imprimirComandaCambioMesa; 
						this.impresoraCocina = item.impresoraCocina; 
						this.impresoraCocina2 = item.impresoraCocina2; 
						this.impresoraCocina3 = item.impresoraCocina3; 
						this.impresoraBar = item.impresoraBar; 
						this.impresoraBar2 = item.impresoraBar2; 
						this.impresoraBar3 = item.impresoraBar3; 
						this.impresoraPostre = item.impresoraPostre; 
						this.impresoraPostre2 = item.impresoraPostre2; 
						this.impresoraPostre3 = item.impresoraPostre3; 
						
						this.bancoQrPago = item.bancoQrPago; 
						this.titularQrPago = item.titularQrPago; 
						this.numeroQrPago = item.numeroQrPago; 

						this.imagenImpresion = ''; this.imagenImpresionUrl = ''; this.errorImagenImpresion = false; this.imagenImpresionArchivo = ''; 
						this.imagenQrPago = ''; this.imagenQrPagoUrl = ''; this.errorImagenQrPago = false; this.imagenQrPagoArchivo = ''; 
						if (!app.vacios.includes(item.imagenImpresion)){
							this.imagenImpresion = item.imagenImpresion; 
							this.imagenImpresionUrl = window.location.origin + "/media/configuraciones/puntoventa/" + item.imagenImpresion; 
						}

						if (!app.vacios.includes(item.imagenQrPago)){
							this.imagenQrPago = item.imagenQrPago; 
							this.imagenQrPagoUrl = window.location.origin + "/media/configuraciones/puntoventa/" + item.imagenQrPago; 
						}

						this.tituloModal = "Configuraciones de Impresión"; 
						this.showModal("modalGestionDatosConfiguracionVentaImpresion"); 
					}, 
					
					validarImagenImpresionArchivo(evento){
                        this.errorImagenImpresion = false; 
                        this.imagenImpresionArchivo = evento.target.files[0];
                        
                        var pesoLimite = 1001; var formatos = ['image/png','image/jpg','image/jpeg'];
                        if( !app.vacios.includes( this.imagenImpresionArchivo ) ){
                            this.errorImagenImpresion = ((this.imagenImpresionArchivo.size/1000)<pesoLimite && formatos.includes(this.imagenImpresionArchivo.type)) ? false : true;
                        }
                    }, 

					validarImagenQrPago(evento){
                        this.errorImagenQrPago = false; 
                        this.imagenQrPagoArchivo = evento.target.files[0];
                        
                        var pesoLimite = 1001; var formatos = ['image/png','image/jpg','image/jpeg'];
                        if( !app.vacios.includes( this.imagenQrPagoArchivo ) ){
                            this.errorImagenQrPago = ((this.imagenQrPagoArchivo.size/1000)<pesoLimite && formatos.includes(this.imagenQrPagoArchivo.type)) ? false : true;
                        }
                    }, 

					confirmarEditarConfiguracionVentaImpresion( ventana ){
						Swal.fire({
							title: '¿Guardar Configuración?', type: 'warning', showCancelButton: true, allowOutsideClick: false,
							confirmButtonColor: '#28a745', cancelButtonColor: '#d33', confirmButtonText: 'Aceptar', cancelButtonText: 'Cancelar'
						}).then((result) => {
							if (result.value) {
								this.editarConfiguracionVentaImpresion( ventana );
							}else{ Swal.fire( { title:'¡Canceló!', type:'error', showConfirmButton: false, timer:2000 } ); }
						});
					},

					editarConfiguracionVentaImpresion () {
						this.hideModal( "modalGestionDatosConfiguracionVentaImpresion" );
						app.loading = true;
						axios.post( "/Estructura/editarConfiguracionVentaImpresion" , 
							"configuracion=" + this.dicConfiguracion.id +
							
							"&&imprimirComanda=" + app.procesarTrueFalse(this.imprimirComanda) +
							"&&imprimirComandaCancelacion=" + app.procesarTrueFalse(this.imprimirComandaCancelacion) +
							"&&imprimirComandaCambioMesa=" + app.procesarTrueFalse(this.imprimirComandaCambioMesa) +
							
							"&&bancoQrPago=" + this.bancoQrPago +
							"&&titularQrPago=" + this.titularQrPago +
							"&&numeroQrPago=" + this.numeroQrPago +
							
							"&&impresoraCocina=" + this.impresoraCocina +
							"&&impresoraCocina2=" + this.impresoraCocina2 +
							"&&impresoraCocina3=" + this.impresoraCocina3 +
							"&&impresoraBar=" + this.impresoraBar +
							"&&impresoraBar2=" + this.impresoraBar2 +
							"&&impresoraBar3=" + this.impresoraBar3 +
							"&&impresoraPostre=" + this.impresoraPostre +
							"&&impresoraPostre2=" + this.impresoraPostre2 +
							"&&impresoraPostre3=" + this.impresoraPostre3 +
	
							"&&usuario=" + app.usuarioActual.usuario, 
						).then((result) => {
							console.log("result", result.data); 
							if ( result.data.mensaje=='Registro Exitoso' && !app.vacios.includes(this.imagenImpresionArchivo) ){
                                this.subirImagenImpresion(); 
                            }else if ( result.data.mensaje=='Registro Exitoso' && !app.vacios.includes(this.imagenQrPagoArchivo) ){
                                this.subirImagenQrPago(); 
                            }else if ( result.data.mensaje=='Registro Exitoso' ){
								Swal.fire( { title:'¡Guardado Exitoso!', type:'success', showConfirmButton: false, timer:2000 } );
								this.listadoConfiguracionesVentas();
							}else{
								app.loading = false;
								Swal.fire( { title:'¡Error de Registro!', type:'error', showConfirmButton: false, timer:2000 } );
								this.showModal( "modalGestionDatosConfiguracionVentaImpresion" );
							}
						}).catch( (error) =>{ 
							console.log("result", error); 
							app.loading = false;
							this.showModal( "modalGestionDatosConfiguracionVentaImpresion" );
							app.erroServidor( '' ); 
						});
					}, 

					subirImagenImpresion(){
                        app.loading = true; 
                        if (!app.vacios.includes(this.imagenImpresionArchivo)){
                            const datos = new FormData();
                            datos.append("responsable", app.usuarioActual.responsableId); 
                            datos.append("configuracionVenta", this.dicConfiguracion.id); 
                            datos.append("imagen", this.imagenImpresionArchivo)

                            axios.post( "/Estructura/subirImagenImpresion" , datos ).then((result) => {
                                if ( result.data.mensaje == 'ok_guardado' && !app.vacios.includes(this.imagenQrPagoArchivo) ){
									this.subirImagenQrPago(); 
								}else if ( result.data.mensaje == 'ok_guardado' ){ 
                                    Swal.fire({title:'¡Guardado Exitoso!', type:'success', showConfirmButton: false, timer:2000});
                                    this.listadoConfiguracionesVentas(); 
                                }else{
                                    app.loading = false;
									this.showModal( "modalGestionDatosConfiguracionVentaImpresion" );
                                    Swal.fire({title:'¡Error de Guardado!', type:'error', showConfirmButton: false, timer:2000});
                                }
                            }).catch( (error) =>{ 
                                app.loading = false; 
							    console.log(error);
								this.showModal( "modalGestionDatosConfiguracionVentaImpresion" );
							    app.erroServidor( '' ); 
                            });
                        }else{
                            Swal.fire({title:'¡Guardado Exitoso!', type:'success', showConfirmButton: false, timer:2000});
                            this.listadoConfiguracionesVentas(); 
                        }
                    },

					subirImagenQrPago(){
                        app.loading = true; 
                        if (!app.vacios.includes(this.imagenQrPagoArchivo)){
                            const datos = new FormData();
                            datos.append("responsable", app.usuarioActual.responsableId); 
                            datos.append("configuracionVenta", this.dicConfiguracion.id); 
                            datos.append("imagen", this.imagenQrPagoArchivo)

                            axios.post( "/Estructura/subirImagenQrPago" , datos ).then((result) => {
                                if ( result.data.mensaje == 'ok_guardado' ){ 
                                    Swal.fire({title:'¡Guardado Exitoso!', type:'success', showConfirmButton: false, timer:2000});
                                    this.listadoConfiguracionesVentas(); 
                                }else{
                                    app.loading = false;
									this.showModal( "modalGestionDatosConfiguracionVentaImpresion" );
                                    Swal.fire({title:'¡Error de Guardado!', type:'error', showConfirmButton: false, timer:2000});
                                }
                            }).catch( (error) =>{ 
                                app.loading = false; 
							    console.log(error);
								this.showModal( "modalGestionDatosConfiguracionVentaImpresion" );
							    app.erroServidor( '' ); 
                            });
                        }else{
                            Swal.fire({title:'¡Guardado Exitoso!', type:'success', showConfirmButton: false, timer:2000});
                            this.listadoConfiguracionesVentas(); 
                        }
                    },

					confirmarQuitarImagenImpresion(){
						Swal.fire({
							title: '¿Quitar Imagen?', type: 'warning', showCancelButton: true, allowOutsideClick: false,
							confirmButtonColor: '#28a745', cancelButtonColor: '#d33', confirmButtonText: 'Aceptar', cancelButtonText: 'Cancelar'
						}).then((result) => {
							if (result.value) {
								this.quitarImagenImpresion();
							}else{ Swal.fire( { title:'¡Canceló!', type:'error', showConfirmButton: false, timer:2000 } ); }
						});
					},

					quitarImagenImpresion(){
                        app.loading = true; 
						this.hideModal( "modalGestionDatosConfiguracionVentaImpresion" );
						const datos = new FormData();
						datos.append("responsable", app.usuarioActual.responsableId); 
						datos.append("configuracionVenta", this.dicConfiguracion.id); 

						axios.post( "/Estructura/quitarImagenImpresion" , datos ).then((result) => {
							if ( result.data.mensaje == 'ok_guardado' ){ 
								Swal.fire({title:'¡Eliminación Exitosa!', type:'success', showConfirmButton: false, timer:2000});
								this.listadoConfiguracionesVentas(); 
							}else{
								app.loading = false;
								this.showModal( "modalGestionDatosConfiguracionVentaImpresion" );
								Swal.fire({title:'¡Error de Guardado!', type:'error', showConfirmButton: false, timer:2000});
							}
						}).catch( (error) =>{ 
							app.loading = false; 
							console.log(error);
							this.showModal( "modalGestionDatosConfiguracionVentaImpresion" );
							app.erroServidor( '' ); 
						});
                    },
					
					confirmarQuitarImagenQrPago(){
						Swal.fire({
							title: '¿Quitar Imagen?', type: 'warning', showCancelButton: true, allowOutsideClick: false,
							confirmButtonColor: '#28a745', cancelButtonColor: '#d33', confirmButtonText: 'Aceptar', cancelButtonText: 'Cancelar'
						}).then((result) => {
							if (result.value) {
								this.quitarImagenQrPago();
							}else{ Swal.fire( { title:'¡Canceló!', type:'error', showConfirmButton: false, timer:2000 } ); }
						});
					},

					quitarImagenQrPago(){
                        app.loading = true; 
						this.hideModal( "modalGestionDatosConfiguracionVentaImpresion" );
						const datos = new FormData();
						datos.append("responsable", app.usuarioActual.responsableId); 
						datos.append("configuracionVenta", this.dicConfiguracion.id); 

						axios.post( "/Estructura/quitarImagenQrPago" , datos ).then((result) => {
							if ( result.data.mensaje == 'ok_guardado' ){ 
								Swal.fire({title:'¡Eliminación Exitosa!', type:'success', showConfirmButton: false, timer:2000});
								this.listadoConfiguracionesVentas(); 
							}else{
								app.loading = false;
								this.showModal( "modalGestionDatosConfiguracionVentaImpresion" );
								Swal.fire({title:'¡Error de Guardado!', type:'error', showConfirmButton: false, timer:2000});
							}
						}).catch( (error) =>{ 
							app.loading = false; 
							console.log(error);
							this.showModal( "modalGestionDatosConfiguracionVentaImpresion" );
							app.erroServidor( '' ); 
						});
                    },

				/* Funciones Globale */
					listadoSucursales(){
						if ( app.objGlobalSucursales.length == 0 ){
							axios.post( "/Principal/listadoSucursales", ).then((result) => {
								this.objSucursales = result.data.sucursales;
							}).catch( error => this.erroServidor( '' ) );
						}else{
							this.objSucursales = JSON.parse( JSON.stringify( app.objGlobalSucursales ) );
						}
					},

					listadoImpuestos(){
						axios.post( "/Estructura/listadoImpuestos", ).then((result) => {
							this.objImpuestos = result.data.impuestos;
						}).catch( error => app.erroServidor( '' ) );
					},
			}, 

			mounted(){ 
				app.nombrePlantilla = 'Configuraciones de Ventas';
				app.customizacion = this.customizacion;
				this.cargarDatosSeccion();
			}
		});
	});
});