(11022,'admin','Agrega tabla app_opcionlista al informe 36','2025-02-03','11:01:29'),(11023,'admin','Agrega campo app_opcionlista.valor_visual al informe 36','2025-02-03','11:02:08'),(11024,'admin','Agrega condicion al informe 36','2025-02-03','11:02:12'),(11025,'admin','Agrega condicion al informe 36','2025-02-03','11:03:05'),(11026,'mariano','Ingresa al sistema desde 172.69.11.192','2025-02-03','12:21:01'),(11027,'mariano','Actualiza registro 182 en app_ventas','2025-02-03','12:27:43'),(11028,'mariano','Actualiza registro 181 en app_ventas','2025-02-03','12:57:37'),(11029,'mariano','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-03','12:58:31'),(11030,'mariano','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-03','12:58:38'),(11031,'mariano','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-03','12:58:46'),(11032,'mariano','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-03','12:58:47'),(11033,'mariano','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-03','12:58:48'),(11034,'mariano','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-03','13:03:23'),(11035,'mariano','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-03','13:04:52'),(11036,'mariano','Actualiza registro 184 en app_ventas','2025-02-03','13:24:59'),(11037,'DANIELA','Ingresa al sistema desde 172.69.194.6','2025-02-03','13:32:25'),(11038,'daniela','Actualiza registro 185 en app_ventas','2025-02-03','13:34:07'),(11039,'admin','Ingresa al sistema desde 172.70.254.2','2025-02-03','15:52:18'),(11040,'PCoder:admin','Modifica archivo mod/app_ventas/imprimirFactura.php','2025-02-03','15:56:39'),(11041,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-03','15:56:39'),(11042,'admin','Elimina campo 642 del informe 23','2025-02-03','16:15:54'),(11043,'PCoder:admin','Modifica archivo mod/app_ventas/imprimirFactura.php','2025-02-03','16:18:11'),(11044,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-03','16:18:11'),(11045,'PCoder:admin','Modifica archivo mod/app_ventas/imprimirFactura.php','2025-02-03','16:18:54'),(11046,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-03','16:18:54'),(11047,'rafael','Ingresa al sistema desde 172.71.190.120','2025-02-03','16:21:40'),(11048,'PCoder:rafael','Modifica archivo core_formulario[14].javascript','2025-02-03','16:25:04'),(11049,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-03','16:25:04'),(11050,'PCoder:rafael','Modifica archivo core_formulario[14].javascript','2025-02-03','16:25:45'),(11051,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-03','16:25:45'),(11052,'PCoder:rafael','Modifica archivo core_formulario[14].javascript','2025-02-03','16:26:25'),(11053,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-03','16:26:25'),(11054,'admin','Actualiza registro 186 en app_ventas','2025-02-03','16:39:13'),(11055,'admin','Crea copia de informe 25','2025-02-03','16:45:24'),(11056,'admin','Elimina tabla 211 del informe 37','2025-02-03','16:45:59'),(11057,'admin','Elimina tabla 212 del informe 37','2025-02-03','16:46:03'),(11058,'admin','Agrega tabla app_ventas_detalle al informe 37','2025-02-03','16:46:12'),(11059,'admin','Agrega tabla app_mecanicos al informe 37','2025-02-03','16:46:19'),(11060,'admin','Agrega condicion al informe 37','2025-02-03','16:52:25'),(11061,'admin','Cambia estado del campo peso en objetoID Inf:37','2025-02-03','16:52:29'),(11062,'admin','Cambia estado del campo peso en objetoID Inf:37','2025-02-03','16:52:36'),(11063,'DANIELA','Ingresa al sistema desde 172.68.18.147','2025-02-03','16:52:39'),(11064,'admin','Agrega condicion al informe 37','2025-02-03','16:53:30'),(11065,'admin','Actualiza registro 37 en core_informe','2025-02-03','16:54:37'),(11066,'admin','Crea campo 3826 para formulario 6','2025-02-03','16:55:39'),(11067,'SQLog:error','/*US=admin*/ SELECT app_mecanicos.nombre_completo,COUNT(app_ventas.id), format(SUM(app_ventas.total_mecanico),2) FROM app_ventas,app_ventas_detalle,app_mecanicos WHERE  app_ventas.fecha >= \"\"  AND    app_ventas.fecha <= \"\"  AND    app_ventas.id_cliente = app_clientes.id  AND    app_ventas.estado = 1  AND    app_ventas.id <> 0  AND    app_ventas_detalle.id_producto <> 3141 ','2025-02-03','16:55:39'),(11068,'SQLog:error','/*US=admin*/ SELECT app_mecanicos.nombre_completo,COUNT(app_ventas.id), format(SUM(app_ventas.total_mecanico),2) FROM app_ventas,app_ventas_detalle,app_mecanicos WHERE  app_ventas.fecha >= \"\"  AND    app_ventas.fecha <= \"\"  AND    app_ventas.id_cliente = app_clientes.id  AND    app_ventas.estado = 1  AND    app_ventas.id <> 0  AND    app_ventas_detalle.id_producto <> 3141 ','2025-02-03','16:55:39'),(11069,'SQLog:error','/*US=admin*/ SELECT app_mecanicos.nombre_completo,COUNT(app_ventas.id), format(SUM(app_ventas.total_mecanico),2) FROM app_ventas,app_ventas_detalle,app_mecanicos WHERE  app_ventas.fecha >= \"\"  AND    app_ventas.fecha <= \"\"  AND    app_ventas.id_cliente = app_clientes.id  AND    app_ventas.estado = 1  AND    app_ventas.id <> 0  AND    app_ventas_detalle.id_producto <> 3141 ','2025-02-03','16:55:45');
INSERT INTO `core_auditoria` VALUES (11070,'SQLog:error','/*US=admin*/ SELECT app_mecanicos.nombre_completo,COUNT(app_ventas.id), format(SUM(app_ventas.total_mecanico),2) FROM app_ventas,app_ventas_detalle,app_mecanicos WHERE  app_ventas.fecha >= \"\"  AND    app_ventas.fecha <= \"\"  AND    app_ventas.id_cliente = app_clientes.id  AND    app_ventas.estado = 1  AND    app_ventas.id <> 0  AND    app_ventas_detalle.id_producto <> 3141 ','2025-02-03','16:55:45'),(11071,'SQLog:error','/*US=admin*/ SELECT app_mecanicos.nombre_completo,COUNT(app_ventas.id), format(SUM(app_ventas.total_mecanico),2) FROM app_ventas,app_ventas_detalle,app_mecanicos WHERE  app_ventas.fecha >= \"\"  AND    app_ventas.fecha <= \"\"  AND    app_ventas.id_cliente = app_clientes.id  AND    app_ventas.estado = 1  AND    app_ventas.id <> 0  AND    app_ventas_detalle.id_producto <> 3141 ','2025-02-03','16:55:51'),(11072,'SQLog:error','/*US=admin*/ SELECT app_mecanicos.nombre_completo,COUNT(app_ventas.id), format(SUM(app_ventas.total_mecanico),2) FROM app_ventas,app_ventas_detalle,app_mecanicos WHERE  app_ventas.fecha >= \"\"  AND    app_ventas.fecha <= \"\"  AND    app_ventas.id_cliente = app_clientes.id  AND    app_ventas.estado = 1  AND    app_ventas.id <> 0  AND    app_ventas_detalle.id_producto <> 3141 ','2025-02-03','16:55:51'),(11073,'SQLog:error','/*US=admin*/ SELECT app_mecanicos.nombre_completo,COUNT(app_ventas.id), format(SUM(app_ventas.total_mecanico),2) FROM app_ventas,app_ventas_detalle,app_mecanicos WHERE  app_ventas.fecha >= \"\"  AND    app_ventas.fecha <= \"\"  AND    app_ventas.id_mecanico = app_mecanicos.id  AND    app_ventas.estado = 1  AND    app_ventas.id <> 0  AND    AND    app_ventas_detalle.id_producto <> 3141  app_ventas.id = app_ventas_detalle.id_venta ','2025-02-03','16:59:28'),(11074,'SQLog:error','/*US=admin*/ SELECT app_mecanicos.nombre_completo,COUNT(app_ventas.id), format(SUM(app_ventas.total_mecanico),2) FROM app_ventas,app_ventas_detalle,app_mecanicos WHERE  app_ventas.fecha >= \"\"  AND    app_ventas.fecha <= \"\"  AND    app_ventas.id_mecanico = app_mecanicos.id  AND    app_ventas.estado = 1  AND    app_ventas.id <> 0  AND    AND    app_ventas_detalle.id_producto <> 3141  app_ventas.id = app_ventas_detalle.id_venta ','2025-02-03','16:59:28'),(11075,'admin','Cambia estado del campo peso en objetoID Inf:37','2025-02-03','16:59:46'),(11076,'admin','Actualiza agrupamiento/ordenamiento informe 37','2025-02-03','17:05:59'),(11077,'admin','Actualiza agrupamiento/ordenamiento informe 37','2025-02-03','17:06:22'),(11078,'admin','Modifica diseno campo 3826 para formulario 6','2025-02-03','17:07:30'),(11079,'admin','Modifica diseno campo 3826 para formulario 6','2025-02-03','17:07:41'),(11080,'admin','Ingresa al sistema desde 108.162.238.12','2025-02-03','17:16:06'),(11081,'admin','Crea copia de informe 37','2025-02-03','17:16:22'),(11082,'admin','Actualiza registro 38 en core_informe','2025-02-03','17:16:44'),(11083,'admin','Actualiza registro 37 en core_informe','2025-02-03','17:17:41'),(11084,'admin','Crea campo 3827 para formulario 6','2025-02-03','17:18:13'),(11085,'admin','Actualiza registro 37 en core_informe','2025-02-03','17:19:19'),(11086,'admin','Actualiza registro 37 en core_informe','2025-02-03','17:19:29'),(11087,'admin','Actualiza registro 37 en core_informe','2025-02-03','17:20:19'),(11088,'admin','Actualiza registro 38 en core_informe','2025-02-03','17:20:36'),(11089,'admin','Modifica diseno campo 3826 para formulario 6','2025-02-03','17:21:18'),(11090,'admin','Modifica diseno campo 3827 para formulario 6','2025-02-03','17:21:28'),(11091,'admin','Actualiza registro 38 en core_informe','2025-02-03','17:22:02'),(11092,'admin','Actualiza registro 37 en core_informe','2025-02-03','17:22:12'),(11093,'mariano','Ingresa al sistema desde 172.71.11.161','2025-02-03','17:28:26'),(11094,'SECLog:event',' Intenta acceso no autorizado Frm:-33','2025-02-03','17:43:05'),(11095,'rafael','Ingresa al sistema desde 172.70.255.182','2025-02-03','17:43:22'),(11096,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-03','17:43:57'),(11097,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-03','17:43:57'),(11098,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-03','17:44:39'),(11099,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-03','17:44:39'),(11100,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-03','17:45:08'),(11101,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-03','17:45:08'),(11102,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-03','17:45:11'),(11103,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-03','17:45:11'),(11104,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-03','17:45:14'),(11105,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-03','17:45:14'),(11106,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-03','17:45:17'),(11107,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-03','17:45:17'),(11108,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-03','17:49:42'),(11109,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-03','17:49:42'),(11110,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-03','17:51:38'),(11111,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-03','17:51:38'),(11112,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-03','17:58:09'),(11113,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-03','17:58:09'),(11114,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-03','18:05:32'),(11115,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-03','18:05:32'),(11116,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-03','18:08:38'),(11117,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-03','18:08:38'),(11118,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-03','18:08:47'),(11119,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-03','18:08:47'),(11120,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-03','18:08:50'),(11121,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-03','18:08:50'),(11122,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-03','18:09:05'),(11123,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-03','18:09:05'),(11124,'SECLog:event',' Intenta acceso no autorizado Frm:-33','2025-02-03','22:06:44'),(11125,'admin','Ingresa al sistema desde 108.162.210.233','2025-02-04','08:17:52'),(11126,'PCoder:admin','Modifica archivo mod/app_ventas/imprimirFactura.php','2025-02-04','08:20:06'),(11127,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-04','08:20:06'),(11128,'PCoder:admin','Modifica archivo mod/app_ventas/imprimirFactura.php','2025-02-04','08:20:35'),(11129,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-04','08:20:35'),(11130,'PCoder:admin','Modifica archivo mod/app_ventas/imprimirFactura.php','2025-02-04','08:20:58'),(11131,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-04','08:20:58'),(11132,'mariano','Ingresa al sistema desde 162.158.225.228','2025-02-04','09:05:45'),(11133,'SECLog:event',' Intenta acceso no autorizado Frm:-33','2025-02-04','09:13:45'),(11134,'SECLog:event',' Intenta acceso no autorizado Frm:-33','2025-02-04','09:13:50'),(11135,'daniela','Ingresa al sistema desde 172.69.11.192','2025-02-04','11:20:40'),(11136,'daniela','Actualiza registro 165 en app_ventas','2025-02-04','11:22:00'),(11137,'daniela','Actualiza registro 187 en app_ventas','2025-02-04','11:25:56'),(11138,'daniela','Actualiza registro 187 en app_ventas','2025-02-04','11:26:59'),(11139,'admin','Ingresa al sistema desde 172.70.254.196','2025-02-04','11:29:23'),(11140,'daniela','Actualiza registro 187 en app_ventas','2025-02-04','11:29:47'),(11141,'daniela','Actualiza registro 187 en app_ventas','2025-02-04','11:30:40'),(11142,'daniela','Actualiza registro 187 en app_ventas','2025-02-04','11:32:14'),(11143,'daniela','Actualiza registro 185 en app_ventas','2025-02-04','11:34:48'),(11144,'daniela','Actualiza registro 185 en app_ventas','2025-02-04','11:35:42'),(11145,'daniela','Actualiza registro 185 en app_ventas','2025-02-04','11:35:59'),(11146,'daniela','Actualiza registro 185 en app_ventas','2025-02-04','11:37:19'),(11147,'daniela','Actualiza registro 184 en app_ventas','2025-02-04','11:39:16'),(11148,'daniela','Actualiza registro 184 en app_ventas','2025-02-04','11:39:49'),(11149,'daniela','Actualiza registro 181 en app_ventas','2025-02-04','11:41:47'),(11150,'daniela','Actualiza registro 182 en app_ventas','2025-02-04','11:43:40'),(11151,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-04','11:59:07'),(11152,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-04','11:59:11'),(11153,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-04','11:59:13'),(11154,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-04','11:59:13'),(11155,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-04','11:59:17'),(11156,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-04','11:59:58'),(11157,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-04','11:59:59'),(11158,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-04','12:00:32'),(11159,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-04','12:00:35'),(11160,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-04','12:00:41'),(11161,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-04','12:00:44'),(11162,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-04','12:00:47'),(11163,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-04','12:00:49'),(11164,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-04','12:00:53'),(11165,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-04','12:00:56'),(11166,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-04','12:00:58'),(11167,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-04','12:05:33'),(11168,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-04','12:06:14'),(11169,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-04','12:07:03'),(11170,'daniela','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.230.252','2025-02-04','12:42:14'),(11171,'daniela','Ingresa al sistema desde 172.70.230.252','2025-02-04','12:42:24'),(11172,'admin','Ingresa al sistema desde 172.70.254.59','2025-02-04','13:47:58'),(11173,'admin','Elimina condicion 301','2025-02-04','13:48:27'),(11174,'admin','Elimina condicion 303','2025-02-04','13:48:36'),(11175,'admin','Elimina condicion 304','2025-02-04','13:48:44'),(11176,'admin','Elimina condicion 300','2025-02-04','13:48:51'),(11177,'admin','Elimina condicion 302','2025-02-04','13:48:57'),(11178,'admin','Elimina condicion 305','2025-02-04','13:49:03'),(11179,'admin','Agrega condicion al informe 20','2025-02-04','13:51:03'),(11180,'admin','Agrega condicion al informe 20','2025-02-04','13:51:21'),(11181,'admin','Agrega campo app_ventas.nro_salida_almacen al informe 20','2025-02-04','13:55:27'),(11182,'admin','Elimina campo 772 del informe 20','2025-02-04','13:56:47'),(11183,'admin','Cambia estado del campo editable en objetoID Inf:20','2025-02-04','13:56:53'),(11184,'admin','Cambia estado del campo editable en objetoID Inf:20','2025-02-04','13:56:56'),(11185,'admin','Cambia estado del campo editable en objetoID Inf:20','2025-02-04','13:56:59'),(11186,'admin','Actualiza registro 182 en app_ventas','2025-02-04','14:01:58'),(11187,'admin','Actualiza registro 182 en app_ventas','2025-02-04','14:02:24'),(11188,'admin','Modifica diseno campo 3765 para formulario 12','2025-02-04','14:02:42'),(11189,'admin','Actualiza registro 182 en app_ventas','2025-02-04','14:02:47'),(11190,'admin','Actualiza registro 1 en core_parametros','2025-02-04','14:05:30'),(11191,'admin','Carga modulo de auditoria','2025-02-04','14:13:09'),(11192,'PCoder:admin','Modifica archivo core_formulario[16].javascript','2025-02-04','14:46:06'),(11193,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-04','14:46:06'),(11194,'admin','Modifica diseno campo 3828 para formulario 16','2025-02-04','14:46:49'),(11195,'admin','Actualiza registro 161 en app_ventas','2025-02-04','14:47:21'),(11196,'SQLog:error','/*US=admin*/ SELECT app_ventas.id,app_ventas.fecha as Fecha,app_clientes.numero_documento,app_clientes.nombre_completo,app_ventas.placa,app_ventas.tipo_pago,app_ventas.total,app_ventas.usuario as User,app_opcionlista.valor_visual,DATEDIFF(CURDATE(), app_ventas.fecha),app_ventas.abono,app_ventas.total - app_ventas.bano FROM app_ventas,app_clientes,app_opcionlista WHERE  app_ventas.fecha >= \"\"  AND    app_ventas.fecha <= \"\"  AND    app_ventas.estado = 1  AND    app_ventas.id_cliente = app_clientes.id  AND    app_ventas.tipo_pago = \'Credito\'  AND    app_ventas.factura_pagada = 0  AND    app_ventas.tipo_venta = app_opcionlista.valor_interno ','2025-02-04','14:50:33'),(11197,'SQLog:error','/*US=admin*/ SELECT app_ventas.id,app_ventas.fecha as Fecha,app_clientes.numero_documento,app_clientes.nombre_completo,app_ventas.placa,app_ventas.tipo_pago,app_ventas.total,app_ventas.usuario as User,app_opcionlista.valor_visual,DATEDIFF(CURDATE(), app_ventas.fecha),app_ventas.abono,app_ventas.total - app_ventas.bano FROM app_ventas,app_clientes,app_opcionlista WHERE  app_ventas.fecha >= \"\"  AND    app_ventas.fecha <= \"\"  AND    app_ventas.estado = 1  AND    app_ventas.id_cliente = app_clientes.id  AND    app_ventas.tipo_pago = \'Credito\'  AND    app_ventas.factura_pagada = 0  AND    app_ventas.tipo_venta = app_opcionlista.valor_interno ','2025-02-04','14:50:33'),(11198,'SQLog:error','/*US=admin*/ SELECT app_ventas.id,app_ventas.fecha as Fecha,app_clientes.numero_documento,app_clientes.nombre_completo,app_ventas.placa,app_ventas.tipo_pago,app_ventas.total,app_ventas.usuario as User,app_opcionlista.valor_visual,DATEDIFF(CURDATE(), app_ventas.fecha),app_ventas.abono,app_ventas.total - app_ventas.bano FROM app_ventas,app_clientes,app_opcionlista WHERE  app_ventas.fecha >= \"\"  AND    app_ventas.fecha <= \"\"  AND    app_ventas.estado = 1  AND    app_ventas.id_cliente = app_clientes.id  AND    app_ventas.tipo_pago = \'Credito\'  AND    app_ventas.factura_pagada = 0  AND    app_ventas.tipo_venta = app_opcionlista.valor_interno ','2025-02-04','14:51:04'),(11199,'SQLog:error','/*US=admin*/ SELECT app_ventas.id,app_ventas.fecha as Fecha,app_clientes.numero_documento,app_clientes.nombre_completo,app_ventas.placa,app_ventas.tipo_pago,app_ventas.total,app_ventas.usuario as User,app_opcionlista.valor_visual,DATEDIFF(CURDATE(), app_ventas.fecha),app_ventas.abono,app_ventas.total - app_ventas.bano FROM app_ventas,app_clientes,app_opcionlista WHERE  app_ventas.fecha >= \"\"  AND    app_ventas.fecha <= \"\"  AND    app_ventas.estado = 1  AND    app_ventas.id_cliente = app_clientes.id  AND    app_ventas.tipo_pago = \'Credito\'  AND    app_ventas.factura_pagada = 0  AND    app_ventas.tipo_venta = app_opcionlista.valor_interno ','2025-02-04','14:51:04'),(11200,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-04','16:13:07'),(11201,'daniela','Ingresa al sistema desde 172.69.11.192','2025-02-04','16:13:22'),(11202,'daniela','Ingresa al sistema desde 172.68.14.109','2025-02-05','10:14:30'),(11203,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-05','10:26:03'),(11204,'daniela','Actualiza registro 184 en app_ventas','2025-02-05','10:27:03'),(11205,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.69.90.253','2025-02-05','10:27:25'),(11206,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-05','10:27:25'),(11207,'daniela','Actualiza registro 184 en app_ventas','2025-02-05','10:28:01'),(11208,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-05','10:28:22'),(11209,'admin','Ingresa al sistema desde 172.70.255.176','2025-02-05','10:28:41'),(11210,'admin','Cambia estado del campo editable en objetoID Inf:36','2025-02-05','10:29:07'),(11211,'admin','Cambia estado del campo editable en objetoID Inf:36','2025-02-05','10:29:11'),(11212,'admin','Cambia estado del campo editable en objetoID Inf:36','2025-02-05','10:29:15'),(11213,'daniela','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-05','10:29:45'),(11214,'daniela','Actualiza registro 109 en app_ventas','2025-02-05','10:31:51'),(11215,'admin','Cambia estado del campo editable en objetoID Inf:24','2025-02-05','10:32:30'),(11216,'admin','Cambia estado del campo editable en objetoID Inf:24','2025-02-05','10:32:36'),(11217,'mariano','Ingresa al sistema desde 172.69.90.143','2025-02-05','10:52:05'),(11218,'admin','Ingresa al sistema desde 108.162.212.14','2025-02-05','11:15:11'),(11219,'admin','Actualiza registro 24 en core_informe','2025-02-05','11:28:09'),(11220,'angela.jaramillo','Ingresa al sistema desde 172.69.11.123','2025-02-05','12:10:15'),(11221,'angela.jaramillo','Actualiza registro 188 en app_ventas','2025-02-05','12:11:31'),(11222,'angela.jaramillo','Actualiza registro 189 en app_ventas','2025-02-05','12:14:34'),(11223,'angela.jaramillo','Actualiza registro 190 en app_ventas','2025-02-05','12:17:02'),(11224,'SQLog:error','/*US=angela.jaramillo*/ SELECT app_mecanicos.id as valores, app_mecanicos.nombre_commpleto as opciones  FROM app_mecanicos WHERE 1','2025-02-05','12:17:20'),(11225,'SQLog:error','/*US=angela.jaramillo*/ INSERT INTO core_informe_cache (informe,usuario,conexion,script_sql,columnas) VALUES(\'15\',\'angela.jaramillo\',\'\',?,\'Fecha,Cliente,Tipo cartera,Tipo remisión,Numero remisión,Placa Vehiculo,Descripción,Valor,Abono,¿Factura Electronica?,Saldo pendiente,Estado\') ','2025-02-05','12:17:20'),(11226,'angela.jaramillo','Inserta registro en app_egresos','2025-02-05','12:18:43'),(11227,'SQLog:error','/*US=angela.jaramillo*/ SELECT app_mecanicos.id as valores, app_mecanicos.nombre_commpleto as opciones  FROM app_mecanicos WHERE 1','2025-02-05','12:21:03'),(11228,'SQLog:error','/*US=angela.jaramillo*/ INSERT INTO core_informe_cache (informe,usuario,conexion,script_sql,columnas) VALUES(\'15\',\'angela.jaramillo\',\'\',?,\'Fecha,Cliente,Tipo cartera,Tipo remisión,Numero remisión,Placa Vehiculo,Descripción,Valor,Abono,¿Factura Electronica?,Saldo pendiente,Estado\') ','2025-02-05','12:21:03'),(11229,'daniela','Ingresa al sistema desde 172.69.114.129','2025-02-05','12:24:46'),(11230,'daniela','Actualiza registro 190 en app_ventas','2025-02-05','12:26:52'),(11231,'daniela','Actualiza registro 190 en app_ventas','2025-02-05','12:27:25'),(11232,'angela.jaramillo','Actualiza registro 190 en app_ventas','2025-02-05','12:28:34'),(11233,'angela.jaramillo','Actualiza registro 190 en app_ventas','2025-02-05','12:30:51'),(11234,'mariano','Ingresa al sistema desde 172.69.11.192','2025-02-05','12:42:32'),(11235,'mariano','Ingresa al sistema desde 172.71.238.82','2025-02-06','10:31:17'),(11236,'mariano','Ingresa al sistema desde 172.71.238.194','2025-02-06','11:26:56'),(11237,'mariano','Ingresa al sistema desde 172.71.234.204','2025-02-06','14:44:25'),(11238,'mariano','Actualiza registro 192 en app_ventas','2025-02-06','14:48:47'),(11239,'mariano','SEC: Intento de acceso no autorizado CMD=cambiar_estado_campo','2025-02-06','14:49:33'),(11240,'mariano','Actualiza registro 193 en app_ventas','2025-02-06','14:50:32'),(11241,'mariano','Actualiza registro 191 en app_ventas','2025-02-06','14:52:16'),(11242,'mariano','Actualiza registro 111 en app_ventas','2025-02-06','14:52:26'),(11243,'mariano','Actualiza registro 6 en app_ventas','2025-02-06','14:52:34'),(11244,'admin','Ingresa al sistema desde 108.162.238.125','2025-02-06','15:13:43'),(11245,'mariano','Actualiza registro 194 en app_ventas','2025-02-06','15:27:23'),(11246,'mariano','Inserta registro en app_novedades_mecanicos','2025-02-06','15:46:35'),(11247,'SQLog:error','/*US=mariano*/ \n            UPDATE app_ventas \n            SET id_liquidacion=\'20\'\n            WHERE app_ventas.fecha >= \'2025-02-06 00:00:00\' AND app_ventas.fecha <= \'2025-02-07 23:59:59\' AND app_ventas.estado = 1 AND id_mecanico=\'1 AND id_liquidacion=0\n        ','2025-02-06','15:51:50'),(11248,'SQLog:error','/*US=mariano*/ \n            UPDATE app_ventas \n            SET id_liquidacion=\'20\'\n            WHERE app_ventas.fecha >= \'2025-02-06 00:00:00\' AND app_ventas.fecha <= \'2025-02-08 23:59:59\' AND app_ventas.estado = 1 AND id_mecanico=\'1 AND id_liquidacion=0\n        ','2025-02-06','15:53:33'),(11249,'daniela','Ingresa al sistema desde 172.71.238.196','2025-02-06','15:54:14'),(11250,'SQLog:error','/*US=daniela*/ \n            UPDATE app_ventas \n            SET id_liquidacion=\'20\'\n            WHERE app_ventas.fecha >= \'2025-02-06 00:00:00\' AND app_ventas.fecha <= \'2025-02-07 23:59:59\' AND app_ventas.estado = 1 AND id_mecanico=\'1 AND id_liquidacion=0\n        ','2025-02-06','15:56:07'),(11251,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.111','2025-02-06','20:16:19'),(11252,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-06','20:16:19'),(11253,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.125','2025-02-06','20:17:05'),(11254,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-06','20:17:05'),(11255,'rafael','Ingresa al sistema desde 108.162.238.126','2025-02-06','20:17:17'),(11256,'rafael','Ingresa al sistema desde 172.69.70.209','2025-02-06','20:18:34'),(11257,'rafael','Actualiza registro 7 en app_ventas','2025-02-06','21:22:10'),(11258,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.108','2025-02-06','21:23:44'),(11259,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-06','21:23:44'),(11260,'Rafael','Ingresa al sistema desde 108.162.238.108','2025-02-06','21:24:01'),(11261,'rafael','Modifica diseno campo 3730 para formulario 8','2025-02-06','21:26:40'),(11262,'rafael','Modifica diseno campo 3730 para formulario 8','2025-02-06','21:27:26'),(11263,'rafael','Modifica diseno campo 3730 para formulario 8','2025-02-06','21:28:00'),(11264,'rafael','Modifica diseno campo 1735 para formulario 8','2025-02-06','21:28:49'),(11265,'rafael','Modifica diseno campo 1735 para formulario 8','2025-02-06','21:29:49'),(11266,'rafael','Cambia estado del campo PCOBD_Peso en objetoID Frm:8','2025-02-06','21:30:16'),(11267,'rafael','Cambia estado del campo PCOBD_Peso en objetoID Frm:8','2025-02-06','21:30:28'),(11268,'rafael','Cambia estado del campo PCOBD_Columna en objetoID Frm:8','2025-02-06','21:35:03'),(11269,'rafael','Cambia estado del campo PCOBD_Columna en objetoID Frm:8','2025-02-06','21:35:20'),(11270,'rafael','Cambia estado del campo PCOBD_Columna en objetoID Frm:8','2025-02-06','21:35:27'),(11271,'rafael','Cambia estado del campo PCOBD_Columna en objetoID Frm:8','2025-02-06','21:35:36'),(11272,'rafael','Actualiza formulario 8 para app_ventas','2025-02-06','21:35:53'),(11273,'rafael','Modifica diseno campo 3750 para formulario 8','2025-02-06','21:36:23'),(11274,'rafael','Modifica diseno campo 3729 para formulario 8','2025-02-06','21:36:47'),(11275,'rafael','Modifica diseno campo 3730 para formulario 8','2025-02-06','21:37:09'),(11276,'rafael','Modifica diseno campo 3748 para formulario 8','2025-02-06','21:37:30'),(11277,'rafael','Modifica diseno campo 1746 para formulario 8','2025-02-06','21:37:55'),(11278,'rafael','Modifica diseno campo 1723 para formulario 8','2025-02-06','21:38:13'),(11279,'rafael','Modifica diseno campo 3749 para formulario 8','2025-02-06','21:38:31'),(11280,'rafael','Modifica diseno campo 3732 para formulario 8','2025-02-06','21:38:57'),(11281,'rafael','Modifica diseno campo 1735 para formulario 8','2025-02-06','21:39:46'),(11282,'rafael','Modifica diseno campo 1724 para formulario 8','2025-02-06','21:41:25'),(11283,'rafael','Modifica diseno campo 1726 para formulario 8','2025-02-06','21:41:42'),(11284,'rafael','Modifica diseno campo 3745 para formulario 8','2025-02-06','21:42:02'),(11285,'rafael','Modifica diseno campo 3745 para formulario 8','2025-02-06','21:42:14'),(11286,'SQLog:error','/*US=rafael*/ UPDATE app_ventas_detalle SET cantidad = \'8.00\' WHERE id,\'|\',app_ventas_detalle = ? ','2025-02-06','21:42:35'),(11287,'rafael','Cambia estado del campo cantidad en objetoID ','2025-02-06','21:42:35'),(11288,'rafael','Modifica diseno campo 1746 para formulario 8','2025-02-06','21:43:11'),(11289,'rafael','Cambia estado del campo PCOBD_Peso en objetoID Frm:8','2025-02-06','21:44:02'),(11290,'rafael','Cambia estado del campo PCOBD_Peso en objetoID Frm:8','2025-02-06','21:44:12'),(11291,'rafael','Modifica diseno campo 3725 para formulario 8','2025-02-06','21:45:03'),(11292,'Rafael','Ingresa al sistema desde 172.70.254.35','2025-02-06','21:45:32'),(11293,'rafael','Actualiza formulario 8 para app_ventas','2025-02-06','21:47:19'),(11294,'rafael','Cambia estado del campo PCOBD_Peso en objetoID Frm:8','2025-02-06','21:47:49'),(11295,'rafael','Modifica diseno campo 3730 para formulario 8','2025-02-06','21:48:41'),(11296,'rafael','Modifica diseno campo 3730 para formulario 8','2025-02-06','21:49:28'),(11297,'rafael','Modifica diseno campo 3730 para formulario 8','2025-02-06','21:49:47'),(11298,'Rafael','Ingresa al sistema desde 172.69.70.111','2025-02-06','21:50:02'),(11299,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-06','21:56:17'),(11300,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-06','21:56:17'),(11301,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-06','21:57:16'),(11302,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-06','21:57:16'),(11303,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-06','21:58:14'),(11304,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-06','21:58:14'),(11305,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-06','21:58:49'),(11306,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-06','21:58:49'),(11307,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-06','21:59:20'),(11308,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-06','21:59:20'),(11309,'PCoder:rafael','Modifica archivo inc/jquery/plugins/sketch.js','2025-02-06','22:05:26'),(11310,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-06','22:05:26'),(11311,'Rafael','Ingresa al sistema desde 108.162.212.133','2025-02-06','22:06:07'),(11312,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.120','2025-02-06','22:07:00'),(11313,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-06','22:07:00'),(11314,'Rafael','Ingresa al sistema desde 172.70.83.119','2025-02-06','22:07:10'),(11315,'PCoder:rafael','Modifica archivo inc/jquery/plugins/sketch.js','2025-02-06','22:15:21'),(11316,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-06','22:15:21'),(11317,'PCoder:rafael','Modifica archivo inc/jquery/plugins/sketch.js','2025-02-06','22:25:57'),(11318,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-06','22:25:57'),(11319,'PCoder:rafael','Modifica archivo inc/jquery/plugins/sketch.js','2025-02-06','22:26:06'),(11320,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-06','22:26:06'),(11321,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.47','2025-02-06','22:26:26'),(11322,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-06','22:26:26'),(11323,'rafael','Ingresa al sistema desde 172.70.54.47','2025-02-06','22:26:34'),(11324,'rafael','Cierra sesion desde 172.70.83.126','2025-02-06','22:27:00'),(11325,'Rafael','Ingresa al sistema desde 172.70.83.125','2025-02-06','22:27:27'),(11326,'PCoder:rafael','Modifica archivo inc/jquery/plugins/sketch.js','2025-02-06','22:28:12'),(11327,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-06','22:28:12'),(11328,'PCoder:rafael','Modifica archivo inc/jquery/plugins/sketch.js','2025-02-06','22:38:30'),(11329,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-06','22:38:30'),(11330,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.96','2025-02-06','22:39:12'),(11331,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-06','22:39:12'),(11332,'Rafael','Ingresa al sistema desde 172.70.254.97','2025-02-06','22:39:22'),(11333,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-06','22:41:41'),(11334,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-06','22:41:41'),(11335,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.158','2025-02-06','22:42:15'),(11336,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-06','22:42:15'),(11337,'Rafael','Ingresa al sistema desde 108.162.212.158','2025-02-06','22:42:24'),(11338,'rafael','Cierra sesion desde 172.70.254.96','2025-02-06','22:43:10'),(11339,'rafael','Ingresa al sistema desde 172.70.254.96','2025-02-06','22:43:21'),(11340,'daniela','Ingresa al sistema desde 172.71.238.13','2025-02-07','10:16:06'),(11341,'daniela','Actualiza registro 195 en app_ventas','2025-02-07','10:22:14'),(11342,'daniela','Actualiza registro 196 en app_ventas','2025-02-07','10:24:16'),(11343,'daniela','Inserta registro en app_novedades_mecanicos','2025-02-07','10:29:03'),(11344,'rafael','Ingresa al sistema desde 172.70.82.45','2025-02-07','11:07:55'),(11345,'Rafael','Ingresa al sistema desde 108.162.210.233','2025-02-07','11:13:06'),(11346,'admin','Ingresa al sistema desde 172.70.83.51','2025-02-07','11:14:15'),(11347,'PCoder:rafael','Modifica archivo inc/jquery/plugins/sketch.js','2025-02-07','11:17:51'),(11348,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','11:17:51'),(11349,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.68.19.95','2025-02-07','11:22:34'),(11350,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-07','11:22:34'),(11351,'','Cierra sesion desde 172.71.238.13','2025-02-07','11:22:46'),(11352,'Daniela','Ingresa al sistema desde 172.68.19.95','2025-02-07','11:22:56'),(11353,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-07','11:26:11'),(11354,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','11:26:11'),(11355,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-07','11:27:56'),(11356,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','11:27:56'),(11357,'daniela','Cierra sesion desde 172.68.19.95','2025-02-07','11:30:18'),(11358,'PCoder:rafael','Modifica archivo inc/jquery/plugins/sketch.js','2025-02-07','11:32:02'),(11359,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','11:32:02'),(11360,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.119','2025-02-07','11:34:07'),(11361,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-07','11:34:07'),(11362,'rafael','Ingresa al sistema desde 172.70.83.119','2025-02-07','11:34:14'),(11363,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.31','2025-02-07','11:38:33'),(11364,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-07','11:38:33'),(11365,'rafael','Ingresa al sistema desde 172.70.54.31','2025-02-07','11:39:02'),(11366,'PCoder:rafael','Modifica archivo inc/jquery/plugins/sketch.js','2025-02-07','11:42:40'),(11367,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','11:42:40'),(11368,'rafael','Ingresa al sistema desde 172.69.180.186','2025-02-07','11:44:04'),(11369,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.145','2025-02-07','11:45:39'),(11370,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-07','11:45:39'),(11371,'Rafael','Ingresa al sistema desde 172.70.254.144','2025-02-07','11:46:01'),(11372,'PCoder:rafael','Modifica archivo core/comunes.php','2025-02-07','11:53:25'),(11373,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','11:53:25'),(11374,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-07','11:54:05'),(11375,'rafael','Ingresa al sistema desde 172.70.54.179','2025-02-07','11:54:15'),(11376,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.69.132.183','2025-02-07','11:56:47'),(11377,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-07','11:56:47'),(11378,'Rafael','Ingresa al sistema desde 172.69.132.182','2025-02-07','11:57:02'),(11379,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.248','2025-02-07','12:11:08'),(11380,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-07','12:11:08'),(11381,'Rafael','Ingresa al sistema desde 172.70.255.248','2025-02-07','12:11:35'),(11382,'','Cierra sesion desde 172.70.254.226','2025-02-07','13:38:13'),(11383,'','Cierra sesion desde 172.70.255.22','2025-02-07','13:38:13'),(11384,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-07','13:38:13'),(11385,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-07','13:38:14'),(11386,'','Cierra sesion desde 172.70.82.115','2025-02-07','13:38:14'),(11387,'','Cierra sesion desde 172.70.255.104','2025-02-07','13:38:14'),(11388,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.104','2025-02-07','13:38:14'),(11389,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-07','13:38:14'),(11390,'ZAP','Agrega usuario ZAP para ZAP','2025-02-07','13:38:14'),(11391,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.71.156.130','2025-02-07','13:38:14'),(11392,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-07','13:38:14'),(11393,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-07','13:38:15'),(11394,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-07','13:38:15'),(11395,'xUrskrBJKonVrxat','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.105','2025-02-07','13:39:48'),(11396,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.145','2025-02-07','13:40:07'),(11397,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-07','13:40:07'),(11398,'uVjQYraGwRLBYXsJ','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.65','2025-02-07','13:40:07'),(11399,'fYMdzmCRWNTbFfVXgHNIiDlVzRmiMEIM','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.125','2025-02-07','13:40:26'),(11400,'NdVMbDqX','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.45','2025-02-07','13:40:39'),(11401,'kFEggToscqDOSShm','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.106','2025-02-07','13:40:55'),(11402,'OBRpBNWQSgwDaTtT','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.196','2025-02-07','13:41:09'),(11403,'zFxyKuKj','Agrega usuario zFxyKuKj para KXPDKezz','2025-02-07','13:41:15'),(11404,'XJmJsWst','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.237.83','2025-02-07','13:41:33'),(11405,'ZfbfWjkM','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.55','2025-02-07','13:41:49'),(11406,'xdOyCAhWtElDTHuY','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.177','2025-02-07','13:41:57'),(11407,'WwGELedFKBdzkcEG','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.65','2025-02-07','13:42:04'),(11408,'QWhpCoItyiNXRUBE','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.167','2025-02-07','13:42:11'),(11409,'NHpnuBRpffESIejq','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.162','2025-02-07','13:42:20'),(11410,'qndiynWkgmjLFYkr','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.167','2025-02-07','13:42:34'),(11411,'SXVYSayM','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.113','2025-02-07','13:42:53'),(11412,'cOJaBZPBhaPFRgXb','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.168','2025-02-07','13:42:56'),(11413,'pxJceWGWQNdJFYeUkVJPbuOzZlrCiJcb','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.71.156.131','2025-02-07','13:43:02'),(11414,'EnwyEloI','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.55','2025-02-07','13:43:04'),(11415,'ZKoiqdEcBfygXkTg','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.55.97','2025-02-07','13:43:05'),(11416,'kFQFntDP','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.62','2025-02-07','13:43:19'),(11417,'ttkAWfdq','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.170','2025-02-07','13:43:22'),(11418,'ASFNFOyxvAzvYTxP','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.71.156.131','2025-02-07','13:43:23'),(11419,'RveGHviYBYFIgwKc','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.145','2025-02-07','13:43:35'),(11420,'pASxNmaedUQOqvox','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.119','2025-02-07','13:43:41'),(11421,'XzkDoPGDRErVBAzzKhphUUnSbGNRlVcApQnptNlL','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.44','2025-02-07','13:43:48'),(11422,'BJGhdAqAETqjDEKR','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.99','2025-02-07','13:43:55'),(11423,'JMlwUwTYRNpKZzLm','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.21','2025-02-07','13:44:06'),(11424,'cpEZgDXkzRGvxozj','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.100','2025-02-07','13:44:07'),(11425,'XIWveiUf','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.62','2025-02-07','13:44:10'),(11426,'wegMpzNZGXQIxUbj','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.226','2025-02-07','13:44:12'),(11427,'DKrMByNhdrfaVWfB','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.134','2025-02-07','13:44:18'),(11428,'SGrWyINPiQkAJjZz','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.123','2025-02-07','13:44:30'),(11429,'Rafael','Ingresa al sistema desde 108.162.238.52','2025-02-07','13:44:42'),(11430,'WaWGQvMB','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.196','2025-02-07','13:44:45'),(11431,'rVUlvTzrEYdbvwmuTLxoufdQMcXpiCji','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.100','2025-02-07','13:44:46'),(11432,'wkPDCMtN','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.193','2025-02-07','13:44:48'),(11433,'aIbosfyGVjssTwxQ','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.213','2025-02-07','13:44:55'),(11434,'DeXfsRUUzAMUMmkeqQaREzRwSzTJnIcj','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.247','2025-02-07','13:44:55'),(11435,'NHaaZFdKyTAgQalgWdnOcGDD','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.55.61','2025-02-07','13:44:57'),(11436,'MSIgfmpp','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.69.132.182','2025-02-07','13:45:09'),(11437,'qcRJyjtEudpAjyCJduAaylUG','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.196','2025-02-07','13:45:19'),(11438,'AUfCabfg','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.45','2025-02-07','13:45:20'),(11439,'iNDPJzUwebDzsCmB','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.210.126','2025-02-07','13:45:29'),(11440,'ihrczwiM','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.237.83','2025-02-07','13:45:31'),(11441,'cIVAwezh','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.247','2025-02-07','13:45:40'),(11442,'xKaoXoVz','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.22','2025-02-07','13:45:50'),(11443,'YpfCMdyPkHmtcOOo','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.126','2025-02-07','13:45:53'),(11444,'zbEoGQXsJtuBPDei','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.120','2025-02-07','13:46:00'),(11445,'mZOQCfBaLGTtbSSE','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.52','2025-02-07','13:46:06'),(11446,'OdvFdaGlmJHlZuEo','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.112','2025-02-07','13:46:13'),(11447,'vXJMzRfbTmGVyeMx','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.145','2025-02-07','13:46:14'),(11448,'PXpeNllmKKMRKeiiCkeQgaglpwPjetuafWjyoWWC','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.213','2025-02-07','13:46:16'),(11449,'pSkpNjttRcOpDvvj','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.237.83','2025-02-07','13:46:18'),(11450,'uDxmoFSGwZzSjqjG','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.144','2025-02-07','13:46:19'),(11451,'dlqsEYcaHevHzaJH','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.22','2025-02-07','13:46:20'),(11452,'gGRiyyiyqUWDXERw','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.64','2025-02-07','13:46:24'),(11453,'pVcJIofP','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.237.247','2025-02-07','13:46:36'),(11454,'ZhlBXCDcPstOBvnf','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.106','2025-02-07','13:46:42'),(11455,'gTQcykjZJVelrmyk','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.14','2025-02-07','13:46:55'),(11456,'MTgSgpbTAwDZzdqc','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.237.162','2025-02-07','13:46:55'),(11457,'RjNiqkgaiwOYfKDl','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.162','2025-02-07','13:46:57'),(11458,'tDOomdrdoviYDHfB','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.237.121','2025-02-07','13:47:11'),(11459,'llLihMAmWZMhsGBjRfSTVqbJeXzWLRkc','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.113','2025-02-07','13:47:17'),(11460,'UjamdXXZ','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.105','2025-02-07','13:47:19'),(11461,'HHtCoGnX','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.114','2025-02-07','13:47:27'),(11462,'kmDMNdYSvNcobbZz','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.163','2025-02-07','13:47:29'),(11463,'NtNPszJooHtKHxNw','Agrega usuario NtNPszJooHtKHxNw para tsjqWHxMdGRjZSmn','2025-02-07','13:47:30'),(11464,'FPRknNXw','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.114','2025-02-07','13:47:30'),(11465,'hpEFmMUOqFYTZutcypjFAXth','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.55.62','2025-02-07','13:47:32'),(11466,'miigGYytNJyduZKR','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.144','2025-02-07','13:47:33'),(11467,'XENpgOzY','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.61','2025-02-07','13:47:50'),(11468,'LygDjIJwbvgiYfoC','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.120','2025-02-07','13:47:51'),(11469,'XEHWduTX','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.144','2025-02-07','13:47:55'),(11470,'wDtJvYtBPwJsyWmX','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.54','2025-02-07','13:47:57'),(11471,'bHxldlZTwyYecsFTNSxrCFYY','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.52','2025-02-07','13:47:57'),(11472,'wlOEnNTReeNDSuXt','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.22','2025-02-07','13:48:08'),(11473,'WFQszRjjCYkjMYHzDntCKaiB','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.44','2025-02-07','13:48:09'),(11474,'ymraYeZQJrfAsKRz','Agrega usuario ymraYeZQJrfAsKRz para eKKkxIpIBhKBbzIw','2025-02-07','13:48:11'),(11475,'GZiPiFpG','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.69.132.183','2025-02-07','13:48:14'),(11476,'iHWKOSZb','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.44','2025-02-07','13:48:18'),(11477,'HpCGSOiDnsBVzlog','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.170','2025-02-07','13:48:23'),(11478,'jHukbpMe','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.210.126','2025-02-07','13:48:25'),(11479,'VhZtvnAAQLUiQfha','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.167','2025-02-07','13:48:30'),(11480,'rsWtviqp','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.83','2025-02-07','13:48:32'),(11481,'CCvJYSKZggkncGVP','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.125','2025-02-07','13:48:37'),(11482,'zIpIwLom','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.71.156.130','2025-02-07','13:48:40'),(11483,'TDmmzGWPPgwXYmnh','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.21','2025-02-07','13:48:42'),(11484,'UlmvxqZWnSEGbwCa','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.103','2025-02-07','13:48:47'),(11485,'OZlVZBsfbAITbEij','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.71.156.130','2025-02-07','13:48:49'),(11486,'FRrbOCdAcMirVBBm','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.124','2025-02-07','13:48:57'),(11487,'QPXPVgQfBrsXNZwlbEuPlMUQaFMDtyJcFOKNqzBV','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.106','2025-02-07','13:48:59'),(11488,'pzawivJPgleLtizB','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.104','2025-02-07','13:49:04'),(11489,'vccGwfrofVEUVQsc','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.213','2025-02-07','13:49:04'),(11490,'tihlppZaDiBCfFBq','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.162','2025-02-07','13:49:05'),(11491,'xjOZBirlsqBUZYHd','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.170','2025-02-07','13:49:05'),(11492,'ZjVHFtWrutrJoatV','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.157','2025-02-07','13:49:17'),(11493,'cnouTNyYsBdRgTboUsaCuiSfaZMroxaAPvvXnRRi','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.145','2025-02-07','13:49:19'),(11494,'LcPeqQHcaQbRxPOl','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.112','2025-02-07','13:49:19'),(11495,'TydVFIcw','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.13','2025-02-07','13:49:22'),(11496,'SSDjNCGmMMpRifWS','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.133','2025-02-07','13:49:23'),(11497,'IFSnblEmUPhLeFba','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.54','2025-02-07','13:49:28'),(11498,'LlpzVbiZATnZbEPN','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.45','2025-02-07','13:49:31'),(11499,'NwqEmEKeHRkeOfqr','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.22','2025-02-07','13:49:39'),(11500,'rjJLAtVC','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.104','2025-02-07','13:49:47'),(11501,'GyuZQONjqusfeGjd','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.115','2025-02-07','13:49:54'),(11502,'UkxaqFlkeeYeyJbT','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.247','2025-02-07','13:49:56'),(11503,'oqiwWgZGzgKvzvXC','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.55.97','2025-02-07','13:50:09'),(11504,'sSsogWCYaWOAiHWK','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.61','2025-02-07','13:50:20'),(11505,'YXtqENZY','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.120','2025-02-07','13:50:46'),(11506,'LswzZZiQksKvMdid','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.237.199','2025-02-07','13:51:03'),(11507,'FIzpUIdq','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.193','2025-02-07','13:51:09'),(11508,'zoINBqZe','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.237.51','2025-02-07','13:51:12'),(11509,'aOTKajqGFzpgTBui','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.144','2025-02-07','13:51:14'),(11510,'eoXUdDntQGHLukfQgrvkQtcX','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.226','2025-02-07','13:51:17'),(11511,'HFwRVsAh','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.112','2025-02-07','13:51:19'),(11512,'lPRZYoZS','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.170','2025-02-07','13:51:21'),(11513,'XMtADjJiWapQroYMnCQkFnOfSYjoBBPB','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.162','2025-02-07','13:51:21'),(11514,'JZhRiylV','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.193','2025-02-07','13:51:25'),(11515,'EKmpRVNyHsqwEYEk','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.179','2025-02-07','13:51:28'),(11516,'SkycDvOk','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.163','2025-02-07','13:51:33'),(11517,'NtNPszJocWxsjFdsQPxlCPuH','Agrega usuario NtNPszJocWxsjFdsQPxlCPuH para tsjqWHxMMEbgOijgNQTCCwYc','2025-02-07','13:51:41'),(11518,'yqgTNnJl','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.55.27','2025-02-07','13:51:42'),(11519,'gGFLpXnx','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.112','2025-02-07','13:51:46'),(11520,'jxIxBEtpJIDaKiuL','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.168','2025-02-07','13:51:49'),(11521,'NDnNdNZKyFPUSiQsNpHNAbVo','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.31','2025-02-07','13:51:49'),(11522,'oFQdNkkSyckbOuiJ','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.112','2025-02-07','13:51:51'),(11523,'GJUfaguD','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.105','2025-02-07','13:52:01'),(11524,'UMXSplxkIfcJbqDA','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.144','2025-02-07','13:52:05'),(11525,'NtNPszJoFgNyhzQmiyHBcsnaEZjTwrAX','Agrega usuario NtNPszJoFgNyhzQmiyHBcsnaEZjTwrAX para tsjqWHxMjGleUmjVsTiPaIYHipaVaOeI','2025-02-07','13:52:09'),(11526,'kFkmtNNb','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.45','2025-02-07','13:52:15'),(11527,'zjqgHgJe','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.139','2025-02-07','13:52:18'),(11528,'CWCLPXFJYleqNsQsJqJYCuVS','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.177','2025-02-07','13:52:20'),(11529,'VIEsVIoq','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.65','2025-02-07','13:52:42'),(11530,'ZeWUvEqe','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.65','2025-02-07','13:52:44'),(11531,'ATUWltuFIAYDmEUN','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.168','2025-02-07','13:52:47'),(11532,'ymraYeZQBBlTxiMtHMHOmFpdGTTcYSxw','Agrega usuario ymraYeZQBBlTxiMtHMHOmFpdGTTcYSxw para eKKkxIpIfHRepXinzKCBlyxhmrJkiStn','2025-02-07','13:52:51'),(11533,'GRXfiZQP','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.221','2025-02-07','13:52:52'),(11534,'ZOGgcUlIJbuSfVfC','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.213','2025-02-07','13:52:52'),(11535,'QVoJrZmzQwiPnmiZ','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.139','2025-02-07','13:52:54'),(11536,'UJEDQMqitDeqqAND','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.113','2025-02-07','13:52:57'),(11537,'WkTsfYFzXwzftFPo','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.144','2025-02-07','13:52:59'),(11538,'ZVaVzUQV','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.168','2025-02-07','13:53:06'),(11539,'RMoCnBiHdHMQdNzb','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.197','2025-02-07','13:53:11'),(11540,'NTbDSUbiManTEgHSjMWkGXPOeMDeQACHoeTOhZsp','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.45','2025-02-07','13:53:12'),(11541,'ZxvJTyakLZAGYpEW','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.248','2025-02-07','13:53:12'),(11542,'XbvksCNqUVdWAiGJ','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.213','2025-02-07','13:53:15'),(11543,'UTyGuoTnMfnBoPBK','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.55.98','2025-02-07','13:53:25'),(11544,'mWrPJMHTndQpeOqy','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.52','2025-02-07','13:53:27'),(11545,'AEKdSLnpKkhCwwsU','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.69.132.182','2025-02-07','13:53:30'),(11546,'VIKwnPLmCZeASLYR','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.163','2025-02-07','13:53:33'),(11547,'AkRSBiUdVnJUMflcAQYwAboJAWYNYYpGRqamyeYy','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.168','2025-02-07','13:53:33'),(11548,'sUZxXknMIGQJSdnA','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.47','2025-02-07','13:53:36'),(11549,'kcmkTnwDWJZjLWug','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.124','2025-02-07','13:53:39'),(11550,'mFgCvYUvpyhNgJib','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.227','2025-02-07','13:53:43'),(11551,'nTCEjsfSLFijdIUS','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.55.62','2025-02-07','13:53:45'),(11552,'rtxMrVERxfqALqUz','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.44','2025-02-07','13:53:46'),(11553,'CsMEmhrDGExZClzY','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.51','2025-02-07','13:53:47'),(11554,'aCDGCbmkvlWbUgVE','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.145','2025-02-07','13:53:49'),(11555,'surIZjEQ','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.51','2025-02-07','13:53:49'),(11556,'oHBzKuOReSpUAgHp','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.227','2025-02-07','13:53:54'),(11557,'mjUbrZlTNQnppKeL','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.55.62','2025-02-07','13:53:58'),(11558,'QxpuIuhyEHfvffyS','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.45','2025-02-07','13:54:03'),(11559,'VTgdXOBVjjttjqvs','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.115','2025-02-07','13:54:06'),(11560,'gmyhQeIpyGQLhwND','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.69.132.182','2025-02-07','13:54:07'),(11561,'uGOlrVSKjlLZezaP','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.52','2025-02-07','13:54:24'),(11562,'UCSyloSO','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.105','2025-02-07','13:54:27'),(11563,'JTvYUVcVwbCeqgjd','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.178','2025-02-07','13:54:27'),(11564,'QPgHaTFkAmHgXCBq','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.21','2025-02-07','13:54:32'),(11565,'WxjuKxKPTKHWVgwr','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.55.62','2025-02-07','13:54:39'),(11566,'MCOUExrNUjfSZzuT','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.71.156.131','2025-02-07','13:54:41'),(11567,'OwfnHDof','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.45','2025-02-07','13:54:55'),(11568,'DFMzLEka','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.157','2025-02-07','13:55:01'),(11569,'GidLyqWn','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.196','2025-02-07','13:55:11'),(11570,'ArGoWgEY','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.61','2025-02-07','13:55:15'),(11571,'EiWwNtjCFmAXprFybXYNmgrp','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.115','2025-02-07','13:55:24'),(11572,'QNbPjvqdwGpNdMvY','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.163','2025-02-07','13:55:32'),(11573,'NtNPszJohLBnMVzjNeTWNXsK','Agrega usuario NtNPszJohLBnMVzjNeTWNXsK para tsjqWHxMXseLuNGMYSYeRWFj','2025-02-07','13:55:33'),(11574,'vHdjBRrpYdDQNZBwSEbPKWYrjRDOYiXl','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.126','2025-02-07','13:55:33'),(11575,'abQAHjsySlCRhChq','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.55.27','2025-02-07','13:55:39'),(11576,'RYiZITPnXELBASZGTbPjhosf','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.214','2025-02-07','13:55:40'),(11577,'wRonpHga','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.62','2025-02-07','13:55:42'),(11578,'bfsGFBOT','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.226','2025-02-07','13:55:44'),(11579,'yGLrQJcyrdJLgOQm','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.46','2025-02-07','13:55:45'),(11580,'OLSRNhJL','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.115','2025-02-07','13:55:46'),(11581,'pjXiFFZg','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.247','2025-02-07','13:55:53'),(11582,'NzanhmTithUiuiPwoLRSobjqyBQKfkra','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.210.135','2025-02-07','13:55:55'),(11583,'xCIBccKa','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.22','2025-02-07','13:55:56'),(11584,'dJPtyOfAnOulHwsk','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.54','2025-02-07','13:55:59'),(11585,'wgOLNpZq','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.69.132.182','2025-02-07','13:56:11'),(11586,'ITOZCornDhTvohYbzrZbvgEE','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.69.132.183','2025-02-07','13:56:16'),(11587,'uouOGiWTddKroeRg','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.247','2025-02-07','13:56:22'),(11588,'qoaFPeFX','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.62','2025-02-07','13:56:24'),(11589,'NtNPszJocWxsjFdsQXghhsPqBOadtdKMTCIaoEtl','Agrega usuario NtNPszJocWxsjFdsQXghhsPqBOadtdKMTCIaoEtl para tsjqWHxMMEbgOijgEKvMKxOdnxbArPPNGuLDYYAc','2025-02-07','13:56:25'),(11590,'raYXUaBlncJGFeSrLeQIbixh','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.210.127','2025-02-07','13:56:26'),(11591,'gDCEWGKN','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.62','2025-02-07','13:56:27'),(11592,'AlgPdBTy','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.45','2025-02-07','13:56:34'),(11593,'sbAcbHyu','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.192','2025-02-07','13:56:35'),(11594,'jwcSoMHMgnDlrhrU','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.47','2025-02-07','13:56:42'),(11595,'nQlIucYmujLnVQYP','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.124','2025-02-07','13:56:45'),(11596,'kOfwGHYRXNzovbHp','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.120','2025-02-07','13:56:52'),(11597,'pYvVrKBg','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.248','2025-02-07','13:56:59'),(11598,'NzENBfrq','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.210.126','2025-02-07','13:56:59'),(11599,'fIfmOgpcmMnkhQPx','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.22','2025-02-07','13:57:03'),(11600,'fppMyzYIPXJqJMod','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.119','2025-02-07','13:57:04'),(11601,'XurIIRPxzDbAPLOP','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.210.232','2025-02-07','13:57:06'),(11602,'tInsytoQ','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.226','2025-02-07','13:57:16'),(11603,'FVXRqcTGfAinVfdn','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.113','2025-02-07','13:57:17'),(11604,'rPOQhXyJNQrxmZVdxrkutGmmjQKZszwTPhxohgLq','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.46','2025-02-07','13:57:20'),(11605,'pkYqjrYvcsZStsVx','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.210.134','2025-02-07','13:57:21'),(11606,'KYGperHaQfOwcVvF','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.133','2025-02-07','13:57:21'),(11607,'jyoSYiOGpmMANRzi','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.69.132.183','2025-02-07','13:57:23'),(11608,'fYEjVXlurNsWkphr','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.163','2025-02-07','13:57:24'),(11609,'ZtATwNMKjiRwxfgR','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.17','2025-02-07','13:57:27'),(11610,'miaNZYYEhdLgEhao','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.126','2025-02-07','13:57:41'),(11611,'pUFAXqJc','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.120','2025-02-07','13:57:45'),(11612,'mTyuagPUaoIhRXth','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.113','2025-02-07','13:57:45'),(11613,'SFHxfOWIQcGXxKXO','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.21','2025-02-07','13:57:52'),(11614,'rbRGmLcWdfkjZsQp','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.45','2025-02-07','13:57:58'),(11615,'eQqKPjzawwmpxSai','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.168','2025-02-07','13:58:00'),(11616,'qTfxqaHNnzyNIQij','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.126','2025-02-07','13:58:01'),(11617,'jDLkEWRTQqTrmYWH','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.61','2025-02-07','13:58:04'),(11618,'sabpoeVYDcstwzWb','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.55.185','2025-02-07','13:58:05'),(11619,'CGShRHxy','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.168','2025-02-07','13:58:12'),(11620,'uKAHMPZSXrTQjjYF','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.214','2025-02-07','13:58:20'),(11621,'OHqkJlRAqunKqRpJ','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.178','2025-02-07','13:58:23'),(11622,'EzYHVomuABcFswKB','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.248','2025-02-07','13:58:28'),(11623,'dkhWLSPtTCEUDIYS','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.196','2025-02-07','13:58:30'),(11624,'YCxGgOWw','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.71.156.131','2025-02-07','13:58:37'),(11625,'BaLeySFe','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.120','2025-02-07','13:58:59'),(11626,'XJldsQJf','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.114','2025-02-07','13:58:59'),(11627,'LzTZeeUa','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.163','2025-02-07','13:59:05'),(11628,'QIpdCwHq','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.71.156.130','2025-02-07','13:59:06'),(11629,'vdwQnJOOiZiyluFflixtbYiJ','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.55.61','2025-02-07','13:59:19'),(11630,'yvdhuRpdGqMQyjXf','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.179','2025-02-07','13:59:26'),(11631,'FYhTlnaBvUbOKHPBsHGTzWof','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.105','2025-02-07','13:59:33'),(11632,'oDhkkAHe','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.145','2025-02-07','13:59:34'),(11633,'cNZOYrQq','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.112','2025-02-07','13:59:37'),(11634,'XwmceDuv','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.31','2025-02-07','13:59:37'),(11635,'mrCVJSFOwxvlaXio','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.163','2025-02-07','13:59:43'),(11636,'tPrMtJxpEjMeDAgPHiYHkLhyAiGhCRXr','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.21','2025-02-07','13:59:45'),(11637,'VyZsBwbh','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.247','2025-02-07','13:59:52'),(11638,'SPjCriwPDzmTDTcfilNsthUm','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.168','2025-02-07','13:59:52'),(11639,'bWFlwyKE','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.21','2025-02-07','13:59:54'),(11640,'JdOYfinS','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.55.185','2025-02-07','14:00:02'),(11641,'EmxDsTBSBwopGnsmUGMopCJGegNkgeqQ','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.220','2025-02-07','14:00:02'),(11642,'RYGHflEk','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.226','2025-02-07','14:00:03'),(11643,'bpOxuMgp','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.213','2025-02-07','14:00:08'),(11644,'AMAtXSyx','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.125','2025-02-07','14:00:26'),(11645,'wIlhIYhc','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.120','2025-02-07','14:00:31'),(11646,'nelUjBfWhjfzSVtE','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.55.98','2025-02-07','14:00:37'),(11647,'rKavfhVHdBfpEPXt','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.21','2025-02-07','14:00:40'),(11648,'TloPiwqoClRaBCZR','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.55','2025-02-07','14:00:48'),(11649,'TstQNSSF','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.51','2025-02-07','14:00:50'),(11650,'zrMxEmQKeRkglFfP','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.168','2025-02-07','14:00:52'),(11651,'rBmzijACJzhAvRiB','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.54.31','2025-02-07','14:00:53'),(11652,'LTYqjrusQnlfURuf','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.210.127','2025-02-07','14:00:53'),(11653,'eCwLvnCgcadjLadt','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.45','2025-02-07','14:00:56'),(11654,'uCxZwhGtbdDGfQke','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.144','2025-02-07','14:01:08'),(11655,'QsxxLDtswIMOWbKC','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.69.132.182','2025-02-07','14:01:08'),(11656,'WtLEuUpItIFJtAbV','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.144','2025-02-07','14:01:09'),(11657,'HiSXJxeNqeZhPlnN','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.151','2025-02-07','14:01:15'),(11658,'GDEFmpfciOYJtfMY','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.150','2025-02-07','14:01:16'),(11659,'WZjMwBEmCsNlYsnqeIHAJbkXPXvIdCTNMqBAOsFD','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.65','2025-02-07','14:01:17'),(11660,'xdOwUGNF','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.14','2025-02-07','14:01:23'),(11661,'DmiTaVZKElRSIeld','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.52','2025-02-07','14:01:23'),(11662,'TDDDGHjXaKqQhBgg','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.125','2025-02-07','14:01:27'),(11663,'cuOWBRrYLFPnsvCj','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.162','2025-02-07','14:01:29'),(11664,'aHXgjWdosOOlRgmI','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.45','2025-02-07','14:01:32'),(11665,'aorgkuzF','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.123','2025-02-07','14:01:34'),(11666,'opBfSKCKlOsBWeSF','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.182','2025-02-07','14:01:43'),(11667,'DOmGhbqcwoEoEXxr','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.237.50','2025-02-07','14:01:45'),(11668,'nSSwtIYSYeyFYOys','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.157','2025-02-07','14:01:48'),(11669,'gLDXjYkxYFySSens','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.69.132.183','2025-02-07','14:01:49'),(11670,'lMWdAbgDtImSfcoa','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.56','2025-02-07','14:01:50'),(11671,'UhdRUyRw','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.119','2025-02-07','14:01:53'),(11672,'AAZkfjAndvQqAIcX','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.163','2025-02-07','14:02:05'),(11673,'InFOmnSbTxFSnfKl','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.139','2025-02-07','14:02:09'),(11674,'LGcNWvfW','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.71.156.131','2025-02-07','14:02:10'),(11675,'AtqBYyNoPcMqjiWC','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.54','2025-02-07','14:02:14'),(11676,'HjQVqZYJkmojnJMN','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.45','2025-02-07','14:02:14'),(11677,'TKMjQTEY','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.227','2025-02-07','14:02:17'),(11678,'MMaeIEbj','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.181','2025-02-07','14:02:17'),(11679,'GkxPBFbb','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.140','2025-02-07','14:02:17'),(11680,'KNXlHZCFvlmoSUrdwcnWaqEZ','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.140','2025-02-07','14:02:22'),(11681,'MaOkmJff','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.62','2025-02-07','14:02:26'),(11682,'fCquMSHHTadJxSFqrjIWvumQ','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.168','2025-02-07','14:02:31'),(11683,'KmrXaPBh','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.113','2025-02-07','14:02:34'),(11684,'mdabtMhACOelthFSRoWGMLnQFvfWWECd','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.237.246','2025-02-07','14:02:38'),(11685,'HTCjtzqoricLCPtF','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.115','2025-02-07','14:02:39'),(11686,'mcoKoiHBNJOdzrIc','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.54','2025-02-07','14:02:46'),(11687,'xHVWGkxN','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.167','2025-02-07','14:02:48'),(11688,'eilwIvhP','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.133','2025-02-07','14:02:56'),(11689,'TcPjHZPw','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.52','2025-02-07','14:03:04'),(11690,'WDVcNalr','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.150','2025-02-07','14:03:05'),(11691,'HmnrUpqj','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.123','2025-02-07','14:03:11'),(11692,'PUkhuddJmUxfjNjv','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.237.212','2025-02-07','14:03:14'),(11693,'kqRfWCVeyMOIBBGz','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.140','2025-02-07','14:03:17'),(11694,'RWpmWBKZ','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.61','2025-02-07','14:03:17'),(11695,'bATajVhq','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.71.156.131','2025-02-07','14:03:27'),(11696,'KzEaZtTtnYGGEtmQ','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.214','2025-02-07','14:03:29'),(11697,'UzmnmgnTXxOPzKDo','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.51','2025-02-07','14:03:33'),(11698,'iLYGsSAEgqbGNYuB','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.237.212','2025-02-07','14:03:36'),(11699,'cEIMCBqkDAVnIAfO','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.21','2025-02-07','14:03:40'),(11700,'LNBWpdjT','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.210.135','2025-02-07','14:03:44'),(11701,'HwdvuiFKYmYPMXaS','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.162','2025-02-07','14:03:46'),(11702,'MqPbFgiJlbbgmzPy','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.213','2025-02-07','14:03:49'),(11703,'wztzjRifwXaDhHuWjVWKkoPDfybzQWrQZcWsXXHR','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.62','2025-02-07','14:03:53'),(11704,'mVtuKqKGkjwHACky','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.213','2025-02-07','14:03:54'),(11705,'PCXJOLLuHCNGVJOV','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.105','2025-02-07','14:04:07'),(11706,'kelyBayEErykeWuP','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.112','2025-02-07','14:04:09'),(11707,'eTtAafpTgYwFyTMuXpqsgsyqmRdldOblGCLMlDUJ','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.103','2025-02-07','14:04:09'),(11708,'SYjGuOyQYVDGWBJf','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.237.82','2025-02-07','14:04:11'),(11709,'souCDlLXWdvoQDWR','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.157','2025-02-07','14:04:15'),(11710,'BCprcUcE','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.115','2025-02-07','14:04:22'),(11711,'EKiunVTZ','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.71.156.130','2025-02-07','14:04:28'),(11712,'NnpXHIeBOtylYhiusAugADpB','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.125','2025-02-07','14:04:31'),(11713,'mEuRjHpjPSSHfKyb','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.120','2025-02-07','14:04:33'),(11714,'FFOhAlED','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.83','2025-02-07','14:04:36'),(11715,'clJVjwIJ','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.18','2025-02-07','14:04:39'),(11716,'LYOSohGrixvgTikd','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.226','2025-02-07','14:04:40'),(11717,'EvqnqNul','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.247','2025-02-07','14:04:40'),(11718,'JiwafCHouOfdGcqZWhpGOAgF','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.61','2025-02-07','14:04:41'),(11719,'noxeMjzp','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.114','2025-02-07','14:04:56'),(11720,'kkwhIjUC','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.248','2025-02-07','14:04:57'),(11721,'pZTFgnBo','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.212.178','2025-02-07','14:04:58'),(11722,'jXMCHuYJEicgakNs','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.167','2025-02-07','14:05:02'),(11723,'mabumxlBEBQrpsqP','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.237.210','2025-02-07','14:05:11'),(11724,'IyMRWxhqeUizcETX','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.61','2025-02-07','14:05:18'),(11725,'tZNdtYMjsHjTFqOr','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.213','2025-02-07','14:05:19'),(11726,'rWLPmjBAxjNfvnNQ','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.71.156.130','2025-02-07','14:05:23'),(11727,'qiAqiCTovHaQArci','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.113','2025-02-07','14:05:30'),(11728,'jaNfdnMvuTLPsDLL','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.237.247','2025-02-07','14:05:32'),(11729,'FcMYYyaAHGIMtGKL','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.99','2025-02-07','14:05:35'),(11730,'DZqNGTrl','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.237.195','2025-02-07','14:05:38'),(11731,'idenlgFn','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.62','2025-02-07','14:05:41'),(11732,'JftYRGTH','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.51','2025-02-07','14:05:46'),(11733,'GRkvbrhf','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.254.112','2025-02-07','14:05:47'),(11734,'NJcifixAMQTtCyvH','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.103','2025-02-07','14:05:53'),(11735,'vOCikPXGowklCxrP','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.11','2025-02-07','14:05:56'),(11736,'hKZLcJjzBAIJBcaS','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.45','2025-02-07','14:05:58'),(11737,'PxxWwohMhCblRRXu','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.210.157','2025-02-07','14:06:06'),(11738,'HnWeGNaArEAdKAYG','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.46','2025-02-07','14:06:06'),(11739,'IxvFplzQ','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.105','2025-02-07','14:06:08'),(11740,'KvZQposRDmNrMpXO','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.45','2025-02-07','14:06:13'),(11741,'bCTIVAMexVgvrEAC','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.214','2025-02-07','14:06:18'),(11742,'ITPXccLxLVhWLAZS','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.167','2025-02-07','14:06:19'),(11743,'riMAnjRP','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.237.210','2025-02-07','14:06:20'),(11744,'admin','Ingresa al sistema desde 172.70.255.247','2025-02-07','14:41:33'),(11745,'admin','Actualiza registro 197 en app_ventas','2025-02-07','14:42:25'),(11746,'SQLog:error','/*US=admin*/ \n            UPDATE app_ventas \n            SET id_liquidacion=\'21\'\n            WHERE app_ventas.fecha >= \'2025-02-07 00:00:00\' AND app_ventas.fecha <= \'2025-02-07 23:59:59\' AND app_ventas.estado = 1 AND id_mecanico=\'1 AND id_liquidacion=0\n        ','2025-02-07','14:42:57'),(11747,'SQLog:error','/*US=admin*/ \n            UPDATE app_ventas \n            SET id_liquidacion=\'\'\n            WHERE app_ventas.fecha >= \'2025-02-07 00:00:00\' AND app_ventas.fecha <= \'2025-02-07 23:59:59\' AND app_ventas.estado = 1 AND id_mecanico=\'2 AND id_liquidacion=0\n        ','2025-02-07','14:42:57'),(11748,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.255.248','2025-02-07','14:48:40'),(11749,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-07','14:48:40'),(11750,'admin','Ingresa al sistema desde 172.70.82.54','2025-02-07','14:50:24'),(11751,'admin','Actualiza registro 15 en app_ventas','2025-02-07','14:56:01'),(11752,'rafael','Ingresa al sistema desde 172.69.132.182','2025-02-07','14:56:49'),(11753,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-07','15:05:36'),(11754,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:05:36'),(11755,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-07','15:08:40'),(11756,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:08:40'),(11757,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-07','15:09:30'),(11758,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:09:30'),(11759,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-07','15:09:31'),(11760,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:09:31'),(11761,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-07','15:09:40'),(11762,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:09:40'),(11763,'admin','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.101','2025-02-07','15:11:40'),(11764,'admin','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.238.101','2025-02-07','15:11:45'),(11765,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.83.105','2025-02-07','15:11:45'),(11766,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-07','15:11:45'),(11767,'admin','Ingresa al sistema desde 108.162.238.101','2025-02-07','15:11:48'),(11768,'Rafael','Ingresa al sistema desde 172.70.83.105','2025-02-07','15:11:56'),(11769,'admin','Actualiza registro 198 en app_ventas','2025-02-07','15:12:34'),(11770,'SQLog:error','/*US=admin*/ \n            UPDATE app_ventas \n            SET id_liquidacion=\'41\'\n            WHERE app_ventas.fecha >= \'2025-02-07 00:00:00\' AND app_ventas.fecha <= \'2025-02-07 23:59:59\' AND app_ventas.estado = 1 AND id_mecanico=\'1 AND id_liquidacion=0\n        ','2025-02-07','15:12:58'),(11771,'SQLog:error','/*US=admin*/ \n            UPDATE app_ventas \n            SET id_liquidacion=\'42\'\n            WHERE app_ventas.fecha >= \'2025-02-07 00:00:00\' AND app_ventas.fecha <= \'2025-02-07 23:59:59\' AND app_ventas.estado = 1 AND id_mecanico=\'2 AND id_liquidacion=0\n        ','2025-02-07','15:12:58'),(11772,'SQLog:error','/*US=admin*/ \n            UPDATE app_ventas \n            SET id_liquidacion=\'43\'\n            WHERE app_ventas.fecha >= \'2025-02-07 00:00:00\' AND app_ventas.fecha <= \'2025-02-07 23:59:59\' AND app_ventas.estado = 1 AND id_mecanico=\'3 AND id_liquidacion=0\n        ','2025-02-07','15:12:58'),(11773,'rafael','Modifica diseno campo 1724 para formulario 8','2025-02-07','15:13:48'),(11774,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-07','15:15:27'),(11775,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:15:27'),(11776,'Daniela','Ingresa al sistema desde 172.71.234.205','2025-02-07','15:17:17'),(11777,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-07','15:21:07'),(11778,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:21:07'),(11779,'daniela','Cierra sesion desde 172.71.234.205','2025-02-07','15:23:26'),(11780,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','15:25:34'),(11781,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:25:34'),(11782,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','15:26:50'),(11783,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:26:50'),(11784,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','15:27:11'),(11785,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:27:11'),(11786,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','15:27:41'),(11787,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:27:41'),(11788,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','15:27:41'),(11789,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:27:41'),(11790,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','15:27:42'),(11791,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:27:42'),(11792,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','15:27:51'),(11793,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:27:51'),(11794,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','15:28:05'),(11795,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:28:05'),(11796,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','15:29:52'),(11797,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:29:52'),(11798,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','15:30:00'),(11799,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:30:00'),(11800,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','15:30:24'),(11801,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:30:24'),(11802,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-07','15:31:20'),(11803,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:31:20'),(11804,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','15:31:26'),(11805,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:31:26'),(11806,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-07','15:32:49'),(11807,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:32:49'),(11808,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','15:33:40'),(11809,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:33:40'),(11810,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','15:33:57'),(11811,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:33:57'),(11812,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-07','15:34:31'),(11813,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:34:31'),(11814,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','15:35:24'),(11815,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:35:24'),(11816,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','15:35:43'),(11817,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:35:43'),(11818,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-07','15:36:03'),(11819,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:36:03'),(11820,'rafael','Modifica diseno campo 1724 para formulario 8','2025-02-07','15:36:48'),(11821,'Rafael','Ingresa al sistema desde 172.70.82.115','2025-02-07','15:37:48'),(11822,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-07','15:41:04'),(11823,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:41:04'),(11824,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-07','15:41:11'),(11825,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:41:11'),(11826,'rafael','Modifica diseno campo 3816 para formulario 8','2025-02-07','15:43:54'),(11827,'admin','Ingresa al sistema desde 172.70.255.103','2025-02-07','15:46:29'),(11828,'admin','Actualiza registro 199 en app_ventas','2025-02-07','15:49:36'),(11829,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-07','15:50:09'),(11830,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:50:09'),(11831,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','15:50:51'),(11832,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:50:51'),(11833,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-07','15:50:52'),(11834,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:50:52'),(11835,'SQLog:error','/*US=rafael*/ \n        SELECT v.*, p.nombre\n        FROM app_ventas v, app_productos p\n        WHERE v.id_producto=p.id AND v.id_liquidacion=41\n    ','2025-02-07','15:51:03'),(11836,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-07','15:51:25'),(11837,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:51:25'),(11838,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-07','15:51:36'),(11839,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:51:36'),(11840,'Daniela','Ingresa al sistema desde 172.71.234.175','2025-02-07','15:51:46'),(11841,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','15:52:18'),(11842,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:52:18'),(11843,'daniela','Actualiza registro 200 en app_ventas','2025-02-07','15:53:03'),(11844,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-07','15:53:13'),(11845,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:53:13'),(11846,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','15:53:32'),(11847,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:53:32'),(11848,'daniela','Actualiza registro 201 en app_ventas','2025-02-07','15:55:32'),(11849,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','15:58:13'),(11850,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:58:13'),(11851,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','15:58:31'),(11852,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:58:31'),(11853,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-07','15:58:37'),(11854,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:58:37'),(11855,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-07','15:58:57'),(11856,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','15:58:57'),(11857,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-07','16:01:25'),(11858,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','16:01:25'),(11859,'SQLog:error','/*US=rafael*/ \n        SELECT v.*, p.nombre, c.nombre_completo\n        FROM app_ventas v, app_ventas_detalle vd, app_productos p, app_clientes c\n        WHERE v.id=vd.id_venta AND p.id=vd.id_producto AND c.id=v.id_cliente ANDv.id_liquidacion=41\n    ','2025-02-07','16:01:27'),(11860,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-07','16:01:44'),(11861,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','16:01:44'),(11862,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','16:02:09'),(11863,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','16:02:09'),(11864,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','16:02:38'),(11865,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','16:02:38'),(11866,'admin','Actualiza registro 203 en app_ventas','2025-02-07','16:07:34'),(11867,'PCoder:admin','Modifica archivo core_formulario[12].javascript','2025-02-07','16:24:24'),(11868,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','16:24:24'),(11869,'PCoder:admin','Modifica archivo core_formulario[12].javascript','2025-02-07','16:25:38'),(11870,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','16:25:38'),(11871,'PCoder:admin','Modifica archivo core_formulario[12].javascript','2025-02-07','16:25:58'),(11872,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','16:25:58'),(11873,'PCoder:admin','Modifica archivo core_formulario[12].javascript','2025-02-07','16:27:58'),(11874,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','16:27:58'),(11875,'PCoder:admin','Modifica archivo core_formulario[12].javascript','2025-02-07','16:28:22'),(11876,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','16:28:22'),(11877,'PCoder:admin','Modifica archivo core_formulario[12].javascript','2025-02-07','16:29:07'),(11878,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','16:29:07'),(11879,'PCoder:admin','Modifica archivo core_formulario[12].javascript','2025-02-07','16:29:14'),(11880,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','16:29:14'),(11881,'PCoder:admin','Modifica archivo core_formulario[12].javascript','2025-02-07','16:29:33'),(11882,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','16:29:33'),(11883,'PCoder:admin','Modifica archivo core_formulario[12].javascript','2025-02-07','16:30:58'),(11884,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','16:30:58'),(11885,'rafael','Modifica diseno campo 3829 para formulario 12','2025-02-07','16:33:48'),(11886,'PCoder:admin','Modifica archivo core_formulario[12].javascript','2025-02-07','16:34:29'),(11887,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','16:34:29'),(11888,'PCoder:admin','Modifica archivo core_formulario[12].javascript','2025-02-07','16:34:34'),(11889,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','16:34:34'),(11890,'PCoder:admin','Modifica archivo core_formulario[12].javascript','2025-02-07','16:38:03'),(11891,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','16:38:03'),(11892,'DANIELA','Ingresa al sistema desde 172.71.234.175','2025-02-07','16:38:35'),(11893,'PCoder:admin','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-07','16:39:42'),(11894,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-07','16:39:42'),(11895,'daniela','Cierra sesion desde 172.71.234.174','2025-02-07','16:41:32'),(11896,'mariano','Ingresa al sistema desde 172.71.234.174','2025-02-07','16:42:04'),(11897,'mariano','Actualiza registro 201 en app_ventas','2025-02-07','16:58:43'),(11898,'mariano','Cierra sesion desde 172.71.234.107','2025-02-07','17:19:33'),(11899,'daniela','Ingresa al sistema desde 172.69.56.136','2025-02-08','14:39:08'),(11900,'daniela','Actualiza registro 201 en app_ventas','2025-02-08','14:39:44'),(11901,'SECLog:event',' Intenta acceso no autorizado Frm:-33','2025-02-08','21:24:41'),(11902,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.114','2025-02-09','15:17:06'),(11903,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-09','15:17:06'),(11904,'daniela','Ingresa al sistema desde 172.70.82.114','2025-02-09','15:17:46'),(11905,'daniela','Actualiza registro 204 en app_ventas','2025-02-09','15:20:27'),(11906,'daniela','Cierra sesion desde 172.70.82.114','2025-02-09','15:22:35'),(11907,'DANIELA','Ingresa al sistema desde 172.68.18.41','2025-02-10','14:12:02'),(11908,'daniela','Cierra sesion desde 172.68.18.40','2025-02-10','14:12:56'),(11909,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.71.11.77','2025-02-10','20:02:29'),(11910,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-10','20:02:29'),(11911,'daniela','Ingresa al sistema desde 172.71.11.77','2025-02-10','20:03:01'),(11912,'daniela','Actualiza registro 205 en app_ventas','2025-02-10','20:05:18'),(11913,'Daniela','Ingresa al sistema desde 172.71.10.70','2025-02-10','20:08:56'),(11914,'daniela','Actualiza registro 205 en app_ventas','2025-02-10','20:10:22'),(11915,'daniela','Actualiza registro 205 en app_ventas','2025-02-10','20:11:29'),(11916,'daniela','Actualiza registro 205 en app_ventas','2025-02-10','20:13:06'),(11917,'daniela','Actualiza registro 205 en app_ventas','2025-02-10','20:14:01'),(11918,'daniela','Actualiza registro 205 en app_ventas','2025-02-10','20:15:23'),(11919,'daniela','Actualiza registro 205 en app_ventas','2025-02-10','20:17:10'),(11920,'daniela','Cierra sesion desde 172.71.10.71','2025-02-10','20:22:54'),(11921,'rafael','Ingresa al sistema desde 172.70.255.77','2025-02-10','22:16:26'),(11922,'PCoder:rafael','Modifica archivo core_formulario[14].javascript','2025-02-10','22:19:01'),(11923,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-10','22:19:01'),(11924,'PCoder:rafael','Modifica archivo core_formulario[14].javascript','2025-02-10','22:37:11'),(11925,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-10','22:37:11'),(11926,'PCoder:rafael','Modifica archivo core_formulario[14].javascript','2025-02-10','22:38:52'),(11927,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-10','22:38:52'),(11928,'PCoder:rafael','Modifica archivo core_formulario[14].javascript','2025-02-10','22:39:48'),(11929,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-10','22:39:48'),(11930,'PCoder:rafael','Modifica archivo core_formulario[14].javascript','2025-02-10','22:40:25'),(11931,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-10','22:40:25'),(11932,'PCoder:rafael','Modifica archivo core_formulario[14].javascript','2025-02-10','22:41:21'),(11933,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-10','22:41:21'),(11934,'daniela','Ingresa al sistema desde 172.69.138.59','2025-02-11','18:13:50'),(11935,'daniela','Actualiza registro 205 en app_ventas','2025-02-11','18:14:01'),(11936,'daniela','Actualiza registro 205 en app_ventas','2025-02-11','18:14:24'),(11937,'daniela','Actualiza registro 205 en app_ventas','2025-02-11','18:15:36'),(11938,'daniela','Actualiza registro 205 en app_ventas','2025-02-11','18:16:30'),(11939,'daniela','Cierra sesion desde 172.69.138.58','2025-02-11','18:17:12'),(11940,'admin','Ingresa al sistema desde 172.70.38.203','2025-02-12','09:35:35'),(11941,'admin','Crea formulario 17 para app_abonos_ventas_credito','2025-02-12','09:38:38'),(11942,'admin','Crea campo 3830 para formulario 17','2025-02-12','09:42:40'),(11943,'admin','Modifica diseno campo 3830 para formulario 17','2025-02-12','09:45:46'),(11944,'admin','Crea campo 3831 para formulario 17','2025-02-12','09:47:44'),(11945,'admin','Crea campo 3832 para formulario 17','2025-02-12','09:49:22'),(11946,'admin','Crea campo 3833 para formulario 17','2025-02-12','09:52:22'),(11947,'SQLog:error','/*US=admin*/ UPDATE core_formulario_objeto SET tipo=\'lista_seleccion\',titulo=\'Forma de Pago\',campo=\'forma_pago\',ayuda_titulo=\'\',ayuda_texto=\'\',formulario=\'17\',PCOBD_Peso=\'2\',PCOBD_Columna=\'1\',obligatorio=\'1\',visible=\'1\',valor_predeterminado=\'\',validacion_datos=\'\',etiqueta_busqueda=\'\',ajax_busqueda=\'0\',valor_unico=\'0\',solo_lectura=\'\',ancho=\'0\',alto=\'0\',barra_herramientas=\'0\',fila_unica=\'0\',lista_opciones=\'\',origen_lista_opciones=\'app_opcionlista.valor_visual\',origen_lista_valores=\'app_opcionlista.valor_visual\',valor_etiqueta=\'\',url_iframe=\'\',objeto_en_ventana=\'0\',informe_vinculado=\'0\',maxima_longitud=\'0\',valor_minimo=\'0\',valor_maximo=\'0\',valor_salto=\'0\',formato_salida=\'\',plantilla_archivo=\'\',peso_archivo=\'50\',tamano_pincel=\'1\',color_trazo=\'#000000\',formulario_vinculado=\'0\',formulario_campo_vinculo=\'\',formulario_campo_foraneo=\'\',condicion_filtrado_listas=\'identificador_lista = \'formas_pago\' order by valor_visual asc\',pestana_objeto=\'\',personalizacion_tag=\'\',modo_inline=\'0\',imagen=\'\',tipo_accion=\'\',accion_usuario=\'\',valor_check_activo=\'\',valor_check_inactivo=\'\',valor_placeholder=\'\',ocultar_etiqueta=\'0\',id_html=\'forma_pago\',validacion_extras=\'\',clase_contenedor=\'\',ajax_busqueda_dinamica=\'0\',etiqueta_colapsable=\'\',id=id WHERE id=\'3833\'','2025-02-12','09:53:01'),(11948,'admin','Modifica diseno campo 3833 para formulario 17','2025-02-12','09:53:01'),(11949,'admin','Modifica diseno campo 3833 para formulario 17','2025-02-12','09:54:18'),(11950,'admin','Modifica diseno campo 3830 para formulario 17','2025-02-12','09:57:48'),(11951,'daniela','Ingresa al sistema desde 172.69.138.58','2025-02-12','09:58:19'),(11952,'PCoder:admin','Modifica archivo core_formulario[17].post_script','2025-02-12','09:58:38'),(11953,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','09:58:38'),(11954,'PCoder:admin','Modifica archivo core_formulario[17].post_script','2025-02-12','09:58:47'),(11955,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','09:58:47'),(11956,'daniela','Actualiza registro 205 en app_ventas','2025-02-12','09:59:15'),(11957,'PCoder:admin','Modifica archivo core_formulario[17].javascript','2025-02-12','09:59:19'),(11958,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','09:59:19'),(11959,'PCoder:admin','Modifica archivo core_formulario[17].javascript','2025-02-12','09:59:24'),(11960,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','09:59:24'),(11961,'admin','Modifica diseno campo 3832 para formulario 17','2025-02-12','10:03:46'),(11962,'admin','Inserta registro en app_abonos_ventas_credito','2025-02-12','10:03:59'),(11963,'PCoder:admin','Modifica archivo core_formulario[17].javascript','2025-02-12','10:04:20'),(11964,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','10:04:20'),(11965,'PCoder:admin','Modifica archivo core_formulario[17].post_script','2025-02-12','10:04:36'),(11966,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','10:04:36'),(11967,'admin','Modifica diseno campo 3831 para formulario 17','2025-02-12','10:08:20'),(11968,'admin','Inserta registro en app_abonos_ventas_credito','2025-02-12','10:08:34'),(11969,'admin','Inserta registro en app_abonos_ventas_credito','2025-02-12','10:09:15'),(11970,'admin','Modifica diseno campo 3831 para formulario 17','2025-02-12','10:09:57'),(11971,'admin','Inserta registro en app_abonos_ventas_credito','2025-02-12','10:10:07'),(11972,'admin','Inserta registro en app_abonos_ventas_credito','2025-02-12','10:10:47'),(11973,'admin','Elimina campo del formulario 17','2025-02-12','10:11:16'),(11974,'admin','Inserta registro en app_abonos_ventas_credito','2025-02-12','10:12:38'),(11975,'admin','Inserta registro en app_abonos_ventas_credito','2025-02-12','10:13:55'),(11976,'daniela','Actualiza registro 205 en app_ventas','2025-02-12','10:14:40'),(11977,'admin','Inserta registro en app_abonos_ventas_credito','2025-02-12','10:15:02'),(11978,'admin','Inserta registro en app_abonos_ventas_credito','2025-02-12','10:15:22'),(11979,'admin','Inserta registro en core_menu','2025-02-12','10:21:33'),(11980,'admin','Inserta registro en core_menu','2025-02-12','10:22:42'),(11981,'admin','Actualiza registro 271 en core_menu','2025-02-12','10:23:26'),(11982,'admin','Actualiza registro 271 en core_menu','2025-02-12','10:25:48'),(11983,'admin','Crea informe 39','2025-02-12','10:27:59'),(11984,'admin','Agrega tabla app_abonos_ventas_credito al informe 39','2025-02-12','10:28:12'),(11985,'admin','Agrega tabla app_ventas al informe 39','2025-02-12','10:28:24'),(11986,'rafael','Ingresa al sistema desde 172.70.82.64','2025-02-12','10:28:45'),(11987,'rafael','Actualiza formulario 17 para app_abonos_ventas_credito','2025-02-12','10:29:17'),(11988,'admin','Inserta registro en app_abonos_ventas_credito','2025-02-12','10:31:31'),(11989,'admin','Agrega tabla app_clientes al informe 39','2025-02-12','10:32:48'),(11990,'admin','Agrega campo app_abonos_ventas_credito.id al informe 39','2025-02-12','10:40:30'),(11991,'admin','Cambia estado del campo visible en objetoID Inf:39','2025-02-12','10:40:34'),(11992,'admin','Agrega campo app_abonos_ventas_credito.valor_abono al informe 39','2025-02-12','10:41:02'),(11993,'admin','Agrega campo app_abonos_ventas_credito.forma_pago al informe 39','2025-02-12','10:41:10'),(11994,'admin','Agrega campo app_clientes.nombre_completo al informe 39','2025-02-12','10:41:31'),(11995,'admin','Agrega campo app_abonos_ventas_credito.fecha al informe 39','2025-02-12','10:41:37'),(11996,'admin','Agrega campo app_abonos_ventas_credito.usuario al informe 39','2025-02-12','10:41:42'),(11997,'admin','Agrega condicion al informe 39','2025-02-12','10:43:01'),(11998,'admin','Agrega condicion al informe 39','2025-02-12','10:43:17'),(11999,'admin','Agrega condicion al informe 39','2025-02-12','10:43:59'),(12000,'SQLog:error','/*US=admin*/ SELECT app_abonos_ventas_credito.id,app_abonos_ventas_credito.valor_abono,app_abonos_ventas_credito.forma_pago,app_clientes.nombre_completo,app_abonos_ventas_credito.fecha,app_abonos_ventas_credito.usuario FROM app_abonos_ventas_credito,app_ventas,app_clientes WHERE  app_abonos_ventas_credito.idapp_abonos_ventas_credito.id_venta = app_ventas.id  AND    app_ventas.id_cliente = app_clientes.id ','2025-02-12','11:01:57'),(12001,'SQLog:error','/*US=admin*/ SELECT app_abonos_ventas_credito.id,app_abonos_ventas_credito.valor_abono,app_abonos_ventas_credito.forma_pago,app_clientes.nombre_completo,app_abonos_ventas_credito.fecha,app_abonos_ventas_credito.usuario FROM app_abonos_ventas_credito,app_ventas,app_clientes WHERE  app_abonos_ventas_credito.idapp_abonos_ventas_credito.id_venta = app_ventas.id  AND    app_ventas.id_cliente = app_clientes.id ','2025-02-12','11:01:57'),(12002,'admin','Actualiza registro 39 en core_informe','2025-02-12','11:29:41'),(12003,'admin','Actualiza registro 39 en core_informe','2025-02-12','11:31:58'),(12004,'admin','Elimina tabla 220 del informe 39','2025-02-12','11:32:13'),(12005,'admin','Actualiza registro 39 en core_informe','2025-02-12','11:32:37'),(12006,'admin','Cambia estado del campo visible en objetoID Inf:39','2025-02-12','11:34:18'),(12007,'admin','Cambia estado del campo visible en objetoID Inf:39','2025-02-12','11:34:25'),(12008,'admin','Crea campo 3839 para formulario 17','2025-02-12','11:35:48'),(12009,'admin','Modifica diseno campo 3839 para formulario 17','2025-02-12','11:36:08'),(12010,'admin','Actualiza registro 39 en core_informe','2025-02-12','11:37:43'),(12011,'daniela','Ingresa al sistema desde 172.69.138.144','2025-02-12','12:15:01'),(12012,'daniela','Actualiza registro 206 en app_ventas','2025-02-12','12:21:23'),(12013,'daniela','Actualiza registro 206 en app_ventas','2025-02-12','12:22:31'),(12014,'daniela','Actualiza registro 206 en app_ventas','2025-02-12','12:22:43'),(12015,'SECLog:event',' Intenta acceso no autorizado Frm:-33','2025-02-12','14:24:42'),(12016,'SECLog:event',' Intenta acceso no autorizado Frm:-33','2025-02-12','14:24:45'),(12017,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.69.138.42','2025-02-12','15:54:57'),(12018,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-12','15:54:57'),(12019,'daniela','Ingresa al sistema desde 172.69.138.42','2025-02-12','15:55:15'),(12020,'daniela','Inserta registro en app_abonos_ventas_credito','2025-02-12','15:57:15'),(12021,'daniela','Actualiza registro 205 en app_ventas','2025-02-12','15:58:08'),(12022,'daniela','Actualiza registro 205 en app_ventas','2025-02-12','15:58:40'),(12023,'admin','Ingresa al sistema desde 172.70.223.71','2025-02-12','15:59:58'),(12024,'admin','Actualiza registro 205 en app_ventas','2025-02-12','16:01:22'),(12025,'daniela','Actualiza registro 205 en app_ventas','2025-02-12','16:04:17'),(12026,'rafael','Ingresa al sistema desde 172.71.190.71','2025-02-12','16:12:36'),(12027,'PCoder:rafael','Modifica archivo core/comunes.php','2025-02-12','16:16:22'),(12028,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','16:16:22'),(12029,'admin','Cambia estado del campo visible en objetoID Frm:8','2025-02-12','16:17:05'),(12030,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.68.27.188','2025-02-12','16:18:07'),(12031,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-12','16:18:07'),(12032,'rafael','Ingresa al sistema desde 172.68.27.188','2025-02-12','16:18:13'),(12033,'admin','Elimina campo del formulario 8','2025-02-12','16:18:20'),(12034,'rafael','Actualiza registro 10 en app_ventas','2025-02-12','16:19:11'),(12035,'rafael','Cambia estado del campo PCOBD_Peso en objetoID Frm:8','2025-02-12','17:05:02'),(12036,'rafael','Actualiza registro 9 en app_ventas','2025-02-12','17:06:46'),(12037,'rafael','Modifica diseno campo 3730 para formulario 8','2025-02-12','17:09:19'),(12038,'rafael','Modifica diseno campo 3730 para formulario 8','2025-02-12','17:10:12'),(12039,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-12','17:26:03'),(12040,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','17:26:03'),(12041,'rafael','Actualiza registro 19 en app_ventas','2025-02-12','17:26:36'),(12042,'Rafael','Ingresa al sistema desde 172.70.83.119','2025-02-12','17:27:29'),(12043,'rafael','Crea campo 3840 para formulario 1','2025-02-12','17:33:26'),(12044,'rafael','Modifica diseno campo 3840 para formulario 1','2025-02-12','17:33:49'),(12045,'rafael','Modifica diseno campo 3840 para formulario 1','2025-02-12','17:34:36'),(12046,'rafael','Modifica diseno campo 3730 para formulario 8','2025-02-12','17:36:48'),(12047,'Rafael','Ingresa al sistema desde 172.71.190.14','2025-02-12','17:38:06'),(12048,'rafael','Actualiza registro 17 en app_ventas','2025-02-12','17:38:28'),(12049,'PCoder:rafael','Modifica archivo inc/jquery/plugins/sketch.js','2025-02-12','17:47:29'),(12050,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','17:47:29'),(12051,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.71.191.116','2025-02-12','17:48:09'),(12052,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-12','17:48:09'),(12053,'rafael','Ingresa al sistema desde 172.71.190.32','2025-02-12','17:48:17'),(12054,'PCoder:rafael','Modifica archivo inc/jquery/plugins/sketch.js','2025-02-12','17:49:08'),(12055,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','17:49:08'),(12056,'rafael','Ingresa al sistema desde 172.70.254.3','2025-02-12','17:49:50'),(12057,'PCoder:rafael','Modifica archivo inc/jquery/plugins/sketch.js','2025-02-12','17:51:23'),(12058,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','17:51:23'),(12059,'rafael','Ingresa al sistema desde 172.70.83.45','2025-02-12','17:51:59'),(12060,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 108.162.210.127','2025-02-12','17:56:42'),(12061,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-12','17:56:42'),(12062,'rafael','Ingresa al sistema desde 108.162.210.127','2025-02-12','17:56:54'),(12063,'rafael','Actualiza registro 25 en app_ventas','2025-02-12','17:58:13'),(12064,'admin','Ingresa al sistema desde 172.70.255.78','2025-02-12','18:02:01'),(12065,'admin','Actualiza registro 207 en app_ventas','2025-02-12','18:03:33'),(12066,'Daniela','Ingresa al sistema desde 172.69.138.145','2025-02-12','18:33:16'),(12067,'daniela','Actualiza registro 208 en app_ventas','2025-02-12','18:35:22'),(12068,'daniela','Actualiza registro 202 en app_ventas','2025-02-12','18:44:26'),(12069,'daniela','Actualiza registro 209 en app_ventas','2025-02-12','18:48:16'),(12070,'daniela','Cierra sesion desde 172.69.114.130','2025-02-12','18:50:58'),(12071,'rafael','Ingresa al sistema desde 172.70.39.128','2025-02-12','21:27:22'),(12072,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.70.82.115','2025-02-12','21:28:13'),(12073,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-12','21:28:13'),(12074,'rafael','Ingresa al sistema desde 172.70.82.115','2025-02-12','21:28:20'),(12075,'rafael','Ingresa al sistema desde 172.70.38.55','2025-02-12','21:29:22'),(12076,'PCoder:rafael','Modifica archivo core/comunes.php','2025-02-12','21:43:11'),(12077,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','21:43:11'),(12078,'PCoder:rafael','Modifica archivo core/comunes.php','2025-02-12','21:47:48'),(12079,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','21:47:48'),(12080,'PCoder:rafael','Modifica archivo core/comunes.php','2025-02-12','21:48:42'),(12081,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','21:48:42'),(12082,'PCoder:rafael','Modifica archivo core/comunes.php','2025-02-12','21:49:08'),(12083,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','21:49:08'),(12084,'PCoder:rafael','Modifica archivo core/comunes.php','2025-02-12','21:50:08'),(12085,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','21:50:08'),(12086,'PCoder:rafael','Modifica archivo core/comunes.php','2025-02-12','21:50:37'),(12087,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','21:50:37'),(12088,'PCoder:rafael','Modifica archivo core/comunes.php','2025-02-12','21:51:16'),(12089,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','21:51:16'),(12090,'rafael','Ingresa al sistema desde 172.70.83.100','2025-02-12','21:51:31'),(12091,'Rafael','Ingresa al sistema desde 172.70.83.100','2025-02-12','21:53:18'),(12092,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-12','21:57:44'),(12093,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','21:57:44'),(12094,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-12','21:57:46'),(12095,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','21:57:46'),(12096,'Rafael','Ingresa al sistema desde 172.70.82.115','2025-02-12','21:58:05'),(12097,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-12','21:58:22'),(12098,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','21:58:22'),(12099,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-12','21:58:54'),(12100,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-12','21:58:54'),(12101,'','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.69.132.183','2025-02-13','16:25:51'),(12102,'SQLog:error','SELECT login,clave,nombre,estado,correo,ultimo_acceso,llave_paso,usuario_interno,llave_recuperacion,es_plantilla,plantilla_permisos,descripcion,transformacion_colores,idioma,avatar,redes_permitidas FROM core_usuario WHERE estado=1 AND login=\' AND clave=\'d41d8cd98f00b204e9800998ecf8427e\' ','2025-02-13','16:25:51'),(12103,'admin','Ingresa al sistema desde 162.158.126.168','2025-02-13','16:25:59'),(12104,'Daniela','Ingresa al sistema desde 172.70.126.20','2025-02-13','16:37:13'),(12105,'daniela','Actualiza registro 210 en app_ventas','2025-02-13','16:39:18'),(12106,'admin','Cambia estado del campo nro_factura en objetoID ','2025-02-13','16:44:50'),(12107,'admin','Cambia estado del campo nro_factura en objetoID ','2025-02-13','16:44:50'),(12108,'daniela','Cierra sesion desde 172.70.126.21','2025-02-13','16:46:38'),(12109,'admin','Elimina campo del formulario 16','2025-02-13','16:53:30'),(12110,'PCoder:admin','Modifica archivo core_formulario[6].pre_script','2025-02-13','17:00:16'),(12111,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-13','17:00:16'),(12112,'PCoder:admin','Modifica archivo core_formulario[6].pre_script','2025-02-13','17:00:20'),(12113,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-13','17:00:20'),(12114,'admin','Inserta registro en app_abonos_ventas_credito','2025-02-13','17:02:31'),(12115,'admin','Inserta registro en app_abonos_ventas_credito','2025-02-13','17:02:41'),(12116,'PCoder:admin','Modifica archivo core_formulario[6].pre_script','2025-02-13','17:05:14'),(12117,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-13','17:05:14'),(12118,'PCoder:admin','Modifica archivo core_formulario[6].pre_script','2025-02-13','17:05:43'),(12119,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-13','17:05:43'),(12120,'PCoder:admin','Modifica archivo core_formulario[6].pre_script','2025-02-13','17:06:46'),(12121,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-13','17:06:46'),(12122,'PCoder:admin','Modifica archivo core_formulario[6].pre_script','2025-02-13','17:06:48'),(12123,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-13','17:06:48'),(12124,'PCoder:admin','Modifica archivo core_formulario[6].pre_script','2025-02-13','17:08:31'),(12125,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-13','17:08:31'),(12126,'PCoder:admin','Modifica archivo core_formulario[6].pre_script','2025-02-13','17:09:07'),(12127,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-13','17:09:07'),(12128,'admin','Ingresa al sistema desde 172.70.54.221','2025-02-14','07:36:47'),(12129,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','07:41:28'),(12130,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','07:41:28'),(12131,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','07:42:36'),(12132,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','07:42:36'),(12133,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','07:42:42'),(12134,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','07:42:42'),(12135,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','07:43:40'),(12136,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','07:43:40'),(12137,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','07:44:26'),(12138,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','07:44:26'),(12139,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','07:45:09'),(12140,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','07:45:09'),(12141,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','07:45:13'),(12142,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','07:45:13'),(12143,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','07:50:11'),(12144,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','07:50:11'),(12145,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','07:51:03'),(12146,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','07:51:03'),(12147,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','07:52:15'),(12148,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','07:52:15'),(12149,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','07:52:17'),(12150,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','07:52:17'),(12151,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','07:54:28'),(12152,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','07:54:28'),(12153,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','07:59:12'),(12154,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','07:59:12'),(12155,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','07:59:12'),(12156,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','07:59:12'),(12157,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','07:59:13'),(12158,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','07:59:13'),(12159,'PCoder:admin','Modifica archivo core_formulario[16].post_script','2025-02-14','08:00:36'),(12160,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','08:00:36'),(12161,'PCoder:admin','Modifica archivo core_formulario[16].post_script','2025-02-14','08:01:01'),(12162,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','08:01:01'),(12163,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','08:01:04'),(12164,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','08:01:04'),(12165,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','08:01:09'),(12166,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','08:01:09'),(12167,'PCoder:admin','Modifica archivo core_formulario[16].post_script','2025-02-14','08:03:08'),(12168,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','08:03:08'),(12169,'PCoder:admin','Modifica archivo core_formulario[16].post_script','2025-02-14','08:08:32'),(12170,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','08:08:32'),(12171,'PCoder:admin','Modifica archivo core_formulario[16].post_script','2025-02-14','08:14:11'),(12172,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','08:14:11'),(12173,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','08:14:25'),(12174,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','08:14:25'),(12175,'PCoder:admin','Modifica archivo core_formulario[16].post_script','2025-02-14','08:14:29'),(12176,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','08:14:29'),(12177,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','08:14:34'),(12178,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','08:14:34'),(12179,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','08:15:21'),(12180,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','08:15:21'),(12181,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','08:15:23'),(12182,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','08:15:23'),(12183,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','08:16:16'),(12184,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','08:16:16'),(12185,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','08:16:17'),(12186,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','08:16:17'),(12187,'rafael','Ingresa al sistema desde 172.70.255.181','2025-02-14','08:37:38'),(12188,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','09:03:41'),(12189,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','09:03:41'),(12190,'PCoder:rafael','Modifica archivo core_formulario[6].pre_script','2025-02-14','09:05:17'),(12191,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','09:05:17'),(12192,'PCoder:rafael','Modifica archivo core_formulario[6].pre_script','2025-02-14','09:05:27'),(12193,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','09:05:27'),(12194,'SQLog:error','/*US=rafael*/ \n    SELECT SUM (total)\n     FROM app_ventas\n     WHERE fecha >= \' 00:00:00\' AND fecha <= \' 23:59:59\'\n         AND estado = 1 \n         AND tipo_pago = \'Credito\'  \n         AND factura_pagada = 1   \n','2025-02-14','09:05:44'),(12195,'PCoder:rafael','Modifica archivo core_formulario[6].pre_script','2025-02-14','09:06:38'),(12196,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','09:06:38'),(12197,'PCoder:rafael','Modifica archivo core_formulario[6].pre_script','2025-02-14','09:06:46'),(12198,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','09:06:46'),(12199,'SQLog:error','/*US=rafael*/ \n    SELECT SUM (total)\n     FROM app_ventas\n     WHERE fecha >= \'2025-02-01 00:00:00\' AND fecha <= \'2025-02-14 23:59:59\'\n         AND estado = 1 \n         AND tipo_pago = \'Credito\'  \n         AND factura_pagada = 1   \n','2025-02-14','09:06:58'),(12200,'PCoder:rafael','Modifica archivo core_formulario[6].pre_script','2025-02-14','09:07:17'),(12201,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','09:07:17'),(12202,'PCoder:rafael','Modifica archivo core_formulario[6].pre_script','2025-02-14','09:08:37'),(12203,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','09:08:37'),(12204,'PCoder:rafael','Modifica archivo core_formulario[6].pre_script','2025-02-14','09:08:46'),(12205,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','09:08:46'),(12206,'PCoder:rafael','Modifica archivo core_formulario[6].pre_script','2025-02-14','09:10:11'),(12207,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','09:10:11'),(12208,'PCoder:rafael','Modifica archivo core_formulario[6].pre_script','2025-02-14','09:10:41'),(12209,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','09:10:41'),(12210,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','09:32:30'),(12211,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','09:32:30'),(12212,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','09:32:48'),(12213,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','09:32:48'),(12214,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','09:33:47'),(12215,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','09:33:47'),(12216,'rafael','Ingresa al sistema desde 108.162.212.124','2025-02-14','09:34:09'),(12217,'PCoder:admin','Modifica archivo core_formulario[16].pre_script','2025-02-14','09:34:17'),(12218,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','09:34:17'),(12219,'PCoder:admin','Modifica archivo core_formulario[6].pre_script','2025-02-14','09:35:39'),(12220,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','09:35:39'),(12221,'PCoder:admin','Modifica archivo core_formulario[6].pre_script','2025-02-14','09:35:49'),(12222,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','09:35:49'),(12223,'PCoder:rafael','Modifica archivo core_formulario[16].pre_script','2025-02-14','09:39:44'),(12224,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','09:39:44'),(12225,'PCoder:rafael','Modifica archivo core_formulario[16].pre_script','2025-02-14','09:39:50'),(12226,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','09:39:50'),(12227,'PCoder:rafael','Modifica archivo core_formulario[16].pre_script','2025-02-14','09:41:18'),(12228,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','09:41:18'),(12229,'rafael','Modifica diseno campo 3788 para formulario 16','2025-02-14','09:45:35'),(12230,'rafael','Modifica diseno campo 3788 para formulario 16','2025-02-14','09:45:44'),(12231,'rafael','Actualiza registro 1 en core_parametros','2025-02-14','10:16:28'),(12232,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','10:49:11'),(12233,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','10:49:11'),(12234,'PCoder:rafael','Modifica archivo core_formulario[14].javascript','2025-02-14','10:59:01'),(12235,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','10:59:01'),(12236,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','10:59:53'),(12237,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','10:59:53'),(12238,'SQLog:error','/*US=rafael*/ \n        SELECT v.*, p.nombre, c.nombre_completo\n        FROM app_ventas v, app_ventas_detalle vd, app_productos p, app_clientes c\n        WHERE v.id=vd.id_venta AND p.id=vd.id_producto AND c.id=v.id_cliente \n        AND v.fecha >= \'2025-02-01 00:00:00\' AND v.fecha <= \'2025-02-14 23:59:59\' AND v.estado = 1 AND v.id_liquidacion=0 v.id_mecanico=\'1\'\n    ','2025-02-14','11:00:17'),(12239,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','11:01:22'),(12240,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:01:22'),(12241,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','11:01:47'),(12242,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:01:47'),(12243,'PCoder:rafael','Modifica archivo core_formulario[14].javascript','2025-02-14','11:02:45'),(12244,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:02:45'),(12245,'PCoder:rafael','Modifica archivo core_formulario[14].javascript','2025-02-14','11:03:45'),(12246,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:03:45'),(12247,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','11:04:20'),(12248,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:04:20'),(12249,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','11:06:10'),(12250,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:06:10'),(12251,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','11:06:26'),(12252,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:06:26'),(12253,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','11:06:30'),(12254,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:06:30'),(12255,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','11:07:04'),(12256,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:07:04'),(12257,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','11:09:41'),(12258,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:09:41'),(12259,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','11:13:49'),(12260,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:13:49'),(12261,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','11:13:58'),(12262,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:13:58'),(12263,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','11:22:36'),(12264,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:22:36'),(12265,'admin','Ingresa al sistema desde 172.70.82.64','2025-02-14','11:24:42'),(12266,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','11:25:31'),(12267,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:25:31'),(12268,'admin','Crea informe 40','2025-02-14','11:28:47'),(12269,'admin','Agrega tabla app_abonos_ventas_credito al informe 40','2025-02-14','11:28:52'),(12270,'admin','Agrega campo SUM(valor_abono) al informe 40','2025-02-14','11:29:28'),(12271,'admin','Agrega campo app_abonos_ventas_credito.id_venta al informe 40','2025-02-14','11:29:39'),(12272,'admin','Cambia estado del campo peso en objetoID Inf:40','2025-02-14','11:29:43'),(12273,'admin','Cambia estado del campo peso en objetoID Inf:40','2025-02-14','11:29:48'),(12274,'admin','Agrega campo app_abonos_ventas_credito.forma_pago al informe 40','2025-02-14','11:29:59'),(12275,'admin','Agrega campo app_abonos_ventas_credito.fecha al informe 40','2025-02-14','11:30:09'),(12276,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','11:30:18'),(12277,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:30:18'),(12278,'admin','Agrega campo app_abonos_ventas_credito.usuario al informe 40','2025-02-14','11:30:18'),(12279,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','11:31:49'),(12280,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:31:49'),(12281,'admin','Agrega condicion al informe 40','2025-02-14','11:32:17'),(12282,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','11:32:24'),(12283,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:32:24'),(12284,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','11:33:17'),(12285,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:33:17'),(12286,'admin','Crea campo 3842 para formulario 16','2025-02-14','11:34:51'),(12287,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','11:35:07'),(12288,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:35:07'),(12289,'admin','Modifica diseno campo 3842 para formulario 16','2025-02-14','11:37:59'),(12290,'admin','Cambia estado del campo visible en objetoID Frm:16','2025-02-14','11:38:25'),(12291,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','11:39:21'),(12292,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:39:21'),(12293,'admin','Cambia estado del campo visible en objetoID Frm:16','2025-02-14','11:39:35'),(12294,'PCoder:admin','Modifica archivo core_formulario[16].javascript','2025-02-14','11:40:01'),(12295,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:40:01'),(12296,'admin','Modifica diseno campo 3842 para formulario 16','2025-02-14','11:40:21'),(12297,'admin','Actualiza registro 40 en core_informe','2025-02-14','11:42:13'),(12298,'rafael','Actualiza registro 40 en core_informe','2025-02-14','11:42:52'),(12299,'PCoder:rafael','Modifica archivo core_formulario[16].pre_script','2025-02-14','11:43:52'),(12300,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:43:52'),(12301,'rafael','Actualiza registro 40 en core_informe','2025-02-14','11:46:34'),(12302,'rafael','Actualiza registro 40 en core_informe','2025-02-14','11:46:43'),(12303,'admin','Modifica diseno campo 3790 para formulario 16','2025-02-14','11:46:44'),(12304,'PCoder:admin','Modifica archivo core_formulario[16].javascript','2025-02-14','11:47:08'),(12305,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:47:08'),(12306,'PCoder:admin','Modifica archivo core_formulario[16].javascript','2025-02-14','11:47:15'),(12307,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:47:15'),(12308,'admin','Actualiza registro 9 en app_ventas','2025-02-14','11:47:37'),(12309,'admin','Actualiza registro 9 en app_ventas','2025-02-14','11:49:58'),(12310,'admin','Actualiza registro 9 en app_ventas','2025-02-14','11:50:23'),(12311,'admin','Actualiza registro 9 en app_ventas','2025-02-14','11:51:10'),(12312,'PCoder:admin','Modifica archivo core_formulario[16].javascript','2025-02-14','11:52:26'),(12313,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:52:26'),(12314,'admin','Actualiza registro 9 en app_ventas','2025-02-14','11:54:47'),(12315,'PCoder:admin','Modifica archivo core_formulario[16].post_script','2025-02-14','11:57:31'),(12316,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:57:31'),(12317,'admin','Actualiza registro 9 en app_ventas','2025-02-14','11:58:07'),(12318,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','11:59:52'),(12319,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','11:59:52'),(12320,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:00:30'),(12321,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:00:30'),(12322,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:00:48'),(12323,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:00:48'),(12324,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:01:10'),(12325,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:01:10'),(12326,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:01:34'),(12327,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:01:34'),(12328,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:02:00'),(12329,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:02:00'),(12330,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:02:31'),(12331,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:02:31'),(12332,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:06:38'),(12333,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:06:38'),(12334,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:07:02'),(12335,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:07:02'),(12336,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:07:41'),(12337,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:07:41'),(12338,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:08:44'),(12339,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:08:44'),(12340,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:09:12'),(12341,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:09:12'),(12342,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:10:02'),(12343,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:10:02'),(12344,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:11:03'),(12345,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:11:03'),(12346,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:11:55'),(12347,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:11:55'),(12348,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:13:37'),(12349,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:13:37'),(12350,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:13:57'),(12351,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:13:57'),(12352,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:14:52'),(12353,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:14:52'),(12354,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:22:49'),(12355,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:22:49'),(12356,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:23:14'),(12357,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:23:14'),(12358,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:23:48'),(12359,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:23:48'),(12360,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:25:12'),(12361,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:25:12'),(12362,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:25:52'),(12363,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:25:52'),(12364,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:26:56'),(12365,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:26:56'),(12366,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:29:08'),(12367,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:29:08'),(12368,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:29:35'),(12369,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:29:35'),(12370,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:31:04'),(12371,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:31:04'),(12372,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:31:26'),(12373,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:31:26'),(12374,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:31:56'),(12375,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:31:56'),(12376,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:32:19'),(12377,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:32:19'),(12378,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','12:44:49'),(12379,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:44:49'),(12380,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','12:47:17'),(12381,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:47:17'),(12382,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','12:49:08'),(12383,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:49:08'),(12384,'SQLog:error','/*US=rafael*/ \n        SELECT v.*, p.nombre, c.nombre_completo,\n            CONCAT(\'$\',FORMAT(v.valor_venta,2,\'de_DE\')) valor_venta,\n        FROM app_ventas v, app_ventas_detalle vd, app_productos p, app_clientes c\n        WHERE v.id=vd.id_venta AND p.id=vd.id_producto AND c.id=v.id_cliente \n        AND v.fecha >= \'2025-02-01 00:00:00\' AND v.fecha <= \'2025-02-14 23:59:59\' AND v.id_mecanico=\'1\' AND v.estado = 1 AND v.id_liquidacion=0\n    ','2025-02-14','12:49:11'),(12385,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','12:49:35'),(12386,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:49:35'),(12387,'SQLog:error','/*US=rafael*/ \n        SELECT v.*, p.nombre, c.nombre_completo,\n            CONCAT(\'$\',FORMAT(v.valor_venta,2,\'de_DE\')) valor_venta\n        FROM app_ventas v, app_ventas_detalle vd, app_productos p, app_clientes c\n        WHERE v.id=vd.id_venta AND p.id=vd.id_producto AND c.id=v.id_cliente \n        AND v.fecha >= \'2025-02-01 00:00:00\' AND v.fecha <= \'2025-02-14 23:59:59\' AND v.id_mecanico=\'1\' AND v.estado = 1 AND v.id_liquidacion=0\n    ','2025-02-14','12:49:38'),(12388,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','12:49:52'),(12389,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:49:52'),(12390,'SQLog:error','/*US=rafael*/ \n        SELECT v.*, p.nombre, c.nombre_completo,\n            CONCAT(\'$\',FORMAT(vd.valor_venta,2,\'de_DE\')) valor_venta\n        FROM app_ventas v, app_ventas_detalle vd, app_productos p, app_clientes c\n        WHERE v.id=vd.id_venta AND p.id=vd.id_producto AND c.id=v.id_cliente \n        AND v.fecha >= \'2025-02-01 00:00:00\' AND v.fecha <= \'2025-02-14 23:59:59\' AND v.id_mecanico=\'1\' AND v.estado = 1 AND v.id_liquidacion=0\n    ','2025-02-14','12:49:53'),(12391,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','12:50:33'),(12392,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:50:33'),(12393,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','12:52:22'),(12394,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:52:22'),(12395,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','12:52:41'),(12396,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:52:41'),(12397,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:53:18'),(12398,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:53:18'),(12399,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:53:45'),(12400,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:53:45'),(12401,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:53:54'),(12402,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:53:54'),(12403,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:55:02'),(12404,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:55:02'),(12405,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:55:19'),(12406,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:55:19'),(12407,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:55:51'),(12408,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:55:51'),(12409,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:56:28'),(12410,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:56:28'),(12411,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:57:07'),(12412,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:57:07'),(12413,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:58:05'),(12414,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:58:05'),(12415,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:58:15'),(12416,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:58:15'),(12417,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','12:58:58'),(12418,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','12:58:58'),(12419,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','13:00:33'),(12420,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','13:00:33'),(12421,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','13:02:58'),(12422,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','13:02:58'),(12423,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','13:03:02'),(12424,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','13:03:02'),(12425,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','13:03:20'),(12426,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','13:03:20'),(12427,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','13:03:33'),(12428,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','13:03:33'),(12429,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','13:03:43'),(12430,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','13:03:43'),(12431,'rafael','Ingresa al sistema desde 172.70.254.59','2025-02-14','14:12:55'),(12432,'rafael','Modifica diseno campo 3842 para formulario 16','2025-02-14','14:14:27'),(12433,'PCoder:rafael','Modifica archivo core_formulario[16].javascript','2025-02-14','14:15:34'),(12434,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','14:15:34'),(12435,'PCoder:rafael','Modifica archivo core_formulario[16].post_script','2025-02-14','14:18:03'),(12436,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','14:18:03'),(12437,'rafael','Actualiza registro 9 en app_ventas','2025-02-14','14:18:32'),(12438,'daniela','Ingresa al sistema desde 198.41.230.173','2025-02-14','14:39:28'),(12439,'daniela','Actualiza registro 211 en app_ventas','2025-02-14','14:41:00'),(12440,'daniela','Inserta registro en app_abonos_ventas_credito','2025-02-14','14:42:31'),(12441,'daniela','Actualiza registro 212 en app_ventas','2025-02-14','14:44:06'),(12442,'daniela','Inserta registro en app_novedades_mecanicos','2025-02-14','14:47:07'),(12443,'daniela','Actualiza registro 214 en app_ventas','2025-02-14','15:14:29'),(12444,'admin','Ingresa al sistema desde 172.70.55.27','2025-02-14','16:06:22'),(12445,'rafael','Ingresa al sistema desde 172.70.54.31','2025-02-14','16:08:46'),(12446,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-14','16:11:43'),(12447,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:11:43'),(12448,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-14','16:17:35'),(12449,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:17:35'),(12450,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-14','16:24:53'),(12451,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:24:53'),(12452,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-14','16:25:35'),(12453,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:25:35'),(12454,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-14','16:30:13'),(12455,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:30:13'),(12456,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','16:39:16'),(12457,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:39:16'),(12458,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','16:40:57'),(12459,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:40:57'),(12460,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','16:41:30'),(12461,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:41:30'),(12462,'daniela','Ingresa al sistema desde 172.71.6.128','2025-02-14','16:42:15'),(12463,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','16:42:47'),(12464,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:42:47'),(12465,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','16:43:00'),(12466,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:43:00'),(12467,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','16:43:05'),(12468,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:43:05'),(12469,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','16:43:26'),(12470,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:43:26'),(12471,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','16:44:04'),(12472,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:44:04'),(12473,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','16:45:26'),(12474,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:45:26'),(12475,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','16:45:46'),(12476,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:45:46'),(12477,'daniela','Cierra sesion desde 172.71.6.129','2025-02-14','16:45:54'),(12478,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','16:47:11'),(12479,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:47:11'),(12480,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','16:47:49'),(12481,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:47:49'),(12482,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','16:48:01'),(12483,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:48:01'),(12484,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','16:49:01'),(12485,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:49:01'),(12486,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','16:49:52'),(12487,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:49:52'),(12488,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','16:50:05'),(12489,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:50:05'),(12490,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','16:50:08'),(12491,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:50:08'),(12492,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','16:52:31'),(12493,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:52:31'),(12494,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','16:52:39'),(12495,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:52:39'),(12496,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','16:52:56'),(12497,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:52:56'),(12498,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','16:53:21'),(12499,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:53:21'),(12500,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','16:53:22'),(12501,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:53:22'),(12502,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','16:53:53'),(12503,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:53:53'),(12504,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','16:54:42'),(12505,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','16:54:42'),(12506,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','17:00:33'),(12507,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:00:33'),(12508,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','17:00:41'),(12509,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:00:41'),(12510,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','17:02:59'),(12511,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:02:59'),(12512,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','17:03:04'),(12513,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:03:04'),(12514,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','17:03:53'),(12515,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:03:53'),(12516,'SQLog:error','/*US=rafael*/ \n        SELECT v.*, p.nombre, c.nombre_completo,\n            CONCAT(\'$\',FORMAT(v.total_mecanico,0,\'de_DE\')) total_mecanico2, \n            CONCAT(\'$\',FORMAT((vd.precio * p.porcentaje_mecanico)/100 productoMecanico),2,\'de_DE\'))\n        FROM app_ventas v, app_ventas_detalle vd, app_productos p, app_clientes c\n        WHERE v.id=vd.id_venta AND p.id=vd.id_producto AND c.id=v.id_cliente \n        AND v.fecha >= \'2025-02-01 00:00:00\' AND v.fecha <= \'2025-02-14 23:59:59\' AND v.id_mecanico=\'1\' AND v.estado = 1 AND v.id_liquidacion=0\n    ','2025-02-14','17:03:55'),(12517,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','17:04:03'),(12518,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:04:03'),(12519,'SQLog:error','/*US=rafael*/ \n        SELECT v.*, p.nombre, c.nombre_completo,\n            CONCAT(\'$\',FORMAT(v.total_mecanico,0,\'de_DE\')) total_mecanico2, \n            CONCAT(\'$\',FORMAT((vd.precio * p.porcentaje_mecanico)/100 productoMecanico),2,\'de_DE\')\n        FROM app_ventas v, app_ventas_detalle vd, app_productos p, app_clientes c\n        WHERE v.id=vd.id_venta AND p.id=vd.id_producto AND c.id=v.id_cliente \n        AND v.fecha >= \'2025-02-01 00:00:00\' AND v.fecha <= \'2025-02-14 23:59:59\' AND v.id_mecanico=\'1\' AND v.estado = 1 AND v.id_liquidacion=0\n    ','2025-02-14','17:04:04'),(12520,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','17:04:22'),(12521,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:04:22'),(12522,'SQLog:error','/*US=rafael*/ \n        SELECT v.*, p.nombre, c.nombre_completo,\n            CONCAT(\'$\',FORMAT(v.total_mecanico,0,\'de_DE\')) total_mecanico2, \n            CONCAT(\'$\',FORMAT((vd.precio * p.porcentaje_mecanico)/100),2,\'de_DE\') productoMecanico\n        FROM app_ventas v, app_ventas_detalle vd, app_productos p, app_clientes c\n        WHERE v.id=vd.id_venta AND p.id=vd.id_producto AND c.id=v.id_cliente \n        AND v.fecha >= \'2025-02-01 00:00:00\' AND v.fecha <= \'2025-02-14 23:59:59\' AND v.id_mecanico=\'1\' AND v.estado = 1 AND v.id_liquidacion=0\n    ','2025-02-14','17:04:24'),(12523,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','17:04:45'),(12524,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:04:45'),(12525,'SQLog:error','/*US=rafael*/ \n        SELECT v.*, p.nombre, c.nombre_completo,\n            CONCAT(\'$\',FORMAT(v.total_mecanico,0,\'de_DE\')) total_mecanico2, \n            CONCAT(\'$\',FORMAT((vd.precio * p.porcentaje_mecanico)/100),2,\'de_DE\') productoMecanico\n        FROM app_ventas v, app_ventas_detalle vd, app_productos p, app_clientes c\n        WHERE v.id=vd.id_venta AND p.id=vd.id_producto AND c.id=v.id_cliente \n        AND v.fecha >= \'2025-02-01 00:00:00\' AND v.fecha <= \'2025-02-14 23:59:59\' AND v.id_mecanico=\'1\' AND v.estado = 1 AND v.id_liquidacion=0\n    ','2025-02-14','17:04:47'),(12526,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','17:05:07'),(12527,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:05:07'),(12528,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','17:05:15'),(12529,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:05:15'),(12530,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','17:05:24'),(12531,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:05:24'),(12532,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','17:06:54'),(12533,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:06:54'),(12534,'PCoder:rafael','Modifica archivo mod/app_ventas/index.php','2025-02-14','17:07:55'),(12535,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:07:55'),(12536,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','17:08:05'),(12537,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:08:05'),(12538,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','17:09:09'),(12539,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:09:09'),(12540,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','17:09:50'),(12541,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:09:50'),(12542,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','17:10:17'),(12543,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:10:17'),(12544,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','17:10:34'),(12545,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:10:34'),(12546,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','17:36:27'),(12547,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:36:27'),(12548,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','17:36:34'),(12549,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:36:34'),(12550,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','17:36:36'),(12551,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:36:36'),(12552,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','17:37:04'),(12553,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:37:04'),(12554,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','17:37:09'),(12555,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:37:09'),(12556,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','17:37:42'),(12557,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:37:42'),(12558,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','17:37:46'),(12559,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:37:46'),(12560,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','17:37:48'),(12561,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:37:48'),(12562,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','17:38:01'),(12563,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:38:01'),(12564,'PCoder:rafael','Modifica archivo mod/app_ventas/liquidacion_mecanicos.php','2025-02-14','17:38:38'),(12565,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-14','17:38:38'),(12566,'daniela','Ingresa al sistema desde 172.71.6.68','2025-02-14','19:30:56'),(12567,'daniela','Cierra sesion desde 172.71.6.69','2025-02-14','19:37:28'),(12568,'daniela','Ingresa al sistema desde 198.41.230.79','2025-02-15','11:37:59'),(12569,'','Cierra sesion desde 172.69.56.239','2025-02-15','12:16:52'),(12570,'SECLog:event',' Intenta acceso no autorizado Frm:-33','2025-02-15','17:14:45'),(12571,'SECLog:event',' Intenta acceso no autorizado Frm:-33','2025-02-15','17:14:49'),(12572,'rafael','Ingresa al sistema desde 172.70.254.59','2025-02-15','17:15:18'),(12573,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-15','17:18:47'),(12574,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-15','17:18:47'),(12575,'PCoder:rafael','Modifica archivo core_formulario[8].javascript','2025-02-15','17:22:52'),(12576,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-15','17:22:52'),(12577,'SECLog:event',' Intenta acceso no autorizado Frm:-33','2025-02-15','22:20:30'),(12578,'SECLog:event',' Intenta acceso no autorizado Frm:-33','2025-02-15','22:20:35'),(12579,'rafael','Ingresa al sistema desde 172.70.82.65','2025-02-15','22:40:44'),(12580,'daniela','Ingresa al sistema desde 172.69.138.215','2025-02-17','11:07:16'),(12581,'daniela','Cierra sesion desde 172.69.138.215','2025-02-17','11:07:24'),(12582,'mariano','Ingresa al sistema desde 172.69.138.214','2025-02-17','11:08:49'),(12583,'SQLog:error','/*US=mariano*/ SELECT core_informe.id,ancho FROM core_informe,core_usuario_informe WHERE core_usuario_informe.usuario=\'mariano\' AND core_usuario_informe.informe=core_informe.id AND (permitido_home=\'B\'permitido_home=\'A\') ORDER BY titulo ','2025-02-17','11:08:50'),(12584,'mariano','Cierra sesion desde 172.69.138.214','2025-02-17','11:12:54'),(12585,'daniela','Ingresa al sistema desde 172.69.138.214','2025-02-17','11:13:08'),(12586,'admin','Ingresa al sistema desde 172.70.83.106','2025-02-17','13:44:43'),(12587,'rafael','Ingresa al sistema desde 172.70.255.176','2025-02-17','14:49:34'),(12588,'PCoder:rafael','Modifica archivo core_formulario[4].javascript','2025-02-17','14:55:19'),(12589,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-17','14:55:19'),(12590,'PCoder:rafael','Modifica archivo core_formulario[4].javascript','2025-02-17','14:55:29'),(12591,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-17','14:55:29'),(12592,'PCoder:rafael','Modifica archivo core_formulario[4].javascript','2025-02-17','14:55:35'),(12593,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-17','14:55:35'),(12594,'PCoder:rafael','Modifica archivo mod/app/index.php','2025-02-17','14:55:50'),(12595,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-17','14:55:50'),(12596,'PCoder:rafael','Modifica archivo mod/app/index.php','2025-02-17','14:55:54'),(12597,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-17','14:55:54'),(12598,'rafael','Actualiza registro 1 en core_parametros','2025-02-17','14:56:19'),(12599,'rafael','Actualiza registro 4 en core_informe','2025-02-17','15:01:57'),(12600,'daniela','Ingresa al sistema desde 172.69.11.188','2025-02-17','15:02:18'),(12601,'rafael','Actualiza registro 4 en core_informe','2025-02-17','15:02:22'),(12602,'SQLog:error','SELECT COUNT(*) AS allcount  FROM app_productos WHERE  1  AND (   app_productos.id,app_productos.codigo,app_productos.nombre,app_productos.descripcion,app_productos.precio_compra,app_productos.precio_venta,app_productos.inventario LIKE \'%0%\' OR  1=2 ) ','0000-00-00','00:00:00'),(12603,'SQLog:error','SELECT COUNT(*) AS allcount  FROM app_productos WHERE  1  AND (   app_productos.id,app_productos.codigo,app_productos.nombre,app_productos.descripcion,app_productos.precio_compra,app_productos.precio_venta,app_productos.inventario LIKE \'%000%\' OR  1=2 ) ','0000-00-00','00:00:00'),(12604,'SQLog:error','/*US=daniela*/ DELETE FROM app_produtos WHERE id = \'3270\' ','2025-02-17','15:03:04'),(12605,'SQLog:error','/*US=daniela*/ DELETE FROM app_produtos WHERE id = \'3270\' ','2025-02-17','15:03:09'),(12606,'SQLog:error','/*US=daniela*/ DELETE FROM app_produtos WHERE id = \'3270\' ','2025-02-17','15:03:24'),(12607,'PCoder:rafael','Modifica archivo mod/app/index.php','2025-02-17','15:06:26'),(12608,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-17','15:06:26'),(12609,'PCoder:rafael','Modifica archivo mod/app/index.php','2025-02-17','15:07:12'),(12610,'API.Practico','Ejecucion post-accion formulario (Id=-33) Editor de C&oacute;digo {PCoder}','2025-02-17','15:07:12'),(12611,'admin','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 172.69.71.135','2025-02-17','15:19:05'),(12612,'admin','Ingresa al sistema desde 172.69.71.135','2025-02-17','15:19:09'),(12613,'admin','Crea copia de informe 20','2025-02-17','15:24:37'),(12614,'admin','Actualiza registro 41 en core_informe','2025-02-17','15:25:12'),(12615,'admin','Elimina condicion 544','2025-02-17','15:25:49'),(12616,'admin','Elimina condicion 543','2025-02-17','15:25:53'),(12617,'admin','Crea campo 3843 para formulario 12','2025-02-17','15:26:28'),(12618,'admin','Modifica diseno campo 3843 para formulario 12','2025-02-17','15:26:56'),(12619,'daniela','Actualiza registro 217 en app_ventas','2025-02-17','15:36:41'),(12620,'daniela','Actualiza registro 217 en app_ventas','2025-02-17','15:37:12'),(12621,'daniela','Actualiza registro 217 en app_ventas','2025-02-17','15:37:50'),(12622,'mariano','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 162.158.225.210','2025-02-19','07:32:26'),(12623,'mariano','Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde 162.158.225.211','2025-02-19','07:33:16'),(12624,'mariano','Ingresa al sistema desde 162.158.225.210','2025-02-19','07:33:42'),(12625,'mariano','Ingresa al sistema desde 172.69.56.136','2025-02-19','08:24:44'),(12626,'mariano','Ingresa al sistema desde 198.41.230.79','2025-02-19','09:51:41'),(12627,'daniela','Ingresa al sistema desde 172.71.11.42','2025-02-19','10:44:12'),(12628,'mariano','Actualiza registro 210 en app_ventas','2025-02-19','11:07:03'),(12629,'mariano','Actualiza registro 219 en app_ventas','2025-02-19','11:09:08'),(12630,'daniela','Ingresa al sistema desde 198.41.230.78','2025-02-19','11:43:10'),(12631,'admin','Ingresa al sistema desde 172.69.138.139','2025-02-19','14:38:34');

--
-- Table structure for table `core_bugtracker`
--

CREATE TABLE `core_bugtracker` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `fecha_apertura` datetime DEFAULT NULL,
  `fecha_actualizacion` datetime DEFAULT NULL,
  `fecha_cierre` datetime DEFAULT NULL,
  `proyecto` varchar(255) DEFAULT NULL,
  `proyecto_version` varchar(30) DEFAULT NULL,
  `titulo` varchar(255) DEFAULT NULL,
  `descripcion` text DEFAULT NULL,
  `categoria` varchar(255) DEFAULT NULL,
  `estado` varchar(20) DEFAULT NULL,
  `severidad` varchar(20) DEFAULT NULL,
  `prioridad` varchar(20) DEFAULT NULL,
  `reportado_por` varchar(250) DEFAULT NULL,
  `asignado_a` varchar(250) DEFAULT NULL,
  `pasos_reproduccion` text DEFAULT NULL,
  `sistema_origen` varchar(255) DEFAULT NULL,
  `trazas` text DEFAULT NULL,
  `adjunto` longblob DEFAULT NULL,
  `historial_gestion` text DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

--
-- Dumping data for table `core_bugtracker`
--


--
-- Table structure for table `core_chat`
--

CREATE TABLE `core_chat` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `remitente` varchar(255) NOT NULL DEFAULT '',
  `destinatario` varchar(255) NOT NULL DEFAULT '',
  `message` text NOT NULL,
  `sent` datetime DEFAULT NULL,
  `recd` int(10) unsigned NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`),
  KEY `destinatario` (`destinatario`),
  KEY `recd` (`recd`)
) ENGINE=MyISAM AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

--
-- Dumping data for table `core_chat`
--

INSERT INTO `core_chat` VALUES (1,'rafael','admin','He intentado abrir el archivo core_formulario[8].javascript pero se encuentra bloqueado por ti (mensaje automatico)','2024-11-21 09:30:00',0),(2,'rafael','admin','He intentado abrir el archivo mod/app_ventas/index.php pero se encuentra bloqueado por ti (mensaje automatico)','2024-11-25 16:25:00',0),(3,'rafael','admin','He intentado abrir el archivo core_formulario[15].javascript pero se encuentra bloqueado por ti (mensaje automatico)','2024-11-26 14:32:00',0),(4,'rafael','admin','He intentado abrir el archivo core_formulario[15].javascript pero se encuentra bloqueado por ti (mensaje automatico)','2024-11-26 14:33:00',0),(5,'rafael','admin','He intentado abrir el archivo core_formulario[15].javascript pero se encuentra bloqueado por ti (mensaje automatico)','2024-11-26 14:40:00',0),(6,'rafael','admin','He intentado abrir el archivo core_formulario[12].javascript pero se encuentra bloqueado por ti (mensaje automatico)','2024-12-14 17:54:00',0),(7,'rafael','admin','He intentado abrir el archivo core_formulario[8].javascript pero se encuentra bloqueado por ti (mensaje automatico)','2024-12-14 17:56:00',0),(8,'rafael','admin','He intentado abrir el archivo core_formulario[6].post_script pero se encuentra bloqueado por ti (mensaje automatico)','2025-01-28 20:39:00',0),(9,'admin','rafael','He intentado abrir el archivo mod/app_ventas/index.php pero se encuentra bloqueado por ti (mensaje automatico)','2025-01-29 11:21:00',0),(10,'rafael','admin','He intentado abrir el archivo mod/app_ventas/imprimirFactura.php pero se encuentra bloqueado por ti (mensaje automatico)','2025-01-31 10:02:00',0),(11,'rafael','admin','He intentado abrir el archivo mod/app_ventas/imprimirFactura.php pero se encuentra bloqueado por ti (mensaje automatico)','2025-02-03 16:31:00',0),(12,'rafael','admin','He intentado abrir el archivo mod/app_ventas/liquidacion_mecanicos.php pero se encuentra bloqueado por ti (mensaje automatico)','2025-02-07 15:22:00',0),(13,'rafael','admin','He intentado abrir el archivo core_formulario[12].javascript pero se encuentra bloqueado por ti (mensaje automatico)','2025-02-07 16:30:00',0),(14,'rafael','admin','He intentado abrir el archivo core_formulario[12].javascript pero se encuentra bloqueado por ti (mensaje automatico)','2025-02-07 16:31:00',0),(15,'admin','rafael','He intentado abrir el archivo core_formulario[16].pre_script pero se encuentra bloqueado por ti (mensaje automatico)','2025-02-14 09:30:00',0),(16,'rafael','admin','He intentado abrir el archivo core_formulario[16].javascript pero se encuentra bloqueado por ti (mensaje automatico)','2025-02-14 11:39:00',0),(17,'admin','rafael','He intentado abrir el archivo core_formulario[16].post_script pero se encuentra bloqueado por ti (mensaje automatico)','2025-02-14 11:55:00',0),(18,'admin','rafael','He intentado abrir el archivo core_formulario[16].javascript pero se encuentra bloqueado por ti (mensaje automatico)','2025-02-14 11:55:00',0);

--
-- Table structure for table `core_documentacion`
--

CREATE TABLE `core_documentacion` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `hash_unico` varchar(255) NOT NULL,
  `titulo` varchar(255) NOT NULL,
  `estructura_tipo` varchar(10) NOT NULL COMMENT 'Seccion,Menu,Funcion',
  `estructura_seccion` varchar(255) NOT NULL,
  `estructura_funcion` varchar(255) NOT NULL,
  `origen` varchar(10) NOT NULL COMMENT 'Archivo,Formulario,Informe',
  `detalle_origen` varchar(255) NOT NULL COMMENT 'IdObjeto,Path',
  `formato` varchar(255) NOT NULL DEFAULT 'Enriquecido' COMMENT 'Enriquecido,Diagrama',
  `documentacion` mediumtext NOT NULL,
  `visibilidad` varchar(255) NOT NULL DEFAULT 'Desarrollo' COMMENT 'Desarrollo,Usuario',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

--
-- Dumping data for table `core_documentacion`
--


--
-- Table structure for table `core_evento_inventario`
--

CREATE TABLE `core_evento_inventario` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `evento` varchar(250) DEFAULT '',
  `categoria` varchar(250) DEFAULT '',
  `descripcion` varchar(250) DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=95 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

--
-- Dumping data for table `core_evento_inventario`
--

INSERT INTO `core_evento_inventario` VALUES (1,'onclick','01. Raton (Mouse)','$MULTILANG_EventoClick'),(2,'ondblclick','01. Raton (Mouse)','$MULTILANG_EventoDobleClick'),(3,'onmousedown','01. Raton (Mouse)','$MULTILANG_EventoMouseDown'),(4,'onmouseenter','01. Raton (Mouse)','$MULTILANG_EventoMouseEnter'),(5,'onmouseleave','01. Raton (Mouse)','$MULTILANG_EventoMouseLeave'),(6,'onmousemove','01. Raton (Mouse)','$MULTILANG_EventoMouseMove'),(7,'onmouseover','01. Raton (Mouse)','$MULTILANG_EventoMouseOver'),(8,'onmouseout','01. Raton (Mouse)','$MULTILANG_EventoMouseOut'),(9,'onmouseup','01. Raton (Mouse)','$MULTILANG_EventoMouseUp'),(10,'contextmenu','01. Raton (Mouse)','$MULTILANG_EventoContextMenu'),(11,'onkeydown','02. Teclado (Keyboard)','$MULTILANG_EventoKeyDown'),(12,'onkeypress','02. Teclado (Keyboard)','$MULTILANG_EventoKeyPress'),(13,'onkeyup','02. Teclado (Keyboard)','$MULTILANG_EventoKeyUp'),(14,'onfocus','03. Formularios (Forms)','$MULTILANG_EventoFocus'),(15,'onblur','03. Formularios (Forms)','$MULTILANG_EventoBlur'),(16,'onchange','03. Formularios (Forms)','$MULTILANG_EventoChange'),(17,'onselect','03. Formularios (Forms)','$MULTILANG_EventoSelect'),(18,'onsubmit','03. Formularios (Forms)','$MULTILANG_EventoSubmit'),(19,'onreset','03. Formularios (Forms)','$MULTILANG_EventoReset'),(20,'oncut','03. Formularios (Forms)','$MULTILANG_EventoCut'),(21,'oncopy','03. Formularios (Forms)','$MULTILANG_EventoCopy'),(22,'onpaste','03. Formularios (Forms)','$MULTILANG_EventoPaste'),(23,'onload','04. Ventanas y Marcos (Windows & Frames)','$MULTILANG_EventoLoad'),(24,'onunload','04. Ventanas y Marcos (Windows & Frames)','$MULTILANG_EventoUnload'),(25,'onresize','04. Ventanas y Marcos (Windows & Frames)','$MULTILANG_EventoResize'),(26,'onclose','04. Ventanas y Marcos (Windows & Frames)','$MULTILANG_EventoClose'),(27,'onscroll','04. Ventanas y Marcos (Windows & Frames)','$MULTILANG_EventoScroll'),(28,'animationend','05. Animaciones y Transiciones','$MULTILANG_EventoAnimFin'),(29,'animationiteration','05. Animaciones y Transiciones','$MULTILANG_EventoAnimIteracion'),(30,'animationstart','05. Animaciones y Transiciones','$MULTILANG_EventoAnimInicio'),(31,'beginEvent','05. Animaciones y Transiciones',''),(32,'endEvent','05. Animaciones y Transiciones',''),(33,'repeatEvent','05. Animaciones y Transiciones',''),(34,'transitionend','05. Animaciones y Transiciones',''),(35,'chargingchange','06. Bateria y carga (Battery & charge)',''),(36,'chargingtimechange','06. Bateria y carga (Battery & charge)',''),(37,'dischargingtimechange','06. Bateria y carga (Battery & charge)',''),(38,'levelchange','06. Bateria y carga (Battery & charge)',''),(39,'alerting','07. Llamadas y Telefonia (Calls)',''),(40,'busy','07. Llamadas y Telefonia (Calls)',''),(41,'callschanged','07. Llamadas y Telefonia (Calls)',''),(42,'connected','07. Llamadas y Telefonia (Calls)',''),(43,'connecting','07. Llamadas y Telefonia (Calls)',''),(44,'dialing','07. Llamadas y Telefonia (Calls)',''),(45,'disconnected','07. Llamadas y Telefonia (Calls)',''),(46,'disconnecting','07. Llamadas y Telefonia (Calls)',''),(47,'error','07. Llamadas y Telefonia (Calls)',''),(48,'held','07. Llamadas y Telefonia (Calls)',''),(49,'holding','07. Llamadas y Telefonia (Calls)',''),(50,'incoming','07. Llamadas y Telefonia (Calls)',''),(51,'resuming','07. Llamadas y Telefonia (Calls)',''),(52,'statechange','07. Llamadas y Telefonia (Calls)',''),(53,'DOMAttrModified','08. Cambios DOM (DOM changes)',''),(54,'DOMCharacterDataModified','08. Cambios DOM (DOM changes)',''),(55,'DOMContentLoaded','08. Cambios DOM (DOM changes)',''),(56,'DOMElementNameChanged','08. Cambios DOM (DOM changes)',''),(57,'DOMNodeInserted','08. Cambios DOM (DOM changes)',''),(58,'DOMNodeInsertedIntoDocument','08. Cambios DOM (DOM changes)',''),(59,'DOMNodeRemoved','08. Cambios DOM (DOM changes)',''),(60,'DOMNodeRemovedFromDocument','08. Cambios DOM (DOM changes)',''),(61,'DOMSubtreeModified','08. Cambios DOM (DOM changes)',''),(62,'drag','09. Arrastre de elementos (Drag&Drop)',''),(63,'dragend','09. Arrastre de elementos (Drag&Drop)',''),(64,'dragenter','09. Arrastre de elementos (Drag&Drop)',''),(65,'dragleave','09. Arrastre de elementos (Drag&Drop)',''),(66,'dragover','09. Arrastre de elementos (Drag&Drop)',''),(67,'dragstart','09. Arrastre de elementos (Drag&Drop)',''),(68,'drop','09. Arrastre de elementos (Drag&Drop)',''),(69,'audioprocess','10. Audio & Video',''),(70,'canplay','10. Audio & Video',''),(71,'canplaythrough','10. Audio & Video',''),(72,'durationchange','10. Audio & Video',''),(73,'emptied','10. Audio & Video',''),(74,'ended','10. Audio & Video',''),(75,'loadeddata','10. Audio & Video',''),(76,'loadedmetadata','10. Audio & Video',''),(77,'pause','10. Audio & Video',''),(78,'play','10. Audio & Video',''),(79,'playing','10. Audio & Video',''),(80,'ratechange','10. Audio & Video',''),(81,'seeked','10. Audio & Video',''),(82,'seeking','10. Audio & Video',''),(83,'stalled','10. Audio & Video',''),(84,'suspend','10. Audio & Video',''),(85,'timeupdate','10. Audio & Video',''),(86,'volumechange','10. Audio & Video',''),(87,'waiting','10. Audio & Video',''),(88,'complete','10. Audio & Video',''),(89,'disabled','11. Conexion a Internet',''),(90,'enabled','11. Conexion a Internet',''),(91,'onoffline','11. Conexion a Internet',''),(92,'ononline','11. Conexion a Internet',''),(93,'statuschange','11. Conexion a Internet',''),(94,'connectionInfoUpdate','11. Conexion a Internet','');

--
-- Table structure for table `core_evento_objeto`
--

CREATE TABLE `core_evento_objeto` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `objeto` int(10) DEFAULT NULL,
  `evento` varchar(250) DEFAULT '',
  `javascript` text DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=198 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

--
-- Dumping data for table `core_evento_objeto`
--

INSERT INTO `core_evento_objeto` VALUES (182,3437,'onchange','ConstruirPlantillaCron();'),(179,3367,'onchange','AlternarCamposVisibles_PaneFilter();'),(172,2942,'onmousemove','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(171,2941,'oncut','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(170,2940,'onkeyup','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(169,2939,'onmouseleave','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(168,2938,'onsubmit','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(167,2937,'onselect','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(166,2936,'onkeypress','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(165,2935,'contextmenu','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(164,2934,'onmouseenter','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(163,2933,'onchange','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(162,2932,'onmouseup','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(161,2931,'onmousedown','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(160,2930,'onblur','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(159,2929,'onmouseout','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(141,2667,'onchange','GenerarCodigoCorto();'),(181,3404,'onchange','PCOJS_ActualizarCamposHijos();\r\n'),(180,3400,'onchange','PCOJS_ActualizarCamposVisibles();'),(150,2870,'onkeyup','muestra_seguridad_clave(this.value, this.form);'),(142,2702,'onchange','AlternarCamposVisibles_DataTables();'),(143,2765,'onchange','//Valida caracteristicas del adjunto\r\nvar TamanoMaximoPermitido=250000;\r\nvar ArchivoSeleccionado=this.files[0];\r\nExtensionArchivo=ArchivoSeleccionado.name.split(\'.\').pop().toUpperCase();\r\nTamanoArchivo=ArchivoSeleccionado.size||ArchivoSeleccionado.fileSize;\r\n\r\nif( ExtensionArchivo!=\"GIF\" && ExtensionArchivo!=\"PNG\" && ExtensionArchivo!=\"JPG\" && ExtensionArchivo!=\"JPEG\" )\r\n    {\r\n        PCOJS_MostrarMensaje(\"Atención - Atención - Atención\", \"El archivo seleccionado tiene un formato no válido (JPG,GIF,PNG).<br><br>This file doesnt have a valid format (JPG,GIF,PNG)</b></font>\");\r\n        document.FrmEdicionPerfil.avatar.value=\"\";\r\n        return;\r\n    }\r\n\r\nif(TamanoArchivo > TamanoMaximoPermitido)\r\n    {\r\n        PCOJS_MostrarMensaje(\"Atención - Atención - Atención\", \"El archivo seleccionado supera el limite permitido de 250KB.  Si usted continua es probable que el archivo no sea adjuntado al sistema. <hr> <font color=red><b>Se recomienda encarecidamente disminuir el tamaño del archivo con herramientas como tinypng.com e intentar nuevamente.</b></font>\");\r\n	    document.FrmEdicionPerfil.avatar.value=\"\";\r\n	    return;\r\n    }\r\n'),(178,3342,'onchange','//Actualiza el valor de la lista de estados si el valor aqui es marcado como 100.  Caso contrario la pone como en progreso.\r\nValorListaEstado=this.value;\r\nif (ValorListaEstado==\"Finalizado\")    $(\'#porcentaje\').selectpicker(\'val\', \"100\"); \r\n'),(176,3329,'onchange','ValorPlantilla=$(\"#plantilla\").val();\r\n$(\"#descripcion\").val(ValorPlantilla.replace(/BR/g,\'\\n\'));'),(177,3339,'onchange','//Actualiza el valor de la lista de estados si el valor aqui es marcado como 100.  Caso contrario la pone como en progreso.\r\nValorListaProgreso=this.value;\r\nif (ValorListaProgreso==\"100\")\r\n    $(\'#estado_general\').selectpicker(\'val\', \"Finalizado\"); \r\nelse\r\n    if (ValorListaProgreso==\"0\")\r\n        $(\'#estado_general\').selectpicker(\'val\', \"Aceptado\"); \r\n    else\r\n        $(\'#estado_general\').selectpicker(\'val\', \"EnProgreso\"); \r\n'),(148,2860,'onchange','document.datosbug.accion_realizada.value+=\" Severidad/Severity \"+document.datosbug.severidad.value+\",\";\r\n'),(147,2859,'onchange','document.datosbug.accion_realizada.value+=\" Prioridad/Priority \"+document.datosbug.prioridad.value+\",\";\r\n'),(146,2858,'onchange','document.datosbug.accion_realizada.value+=\" Categoria/Category \"+document.datosbug.categoria.value+\",\";\r\n'),(145,2857,'onchange','document.datosbug.accion_realizada.value+=\" Estado/Status \"+document.datosbug.estado.value+\",\";\r\n'),(144,2855,'onchange','document.datosbug.accion_realizada.value+=\" Asignado a/Assigned to \"+document.datosbug.asignado_a.value+\",\";\r\n\r\n'),(158,2928,'ondblclick','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(157,2927,'onfocus','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(194,3732,'onchange','onchangeCliente();'),(91,1671,'onchange','//onchangeProveedor();'),(95,1749,'onkeydown','calcularDevuelta();'),(96,1749,'onkeyup','calcularDevuelta();'),(152,2897,'onchange','//Valida caracteristicas del adjunto\r\nvar TamanoMaximoPermitido=250000;\r\nvar ArchivoSeleccionado=this.files[0];\r\nExtensionArchivo=ArchivoSeleccionado.name.split(\'.\').pop().toUpperCase();\r\nTamanoArchivo=ArchivoSeleccionado.size||ArchivoSeleccionado.fileSize;\r\n\r\nif( ExtensionArchivo!=\"GIF\" && ExtensionArchivo!=\"PNG\" && ExtensionArchivo!=\"JPG\" && ExtensionArchivo!=\"JPEG\" )\r\n    {\r\n        PCOJS_MostrarMensaje(\"Atención - Atención - Atención\", \"El archivo seleccionado tiene un formato no válido (JPG,GIF,PNG).<br><br>This file doesnt have a valid format (JPG,GIF,PNG)</b></font>\");\r\n        document.datos.ruta_logo.value=\"\";\r\n        return;\r\n    }\r\n\r\nif(TamanoArchivo > TamanoMaximoPermitido)\r\n    {\r\n        PCOJS_MostrarMensaje(\"Atención - Atención - Atención\", \"El archivo seleccionado supera el limite permitido de 250KB.  Si usted continua es probable que el archivo no sea adjuntado al sistema. <hr> <font color=red><b>Se recomienda encarecidamente disminuir el tamaño del archivo con herramientas como tinypng.com e intentar nuevamente.</b></font>\");\r\n	    document.datos.ruta_logo.value=\"\";\r\n	    return;\r\n    }\r\n'),(156,2926,'onkeydown','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(155,2925,'onmouseover','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(154,2924,'onclick','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(149,2867,'onchange','ValidarUsuarioPlantilla();'),(189,3674,'onkeyup','muestra_seguridad_clave(this.value, this.form);'),(151,2872,'onfocus','blur();'),(153,2905,'onchange','ActualizarFormatoFull();'),(173,2943,'oncopy','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(174,2944,'onpaste','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(175,2945,'onreset','PCOJS_MostrarMensaje(\"Evento lanzado\",\"Campo: \"+this.name+\"<br>Valor: \"+this.value);'),(183,3473,'onchange','FORMJS_CambiarCamposVisibles();'),(184,3474,'onkeypress','PCOJSFORM_ActualizarTexto_botoncomando_vista_previa(this.value);'),(185,3474,'onkeyup','PCOJSFORM_ActualizarTexto_botoncomando_vista_previa(this.value);'),(186,3518,'onchange','PCOJSFORM_Actualizar_botoncomando_vista_previa();'),(187,3520,'onchange','PCOJSFORM_Actualizar_botoncomando_vista_previa();'),(188,3525,'onchange','PCOJSFORM_ActualizarEstilo_botoncomando_vista_previa();'),(190,3675,'onfocus','blur();'),(193,3728,'onchange','onchangeTipoPago();'),(192,3725,'onchange','onChangeTipoProducto();'),(197,1724,'onchange','getProduct();');

--
-- Table structure for table `core_formulario`
--

CREATE TABLE `core_formulario` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `titulo` varchar(250) DEFAULT '',
  `ayuda_titulo` varchar(250) DEFAULT '',
  `ayuda_texto` text DEFAULT NULL,
  `tabla_datos` varchar(250) DEFAULT '',
  `columnas` int(10) DEFAULT 1,
  `javascript` mediumtext DEFAULT NULL,
  `borde_visible` int(10) DEFAULT 0,
  `estilo_pestanas` varchar(10) DEFAULT 'nav-tabs',
  `id_html` varchar(255) DEFAULT '',
  `tipo_maquetacion` varchar(11) DEFAULT 'tradicional',
  `css_columnas` text DEFAULT NULL,
  `estilo_ventana` varchar(50) DEFAULT 'panel-primary',
  `pre_script` mediumtext DEFAULT NULL,
  `post_script` mediumtext DEFAULT NULL,
  `modulo` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

--
-- Dumping data for table `core_formulario`
--

INSERT INTO `core_formulario` VALUES (-27,'TEST_PracticoFramework - Pruebas Controles de Datos','','','core_auditoria',3,'function PracticoTEST_Combo_AgregarOpcionesCSV()\r\n    {\r\n        PCOJS_OpcionesCombo_DesdeCSV(\"combo_lista_dinamica\",\"Opcion1,Opcion2,Opcion3\",\",\");\r\n    }\r\n\r\nfunction PracticoTEST_Combo_LimpiarOpciones()\r\n    {\r\n        PCOJS_LimpiarComboBox(\"combo_lista_dinamica\");\r\n    }\r\n\r\nfunction PracticoTEST_Combo_AgregarOpcion()\r\n    {\r\n        var hora = new Date();\r\n        PCOJS_AgregarOpcionComboBox(\"combo_lista_dinamica\",\"ValorAgregado\",\"Opcion agregada \"+hora.getTime());\r\n        PCOJS_ActualizarComboBox(\"combo_lista_dinamica\");\r\n    }\r\n\r\nfunction FrmAutoRun()\r\n    {\r\n        //Aqui sus instrucciones\r\n    }',0,'nav-tabs','datos','responsive','col-xs-12 col-sm-12 col-md-4 col-lg-4','panel-primary','PCO_CargarFormulario(\"-25\",\"1\");\r\n','',0),(-3,'{$MULTILANG_BTReporteBugs}','','','core_bugtracker',2,'function FrmAutoRun()\r\n    {\r\n        //Actualiza el marco de la imagen de captura con la recibida\r\n        $( document ).ready(function() {\r\n                $(\'#ImagenVistaPreviaCaptura\').html(\'<img src=\"\'+document.datosbug.adjunto.value+\'\" width=\"100%\" border=0>\');\r\n        });\r\n    }\r\n',0,'nav-tabs','datosbug','tradicional','','panel-primary','','',0),(-21,'TEST_PracticoFramework - ReactJS','Importante','Todos los marcos para componentes ReactJS agregados a este formulario se encuentran dentro de una clase well well-sm para poder hacer visibles los marcos donde se dan las respuestas.<br>Si todo va bien sobre consola de JS debería ver el mensaje de <b>###### Finalizando pruebas de ReactJS Correctamente</b>','core_tabla_comodin',3,'//\'use strict\';  //Opcional, activar Esto puede generar advertencias en el script al no estar definido React\r\nconst e = React.createElement;\r\n\r\n// PRUEBA1 #############################################################################################\r\nclass BotonLike extends React.Component {\r\n  constructor(props) {\r\n    super(props);\r\n    this.state = { liked: false };\r\n  }\r\n\r\n  render() {\r\n    if (this.state.liked) {\r\n      return \'Has presionado el me gusta\';\r\n    }\r\n\r\n    return e(\r\n      \'button\',\r\n      { onClick: () => this.setState({ liked: true }) },\r\n      \'Me gusta\',\r\n    );\r\n  }\r\n}\r\n\r\n// PRUEBA2 #############################################################################################\r\nclass EnlaceHREF extends React.Component {\r\n  constructor(props) {\r\n    super(props);\r\n    this.state = { liked: false };\r\n  }\r\n\r\n  render() {\r\n        return React.createElement(\'a\', {href: \'https://www.unixlandia.org\',class: \'btn btn-info\', target: \'_blank\'}, \'Ejemplo de enlace\')\r\n  }\r\n}\r\n\r\n\r\n\r\nfunction PruebasReactJS()\r\n    {\r\n        //#############################################################################################\r\n        console.log(\"PRUEBA 1:  Adicion control basico de ReactJS a contenedor_react_01\");\r\n        const domContainer = document.querySelector(\'#contenedor_react_01\');\r\n        ReactDOM.render(e(BotonLike), domContainer);\r\n\r\n        //#############################################################################################\r\n        console.log(\"PRUEBA 2:  Adicion control HREF sin JSX a contenedor_react_02\");\r\n        const domContainerHREF = document.querySelector(\'#contenedor_react_02\');\r\n        ReactDOM.render(e(EnlaceHREF), domContainerHREF);\r\n    }\r\n\r\n\r\nfunction FrmAutoRun()\r\n    {\r\n        //Ejecuta las pruebas cuando se asegure que ya se cargo todo lo necesario del documento\r\n        $( document ).ready(function() {\r\n            console.log(\"###### Iniciando pruebas de ReactJS\");\r\n            PruebasReactJS();\r\n            console.log(\"###### Finalizando pruebas de ReactJS Correctamente\");\r\n        });\r\n    }\r\n',1,'nav-tabs','FormTEST_PracticoFramework','responsive','col col-xs-4 col-sm-4 col-md-4 col-lg-4','panel-primary','PCO_CargarFormulario(\"-25\",\"1\");','',0),(-16,'{$MULTILANG_CronTitulo}','{$MULTILANG_Ayuda}','{$MULTILANG_CronAyuda}','core_tareascron',2,'function LanzarEditor_CRON()\n    {\n        //FORMA 2: Con funcion interna de apertura - Sobreescribe FORMA 1 - Comentar para pasar a modo de emergencia\n        PCOJS_CargarArchivoPCoderBD(\'{$LlaveParcial_FirmaSistema}\',\'\',\'\',\'\',\'No\',\'B\',\'core_tareascron\',\'script_php\', \'{$IdTareaCRON}\',\'php\',\'PHP\'       ,\'Iconos\',\'1\',\'<font color=white>Script</font> TareaCRON_{$IdTareaCRON}_(PHP){$TituloPCoder_COMPLEMENTO}\');\n    }\n\n\nfunction ConstruirPlantillaCron()\n    {\n        //Construye linea formateada para el archivo crontab de sistemas linux / bsd / unix\n        $(\"#plantilla_cron1\").val($(\"#tipo_planificacion\").val()+\" /path/to/curl --silent \'\"+window.location.href+\"?PCO_Accion=PCO_EjecutarCron&Tarea=\"+$(\"#codigo_tarea\").val()+\"\' &>/dev/null\");\n        $(\"#plantilla_cron2\").val($(\"#tipo_planificacion\").val()+\" /path/to/wget \'\"+window.location.href+\"?PCO_Accion=PCO_EjecutarCron&Tarea=\"+$(\"#codigo_tarea\").val()+\"\' &>/dev/null\");\n    }\n\nfunction GenerarIDTarea(longitud) {\n  var text = \"\";\n  var possible = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n\n  for (var i = 0; i < longitud; i++)\n    text += possible.charAt(Math.floor(Math.random() * possible.length));\n\n  return text.toUpperCase();\n}\n\nfunction ConstruirURL() {\n    //var pathname = window.location.pathname; // Returns path only (/path/example.html)\n    //var url      = window.location.href;     // Returns full URL (https://example.com/path/example.html)\n    //var origin   = window.location.origin;   // Returns base URL (https://example.com)\n    $(\"#url_absoluta\").val(window.location.href+\"?PCO_Accion=PCO_EjecutarCron&Tarea=\"+$(\"#codigo_tarea\").val());\n}\n\nfunction FrmAutoRun()\n    {\n        //Si esta editando agrega boton para editar la tarea\n        if ($(\"#id\").val()!=\"0\" && $(\"#id\").val()!=\"\")\n            {\n                $(\"#lbl_edicion\").hide();\n                $(\"#btn_edicion\").show();      \n                $(\"#lbl_script\").show();      \n            }\n        else\n            {\n                $(\"#lbl_edicion\").show();\n                $(\"#btn_edicion\").hide();      \n                $(\"#lbl_script\").hide();      \n            }\n\n\n        if ($(\"#id\").val()==\"0\")\n            {\n                $(\"#codigo_tarea\").val(GenerarIDTarea(10));\n                $(\"#PCOContenedor_btn_actualizar\").hide();\n            }\n        else\n            $(\"#PCOContenedor_btn_guardar\").hide();      \n        ConstruirURL();\n        $(\"#url_absoluta\").addClass(\"btn-xs\");\n    }',0,'nav-tabs','datos_tarea','responsive','col-lg-7 col-md-7 col-sm-7 col-xs-7|col-lg-5 col-md-5 col-sm-5 col-xs-5','panel-primary','<?php\n    ##########################################################################\n    ##########################################################################\n    //VERIFICA SEGURIDAD: Perfil de Administrador requerido antes de continuar\n    global $PCOSESS_LoginUsuario,$MULTILANG_ErrorTitAuth,$MULTILANG_WSErr06;\n    if (!PCO_EsAdministrador(@$PCOSESS_LoginUsuario))\n        {\n            PCO_Mensaje(\"{$MULTILANG_ErrorTitAuth}\", \"{$MULTILANG_WSErr06}\", \'\', \'fa fa-exclamation-triangle fa-3x texto-rojo texto-blink\', \'alert alert-warning alert-dismissible\');\n            PCO_Auditar(\"$PCOSESS_LoginUsuario Intenta acceso no autorizado Frm:-16\",\"SECLog:event\");\n            die();\n        }\n    ##########################################################################\n    ##########################################################################\n    \n    //Variables usadas en JS para el llamado a PCoder\n    global $TituloPCoder_COMPLEMENTO,$LlaveParcial_FirmaSistema,$LlaveDePaso,$PCO_RegistroDatosFormulario,$IdTareaCRON;\n    \n    $TituloTareaCRONPCoder=$PCO_RegistroDatosFormulario[\"titulo\"]; //Toma el titulo desde el registro de informe recuperado\n    $IdTareaCRON=$PCO_RegistroDatosFormulario[\"id\"];\n    $TituloPCoder_COMPLEMENTO=\" - <font color=white>\".$TituloTareaCRONPCoder.\"</font> \";\n    $LlaveParcial_FirmaSistema=substr($LlaveDePaso,-3);\n    \n    ','',0),(-11,'{$MULTILANG_MonConfig}','','','core_monitoreo',2,'function CargarMonitoreo()\r\n    {\r\n        PCO_VentanaPopup(\'index.php?PCO_Accion=PCO_VerMonitoreo&Presentar_FullScreen=1\',\'Monitor\',\'toolbar=yes, location=no, directories=no, status=yes, menubar=yes ,scrollbars=yes, resizable=yes, fullscreen=no, width=900, height=600\');\r\n    }\r\n    \r\nfunction FrmAutoRun()\r\n    {\r\n        //Determina si debe ocultar el boton de guardar y presentar el de actualizar segun el tipo de operacion\r\n        if ($(\"#nombre\").val()!=\"\")\r\n            $(\"#PCOContenedor_boton_guardar\").hide();\r\n        else\r\n            $(\"#PCOContenedor_boton_actualizar\").hide();\r\n    }\r\n',0,'nav-tabs','DatosMonitor','tradicional','','panel-primary','<?php\r\n    ##########################################################################\r\n    ##########################################################################\r\n    //VERIFICA SEGURIDAD: Perfil de Administrador requerido antes de continuar\r\n    global $PCOSESS_LoginUsuario,$MULTILANG_ErrorTitAuth,$MULTILANG_WSErr06;\r\n    if (!PCO_EsAdministrador(@$PCOSESS_LoginUsuario))\r\n        {\r\n            PCO_Mensaje(\"{$MULTILANG_ErrorTitAuth}\", \"{$MULTILANG_WSErr06}\", \'\', \'fa fa-exclamation-triangle fa-3x texto-rojo texto-blink\', \'alert alert-warning alert-dismissible\');\r\n            PCO_Auditar(\"$PCOSESS_LoginUsuario Intenta acceso no autorizado Frm:-11\",\"SECLog:event\");\r\n            die();\r\n        }\r\n    ##########################################################################\r\n    ##########################################################################\r\n','',0),(-10,'{$MULTILANG_ReplicaTitulo}','','','core_replicasbd',2,'function FrmAutoRun()\r\n    {\r\n        //Determina si debe ocultar el boton de guardar y presentar el de actualizar segun el tipo de operacion\r\n        if ($(\"#nombre\").val()!=\"\")\r\n            $(\"#PCOContenedor_boton_guardar\").hide();\r\n        else\r\n            $(\"#PCOContenedor_boton_actualizar\").hide();\r\n    }\r\n',0,'nav-tabs','datos','responsive','col-xs-12 col-sm-12 col-md-6 col-lg-6','panel-primary','<?php\r\n    ##########################################################################\r\n    ##########################################################################\r\n    //VERIFICA SEGURIDAD: Perfil de Administrador requerido antes de continuar\r\n    global $PCOSESS_LoginUsuario,$MULTILANG_ErrorTitAuth,$MULTILANG_WSErr06;\r\n    if (!PCO_EsAdministrador(@$PCOSESS_LoginUsuario))\r\n        {\r\n            PCO_Mensaje(\"{$MULTILANG_ErrorTitAuth}\", \"{$MULTILANG_WSErr06}\", \'\', \'fa fa-exclamation-triangle fa-3x texto-rojo texto-blink\', \'alert alert-warning alert-dismissible\');\r\n            PCO_Auditar(\"$PCOSESS_LoginUsuario Intenta acceso no autorizado Frm:-10\",\"SECLog:event\");\r\n            die();\r\n        }\r\n    ##########################################################################\r\n    ##########################################################################\r\n','',0),(-26,'Configuración de Accesos SSO mediante SAML','','','core_samlconector',2,'function ActualizarFormatoFull()\r\n    {\r\n        //Actualiza campo de formato full\r\n        $(\"#sp_nameid_format_full\").val(\"urn:oasis:names:tc:SAML:1.1:nameid-format:\"+$(\"#sp_nameid_format\").val());\r\n    }\r\n\r\nfunction FrmAutoRun()\r\n    {\r\n        $(\"#PCOContenedor_ruta_logo_precarga\").hide();\r\n\r\n        $( document ).ready(function() {\r\n            if ($(\"#nombre_conector\").val()==\"\")\r\n                $(\"#PCOContenedor_btn_actualizar\").hide();\r\n            else\r\n                $(\"#PCOContenedor_btn_agregar\").hide();\r\n            \r\n            ActualizarFormatoFull();\r\n\r\n            //Si tiene ruta en el campo de avatar reemplaza la imagen predeterminada\r\n            if ($(\"#ruta_logo_precarga\").val()!=\"\")\r\n                {\r\n                    PartesImagen=$(\"#ruta_logo_precarga\").val().split(\"|\");\r\n                    PathImagen=PartesImagen[0];\r\n                    $(\"#PCOContenedor_marco_logo\").html(\"<center><img src=\'\"+PathImagen+\"\' style=\'width:120px; height:120px; border-radius: 5%; margin-top:0px; margin-bottom:0px;\'></center><br>\");\r\n                }\r\n            \r\n            //Cambia tamano y tipo de fuente en campo del certificado\r\n            $(\'#idp_x509cert\').css(\"font-family\", \"Monospace,Mono,Console\");\r\n            $(\'#idp_x509cert\').css(\"font-size\", \"10px\");\r\n        });\r\n    }',0,'nav-tabs','datos','responsive','col-xs-12 col-sm-12 col-md-7 col-lg-7|col-xs-12 col-sm-12 col-md-5 col-lg-5','panel-primary','<?php\r\n    ##########################################################################\r\n    ##########################################################################\r\n    //VERIFICA SEGURIDAD: Perfil de Administrador requerido antes de continuar\r\n    global $PCOSESS_LoginUsuario,$MULTILANG_ErrorTitAuth,$MULTILANG_WSErr06;\r\n    if (!PCO_EsAdministrador(@$PCOSESS_LoginUsuario))\r\n        {\r\n            PCO_Mensaje(\"{$MULTILANG_ErrorTitAuth}\", \"{$MULTILANG_WSErr06}\", \'\', \'fa fa-exclamation-triangle fa-3x texto-rojo texto-blink\', \'alert alert-warning alert-dismissible\');\r\n            PCO_Auditar(\"$PCOSESS_LoginUsuario Intenta acceso no autorizado Frm:-26\",\"SECLog:event\");\r\n            die();\r\n        }\r\n    ##########################################################################\r\n    ##########################################################################\r\n\r\n	// Determina si la conexion actual de Practico esta encriptada\r\n	global $URI,$DominioServidorSAML,$RaizScriptSAML;\r\n	if(empty($_SERVER[\"HTTPS\"]))\r\n		$protocolo_webservice=\"http://\";\r\n	else\r\n		$protocolo_webservice=\"https://\";\r\n	// Construye la URI de retorno\r\n	$prefijo_webservice=$_SERVER[\'SERVER_NAME\'].$_SERVER[\'PHP_SELF\'];\r\n	// Construye la URI de redireccion base para concatenar el servicio especifico\r\n	$URI = $protocolo_webservice.$prefijo_webservice.\"?PCO_WSOn=1&PCO_WSId=PCO_AutenticacionOauth&OAuthSrv=\";\r\n	$DominioServidorSAML=$protocolo_webservice.$_SERVER[\'SERVER_NAME\'];\r\n	$RaizScriptSAML=$_SERVER[\'PHP_SELF\'];\r\n	$RaizScriptSAML=str_replace ( \"/index.php\" , \"\" , $RaizScriptSAML); //Hace reemplazo con / por si esta en un directorio\r\n	$RaizScriptSAML=str_replace ( \"index.php\" , \"\" , $RaizScriptSAML);  //Hace reemplazo SIN / por si esta en la raiz\r\n	\r\n','global $PCO_PostAccionDirecta;\r\n$PCO_PostAccionDirecta=1;\r\nPCO_CargarFormulario(\"-26\",1);',0),(-28,'[SubForm] {$MULTILANG_InfParam}','','','core_informe',1,'//Determina que campos deben estar visibles de acuerdo al valor del combo que activa los panefilter\r\nfunction AlternarCamposVisibles_PaneFilter()\r\n    {\r\n        if ($(\"#pane_activado\").val()!=\"N\")\r\n            {\r\n                $(\"#PCOContenedor_pane_cascada\").show();\r\n                $(\"#PCOContenedor_pane_colapsado\").show();\r\n                $(\"#PCOContenedor_pane_columnas\").show();\r\n                $(\"#PCOContenedor_pane_subtotalesrelativos\").show();\r\n                $(\"#PCOContenedor_pane_conteos\").show();\r\n                $(\"#PCOContenedor_pane_controles\").show();\r\n                $(\"#PCOContenedor_pane_control_colapsar\").show();\r\n                $(\"#PCOContenedor_pane_control_ordenar\").show();\r\n            }\r\n        else\r\n            {\r\n                $(\"#PCOContenedor_pane_cascada\").hide();\r\n                $(\"#PCOContenedor_pane_colapsado\").hide();\r\n                $(\"#PCOContenedor_pane_columnas\").hide();\r\n                $(\"#PCOContenedor_pane_subtotalesrelativos\").hide();\r\n                $(\"#PCOContenedor_pane_conteos\").hide();\r\n                $(\"#PCOContenedor_pane_controles\").hide();\r\n                $(\"#PCOContenedor_pane_control_colapsar\").hide();\r\n                $(\"#PCOContenedor_pane_control_ordenar\").hide();\r\n            }\r\n    }\r\n\r\nfunction FrmAutoRun()\r\n    {\r\n        AlternarCamposVisibles_PaneFilter();\r\n    }',0,'','datos','responsive','col-xs-12 col-sm-12 col-md-12 col-lg-12','panel-primary','','',0),(-8,'{$MULTILANG_UsrLista}','','','core_tabla_comodin',2,'function ReconocimientoFacial()\n    {\n        var LMQTP=window.open(\'index.php?PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:-47:0&Presentar_FullScreen=1&Precarga_EstilosBS=1\');\n    }\n\nfunction FrmAutoRun()\n    {\n        //Limpia los campos de filtro cuando ingresa por primera vez (llegan en _|_ ambos)\n        if ($(\"#FiltroNombreUsuario\").val()==\"_|_\" && $(\"#FiltroLoginUsuario\").val()==\"_|_\")\n            {\n                $(\"#FiltroNombreUsuario\").val(\"\");\n                $(\"#FiltroLoginUsuario\").val(\"\");\n            }\n    }',0,'nav-tabs','FormFiltroUsuarios','responsive','col-xs-12 col-sm-12 col-md-4 col-lg-4|col-xs-12 col-sm-12 col-md-8 col-lg-8','panel-primary','<?php\r\n    ##########################################################################\r\n    ##########################################################################\r\n    //VERIFICA SEGURIDAD: Perfil de Administrador requerido antes de continuar\r\n    global $PCOSESS_LoginUsuario,$MULTILANG_ErrorTitAuth,$MULTILANG_WSErr06;\r\n    if (!PCO_EsAdministrador(@$PCOSESS_LoginUsuario))\r\n        {\r\n            PCO_Mensaje(\"{$MULTILANG_ErrorTitAuth}\", \"{$MULTILANG_WSErr06}\", \'\', \'fa fa-exclamation-triangle fa-3x texto-rojo texto-blink\', \'alert alert-warning alert-dismissible\');\r\n            PCO_Auditar(\"$PCOSESS_LoginUsuario Intenta acceso no autorizado Frm:-8\",\"SECLog:event\");\r\n            die();\r\n        }\r\n    ##########################################################################\r\n    ##########################################################################\r\n','',0),(-29,'TEST_PracticoFramework - Eventos JS','','','core_tabla_comodin',3,'function FrmAutoRun()\r\n    {\r\n        //Aqui sus instrucciones\r\n    }',0,'','datos','responsive','col col-xs-4 col-sm-4 col-md-4 col-lg-4','panel-primary','PCO_CargarFormulario(\"-25\",\"1\");\r\n','',0),(-17,'{$MULTILANG_UsrAdmPer}','','','core_tabla_comodin',2,'function FrmAutoRun()\r\n    {\r\n        //Aqui sus instrucciones\r\n    }',0,'nav-tabs','datos','responsive','col-xs-12 col-sm-12 col-md-6 col-lg-6','panel-primary','','',0),(-24,'TEST_PracticoFramework - INFORMES TABULARES','','','core_tabla_comodin',2,'function FrmAutoRun()\r\n    {\r\n\r\n    }',0,'nav-tabs','banco_pruebas','responsive','col-xs-12 col-sm-12 col-md-6 col-lg-6','panel-primary','PCO_CargarFormulario(\"-25\",\"1\");','',0),(-1,'{$MULTILANG_InfTituloAgr}','','','core_tabla_comodin',2,'function FrmAutoRun()\r\n    {\r\n        //Aqui sus instrucciones\r\n    }\r\n',0,'nav-tabs','datos','tradicional','','panel-primary','<?php\r\n    ##########################################################################\r\n    ##########################################################################\r\n    //VERIFICA SEGURIDAD: Perfil de Administrador requerido antes de continuar\r\n    global $PCOSESS_LoginUsuario,$MULTILANG_ErrorTitAuth,$MULTILANG_WSErr06;\r\n    if (!PCO_EsAdministrador(@$PCOSESS_LoginUsuario))\r\n        {\r\n            PCO_Mensaje(\"{$MULTILANG_ErrorTitAuth}\", \"{$MULTILANG_WSErr06}\", \'\', \'fa fa-exclamation-triangle fa-3x texto-rojo texto-blink\', \'alert alert-warning alert-dismissible\');\r\n            PCO_Auditar(\"$PCOSESS_LoginUsuario Intenta acceso no autorizado Frm:-1\",\"SECLog:event\");\r\n            die();\r\n        }\r\n    ##########################################################################\r\n    ##########################################################################\r\n','',0),(-2,'[SubForm] {Creacion informes}','','','core_tabla_comodin',2,'function FrmAutoRun()\r\n    {\r\n        //Aqui sus instrucciones\r\n    }\r\n',0,'nav-tabs','datossubinf','tradicional','','panel-primary','','',0),(-20,'TEST_PracticoFramework - Pruebas PRE y POST Scripts + VblesPHP','','','core_auditoria',2,'function FrmAutoRun()\r\n    {\r\n        //Aqui sus instrucciones\r\n        $(\"#PCOContenedor_lbl_cambio_js\").html(\"Este texto fue asignado dinamicamente desde JS junto con la variable PHP de hora justo aqui --> <b>{$PCO_HoraOperacionPuntos}</b>\");\r\n    }',0,'nav-tabs','datos','responsive','col-xs-12 col-sm-12 col-md-6 col-lg-6','panel-primary','PCO_CargarFormulario(\"-25\",\"1\");\r\n\r\nPCO_Mensaje(\"Prueba de ejecucion PRE-Script formulario\", \"Se incluyen:  Inclusion de form -25 (Menu) y este mensaje\", \'\', \'fa fa-exclamation-triangle fa-5x texto-rojo texto-blink\', \'alert alert-warning alert-dismissible\');\r\n','<?php\r\nglobal $PCO_PostAccionDirecta;\r\n$PCO_PostAccionDirecta=1;\r\nPCO_Mensaje(\"Prueba de ejecucion POST-Script formulario\", \"Se incluyen: <li>Definicion de vble global PCO_PostAccionDirecta=1<li>Este mensaje<li>Recarga del formulario despues de guardar un registro\", \'\', \'fa fa-exclamation-triangle fa-5x texto-rojo texto-blink\', \'alert alert-warning alert-dismissible\');\r\nPCO_CargarFormulario(\"-20\",\"1\");',0),(-19,'Generador de URLs cortas','','','core_acortadorurls',2,'//Calcula combinaciones CON repeticion de N tomados de a M\r\nfunction CalcularCombinaciones(n,m)\r\n    {\r\n    	var factorn=1;\r\n    	var factorm=1;\r\n    	var factornm=1;\r\n    	if (Math.floor(n) < Math.floor(m))\r\n    		alert(\"n tiene que ser mayor o igual que m\");\r\n    	else {\r\n    		// n factorial\r\n    		if(n<0)\r\n    			alert(\"Has introducido un número negativo, n debe ser positivo\");\r\n    		else{\r\n    			if(Math.floor(n)!=n)\r\n    				alert(\"n ha de ser entero\");\r\n    			else{\r\n    				for(var i=n-1; i>0; i--)\r\n    				factorn*=i;\r\n    			}\r\n    		}\r\n    		// m factorial\r\n    		if(m<0)\r\n    			alert(\"Has introducido un número negativo, m debe ser positivo\");\r\n    		else{\r\n    			if(Math.floor(m)!=m)\r\n    				alert(\"m ha de ser entero\");\r\n    			else{\r\n    				for(i=m; i>0; i--)\r\n    				factorm*=i;\r\n    			}\r\n    		}\r\n    		// n+m-1 factorial\r\n    		if(n+m-1<0)\r\n    			alert(\"Has introducido un número negativo, n+m-1 debe ser positivo\");\r\n    		else{\r\n    			if(Math.floor(n+m)!=n+m)\r\n    				alert(\"n+m-1 ha de ser entero\");\r\n    			else{\r\n    				for(i=Math.abs(n)+Math.abs(m)-1; i>0; i--)\r\n    				factornm*=i;\r\n    			}\r\n    		}\r\n    	}\r\n    	$(\"#CombinacionesPosibles\").val(Math.floor(factornm/(factorn*factorm)));\r\n    }\r\n\r\nfunction GenerarAleatorio(Longitud,CaracteresPosibles)\r\n    {\r\n        var TextoAleatorio = \"\";\r\n        for (var i = 0; i < Longitud; i++)\r\n            TextoAleatorio += CaracteresPosibles.charAt(Math.floor(Math.random() * CaracteresPosibles.length));\r\n        return TextoAleatorio;\r\n    }\r\n\r\nfunction ActualizarURLCorta()\r\n    {\r\n        //Define URL raiz del framework\r\n        URL_PracticoFramework=window.location.href;\r\n        if(URL_PracticoFramework.indexOf(\"?\") > -1)\r\n            URL_PracticoFramework=window.location.href.split(\"?\")[0].split(\"index.php\")[0];\r\n        //Elimina de la URL el index.php innecesario\r\n        URL_PracticoFramework=URL_PracticoFramework.replace(\'index.php\', \'\');\r\n        //Concantena valores para obtener la URL recortada    \r\n        $(\"#url_recortada\").val(URL_PracticoFramework+\"?e=\"+$(\"#url_corta\").val());\r\n    }\r\n\r\nfunction GenerarCodigoCorto()\r\n    {\r\n        var CaracteresPosibles = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\r\n        $(\"#url_corta\").val(GenerarAleatorio($(\"#CantidadCaracteres\").val(),CaracteresPosibles));\r\n        CalcularCombinaciones(CaracteresPosibles.length,$(\"#CantidadCaracteres\").val());\r\n        ActualizarURLCorta();\r\n    }\r\n\r\nfunction FrmAutoRun()\r\n    {\r\n        //Verifica si entra desde cero y va a crear o si esta recuperando registro\r\n        if ($(\"#url_larga\").val()==\"\")\r\n            {\r\n                $(\"#PCOContenedor_contador_uso\").hide();\r\n                $(\"#btn_actualizar\").hide();\r\n                GenerarCodigoCorto();\r\n            }\r\n        else\r\n            {\r\n                ActualizarURLCorta();\r\n                $(\"#PCOContenedor_CantidadCaracteres\").hide();\r\n                $(\"#PCOContenedor_url_corta\").hide();\r\n                $(\"#PCOContenedor_CombinacionesPosibles\").hide();\r\n                $(\"#PCOContenedor_btn_regenerar\").hide();\r\n                $(\"#btn_guardar\").hide();\r\n            }\r\n    }\r\n',0,'nav-tabs','datos','responsive','col-xs-12 col-sm-12 col-md-4 col-lg-4|col-xs-12 col-sm-12 col-md-8 col-lg-8','panel-primary','<?php\r\n    ##########################################################################\r\n    ##########################################################################\r\n    //VERIFICA SEGURIDAD: Perfil de Administrador requerido antes de continuar\r\n    global $PCOSESS_LoginUsuario,$MULTILANG_ErrorTitAuth,$MULTILANG_WSErr06;\r\n    if (!PCO_EsAdministrador(@$PCOSESS_LoginUsuario))\r\n        {\r\n            PCO_Mensaje(\"{$MULTILANG_ErrorTitAuth}\", \"{$MULTILANG_WSErr06}\", \'\', \'fa fa-exclamation-triangle fa-3x texto-rojo texto-blink\', \'alert alert-warning alert-dismissible\');\r\n            PCO_Auditar(\"$PCOSESS_LoginUsuario Intenta acceso no autorizado Frm:-19\",\"SECLog:event\");\r\n            die();\r\n        }\r\n    ##########################################################################\r\n    ##########################################################################\r\n','',0),(-4,'{$MULTILANG_BTPanel}','','','core_tabla_comodin',2,'function FrmAutoRun()\r\n    {\r\n        //Aqui sus instrucciones\r\n    }\r\n',0,'nav-tabs','PanelGestionBugs','tradicional','','panel-primary','','',0),(-12,'{$MULTILANG_MnuAdmin}','','','core_menu',2,'// Oculta todos los campos (se debe indicar el valor maximo de los id dados a campoXX\r\nfunction PCOJS_OcultarCampos()\r\n	{\r\n        $(\'#PCOContenedor_Subtitulo1\').hide();            //\r\n        $(\'#PCOContenedor_Subtitulo2\').hide();            //\r\n        $(\'#PCOContenedor_padre\').hide();                 //10\r\n        $(\'#PCOContenedor_texto\').hide();                 //1\r\n        $(\'#PCOContenedor_peso\').hide();                  //2\r\n        $(\'#PCOContenedor_posible_arriba\').hide();        //3\r\n        $(\'#PCOContenedor_posible_escritorio\').hide();    //3\r\n        $(\'#PCOContenedor_posible_centro\').hide();        //3\r\n        $(\'#PCOContenedor_posible_izquierda\').hide();     //3\r\n        $(\'#PCOContenedor_posible_usuario\').hide();       //3\r\n        $(\'#PCOContenedor_seccion\').hide();               //4\r\n        $(\'#PCOContenedor_imagen\').hide();                //5\r\n        $(\'#PCOContenedor_btn_buscar_imagen\').hide();     //5\r\n        $(\'#PCOContenedor_destino\').hide();               //7\r\n        $(\'#PCOContenedor_url\').hide();                   //7\r\n        $(\'#PCOContenedor_tipo_comando\').hide();          //8\r\n        $(\'#PCOContenedor_comando\').hide();               //8\r\n        $(\'#PCOContenedor_btn_buscar_objeto\').hide();     //8\r\n        $(\'#PCOContenedor_clase_contenedor\').hide();      //11\r\n        $(\'#PCOContenedor_btn_guardar\').hide();           //9\r\n        $(\'#PCOContenedor_btn_actualizar\').hide();           //9\r\n	}\r\n\r\n//Determina los campos que debe dejar visibles de acuerdo al tipo de elemento a crear\r\nfunction PCOJS_ActualizarCamposVisibles()\r\n    {\r\n        PCOJS_OcultarCampos();\r\n        \r\n        //Identifica el tipo de objeto y muestra los campos que aplican\r\n        var tipo_objeto_activo=document.PCO_FormItemMenu.tipo_menu.options[document.PCO_FormItemMenu.tipo_menu.selectedIndex].value;\r\n        if (tipo_objeto_activo==\"grp\") //VisualizarCampos(\"1,2,3,4,5,9,11\");\r\n            {\r\n                $(\'#PCOContenedor_Subtitulo1\').show();            //\r\n                $(\'#PCOContenedor_texto\').show();                 //1\r\n                $(\'#PCOContenedor_peso\').show();                  //2\r\n                $(\'#PCOContenedor_posible_arriba\').show();        //3\r\n                $(\'#PCOContenedor_posible_escritorio\').show();    //3\r\n                $(\'#PCOContenedor_posible_centro\').show();        //3\r\n                $(\'#PCOContenedor_posible_izquierda\').show();     //3\r\n                $(\'#PCOContenedor_posible_usuario\').show();       //3\r\n                $(\'#PCOContenedor_seccion\').show();               //4\r\n                $(\'#PCOContenedor_imagen\').show();                //5\r\n                $(\'#PCOContenedor_btn_buscar_imagen\').show();     //5\r\n                $(\'#PCOContenedor_clase_contenedor\').show();      //11\r\n                if ($(\'#id\').val()!=\"\")\r\n                    $(\'#PCOContenedor_btn_actualizar\').show();\r\n                else\r\n                    $(\'#PCOContenedor_btn_guardar\').show();\r\n                //Asigna vacio por defecto al padre para opciones de agrupacion\r\n                document.PCO_FormItemMenu.padre.options[document.PCO_FormItemMenu.padre.selectedIndex].value=\"\";\r\n                document.PCO_FormItemMenu.padre.value=\"\";\r\n                $(\'#padre\').val(\'\');\r\n                $(\'#padre\').selectpicker(\'refresh\');\r\n            }\r\n        if (tipo_objeto_activo==\"opc\")  //VisualizarCampos(\"1,2,3,4,5,6,7,8,9,10\");\r\n            {\r\n                $(\'#PCOContenedor_Subtitulo1\').show();            //\r\n                $(\'#PCOContenedor_Subtitulo2\').show();            //\r\n                $(\'#PCOContenedor_padre\').show();                 //10\r\n                $(\'#PCOContenedor_texto\').show();                 //1\r\n                $(\'#PCOContenedor_peso\').show();                  //2\r\n                $(\'#PCOContenedor_posible_arriba\').show();        //3\r\n                $(\'#PCOContenedor_posible_escritorio\').show();    //3\r\n                $(\'#PCOContenedor_posible_centro\').show();        //3\r\n                $(\'#PCOContenedor_posible_izquierda\').show();     //3\r\n                $(\'#PCOContenedor_posible_usuario\').show();       //3\r\n                $(\'#PCOContenedor_seccion\').show();               //4\r\n                $(\'#PCOContenedor_imagen\').show();                //5\r\n                $(\'#PCOContenedor_btn_buscar_imagen\').show();     //5\r\n                $(\'#PCOContenedor_destino\').show();               //7\r\n                $(\'#PCOContenedor_url\').show();                   //7\r\n                $(\'#PCOContenedor_tipo_comando\').show();          //8\r\n                $(\'#PCOContenedor_comando\').show();               //8\r\n                $(\'#PCOContenedor_btn_buscar_objeto\').show();     //8\r\n                $(\'#PCOContenedor_clase_contenedor\').show();      //11\r\n                if ($(\'#id\').val()!=\"\")\r\n                    $(\'#PCOContenedor_btn_actualizar\').show();\r\n                else\r\n                    $(\'#PCOContenedor_btn_guardar\').show();\r\n\r\n            }\r\n    }\r\n\r\n// Actualiza los campos del form dependiendo de si la opcion tiene padre o no\r\nfunction PCOJS_ActualizarCamposHijos()\r\n	{\r\n	    var padre_seleccionado=document.PCO_FormItemMenu.padre.options[document.PCO_FormItemMenu.padre.selectedIndex].value;\r\n        //Si tiene un padre no aplica la seccion, ya que la hereda del padre\r\n        if (padre_seleccionado!=\"\")\r\n            {\r\n                $(\'#seccion\').val(\"PCO_NoVisible\");\r\n                $(\'#PCOContenedor_seccion\').hide();\r\n                $(\'#PCOContenedor_posible_arriba\').hide();        //3\r\n                $(\'#PCOContenedor_posible_escritorio\').hide();    //3\r\n                $(\'#PCOContenedor_posible_centro\').hide();        //3\r\n                $(\'#PCOContenedor_posible_izquierda\').hide();     //3\r\n                $(\'#PCOContenedor_posible_usuario\').hide();     //3\r\n            }\r\n        else\r\n            {\r\n                $(\'#PCOContenedor_seccion\').show();\r\n                $(\'#PCOContenedor_posible_arriba\').show();        //3\r\n                $(\'#PCOContenedor_posible_escritorio\').show();    //3\r\n                $(\'#PCOContenedor_posible_centro\').show();        //3\r\n                $(\'#PCOContenedor_posible_izquierda\').show();     //3\r\n                $(\'#PCOContenedor_posible_usuario\').show();     //3\r\n            }\r\n	}\r\n\r\nfunction FrmAutoRun()\r\n    {\r\n        PCOJS_OcultarCampos();\r\n        \r\n        //Si recibe un id entonces esta en modo de edicion y presenta lo que corresponda\r\n        if ($(\'#id\').val()!=\"\") \r\n            {\r\n                PCOJS_ActualizarCamposVisibles();\r\n                PCOJS_ActualizarCamposHijos();\r\n            }\r\n        else\r\n            {\r\n                $(\"#hash_unico\").val($.now());\r\n            }\r\n    }\r\n',0,'nav-tabs','PCO_FormItemMenu','tradicional','','panel-primary','<?php\r\n    ##########################################################################\r\n    ##########################################################################\r\n    //VERIFICA SEGURIDAD: Perfil de Administrador requerido antes de continuar\r\n    global $PCOSESS_LoginUsuario,$MULTILANG_ErrorTitAuth,$MULTILANG_WSErr06;\r\n    if (!PCO_EsAdministrador(@$PCOSESS_LoginUsuario))\r\n        {\r\n            PCO_Mensaje(\"{$MULTILANG_ErrorTitAuth}\", \"{$MULTILANG_WSErr06}\", \'\', \'fa fa-exclamation-triangle fa-3x texto-rojo texto-blink\', \'alert alert-warning alert-dismissible\');\r\n            PCO_Auditar(\"$PCOSESS_LoginUsuario Intenta acceso no autorizado Frm:-12\",\"SECLog:event\");\r\n            die();\r\n        }\r\n    ##########################################################################\r\n    ##########################################################################\r\n','',0),(-32,'{$MULTILANG_Modulos}','{$MULTILANG_FrmTitOrigen2}','En aplicaciones de cierta envergadura,  permite definir los módulos que conformarán su aplicación y en los que serán agrupados posteriormente elementos como los formularios o informes.  Adicionalmente permite la granularidad de permisos entre equipos de desarrolladores y la generación de documentación de proyecto basada en una jerarquía determinada.','core_modulos_app',2,'function FrmAutoRun()\r\n    {\r\n        //Si esta en modo de edicion oculta la creacion y viceversa\r\n        if ($(\"#nombre\").val()==\"\")\r\n            {\r\n                $(\"#btn_actualizar\").hide();\r\n            }\r\n        else\r\n            {\r\n                $(\"#btn_guardar\").hide();\r\n            }\r\n        \r\n    }',0,'nav-tabs','datos','responsive','col-xs-12 col-sm-12 col-md-4 col-lg-4|col-xs-12 col-sm-12 col-md-8 col-lg-8','panel-primary','<?php\r\n    ##########################################################################\r\n    ##########################################################################\r\n    //VERIFICA SEGURIDAD: Perfil de Administrador requerido antes de continuar\r\n    global $PCOSESS_LoginUsuario,$MULTILANG_ErrorTitAuth,$MULTILANG_WSErr06;\r\n    if (!PCO_EsAdministrador(@$PCOSESS_LoginUsuario))\r\n        {\r\n            PCO_Mensaje(\"{$MULTILANG_ErrorTitAuth}\", \"{$MULTILANG_WSErr06}\", \'\', \'fa fa-exclamation-triangle fa-3x texto-rojo texto-blink\', \'alert alert-warning alert-dismissible\');\r\n            PCO_Auditar(\"$PCOSESS_LoginUsuario Intenta acceso no autorizado Frm:-26\",\"SECLog:event\");\r\n            die();\r\n        }\r\n    ##########################################################################\r\n    ##########################################################################\r\n\r\n','<?php\r\nglobal $PCO_PostAccionDirecta;\r\n$PCO_PostAccionDirecta=1;\r\nPCO_CargarFormulario(\"-32\",1);',0),(-30,'TEST_PracticoFramework - Pruebas CRUD','','','core_auditoria',2,'function FrmAutoRun()\r\n    {\r\n    }',0,'nav-tabs','datos','responsive','col-xs-12 col-sm-12 col-md-6 col-lg-6','panel-primary','PCO_CargarFormulario(\"-25\",\"1\");\r\n','<?php\r\nglobal $PCO_PostAccionDirecta;\r\n$PCO_PostAccionDirecta=1;\r\nPCO_CargarFormulario(\"-30\",\"1\");',0),(-9,'{$MULTILANG_UsrAdicion}','{$MULTILANG_Importante}','{$MULTILANG_UsrDesPW}','core_usuario',2,'function EnrolamientoFacial()\n    {\n        var LMQTP=window.open(\'index.php?PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:-46:0:login:\'+$(\"#login\").val()+\'&Presentar_FullScreen=1&Precarga_EstilosBS=1\');\n    }\n\n\nfunction ValidarUsuarioPlantilla()\n    {\n        if ($(\"#es_plantilla\").val()==\"1\")\n            {\n                $(\'#estado\').selectpicker(\'val\', \'0\');\n                $(\'#plantilla_permisos\').selectpicker(\'val\', \'\');\n                $(\'#PCOContenedor_plantilla_permisos\').hide();\n            }\n        else\n            {\n                $(\'#estado\').selectpicker(\'val\', \'1\');\n                $(\'#PCOContenedor_plantilla_permisos\').show();\n            }\n    }\n\nfunction ValidarCamposYEnviar()\n    {\n        var HayError=false;\n        if ($(\"#clave\").val() != $(\"#clave1\").val())\n            {\n                PCOJS_MostrarMensaje($(\"#MULTILANG_Error\").val(),$(\"#MULTILANG_UsrErrPW2\").val());\n                HayError=true;\n            }\n        if ($(\"#seguridad\").val() < 81)\n            {\n                PCOJS_MostrarMensaje($(\"#MULTILANG_Error\").val(),$(\"#MULTILANG_UsrErrPW3\").val());\n                HayError=true;\n            }\n        if (!HayError)\n            {\n                document.FrmAdicionUsuarios.PCO_Accion.value=\"PCO_GuardarUsuario\";\n                PCOJS_ValidarCamposYProcesarFormulario(\"FrmAdicionUsuarios\");\n            }\n    }\n    \nfunction FrmAutoRun()\n    {\n        //Identifica si llega como edicion\n        if ($(\"#login\").val()!=\"\")\n            {\n                $( \"#PCOContenedor_login\" ).hide();\n\n                $( \"#PCOContenedor_clave\" ).hide();\n                $( \"#PCOContenedor_seguridad\" ).hide();\n                $( \"#PCOContenedor_clave1\" ).hide();\n                $( \"#btn_guardar\" ).hide();\n                \n                //Asigna valores a campos de clave que son obligatorios pero no se usan en actualizaciones por su nombre no coincidente \n                $( \"#clave1\" ).val(\"FakeTempPass\");\n                document.FrmAdicionUsuarios.PCO_Accion.value=\"PCO_ActualizarDatosFormulario\";\n\n            }\n        else\n            {\n                $( \"#btn_actualizar\" ).hide();\n                //Oculta botones de biometria\n                $( \"#PCOContenedor_lbl_enrolamiento\" ).hide();\n                $( \"#PCOContenedor_btn_iniciar_enrolamiento\" ).hide();\n            }\n        ValidarUsuarioPlantilla();\n    }\n\n	function buscar_texto_en_plantilla(texto,plantilla){\n	   for(i=0; i<texto.length; i++){\n		  if (plantilla.indexOf(texto.charAt(i),0)!=-1){\n			 return 1;\n		  }\n	   }\n	   return 0;\n	} \n\n	function tiene_simbolos(texto){\n		return buscar_texto_en_plantilla(texto,\"!#$%&*\");\n	} \n\n	function tiene_numeros(texto){\n		return buscar_texto_en_plantilla(texto,\"0123456789\");\n	} \n\n	function tiene_letras(texto){\n		return buscar_texto_en_plantilla(texto,\"abcdefghyjklmnñopqrstuvwxyz\");\n	} \n\n	function tiene_minusculas(texto){\n		return buscar_texto_en_plantilla(texto,\"abcdefghyjklmnñopqrstuvwxyz\");\n	} \n\n	function tiene_mayusculas(texto){\n		return buscar_texto_en_plantilla(texto,\"ABCDEFGHYJKLMNÑOPQRSTUVWXYZ\");\n	} \n\n\n/* ################################################################## */\n/* ################################################################## */\n/*\n	Function: seguridad_clave\n	Retorna un valor asociado al nivel de seguridad de la clave recibida despues de buscar ciertos caracteres sobre esta.\n\n	Variables de entrada:\n\n		clave - Valor del campo clave digitado por el usuario\n\n		(start code)\n				if (tiene_numeros(clave)) seguridad += 10;\n				if (tiene_minusculas (clave)) seguridad += 20;\n				if (tiene_mayusculas(clave)) seguridad += 20;\n				if (tiene_simbolos(clave)) seguridad += 20;\n				if (tiene_minusculas(clave) && tiene_mayusculas(clave)) seguridad += 30;\n				if (tiene_simbolos(clave) && (tiene_mayusculas(clave) || tiene_minusculas (clave))) seguridad += 10;\n				if (clave.length <= 7) seguridad -= 40;\n				if (clave.length >= 8) seguridad += 10;\n		(end)\n\n	Salida:\n		Valor de la variable entera llamada seguridad.\n		\n			Ver tambien:\n				<muestra_seguridad_clave> | <PCO_CambiarContrasena>\n*/\n	function seguridad_clave(clave){\n		var seguridad = 0;\n		if (clave.length!=0)\n			{\n				if (tiene_numeros(clave)) seguridad += 10;\n				if (tiene_minusculas (clave)) seguridad += 20;\n				if (tiene_mayusculas(clave)) seguridad += 20;\n				if (tiene_simbolos(clave)) seguridad += 20;\n				if (tiene_minusculas(clave) && tiene_mayusculas(clave)) seguridad += 30;\n				if (tiene_simbolos(clave) && (tiene_mayusculas(clave) || tiene_minusculas (clave))) seguridad += 10;\n				if (clave.length <= 7) seguridad -= 40;\n				if (clave.length >= 8) seguridad += 10;\n			}\n		if (seguridad>100) seguridad=100;\n		if (seguridad<0) seguridad=0;\n		return seguridad;\n	}\n\n/* ################################################################## */\n/* ################################################################## */\n/*\n	Function: muestra_seguridad_clave\n	Visualiza el valor asociado al nivel de seguridad de la clave sobre el formulario de diligenciamiento\n\n	Variables de entrada:\n\n		clave - Valor del campo clave digitado por el usuario\n		formulario - Nombre del formulario sobre el que se actualiza el valor del campo seguridad.\n\n		(start code)\n			seguridad=seguridad_clave(clave);\n			formulario.seguridad.value=seguridad;\n		(end)\n\n	Salida:\n		Campo (visual del formulario) actualizado\n		\n	Ver tambien:\n		<seguridad_clave> | <PCO_CambiarContrasena>\n*/\n	function muestra_seguridad_clave(clave,formulario){\n		seguridad=seguridad_clave(clave);\n		formulario.seguridad.value=seguridad;\n	}',0,'nav-tabs','FrmAdicionUsuarios','responsive','col-xs-12 col-sm-12 col-md-6 col-lg-6','panel-primary','<?php\n    ##########################################################################\n    ##########################################################################\n    //VERIFICA SEGURIDAD: Perfil de Administrador requerido antes de continuar\n    global $PCOSESS_LoginUsuario,$MULTILANG_ErrorTitAuth,$MULTILANG_WSErr06;\n    if (!PCO_EsAdministrador(@$PCOSESS_LoginUsuario))\n        {\n            PCO_Mensaje(\"{$MULTILANG_ErrorTitAuth}\", \"{$MULTILANG_WSErr06}\", \'\', \'fa fa-exclamation-triangle fa-3x texto-rojo texto-blink\', \'alert alert-warning alert-dismissible\');\n            PCO_Auditar(\"$PCOSESS_LoginUsuario Intenta acceso no autorizado Frm:-9\",\"SECLog:event\");\n            die();\n        }\n    ##########################################################################\n    ##########################################################################\n\nglobal $PCO_BarraHerramientasFormulario;\n\n//$PCO_BarraHerramientasFormulario=\"<i class=\'btn btn-xs btn-primary\'>DOCS</i>\";','',0),(-15,'{$MULTILANG_FrmAgregar}','','','core_formulario',1,'function FrmAutoRun()\r\n    {\r\n    }\r\n',0,'nav-tabs','datos_nuevo_form','tradicional','','panel-primary','<?php\r\n    ##########################################################################\r\n    ##########################################################################\r\n    //VERIFICA SEGURIDAD: Perfil de Administrador requerido antes de continuar\r\n    global $PCOSESS_LoginUsuario,$MULTILANG_ErrorTitAuth,$MULTILANG_WSErr06;\r\n    if (!PCO_EsAdministrador(@$PCOSESS_LoginUsuario))\r\n        {\r\n            PCO_Mensaje(\"{$MULTILANG_ErrorTitAuth}\", \"{$MULTILANG_WSErr06}\", \'\', \'fa fa-exclamation-triangle fa-3x texto-rojo texto-blink\', \'alert alert-warning alert-dismissible\');\r\n            PCO_Auditar(\"$PCOSESS_LoginUsuario Intenta acceso no autorizado Frm:-15\",\"SECLog:event\");\r\n            die();\r\n        }\r\n    ##########################################################################\r\n    ##########################################################################\r\n','',0),(-14,'{$MULTILANG_InfParam}','','','core_informe',2,'function CargarScriptPRE()\n    {\n        //FORMA 1: Enlaces estandar (Modo de emergencia o depuracion de PCoder)\n        //PCO_VentanaPopup(\'index.php?PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:-33:0&Presentar_FullScreen=1&Precarga_EstilosBS=1&Origen_Archivo=B&Tabla_Archivo=core_informe&Campo_Archivo=pre_script&PCODER_extension=php&PCODER_ModoEditor=PHP&PCODER_TipoMenu=Iconos&PCODER_EstadoSimple=1&Llave_Registro=\'+$(\"#id\").val()+\'&PCODER_Titulo=Script_PRE_Informe_\'+$(\"#id\").val()+\'_(PHP)\',\'PcoderNG\',\'toolbar=no, location=no, directories=0, directories=no, status=no, location=no, menubar=no ,scrollbars=no, resizable=yes, fullscreen=no, titlebar=no, width=800, height=600\');\n    \n        //FORMA 2: Con funcion interna de apertura - Sobreescribe FORMA 1 - Comentar para pasar a modo de emergencia\n        PCOJS_CargarArchivoPCoderBD(\'{$LlaveParcial_FirmaSistema}\',\'\',\'\',\'\',\'No\',\'B\',\'core_informe\',\'pre_script\', \'{$IdUnicoInforme}\',\'php\',\'PHP\'       ,\'Iconos\',\'1\',\'<font color=white>Script_PRE</font> Informe_{$IdUnicoInforme}_(PHP){$TituloPCoder_COMPLEMENTO}\');\n    }\n\nfunction CargarScriptPOST()\n    {\n        //FORMA 1: Enlaces estandar (Modo de emergencia o depuracion de PCoder)\n        //PCO_VentanaPopup(\'index.php?PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:-33:0&Presentar_FullScreen=1&Precarga_EstilosBS=1&Origen_Archivo=B&Tabla_Archivo=core_informe&Campo_Archivo=post_script&PCODER_extension=php&PCODER_ModoEditor=PHP&PCODER_TipoMenu=Iconos&PCODER_EstadoSimple=1&Llave_Registro=\'+$(\"#id\").val()+\'&PCODER_Titulo=Script_POST_Informe_\'+$(\"#id\").val()+\'_(PHP)\',\'PcoderNG\',\'toolbar=no, location=no, directories=0, directories=no, status=no, location=no, menubar=no ,scrollbars=no, resizable=yes, fullscreen=no, titlebar=no, width=800, height=600\');\n\n        //FORMA 2: Con funcion interna de apertura - Sobreescribe FORMA 1 - Comentar para pasar a modo de emergencia\n        PCOJS_CargarArchivoPCoderBD(\'{$LlaveParcial_FirmaSistema}\',\'\',\'\',\'\',\'No\',\'B\',\'core_informe\',\'post_script\',\'{$IdUnicoInforme}\',\'php\',\'PHP\'       ,\'Iconos\',\'1\',\'<font color=white>Script_POST</font> Informe_{$IdUnicoInforme}_(PHP){$TituloPCoder_COMPLEMENTO}\');\n    }\n\nfunction CargarScriptJS()\n    {\n        //FORMA 1: Enlaces estandar (Modo de emergencia o depuracion de PCoder)\n        //PCO_VentanaPopup(\'index.php?PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:-33:0&Presentar_FullScreen=1&Precarga_EstilosBS=1&Origen_Archivo=B&Tabla_Archivo=core_informe&Campo_Archivo=javascript&PCODER_extension=js&PCODER_ModoEditor=JavaScript&PCODER_TipoMenu=Iconos&PCODER_EstadoSimple=1&Llave_Registro=\'+$(\"#id\").val()+\'&PCODER_Titulo=Script_JavaScript_Informe_\'+$(\"#id\").val()+\'_(JS)\',\'PcoderNG\',\'toolbar=no, location=no, directories=0, directories=no, status=no, location=no, menubar=no ,scrollbars=no, resizable=yes, fullscreen=no, titlebar=no, width=800, height=600\');\n\n        //FORMA 2: Con funcion interna de apertura - Sobreescribe FORMA 1 - Comentar para pasar a modo de emergencia\n        PCOJS_CargarArchivoPCoderBD(\'{$LlaveParcial_FirmaSistema}\',\'\',\'\',\'\',\'No\',\'B\',\'core_informe\',\'javascript\' ,\'{$IdUnicoInforme}\',\'js\' ,\'JavaScript\',\'Iconos\',\'1\',\'<font color=white>Script_JS</font> Informe_{$IdUnicoInforme}_(JS){$TituloPCoder_COMPLEMENTO}\');\n    }\n\n//Determina que campos deben estar visibles de acuerdo al valor del combo que activa los datatables\nfunction AlternarCamposVisibles_DataTables()\n    {\n        if ($(\"#soporte_datatable\").val()==\"S\")\n            {\n                $(\"#PCOContenedor_tamano_paginacion\").show();\n                $(\"#PCOContenedor_subtotales_columna\").show();\n                $(\"#PCOContenedor_subtotales_formato\").show();\n                $(\"#PCOContenedor_exportar_dt\").show();\n                $(\"#PCOContenedor_exportar_dtclp\").show();\n                $(\"#PCOContenedor_exportar_dtcsv\").show();\n                $(\"#PCOContenedor_exportar_dtxls\").show();\n                $(\"#PCOContenedor_exportar_dtpdf\").show();\n                $(\"#PCOContenedor_tabla_responsive\").show();\n                $(\"#PCOContenedor_lbl_responsive\").show();\n                $(\"#PCOContenedor_usar_ajax\").show();\n                $(\"#PCOContenedor_usar_ajax_detalles\").show();\n                $(\"#PCOContenedor_definir_cols\").show();\n                $(\"#PCOContenedor_marco_panesubform\").show();\n            }\n        else\n            {\n                $(\"#PCOContenedor_tamano_paginacion\").hide();\n                $(\"#PCOContenedor_subtotales_columna\").hide();\n                $(\"#PCOContenedor_subtotales_formato\").hide();\n                $(\"#PCOContenedor_exportar_dt\").hide();\n                $(\"#PCOContenedor_exportar_dtclp\").hide();\n                $(\"#PCOContenedor_exportar_dtcsv\").hide();\n                $(\"#PCOContenedor_exportar_dtxls\").hide();\n                $(\"#PCOContenedor_exportar_dtpdf\").hide();\n                $(\"#PCOContenedor_tabla_responsive\").hide();\n                $(\"#PCOContenedor_lbl_responsive\").hide();\n                $(\"#PCOContenedor_usar_ajax\").hide();\n                $(\"#PCOContenedor_usar_ajax_detalles\").hide();\n                $(\"#PCOContenedor_definir_cols\").hide();\n                $(\"#PCOContenedor_marco_panesubform\").hide();\n            }\n    }\n\nfunction FrmAutoRun()\n    {\n        //Oculta boton de graficos si el formato es tabla\n        if($(\"#formato_final\").val()==\"T\")\n            $(\"#btn_grafico\").addClass(\'disabled\');\n        //Oculta boton de acciones si el formato es graficos\n        if($(\"#formato_final\").val()==\"G\")\n            {\n                $(\"#btn_acciones_agregar\").addClass(\'disabled\');\n                $(\"#btn_acciones_editar\").addClass(\'disabled\');\n            }\n        AlternarCamposVisibles_DataTables();\n    }',0,'nav-tabs','datos','tradicional','','panel-primary','<?php\n    ##########################################################################\n    ##########################################################################\n    //VERIFICA SEGURIDAD: Perfil de Administrador requerido antes de continuar\n    global $PCOSESS_LoginUsuario,$MULTILANG_ErrorTitAuth,$MULTILANG_WSErr06;\n    if (!PCO_EsAdministrador(@$PCOSESS_LoginUsuario))\n        {\n            PCO_Mensaje(\"{$MULTILANG_ErrorTitAuth}\", \"{$MULTILANG_WSErr06}\", \'\', \'fa fa-exclamation-triangle fa-3x texto-rojo texto-blink\', \'alert alert-warning alert-dismissible\');\n            PCO_Auditar(\"$PCOSESS_LoginUsuario Intenta acceso no autorizado Frm:-14\",\"SECLog:event\");\n            die();\n        }\n    ##########################################################################\n    ##########################################################################\n\n    //Variables usadas en JS para el llamado a PCoder\n    global $TituloPCoder_COMPLEMENTO,$LlaveParcial_FirmaSistema,$LlaveDePaso,$PCO_RegistroDatosFormulario,$IdUnicoInforme;\n    \n    $TituloReportePCoder=$PCO_RegistroDatosFormulario[\"titulo\"]; //Toma el titulo desde el registro de informe recuperado\n    $IdUnicoInforme=$PCO_RegistroDatosFormulario[\"id\"];\n    $TituloPCoder_COMPLEMENTO=\" - <font color=white>\".$TituloReportePCoder.\"</font> \";\n    $LlaveParcial_FirmaSistema=substr($LlaveDePaso,-3);\n    ','<?php\r\nglobal $id;\r\n				echo \'<form name=\"cancelar\" action=\"index.php\" method=\"POST\">\r\n					<input type=\"Hidden\" name=\"PCO_Accion\" value=\"PCO_EditarInforme\">\r\n					<input type=\"Hidden\" name=\"informe\" value=\"\'.$id.\'\">\r\n					</form>\r\n					<script type=\"\" language=\"JavaScript\"> document.cancelar.submit();  </script>\';',0),(-22,'{$MULTILANG_UsrPerfil}','','','core_usuario',2,'function ValidarCamposYEnviar()\r\n    {\r\n        var HayError=false;\r\n        if (!HayError)\r\n            {\r\n                document.FrmEdicionPerfil.PCO_Accion.value=\"PCO_GuardarUsuario\";\r\n                PCOJS_ValidarCamposYProcesarFormulario(\"FrmEdicionPerfil\");\r\n            }\r\n    }\r\n    \r\nfunction FrmAutoRun()\r\n    {\r\n        //Si el modo demo está activo entonces no deja seguir adelante\r\n        if ($(\"#PCO_ModoDEMO\").val()==\"1\")\r\n            {\r\n                $(\"#PCO_PestanaFormulario_1\").html(\"<center><br><br>Operacion no autorizada en modo DEMO<br><br></center>\");\r\n                $(\"#btn_actualizar\").hide();\r\n            }\r\n        //Si el tipo de autenticaion no es la interna entonces no deja cambiar datos pues se trata de un perfil federado\r\n        if ($(\"#Auth_TipoMotor\").val()!=\"practico\")\r\n            {\r\n                $(\"#PCO_PestanaFormulario_1\").html(\"<center><br><br>Operacion no autorizada en sistemas con autenticaciones federadas<br><br></center>\");\r\n                $(\"#btn_actualizar\").hide();\r\n            }\r\n\r\n        //Valida si el administrador permite o no el cambio por parte de los usuarios\r\n        if ($(\"#PCO_PermitirUsuariosModoNoche\").val()!=\"1\")\r\n                $(\"#PCOContenedor_transformacion_colores\").hide();\r\n        if ($(\"#IdiomaEnLogin\").val()!=\"1\")\r\n                $(\"#PCOContenedor_idioma\").hide();\r\n\r\n        //Si tiene ruta en el campo de avatar reemplaza la imagen predeterminada\r\n        if ($(\"#ruta_foto\").val()!=\"\")\r\n            {\r\n                PartesImagen=$(\"#ruta_foto\").val().split(\"|\");\r\n                PathImagen=PartesImagen[0];\r\n                $(\"#PCOContenedor_marco_avatar\").html(\"<center><img src=\'\"+PathImagen+\"\' style=\'width:120px; height:120px; border-radius: 50%; margin-top:0px; margin-bottom:0px;\'></center><br>\");\r\n            }\r\n\r\n    }\r\n',0,'nav-tabs','FrmEdicionPerfil','responsive','col-xs-12 col-sm-12 col-md-6 col-lg-6','panel-primary','','',0),(-13,'{$MULTILANG_BarraHtas}','','','core_tabla_comodin',1,'function FrmAutoRun()\r\n    {\r\n        //Aqui sus instrucciones\r\n    }\r\n',0,'','PCO_FormHerramientasInforme','tradicional','','panel-primary','','',0),(-7,'{$MULTILANG_UsrAudit1}','','','core_tabla_comodin',2,'function FrmAutoRun()\r\n    {\r\n        //Aqui sus instrucciones\r\n    }\r\n',0,'nav-tabs','FormAuditoria','responsive','col-xs-12 col-sm-12 col-md-6 col-lg-6','panel-primary','<?php\r\n    ##########################################################################\r\n    ##########################################################################\r\n    //VERIFICA SEGURIDAD: Perfil de Administrador requerido antes de continuar\r\n    global $PCOSESS_LoginUsuario,$MULTILANG_ErrorTitAuth,$MULTILANG_WSErr06;\r\n    if (!PCO_EsAdministrador(@$PCOSESS_LoginUsuario))\r\n        {\r\n            PCO_Mensaje(\"{$MULTILANG_ErrorTitAuth}\", \"{$MULTILANG_WSErr06}\", \'\', \'fa fa-exclamation-triangle fa-3x texto-rojo texto-blink\', \'alert alert-warning alert-dismissible\');\r\n            PCO_Auditar(\"$PCOSESS_LoginUsuario Intenta acceso no autorizado Frm:-7\",\"SECLog:event\");\r\n            die();\r\n        }\r\n    ##########################################################################\r\n    ##########################################################################\r\n	PCO_Auditar(\"Carga modulo de auditoria\");\r\n    global $FechaInicioAuditoria,$PCO_FechaOperacionGuiones,$FechaFinAuditoria;\r\n    if ($FechaInicioAuditoria==\"\")\r\n        $FechaInicioAuditoria=$PCO_FechaOperacionGuiones;\r\n    if ($FechaFinAuditoria==\"\")\r\n        $FechaFinAuditoria=$PCO_FechaOperacionGuiones;\r\n    \r\n','<?php\r\n	PCO_CargarFormulario(\"-7\",1);\r\n',0),(-23,'{$MULTILANG_AgregarNuevaTarea}','','','core_kanban',2,'function FrmAutoRun()\n    {\n        $( document ).ready(function() {\n            if ($(\"#titulo\").val()==\"\")\n                $(\"#PCOContenedor_btn_actualizar\").hide();\n            else\n                $(\"#PCOContenedor_btn_agregar\").hide();\n        });\n        \n        //Determina si el usuario puede o no aceptar las pruebas directamente sobre la tarea\n        if ($(\"#usuario_aceptacion_pf\").val() != \"{$PCOSESS_LoginUsuario}\")\n            $(\"#PCOContenedor_aceptacion_pf\").html(\"<br><i class=\'fa fa-ban fa-fw\'></i> <i>Usuario no autorizado para aceptar este tipo de prueba</i>\");\n        if ($(\"#usuario_aceptacion_pnf\").val() != \"{$PCOSESS_LoginUsuario}\")\n            $(\"#PCOContenedor_aceptacion_pnf\").html(\"<br><i class=\'fa fa-ban fa-fw\'></i> <i>Usuario no autorizado para aceptar este tipo de prueba</i>\");\n\n\n        //Determina si el usuario puede usar el boton de agregar o actualizar\n        var PuedeEditarOActualizar=0;\n        var CadenaAutorizadosEdicion=\'_LMQTP_,\' + $(\"#PCO_ComboMultiple_usuarios_edicion\").val();//Puede tener comas\n        if ($(\"#login_admintablero\").val() == \"{$PCOSESS_LoginUsuario}\") PuedeEditarOActualizar=1;\n        if ($(\"#compartido_rw\").val() == \"{$PCOSESS_LoginUsuario}\") PuedeEditarOActualizar=1;\n        //alert(CadenaAutorizadosEdicion);\n        if (CadenaAutorizadosEdicion.indexOf(\"{$PCOSESS_LoginUsuario}\") > 0 ) PuedeEditarOActualizar=1;\n        if (PuedeEditarOActualizar==0)\n            {\n                $(\"#PCOContenedor_btn_actualizar\").hide();\n                $(\"#PCOContenedor_btn_agregar\").hide();\n            }\n\n        //Llena las categorías personalizadas en caso de detectarlas desde el PRE\n        if (\"{$PCOVAR_KanbanListaCategorias}\"!=\"\")\n            {\n                $(\"#categoria\").append(\"{$ValirableHTMLListas}\");\n                PCOJS_ActualizarComboBox(\"categoria\");\n            }\n\n    }',0,'nav-tabs','datosfield','responsive','col-xs-12 col-sm-12 col-md-6 col-lg-6','panel-primary','<?php\n    //Verifica si el usuario actual tiene acceso a tableros Kanban\n    global $PCOSESS_LoginUsuario,$TablasCore;\n    $TieneRegistroTableros=PCO_EjecutarSQL(\"SELECT id FROM \".$TablasCore.\"kanban WHERE archivado<>1 AND categoria=\'[PRACTICO][ColumnasTablero]\' AND (login_admintablero=\'$PCOSESS_LoginUsuario\' OR compartido_rw LIKE \'%|$PCOSESS_LoginUsuario|%\') LIMIT 0,1 \")->fetchColumn();\n    ##########################################################################\n    ##########################################################################\n    //VERIFICA SEGURIDAD: Perfil de Administrador requerido antes de continuar\n    global $PCOSESS_LoginUsuario,$MULTILANG_ErrorTitAuth,$MULTILANG_WSErr06;\n    if (!PCO_EsAdministrador(@$PCOSESS_LoginUsuario) && $TieneRegistroTableros==\"\")\n        {\n            PCO_Mensaje(\"{$MULTILANG_ErrorTitAuth}\", \"{$MULTILANG_WSErr06}\", \'\', \'fa fa-exclamation-triangle fa-3x texto-rojo texto-blink\', \'alert alert-warning alert-dismissible\');\n            PCO_Auditar(\"$PCOSESS_LoginUsuario Intenta acceso no autorizado Frm:-23\",\"SECLog:event\");\n            die();\n        }\n    ##########################################################################\n    ##########################################################################\n\n//Busca categorias personalizadas en caso de existir\n    //Combo ORIGINAL PCO:           ,_OPTGROUP_|Por arquitectura,FrontEnd,BackEnd,Ambos,_OPTGROUP_,_OPTGROUP_|Por fase del ciclo,Re-Elicitacion,Mejora,Correccion,_OPTGROUP_,_OPTGROUP_|Otros personalizados\n    //Combo ORIGINAL COLMEDICOS:    ,_OPTGROUP_|Por arquitectura,FrontEnd,BackEnd,Ambos,_OPTGROUP_,_OPTGROUP_|Por fase del ciclo,Re-Elicitacion,Mejora,Correccion,_OPTGROUP_,_OPTGROUP_|Otros personalizados,Proyectos,Operación,Facturación,Compras,Comercial,Cartera,Red Nacional,Infraestructura,Gestión Humana,Habilitación,Consultoría,TI,Logística,Jurídica,Fra y Contabilidad,SIG,Informes,Estrategia,Centralización,Fonoaudiología,Optometría,Médico,Laboratorio,Psicología,Atención al usuario,Terapia Respiratoria,Extramurales,Inventarios,Operaciones,Subgerencia Regional_OPTGROUP_\n    \n    global $PCO_RegistroDatosFormulario;    //Valor de tablero desde el registro para casos de EDICION\n    global $ID_TableroKanban;               //Valor del tablero desde variable enviada en CREACION\n    global $PCOVAR_KanbanListaCategorias;   //Variable para tener el resultado final\n    global $ValirableHTMLListas;\n    \n    $TableroBusquedaCategorias=$PCO_RegistroDatosFormulario[\"tablero\"];\n    if ($TableroBusquedaCategorias==\"\" || $TableroBusquedaCategorias==\"0\")\n        $TableroBusquedaCategorias=$ID_TableroKanban;\n    if ($TableroBusquedaCategorias!=\"\")\n        {\n            $PCOVAR_KanbanListaCategorias=PCO_EjecutarSQL(\"SELECT historial FROM core_kanban WHERE id=\'{$TableroBusquedaCategorias}\' \")->fetchColumn();\n            $PCOVAR_KanbanListaCategorias=trim($PCOVAR_KanbanListaCategorias);\n            \n            //ValirableHTMLListas que pasa codigo a JS\n            $ValirableHTMLListas=\"<optgroup label=\'Otros personalizados\'>\";\n            $ArregloCategorias=explode(\",\",$PCOVAR_KanbanListaCategorias);\n            foreach ($ArregloCategorias as $Categoria)\n                $ValirableHTMLListas.=\"<option value=\'{$Categoria}\'>{$Categoria}</option>\";\n            $ValirableHTMLListas.=\"</optgroup>\";\n        }','<?php\r\n    global $MULTILANG_AgregarNuevaTarea,$MULTILANG_Finalizado;\r\n	PCO_Auditar(\"Agrega/actualiza tarea Kanban a tablero $tablero\");\r\n    PCO_Mensaje(\"{$MULTILANG_AgregarNuevaTarea}\", \"$MULTILANG_Finalizado.  Puede que necesite actualizar su tablero si desea verla inmediatamente\", \'\', \'fa fa-thumbs-up fa-2x\', \'alert alert-success \');\r\n    die();\r\n',0),(-31,'TEST_PracticoFramework - Pruebas de Controles Especiales','','','core_auditoria',2,'function FrmAutoRun()\r\n    {\r\n    }',0,'nav-tabs','datos','responsive','col-xs-12 col-sm-12 col-md-6 col-lg-6','panel-primary','PCO_CargarFormulario(\"-25\",\"1\");\r\n','<?php\r\nglobal $PCO_PostAccionDirecta;\r\n$PCO_PostAccionDirecta=1;\r\nPCO_CargarFormulario(\"-31\",\"1\");',0),(-18,'{$MULTILANG_UsrCambioPW}','{$MULTILANG_Importante}','{$MULTILANG_UsrDesPW}','core_tabla_comodin',2,'function ValidarCamposYEnviar()\r\n    {\r\n        var HayError=false;\r\n        if ($(\"#clave1\").val() != $(\"#clave2\").val())\r\n            {\r\n                PCOJS_MostrarMensaje($(\"#MULTILANG_Error\").val(),$(\"#MULTILANG_UsrErrPW2\").val());\r\n                HayError=true;\r\n            }\r\n        if ($(\"#seguridad\").val() < 81)\r\n            {\r\n                PCOJS_MostrarMensaje($(\"#MULTILANG_Error\").val(),$(\"#MULTILANG_UsrErrPW3\").val());\r\n                HayError=true;\r\n            }\r\n        if (!HayError)\r\n            PCOJS_ValidarCamposYProcesarFormulario();\r\n    }\r\n\r\nfunction FrmAutoRun()\r\n    {\r\n        //Aqui sus instrucciones\r\n    }\r\n\r\n	function buscar_texto_en_plantilla(texto,plantilla){\r\n	   for(i=0; i<texto.length; i++){\r\n		  if (plantilla.indexOf(texto.charAt(i),0)!=-1){\r\n			 return 1;\r\n		  }\r\n	   }\r\n	   return 0;\r\n	} \r\n\r\n	function tiene_simbolos(texto){\r\n		return buscar_texto_en_plantilla(texto,\"!#$%&*\");\r\n	} \r\n\r\n	function tiene_numeros(texto){\r\n		return buscar_texto_en_plantilla(texto,\"0123456789\");\r\n	} \r\n\r\n	function tiene_letras(texto){\r\n		return buscar_texto_en_plantilla(texto,\"abcdefghyjklmnñopqrstuvwxyz\");\r\n	} \r\n\r\n	function tiene_minusculas(texto){\r\n		return buscar_texto_en_plantilla(texto,\"abcdefghyjklmnñopqrstuvwxyz\");\r\n	} \r\n\r\n	function tiene_mayusculas(texto){\r\n		return buscar_texto_en_plantilla(texto,\"ABCDEFGHYJKLMNÑOPQRSTUVWXYZ\");\r\n	} \r\n\r\n/* ################################################################## */\r\n/* ################################################################## */\r\n/*\r\n	Function: seguridad_clave\r\n	Retorna un valor asociado al nivel de seguridad de la clave recibida despues de buscar ciertos caracteres sobre esta.\r\n\r\n	Variables de entrada:\r\n\r\n		clave - Valor del campo clave digitado por el usuario\r\n\r\n		(start code)\r\n				if (tiene_numeros(clave)) seguridad += 10;\r\n				if (tiene_minusculas (clave)) seguridad += 20;\r\n				if (tiene_mayusculas(clave)) seguridad += 20;\r\n				if (tiene_simbolos(clave)) seguridad += 20;\r\n				if (tiene_minusculas(clave) && tiene_mayusculas(clave)) seguridad += 30;\r\n				if (tiene_simbolos(clave) && (tiene_mayusculas(clave) || tiene_minusculas (clave))) seguridad += 10;\r\n				if (clave.length <= 7) seguridad -= 40;\r\n				if (clave.length >= 8) seguridad += 10;\r\n		(end)\r\n\r\n	Salida:\r\n		Valor de la variable entera llamada seguridad.\r\n		\r\n			Ver tambien:\r\n				<muestra_seguridad_clave> | <PCO_CambiarContrasena>\r\n*/\r\n	function seguridad_clave(clave){\r\n		var seguridad = 0;\r\n		if (clave.length!=0)\r\n			{\r\n				if (tiene_numeros(clave)) seguridad += 10;\r\n				if (tiene_minusculas (clave)) seguridad += 20;\r\n				if (tiene_mayusculas(clave)) seguridad += 20;\r\n				if (tiene_simbolos(clave)) seguridad += 20;\r\n				if (tiene_minusculas(clave) && tiene_mayusculas(clave)) seguridad += 30;\r\n				if (tiene_simbolos(clave) && (tiene_mayusculas(clave) || tiene_minusculas (clave))) seguridad += 10;\r\n				if (clave.length <= 7) seguridad -= 40;\r\n				if (clave.length >= 8) seguridad += 10;\r\n			}\r\n		if (seguridad>100) seguridad=100;\r\n		if (seguridad<0) seguridad=0;\r\n		return seguridad;\r\n	}\r\n\r\n/* ################################################################## */\r\n/* ################################################################## */\r\n/*\r\n	Function: muestra_seguridad_clave\r\n	Visualiza el valor asociado al nivel de seguridad de la clave sobre el formulario de diligenciamiento\r\n\r\n	Variables de entrada:\r\n\r\n		clave - Valor del campo clave digitado por el usuario\r\n		formulario - Nombre del formulario sobre el que se actualiza el valor del campo seguridad.\r\n\r\n		(start code)\r\n			seguridad=seguridad_clave(clave);\r\n			formulario.seguridad.value=seguridad;\r\n		(end)\r\n\r\n	Salida:\r\n		Campo (visual del formulario) actualizado\r\n		\r\n	Ver tambien:\r\n		<seguridad_clave> | <PCO_CambiarContrasena>\r\n*/\r\n	function muestra_seguridad_clave(clave,formulario){\r\n		seguridad=seguridad_clave(clave);\r\n		formulario.seguridad.value=seguridad;\r\n	}\r\n',0,'nav-tabs','datos','responsive','col col-xs-12 col-sm-12 col-md-3 col-lg-3|col col-xs-12 col-sm-12 col-md-9 col-lg-9','panel-primary','','',0),(-5,'{$MULTILANG_ConfiguracionGeneral}: {$MULTILANG_OauthButt}','','','core_tabla_comodin',4,'function GuardarConfiguracionesProveedoresOAuth()\r\n    {\r\n        document.AutenticacionOauth.PCO_Accion.value=\"PCO_GuardarConfiguracionOAuth\";\r\n        PCOJS_ValidarCamposYProcesarFormulario(\"AutenticacionOauth\",0);\r\n        //document.AutenticacionOauth.submit();\r\n    }\r\n\r\nfunction FrmAutoRun()\r\n    {\r\n        //Aqui sus instrucciones\r\n    }\r\n',0,'nav-tabs','AutenticacionOauth','tradicional','','panel-primary','<?php\r\n    ##########################################################################\r\n    ##########################################################################\r\n    //VERIFICA SEGURIDAD: Perfil de Administrador requerido antes de continuar\r\n    global $PCOSESS_LoginUsuario,$MULTILANG_ErrorTitAuth,$MULTILANG_WSErr06;\r\n    if (!PCO_EsAdministrador(@$PCOSESS_LoginUsuario))\r\n        {\r\n            PCO_Mensaje(\"{$MULTILANG_ErrorTitAuth}\", \"{$MULTILANG_WSErr06}\", \'\', \'fa fa-exclamation-triangle fa-3x texto-rojo texto-blink\', \'alert alert-warning alert-dismissible\');\r\n            PCO_Auditar(\"$PCOSESS_LoginUsuario Intenta acceso no autorizado Frm:-5\",\"SECLog:event\");\r\n            die();\r\n        }\r\n    ##########################################################################\r\n    ##########################################################################\r\n\r\n	// Determina si la conexion actual de Practico esta encriptada\r\n	global $URI;\r\n	if(empty($_SERVER[\"HTTPS\"]))\r\n		$protocolo_webservice=\"http://\";\r\n	else\r\n		$protocolo_webservice=\"https://\";\r\n	// Construye la URI de retorno\r\n	$prefijo_webservice=$_SERVER[\'SERVER_NAME\'].$_SERVER[\'PHP_SELF\'];\r\n	// Construye la URI de redireccion base para concatenar el servicio especifico\r\n	$URI = $protocolo_webservice.$prefijo_webservice.\"?PCO_WSOn=1&PCO_WSId=PCO_AutenticacionOauth&OAuthSrv=\";\r\n	\r\n','',0),(-25,'TEST_PracticoFramework - MENU','BANCO DE PRUEBAS INTERNAS DEL FRAMEWORK','Este banco de pruebas es utilizado para el desarrollo del framework mismo y toma como base la tabla de auditorias existente en todas las instalaciones.   Se presentan diferentes objetos y controles diagramados por secciones relevantes indicando el detalle de lo que debería ser presentado para que verifique su estado FRENTE AL ESTADO o RESULTADO DESEADO descrito y si su comportamiento difiere, se deduce que algo va mal con el desarrollo y su garantía de compatibilidad con aplicaciones anteriores.','core_tabla_comodin',4,'function FrmAutoRun()\r\n    {\r\n\r\n    }',0,'nav-tabs','menu_banco_pruebas','responsive','col-xs-12 col-sm-12 col-md-3 col-lg-3','panel-danger','','',0),(-6,'{$MULTILANG_Administre}: {$MULTILANG_BTReporteBugs}','','','core_bugtracker',2,'function VerificarFormBugtracker()\r\n    {\r\n        document.datosbug.historial_gestion.value=document.datosbug.historial_gestion.value+\"<li><b>\"+document.datosbug.momento_actual.value+\"</b>: \"+document.datosbug.accion_realizada.value+\"</li>\";\r\n        document.datosbug.PCO_Accion.value=\"PCO_ActualizarDatosFormulario\";\r\n        PCOJS_ValidarCamposYProcesarFormulario(\"datosbug\",0);\r\n    }\r\n\r\nfunction FrmAutoRun()\r\n    {\r\n        document.datosbug.fecha_actualizacion.value=document.datosbug.momento_actual.value;\r\n    }\r\n',0,'nav-tabs','datosbug','tradicional','','panel-primary','','',0),(1,'Configuración Empresa','Configuración Empresa','Configuración Empresa','app_empresa',3,'function FrmAutoRun()\r\n    {\r\n        if($(\'#id\').val()) {\r\n            $(\'#btn_create\').hide();\r\n            /*$(\'#PCO_ErrorTitulo\').val(\'Actualizado correctamente\');\r\n            $(\'#PCO_ErrorDescripcion\').val(\'El cliente se ha actualizado correctamente\');*/\r\n        }\r\n        else {\r\n            $(\'#btn_update\').hide();\r\n        }\r\n    }',0,'nav-tabs','datos','tradicional','','panel-primary','','<?php\r\nglobal $PCO_PostAccionDirecta, $id, $accionForm;\r\n$PCO_PostAccionDirecta = 1;\r\n$PCO_PostAccion = 1;\r\n$accionForm = \"Guardada\";\r\nif($id)\r\n    $accionForm = \"Actualizada\";\r\nPCO_Mensaje(\"Aviso del sistema\",\"$accionForm la empresa correctamente!\", \'\', \'fa fa-thumbs-up fa-5x icon-green texto-blink\', \'alert alert-success alert-dismissible\');\r\nPCO_CargarFormulario(1);',0),(-33,'{$MULTILANG_EnlacePcoder}','','','core_tabla_comodin',1,'function disableF5(e) { if ((e.which || e.keyCode) == 116 || (e.which || e.keyCode) == 82) e.preventDefault(); }\n\n\nfunction PCODER_LlamarPCO_OpenAI_CODEX(PCODER_PrePromptAI,PCODER_PromptAI,PCODER_PosPromptAI)\n    {\n        //Codifica los elementos para su transporte\n        PCODER_PrePromptAI=encodeURIComponent(PCODER_PrePromptAI);\n        PCODER_PromptAI=encodeURIComponent(PCODER_PromptAI);\n        PCODER_PosPromptAI=encodeURIComponent(PCODER_PosPromptAI);\n        \n        PCO_MostrarMensajeCargandoSimple();\n        RespuestaWS_AI=PCO_ObtenerContenidoAjax(0,\"index.php\",\"PCO_Accion=PCO_EjecutarPostFormulario&Formulario=-33&Llave={$LlaveDePaso}&PCODER_Accion=PCO_OpenAI_CODEX&PCODER_RespuestaSoloContenido=0&PCODER_PromptAI=\"+PCODER_PromptAI+\"&PCODER_PrePromptAI=\"+PCODER_PrePromptAI+\"&PCODER_PosPromptAI=\"+PCODER_PosPromptAI+\"&Presentar_FullScreen=1&Precarga_EstilosBS=0\");\n        PCOJS_OcultarMensajeCargandoSimple();\n        \n        //La peticion se hace con PCODER_RespuestaSoloContenido=0 por lo que se analiza todo el JSON de respuesta\n        var ObjetoJSON = JSON.parse(RespuestaWS_AI);\n        \n        //Valida si obtuvo respuesta o si obtuvo error\n        TituloRespuesta=\"\";\n        if (ObjetoJSON.choices[0]!=undefined)\n            {\n                ContenidoRespuesta = ObjetoJSON.choices[0].message.content;\n            } \n        else \n            {\n                if (ObjetoJSON.error!=undefined)\n                    {\n                        ContenidoRespuesta = ObjetoJSON.error.message;\n                        TituloRespuesta = ObjetoJSON.error.type;\n                    }\n            }\n        \n        //Presenta resultado en el modal\n        ContenidoRespuesta=\"<pre style=\'background-color: #272822; color: #F8F8F2; padding: 10px; font-family: \'Courier New\', monospace; font-size: 14px; border-radius: 5px; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word; overflow-y: scroll; max-height: 400px;\'>\"+ContenidoRespuesta+\"</pre>\";\n        PCOJS_MostrarMensaje(\"A.I. Respuesta (\" + TituloRespuesta + \")\",ContenidoRespuesta,\" modal modal-wide \");\n    }\n\n\nfunction PCODER_BuscarPosiblesBugsSeguridad()\n    {\n        var SeleccionCodigo=editor.getSelectedText();\n        SeleccionCodigo=SeleccionCodigo.trim();\n        if (SeleccionCodigo==\"\")\n            {\n		        PCOJS_MostrarMensaje(\"A.I. Error\", \"{P}Coder requiere que seleccione el &aacute;rea de c&oacute;digo que desea analizar.\",\" modal\");\n            }\n        else\n            {\n                PCODER_PrePromptAI=\"Utilizando como base el lenguaje de programación \"+$(\"#modo_archivo_top option:selected\").text()+\", Analiza el siguiente codigo en busca de posibles errores de seguridad o de inyección de SQL: \";\n                PCODER_PromptAI=SeleccionCodigo;\n                PCODER_PosPromptAI=\"\";\n                \n                PCODER_LlamarPCO_OpenAI_CODEX(PCODER_PrePromptAI,PCODER_PromptAI,PCODER_PosPromptAI);\n            }\n    }\n\n\nfunction PCODER_DocumentarCodigo()\n    {\n        var SeleccionCodigo=editor.getSelectedText();\n        SeleccionCodigo=SeleccionCodigo.trim();\n        if (SeleccionCodigo==\"\")\n            {\n		        PCOJS_MostrarMensaje(\"A.I. Error\", \"{P}Coder requiere que seleccione el &aacute;rea de c&oacute;digo que desea analizar.\",\" modal\");\n            }\n        else\n            {\n                PCODER_PrePromptAI=\"Utilizando como base el lenguaje de programación \"+$(\"#modo_archivo_top option:selected\").text()+\", Analiza el siguiente codigo y utilizando el mismo lenguaje de programacion genera su documentación detallada: \";\n                PCODER_PromptAI=SeleccionCodigo;\n                PCODER_PosPromptAI=\"\";\n                \n                PCODER_LlamarPCO_OpenAI_CODEX(PCODER_PrePromptAI,PCODER_PromptAI,PCODER_PosPromptAI);\n            }\n    }\n\n\nfunction PCODER_BuscarOptimizacionesCodigo()\n    {\n        var SeleccionCodigo=editor.getSelectedText();\n        SeleccionCodigo=SeleccionCodigo.trim();\n        if (SeleccionCodigo==\"\")\n            {\n		        PCOJS_MostrarMensaje(\"A.I. Error\", \"{P}Coder requiere que seleccione el &aacute;rea de c&oacute;digo que desea analizar.\",\" modal\");\n            }\n        else\n            {\n                PCODER_PrePromptAI=\"Utilizando como base el lenguaje de programación \"+$(\"#modo_archivo_top option:selected\").text()+\", Ofrece alguna optimización o mejora al siguiente código: \";\n                PCODER_PromptAI=SeleccionCodigo;\n                PCODER_PosPromptAI=\"\";\n                \n                PCODER_LlamarPCO_OpenAI_CODEX(PCODER_PrePromptAI,PCODER_PromptAI,PCODER_PosPromptAI);\n            }\n    }\n\nfunction PCODER_BuscarFugadeRecursosyErroresLogicos()\n    {\n        var SeleccionCodigo=editor.getSelectedText();\n        SeleccionCodigo=SeleccionCodigo.trim();\n        if (SeleccionCodigo==\"\")\n            {\n		        PCOJS_MostrarMensaje(\"A.I. Error\", \"{P}Coder requiere que seleccione el &aacute;rea de c&oacute;digo que desea analizar.\",\" modal\");\n            }\n        else\n            {\n                PCODER_PrePromptAI=\"Utilizando como base el lenguaje de programación \"+$(\"#modo_archivo_top option:selected\").text()+\", Ofrece alguna optimización o mejora al siguiente código: \";\n                PCODER_PromptAI=SeleccionCodigo;\n                PCODER_PosPromptAI=\"\";\n                \n                PCODER_LlamarPCO_OpenAI_CODEX(PCODER_PrePromptAI,PCODER_PromptAI,PCODER_PosPromptAI);\n            }\n    }\n\n\nfunction PCODER_ComodinIA()\n    {\n        var PCODER_PromptAI = prompt(\"Ingrese un prompt:\");\n        if (PCODER_PromptAI!=\"\")\n            PCODER_LlamarPCO_OpenAI_CODEX(\"\",PCODER_PromptAI,\"\");\n    }\n\n\n\nfunction CambiarModo_Bienvenida()\n    {\n        const ModosPermitidos = [\"Eiffel\", \"AsciiDoc\", \"Cirru\", \"Clojure\", \"Dockerfile\", \"Elixir\", \"Elm\", \"Erlang\", \"Io\", \"Jack\", \"Markdown\", \"Mask\", \"pgSQL\", \"Properties\", \"Space\", \"Tcl\", \"Vala\", \"Text\"];\n        const Indice = Math.floor(Math.random() * ModosPermitidos.length);\n	    if ($(\"#PCODER_archivo\").val() == \"inc/practico/PCoder\")\n	        {\n	            CambiarModoEditor(\"ace/mode/\"+ModosPermitidos[Indice]);\n	        }\n    }\n\nfunction PCODER_CerrarArchivoActual()\n    {\n        //TODO: revisar si con almacenamiento local se puede validar si hay cambios sin guardar para advertir\n        \n        //Elimina bloqueos de versiones abiertas del archivo SOLO si son abiertas por el mismo usuario\n        ResultadoOperacion=PCO_ObtenerContenidoAjax(0,\"index.php\",\"PCO_Accion=PCO_EjecutarPostFormulario&Formulario=-33&Llave={$LlaveDePaso}&PCODER_Accion=PCODER_EliminarBloqueo&ArchivoBloqueo={$PCODER_archivo}\");\n\n        //Elimina variable local que indica que la ventana esta abierta\n        localStorage.removeItem(\"{$LlaveVentana_Archivo}\");\n        \n        //Cierra la ventana de manera definitiva\n        window.close();\n        //Para los casos en que la ventana no puede ser cerrada, presenta mensaje que no se puede cerrar automaticamente y quita el editor.\n		PCOJS_MostrarMensaje(\"Sesion\", \"{P}Coder ha sido cerrado. Puede cerrar su navegador o pestaña.<br><br><br>{P}Coder was closed. You can close this browser or tab.\",\" modal modal-wide \");\n        $(\"#page-wrapper\").hide();\n    }\n\n\n//para posible eliminacion, mirar solo el evento de apertura.\nfunction ExplorarPath(DesdeOnChange)\n	{\n		//Inicializa el explorador de archivos (panel izquierdo)\n		$(document).ready( function() {\n			$(\'#marco_explorador\').fileTree({ root: path_exploracion_archivos.value, script: \'../../inc/jquery/plugins/jquery.fileTree-1.01/connectors/jqueryFileTree.php\', folderEvent: \'dblclick\' }, function(archivo_seleccionado) {\n				PCODER_CargarArchivo(archivo_seleccionado);\n\n				//Simula clic sobre la pestana de archivos para pasar automaticamente a esta vista\n				$(\'#pestana_editor_archivos\').trigger(\'click\');\n			});\n		});\n		\n		//Inicializa el explorador de archivos (creacion de archivos y carpetas)\n		$(document).ready( function() {\n			$(\'#marco_explorador_creacionarchivo\').fileTree({ root: path_exploracion_archivos.value, script: \'../../inc/jquery/plugins/jquery.fileTree-1.01/connectors/jqueryFileTree.php?nofiles=true\' }, function(path_seleccionado_creacion) {\n			});\n		});\n	}\n\nfunction PCODER_EliminarHistorialArchivo()\n    {\n        ResultadoOperacion=PCO_ObtenerContenidoAjax(0,\"index.php\",\"PCO_Accion=PCO_EjecutarPostFormulario&Formulario=-33&Llave={$LlaveDePaso}&PCODER_Accion=PCODER_EliminarHistorial&Llave_Registro=\"+document.FRMBASEINFORME.PCO_Valor.value);\n		$(\'#PCO_Modal_Mensaje\').modal(\'hide\');\n    }\n\nfunction PCODER_CompararVersionArchivo()\n    {\n        var ParametrosVentana = [\n            \'height=\'+screen.height,\n            \'width=\'+screen.width,\n            \'location=no\',\n            \'menubar=no\',\n            \'resizable=yes\',\n            \'scrollbars=no\',\n            \'status=no\',\n            \'titlebar=no\',\n            \'toolbar=no\',\n            \'fullscreen=yes\' // only works in IE, but here for completeness\n        ].join(\',\');\n\n        URL=\"index.php?PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:-35:0&Presentar_FullScreen=1&Precarga_EstilosBS=1\";\n\n        //Version historica siempre sale desde el registro de PCoder\n        URL+=\"&PDIFF_Version1=\";\n        URL+=\"&PDIFF_OrigenVersion1=B\";  //A | B\n        URL+=\"&PDIFF_TablaBDVersion1=core_pcoder_historial\";\n        URL+=\"&PDIFF_CampoBDVersion1=contenido\";\n        URL+=\"&PDIFF_LlaveBDVersion1=\"+document.FRMBASEINFORME.PCO_Valor.value;\n\n        //Version nueva puede estar saliendo desde archivo nuevo o BD segun origen del archivo editado.  Segun el caso define el origen para el Diff\n        if ($(\"#Origen_Archivo\").val()==\"A\")\n            {\n                URL+=\"&PDIFF_OrigenVersion2=A\";  //A | B\n                URL+=\"&PDIFF_Version2=\"+$(\"#PCODER_archivo\").val();\n            }\n        else\n            {\n                URL+=\"&PDIFF_OrigenVersion2=B\";  //A | B\n                URL+=\"&PDIFF_TablaBDVersion2=\"+$(\"#Tabla_Archivo\").val();\n                URL+=\"&PDIFF_CampoBDVersion2=\"+$(\"#Campo_Archivo\").val();\n                URL+=\"&PDIFF_LlaveBDVersion2=\"+$(\"#Llave_Registro\").val();                \n            }\n\n        var VentanaHistorial = window.open(URL, VentanaHistorial, ParametrosVentana).focus();\n        VentanaHistorial.moveTo(0,0);\n    }\n\nfunction PCODER_HistorialArchivoActual()\n    {\n        if(\"{$PCODER_archivo}\"!=\"inc/practico/PCoder\")\n            {\n        		ResultadoOperacion=PCO_ObtenerContenidoAjax(0,\"index.php\",\"PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:-23:0&PCODER_archivo=\"+$(\"#PCODER_archivo\").val()+\"&NombreArchivo={$PCODER_NombreArchivo}&Presentar_FullScreen=1&Precarga_EstilosBS=0\");\n        		PCOJS_MostrarMensaje(\"{$MULTILANG_PCODER_HistorialVersiones}\", ResultadoOperacion,\" modal modal-wide \");                \n                //$(\"#PCODIV_SeccionLateralFlotante\").html(ResultadoOperacion);\n                \n            }\n        // else\n        //     {\n        // 		PCOJS_MostrarMensaje(MULTILANG_PCODER_HistorialVersiones, \"Cargue primero un archivo para revisar su historial de cambios<br><br>Please load a file to see the version history\");\n        //     }\n    }\n\n\nfunction AjustarTipoMenu()\n    {\n		if ($(\'#PCODER_TipoMenu\').val()==\"Texto\")\n		    {\n		        $(\'.menu_iconos\').hide();\n		    }\n		else\n		    {\n		        $(\'.menu_textual\').hide();\n		        $(\'.menu_iconos\').css(\"padding\",\"0\");\n		    }\n    }\n\nfunction AjustarMaquetacion_FormularioEditor()\n    {\n        //Estilos para ajustar la maquetacion y economizar espacio\n        $(\'#PCOContenedor_marco_cadena_editores_ace\').css(\'padding\',\'0\');\n        $(\'#page-wrapper\').css(\'padding\',\'0\');\n        $(\"[class=container-fluid]\").each(function() { $(this).css(\"padding\", \"0\"); });\n        $(\"[class=col-lg-12]\").each(function() { $(this).find(\'br:first\').remove(); });\n        $(\".menu_textual\").each(function() { $(this).css(\"padding-left\", \"0\"); });\n        //$(\".iconos_fijos_menu\").each(function() { $(this).css(\"padding\", \"0\"); });\n        $(\"#MENU_FORMULARIO_OPCION_1\").each(function() { $(this).find(\'ul:first\').css(\"padding\",\"0\"); });\n\n\n\n\n        //TODO: Elimina la barra de navegacion responsive y deja el menu para que se comporte como un DIV mas...\n        // $(\"MENU_FORMULARIO_-33\").removeClass(\"collapse navbar navbar-collapse navbar-default navbar-inverse\");\n        // $(\".navbar-header\").remove();\n        // $(\"nav\").removeClass(\"navbar-default\");\n        // $(\"nav\").each(function() { $(this).css(\"min-height\", \"0\"); });\n        //$(\"nav\").removeClass(\"navbar\");\n        // $(\".navbar-collapse\").css(\"overflow\", \"visible\");\n        // $(\".navbar-collapse.collapse\").css(\"overflow\", \"visible\"); \n        // $(\".navbar-toggle\").css(\"display\", \"none\"); \n\n        //Ajusta barras de desplazamiento\n        $(\'body\').css(\'overflow-x\',\'hidden\');\n        $(\'body\').css(\'overflow-y\',\'hidden\');\n        $(\'html\').css(\'overflow-x\',\'hidden\');\n        $(\'html\').css(\'overflow-y\',\'hidden\');\n\n        //Estilos generales inyectados directamente al HEAD usados en el estandar anterior de PCoder\n		$(\'head\').append(\'<style type=\"text/css\"> \\\n            /*Personalizacion de barras de desplazamiento*/ \\\n	        /*Barra de desplazamiento como tal*/ \\\n	        ::-webkit-scrollbar { \\\n		        width: 10px; \\\n		        height: 10px; \\\n	        } \\\n        	/*Botones de los extremos de la barra*/ \\\n        	::-webkit-scrollbar-button:start:decrement, \\\n        	::-webkit-scrollbar-button:end:increment  { \\\n        		display: none; \\\n        	} \\\n        	/*Barra sobre la que se mueve el boton flotante*/ \\\n        	::-webkit-scrollbar-track  { \\\n        	} \\\n        	/*Espacio libre de la barra de desplazamiento*/ \\\n        	::-webkit-scrollbar-track-piece  { \\\n        		background-color: #3b3b3b; \\\n        		-webkit-border-radius: 6px; \\\n        	} \\\n        	/*Boton flotante de la barra de desplazamiento*/ \\\n        	::-webkit-scrollbar-thumb:vertical { \\\n        		-webkit-border-radius: 6px; \\\n        		background: #666 no-repeat center; \\\n        	} \\\n        	::-webkit-scrollbar-thumb:horizontal { \\\n        		-webkit-border-radius: 6px; \\\n        		background: #666 no-repeat center; \\\n        	} \\\n        	/*Esquina donde se encuentran las barras*/ \\\n        	::-webkit-scrollbar-corner { \\\n        		display: none; \\\n        	} \\\n        	/*Esquina donde se encuentran las barras - cuando es redimensionable*/ \\\n        	::-webkit-resizer { \\\n        		display: none; \\\n        	} \\\n	        </style>\');\n    }\n\nfunction AjustarPaletaEditor()\n    {\n        //Ajusta colores, tamaños y presentacion de algunos elementos\n        //$(\".navbar-collapse\").css(\"background\",\"272727\");                       //Fondo barra de menus:  gray | 272727 | 222222 | 3d3d3d\n        $(\"#MENU_FORMULARIO_-33\").addClass(\"navbar-default navbar-inverse\");        //Estilo barra de menues\n        $(\"#MENU_FORMULARIO_-33\").css(\"color\",\"lightgray\");                         //Color de fuente menus\n        $(\".navbar-default\").css(\"border-width\",\"0\");                               //Elimina borde en barra de menus\n        $(\".dropdown-menu\").css(\"background\",\"darkgray\");                           //Fondo de los menues desplegables - opciones\n        $(\"[class=container-fluid]\").each(function() { $(this).find(\'div:first\').css(\'background\',\'#272727\'); });   //Fondo general del editor antes usada en body o html: 002a36 | BFBFBF | 888888 | 272727 | 000000\n        $( \"#wrapper\" ).css( \"background-color\",\"#272727\" );                        //Color del fondo de la barra izquierda\n\n        //Estilos para nombre del archivo o recurso editado\n        //$(\".path_visual\").each(function() { $(this).css(\"padding\", \"1\"); });\n        $(\".path_visual\").css(\"background\",\"#272727\");\n        $(\".path_visual\").addClass(\"btn-xs\");\n        $(\".path_visual\").each(function() { $(this).css(\"font-weight\", \"bold\"); });\n        $(\".path_visual\").each(function() { $(this).css(\"font-size\", \"9px\"); });\n        $(\".path_visual\").each(function() { $(this).css(\"color\", \"orange\"); });\n        \n        //Si detecta que se tiene activado el filtro de colores inverso (modo noche) deja el editor en su formato oscuro original revirtiendo el filtro\n        if (\"{$PCO_TransformacionColores}\"==\"inverso\")\n            {\n                $(\"html\").css(\"filter\",\"invert(0%)\");\n                $(\"video\").css(\"filter\",\"invert(0%)\");\n                $(\"iframe\").css(\"filter\",\"invert(0%)\");\n                $(\".modal-backdrop\").css(\"filter\",\"invert(0%)\");\n            }\n        if (\"{$PCO_TransformacionColores}\"==\"grises\")\n            {\n                $(\"html\").css(\"filter\",\"grayscale(0%)\");\n            }\n        if (\"{$PCO_TransformacionColores}\"==\"sepia\")\n            {\n                $(\"html\").css(\"filter\",\"sepia(0%)\");\n            }\n    }\n    \n\nfunction IntercambiarVisibilidadNumerosDeLinea()\n	{\n		//InterCambia el modo del editor para mostrar (true) u ocultar (false) los numeros de linea\n		if (editor.renderer.getShowGutter()==true)\n			{\n				editor.renderer.setShowGutter(false);\n				EditorClonado.renderer.setShowGutter(false);\n			}\n		else\n			{\n				editor.renderer.setShowGutter(true);\n				EditorClonado.renderer.setShowGutter(true);\n			}\n	}\n\nfunction IntercambiarVisibilidadMenu()\n	{\n		if ($(\"#PCODER_OcultarMenu\").val()==\"0\")\n			{\n				$(\".navbar-default\").hide();\n				//$(\"#panel_inferior\").hide();\n			    $(\"#PCODER_OcultarMenu\").val(\"1\");\n			}\n		else\n			{\n				$(\".navbar-default\").show();\n				//$(\"#panel_inferior\").show();\n				$(\"#PCODER_OcultarMenu\").val(\"0\");\n			}\n		ActualizarBarraEstado();\n		PCODER_RecalcularMaquetacion();\n	}\n\n\nfunction SaltarALinea()\n	{\n		//Salta a una linea especifica del editor\n		var linea = document.getElementById(\"linea_salto\").value;\n		//Valida que se tenga un valor de linea y que este en un rango valido\n		if (linea!=\"\" && linea>0)\n			{\n				editor.gotoLine(linea, 0, true);\n				document.getElementById(\"linea_salto\").value=\"\";			\n			}\n	}\n\n//Toma las propiedades del editor principal y las copia en el editor clonado\nfunction ClonarPropiedadesEditor()\n	{\n		EditorClonado.setAnimatedScroll(editor.getAnimatedScroll());\n		EditorClonado.setBehavioursEnabled(editor.getBehavioursEnabled());\n		EditorClonado.setOverwrite(editor.getOverwrite());\n		EditorClonado.setPrintMarginColumn(editor.getPrintMarginColumn());\n		EditorClonado.setScrollSpeed(editor.getScrollSpeed());\n		EditorClonado.setShowInvisibles(editor.getShowInvisibles());\n		EditorClonado.setShowPrintMargin(editor.getShowPrintMargin());\n		EditorClonado.setWrapBehavioursEnabled(editor.getWrapBehavioursEnabled());\n		EditorClonado.setTheme(editor.getTheme());\n		EditorClonado.setFontSize(editor.getFontSize());\n		EditorClonado.renderer.setShowGutter(editor.renderer.getShowGutter());\n		\n		//Modo de resaltado\n		ModoClonado=\"ace/mode/{$PCODER_ModoEditor}\";\n		var ModoFiltrado = ModoClonado.replace(/_/g, \" \");\n		ModoFiltrado = ModoFiltrado.toLowerCase();\n		//Cambia el modo de sintaxis y errores resaltado por el editor\n		EditorClonado.getSession().setMode(ModoFiltrado);\n	}\n\nfunction IntercambiarEstadoCaracteresInvisibles()\n	{\n		//InterCambia el modo del editor para mostrar (true) u ocultar (false) los caracteres invisibles segun su estado actual\n		if (editor.getShowInvisibles()==true)\n			{\n				editor.setShowInvisibles(false);\n				EditorClonado.setShowInvisibles(false);\n			}\n		else\n			{\n				editor.setShowInvisibles(true);\n				EditorClonado.setShowInvisibles(true);\n			}\n	}\n\nfunction IntercambiarPantallaCompleta()\n	{\n		if (!document.fullscreenElement &&    // alternative standard method\n		  !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement ) {  // current working methods\n			if (document.documentElement.requestFullscreen) {\n			  document.documentElement.requestFullscreen();\n			} else if (document.documentElement.msRequestFullscreen) {\n			  document.documentElement.msRequestFullscreen();\n			} else if (document.documentElement.mozRequestFullScreen) {\n			  document.documentElement.mozRequestFullScreen();\n			} else if (document.documentElement.webkitRequestFullscreen) {\n			  document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);\n			}\n		} else {\n			if (document.exitFullscreen) {\n			  document.exitFullscreen();\n			} else if (document.msExitFullscreen) {\n			  document.msExitFullscreen();\n			} else if (document.mozCancelFullScreen) {\n			  document.mozCancelFullScreen();\n			} else if (document.webkitExitFullscreen) {\n			  document.webkitExitFullscreen();\n			}\n		}\n	}\n\nfunction CambiarFuenteEditor(tamano)\n	{\n		//Cambia la fuente del editor al tamano recibido\n		editor.setFontSize(tamano);\n		try\n			{\n				EditorClonado.setFontSize(tamano);\n			}\n		catch(error) {}\n	}\n\nfunction CambiarTemaEditor(tema)\n	{\n		//Cambia la apariencia grafica del editor\n		editor.setTheme(tema);\n		try\n			{\n				EditorClonado.setTheme(tema);\n			}\n		catch(error) {}\n	}\n\nfunction CaracteresInvisiblesEditor(estado)\n	{\n		//Cambia el modo del editor para mostrar (true) u ocultar (false) los caracteres invisibles\n		if (estado==0)\n			editor.setShowInvisibles(false);\n		else\n			editor.setShowInvisibles(true);\n	}\n\nfunction AumentarTamanoFuente()\n	{\n		tamano=editor.getFontSize();\n		tamano = tamano.substring(0, tamano.length-2); //Elimina las letras de px al final\n		tamano=parseInt(tamano)+2;\n		CambiarFuenteEditor(tamano+\"px\");\n	}\n\n\nfunction DisminuirTamanoFuente()\n	{\n		tamano=editor.getFontSize();\n		tamano = tamano.substring(0, tamano.length-2); //Elimina las letras de px al final\n		tamano=parseInt(tamano)-2;\n		CambiarFuenteEditor(tamano+\"px\");\n	}\n\nfunction PCODER_DeshacerEdicion()\n	{\n        //editor.undo(true);\n        editor.getSession().getUndoManager().undo(false); //Si true deshabilita seleccion del texto\n    }\n\n\nfunction PCODER_RehacerEdicion()\n	{\n        //editor.redo(true);\n        editor.getSession().getUndoManager().redo(false); //Si true deshabilita seleccion del texto\n    }\n\n//Genera una nueva sesion del editor ACE\nfunction ClonarSesionEditor(session)\n	{\n		var s = new ace.EditSession(session.getDocument(), session.getMode());\n		s.$foldData = session.$cloneFoldData();\n		return s;\n	}\n\nfunction PCO_MostrarMensajeCargandoSimple(MiliSegundos)\n	{\n		// Se muestra el cuadro modal\n		$(\'#PCO_Modal_MensajeCargandoSimple\').modal(\'show\');\n\n		//Hacer que la ventana este siempre por encima\n		$(\"#PCO_Modal_MensajeCargandoSimple\").css(\"z-index\", \"1500\");\n		\n		//Si recibe un valor de segundos diferente de cero entonces programa el cierre automatico\n		if (MiliSegundos!=0)\n			setTimeout(function(){PCOJS_OcultarMensajeCargandoSimple()},MiliSegundos);\n	}\n\nfunction Guardar()\n	{\n	    document.form_archivo_editado.PCO_Accion.value=\"PCO_EjecutarPostFormulario\";\n	    $(\"#form_archivo_editado\").attr(\"target\", \"frame_almacenamiento\");\n	    $(\"#form_archivo_editado\").attr(\"action\", \"index.php\");\n	    \n		var MensajeErrorAlmacenamiento=\"\";\n		//Si se trata del archivo demo\n		if ($(\"#PCODER_archivo\").val() == \"\")\n			MensajeErrorAlmacenamiento=\"{$MULTILANG_PCODER_ErrGuardarDefecto}\";\n		//Verifica permisos\n		if ($(\"#PermisosRW\").val()!=\"1\")\n			MensajeErrorAlmacenamiento=\"{$MULTILANG_PCODER_ErrGuardarNoPermiso}\";\n			\n		//Verifica que no este abierto como de solo lectura\n		if ($(\"#PCODER_SoloLectura\").val()==\"1\")\n			MensajeErrorAlmacenamiento=\"Contenido abierto como de solo lectura\";\n			\n		//Ejecuta el proceso de almacenamiento\n		if (MensajeErrorAlmacenamiento == \"\")\n			{\n			    //Evita guardar el archivo de bienvenida de PCoder\n			    if ($(\"#PCODER_archivo\").val() != \"inc/practico/PCoder\")\n			        {\n                        //Actualiza el textareacon el valor del textarea a enviar con el valor del textarea en el indice\n                        // 			document.getElementById(\"PCODER_AreaTexto\"+IndiceArchivoActual).value=editor.getSession().getValue();\n                        \n                        // 		//Actualiza el Textarea y formulario base del editor\n                        // 		document.form_archivo_editado.PCODER_archivo.value=ListaArchivos[IndiceRecibido].RutaDocumento;\n                        // 		document.form_archivo_editado.PCODER_TokenEdicion.value=ListaArchivos[IndiceRecibido].TokenEdicion;\n                        // 		document.form_archivo_editado.PCODER_AreaTexto.value=document.getElementById(\"PCODER_AreaTexto\"+IndiceRecibido).value;\n        			\n        				//Metodo estandar, envia todo sobre el iframe para evitar recargar la pagina\n        				PCO_MostrarMensajeCargandoSimple(1000);\n        				document.form_archivo_editado.submit();\n			        }\n			}\n		else\n			{\n				PCOJS_MostrarMensaje(\"{$MULTILANG_PCODER_Guardando}: {$MULTILANG_PCODER_Error}\",MensajeErrorAlmacenamiento);			\n			}\n	}\n\nfunction InicializarEditorACE()\n    {\n        //Incluye extension de lenguaje para ACE\n        ace.require(\"ace/ext/language_tools\");\n        // Crea el editor\n        editor = ace.edit(\"editor_codigo\");\n        //editor = ace.edit(\"marco_cadena_editores_ace\");\n        editor.getSession().setUseWorker(true); //Llevar a false para evitar el error 404 para \"worker-php.js Failed to load resource: the server responded with a status of 404 (Not Found)\"\n        editor.resize(true);\n        editor.getSession().setNewLineMode(\"unix\");\n\n        //ace.$blockScrolling = Infinity;\n        //ace.$blockScrolling = 1;\n        //editor.blockScrolling = Infinity;\n\n        // Inicia el editor de codigo con las opciones predeterminadas\n        CambiarFuenteEditor(\"13px\");\n        CambiarTemaEditor(\"ace/theme/ambiance\");  //tomorrow_night|twilight|eclipse|ambiance|ETC\n\n        //Activa la autocompletacion de codigo y los snippets\n        editor.setOptions({\n        	enableBasicAutocompletion: true,\n        	enableSnippets: true,\n        	enableLiveAutocompletion: true\n        });\n        \n        editor.setAnimatedScroll(true);\n        \n        //Elimina la visualizacion de margen de impresion\n        editor.setShowPrintMargin(0);\n        CaracteresInvisiblesEditor(0);\n\n        //En cada evento de cambio actualiza el textarea\n        editor.getSession().on(\'change\', function(){\n          document.getElementById(\"PCODER_AreaTexto\").value=editor.getSession().getValue();\n          //TODO:PCODER_ActualizarMinimap();\n        });\n        \n        // CAPTURA DE EVENTOS DE TECLADO DESDE LA VENTANA  #############################################################\n        //Captura el evento de Ctrl+S para guardar el archivo\n        $(window).bind(\'keydown\', function(event) {\n        	//alert(String.fromCharCode(event.which).toLowerCase());\n        	if (event.ctrlKey || event.metaKey) {\n        		switch (String.fromCharCode(event.which).toLowerCase()) {\n        		case \'s\':  //<-- Cambiar para otras letras ;)\n        			event.preventDefault();\n        			Guardar();\n        			break;\n        		case \'b\':\n        			event.preventDefault();\n        			IntercambiarVisibilidadMenu();\n        			break;\n        		case \'o\':\n        			event.preventDefault();\n        			//TODO:PCODER_ActivarPanelIzquierdo();\n        			break;\n        		case \'q\':\n        			event.preventDefault();\n        			PCODER_CerrarArchivoActual();\n        			break;\n        		case \'w\':\n        			event.preventDefault();\n        			PCODER_CerrarArchivoActual();\n        			break;\n        		case \'z\':	//Captura evento y no retorna nada para anular comando\n        			event.preventDefault();\n        			break;\n        		case \'y\':	//Captura evento y no retorna nada para anular comando\n        			event.preventDefault();\n        			break;\n        		}\n        	}\n        });\n\n        // CAPTURA DE EVENTOS DE RATON DESDE EL EDITOR  #############################################################\n        editor.on(\"click\", function(ev){\n            //TODO:PCODER_ActualizarMinimap();\n            });\n        \n        // CAPTURA DE EVENTOS DE TECLADO DESDE EL EDITOR  #############################################################\n        editor.commands.addCommand({\n        		name: \'vermarcoderecho\',\n        		bindKey: {win: \'Ctrl-M\', mac: \'Command-Option-M\'},\n        		exec: function(editor) {\n        			//TODO:PCODER_ActivarPanelDerecho();\n        			},\n        		readOnly: true\n        	});\n        \n        //DEPRECATED: Captura de eventos para manejador propio de hacer-deshacer\n        // editor.commands.addCommand({\n        // 		name: \'deshacer\',\n        // 		bindKey: {win: \'Ctrl-Z\', mac: \'Command-Option-Z\'},\n        // 		exec: function(editor) {\n        // 			PCODER_DeshacerEdicion();\n        // 			},\n        // 		readOnly: true\n        // 	});\n        // editor.commands.addCommand({\n        // 		name: \'rehacer\',\n        // 		bindKey: {win: \'Ctrl-Y\', mac: \'Command-Option-Y\'},\n        // 		exec: function(editor) {\n        // 			PCODER_RehacerEdicion();\n        // 			},\n        // 		readOnly: true\n        // 	});\n        \n        editor.commands.addCommand({\n        		name: \'aumentarfuenteeditor\',\n        		bindKey: {win: \'Ctrl-+\', mac: \'Command-Option-+\'},\n        		exec: function(editor) {\n        			AumentarTamanoFuente();\n        			},\n        		readOnly: true\n        	});\n        editor.commands.addCommand({\n        		name: \'disminuirfuenteeditor\',\n        		bindKey: {win: \'Ctrl--\', mac: \'Command-Option--\'},\n        		exec: function(editor) {\n        			DisminuirTamanoFuente();\n        			},\n        		readOnly: true\n        	});\n\n    }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction QuitarAvisoAlmacenamiento()\n	{\n		//Deja el mensaje de almacenamiento al menos un segundo (para archivos pequenos almacenados rapido), luego lo oculta\n		setTimeout(PCO_OcultarMensajeCargandoSimple, 500);\n		\n		//TODO: Devolver el foco al editor\n		//editor.focus();											//Establece el foco al editor\n		//$(\'#editor_codigo\').trigger(\'click\');\n	}\n\nfunction PCO_OcultarMensajeCargandoSimple()\n	{\n		// Se oculta el cuadro modal\n		$(\'#PCO_Modal_MensajeCargandoSimple\').modal(\'hide\');\n		$(\'#PCO_Modal_MensajeCargandoSimple\').hide();\n	}	\n\n\nvar EditorClonado;  //Declara como global la variable del segundo editor para ser manipulada sin problema\nVistaSplit=\"\";  //Asume que inicia con un solo editor\nvar ContenidoBarraEstado=\"\";\nfunction FrmAutoRun()\n    {\n        //Almacena una variable local para saber que el archivo se encuentra abierto\n	    //if ($(\"#PCODER_archivo\").val() != \"inc/practico/PCoder\")\n            localStorage.setItem(\"{$LlaveVentana_Archivo}\", \"{$LlaveVentana_Ruta}\");\n        \n        //Define evento para que al cierre de la ventana se elimine la variable local\n            //Eventos DEPRECATED: Ya no operan sobre Chrome por seguridad.\n            // window.addEventListener(\"beforeunload\", function (event) { PCODER_CerrarArchivoActual(); });\n            // window.onbeforeunload = function(){PCODER_CerrarArchivoActual();};\n            // $(window).on(\'beforeunload\', function() { PCODER_CerrarArchivoActual(); });\n            \n            // $( window ).unload(function() { PCODER_CerrarArchivoActual(); });\n            // window.onunload = function(){PCODER_CerrarArchivoActual();};\n            // $(window).on(\'unload\', function() { PCODER_CerrarArchivoActual(); });\n//        $(window).on(\'beforeunload\', function() { return \'Esta a punto de cerar PCoder. Recuerde cerrarlo apropiadamente...\'; });\n//        window.onbeforeunload = function() { return \"Esta a punto de cerar PCoder. Recuerde cerrarlo apropiadamente...\"; }\n\n\n        ContenidoBarraEstado=$(\"#panel_inferior\").html();\n\n        $(function(){\n            InicializarEditorACE();\n\n            ActualizarBarraEstado();\n            AjustarTipoMenu();\n            AjustarMaquetacion_FormularioEditor();\n            AjustarPaletaEditor();\n\n            //Carga el contenido inicial del editor\n            PCODER_CargarContenidoInicial();\n\n            //Genera el administrador de deshacer y rehacer por defecto una vez cargado el contenido.  A partir de alli considera los eventos de cambio para deshacer o rehacer\n            editor.getSession().setUndoManager(new ace.UndoManager());\n            \n			CambiarModoEditor(\"ace/mode/{$PCODER_ModoEditor}\"); //Hace cambio forzado de tipo de editor cuando se abre un nuevo archivo\n\n            //Clona el editor hacia uno nuevo para permitir los split\n            var NuevaSessionEditor = editor.getSession();\n            var editor_actual = document.getElementById(\"editor_codigo\");\n            var parent = editor_actual.parentNode;\n            \n            var clone = editor_actual.cloneNode();\n            EditorClonado = ace.edit(\"editor_clonado\");\n            EditorClonado.setSession( ClonarSesionEditor(NuevaSessionEditor) );\n    \n            // FUNCIONES DE INICIALIZACION ###############################################################\n        	ExplorarPath();\n\n            PCODER_RecalcularMaquetacion();\n            \n            //Verifica si esta abierto como de solo lectura y bloquea el editor\n		    if ($(\"#PCODER_SoloLectura\").val()==\"1\")\n		        {\n		            editor.setReadOnly(true);\n		            //Hace ocultamiento forzado del menu, del tipo de barra y del estado\n		            $(\'#PCODER_TipoMenu\').val(\"Iconos\");\n		            $(\"#PCODER_OcultarMenu\").val(\"0\");\n		            $(\"#PCODER_EstadoSimple\").val(\"1\");\n		            IntercambiarVisibilidadMenu();\n		        }\n		    \n		    //Verifica si hay mensajes de carga\n		    if (\"{$MensajesBloqueo}\"!=\"\")\n		        {\n                    PCOJS_MostrarMensaje(\"{$MULTILANG_Importante}\", \"{$MensajesBloqueo}\",\" modal \");                \n\n		        }\n		        \n		    CambiarModo_Bienvenida();\n        });\n        \n        \n        \n        //Ajusta tamano del editor en cada cambio de tamano de la ventana\n        $( window ).resize(function() {\n            	PCODER_RecalcularMaquetacion();\n            });\n    }\n\n\n//##############################################################################\n//##############################################################################\n/*\n	Function: PCODER_DividirPantalla_NO\n	Elimina el modo Split del editor y llama a la funcion que recalcula y dibuja la nueva maquetacion\n*/\nfunction PCODER_DividirPantalla_NO()\n	{\n		//Ejecuta la operacion si ya no esta dividido\n		if (VistaSplit!=\"\")\n			{\n				VistaSplit=\"\";\n				//Actualiza el editor\n				PCODER_RecalcularMaquetacion();\n			}\n	}\n\n\n//##############################################################################\n//##############################################################################\n/*\n	Function: PCODER_DividirPantalla_Horizontal\n	Define el modo Split del editor y llama a la funcion que recalcula y dibuja la nueva maquetacion\n*/\nfunction PCODER_DividirPantalla_Horizontal()\n	{\n		//Ejecuta la operacion si ya no esta dividido\n		if (VistaSplit!=\"H\")\n			{\n				VistaSplit=\"H\";\n				ClonarPropiedadesEditor();\n				//Actualiza el editor\n				PCODER_RecalcularMaquetacion();\n			}\n	}\n\n\n//##############################################################################\n//##############################################################################\n/*\n	Function: PCODER_DividirPantalla_Vertical\n	Define el modo Split del editor y llama a la funcion que recalcula y dibuja la nueva maquetacion\n*/\nfunction PCODER_DividirPantalla_Vertical()\n	{\n		//Ejecuta la operacion si ya no esta dividido\n		if (VistaSplit!=\"V\")\n			{\n				VistaSplit=\"V\";\n				ClonarPropiedadesEditor();\n				//Actualiza el editor\n				PCODER_RecalcularMaquetacion();\n			}\n	}\n\n\n//##############################################################################\n//##############################################################################\n/*\n	Function: CambiarModoEditor\n	Define el modo o tipo de archivo o contenido que se esta editando.\n	\n    Variables de entrada:\n\n        modo - Un modo valido segun ACE Editor que identifica el lenguaje o tipo de archivo a editar\n        editor - La variable de entorno ya definida para el objeto tipo ACE Editor\n\n	Salida:\n		Cambio del modo para el editor, incluyendo resaltado, sintaxis, etc.\n*/\nfunction CambiarModoEditor(modo)\n	{\n		var ModoFiltrado = modo.replace(/_/g, \" \");\n		ModoFiltrado = ModoFiltrado.toLowerCase();\n		//Cambia el modo de sintaxis y errores resaltado por el editor\n		editor.getSession().setMode(ModoFiltrado);\n\n		//Actualiza las listas de seleccion con el modo correspondiente\n		document.getElementById(\"modo_archivo_preferencias\").value=modo;\n		document.getElementById(\"modo_archivo_top\").value=modo;\n		try\n			{\n				EditorClonado.getSession().setMode(ModoFiltrado);\n			}\n		catch(error) {}\n	}\n	\n	\n//##############################################################################\n//##############################################################################\n/*\n	Function: PCODER_CargarContenidoInicial\n	Durante la carga del editor, toma el archivo indicado inicialmente, busca su contenido y lo carga en el ACE Editor\n	\n    Variables de entrada:\n\n        PCODER_archivo - Ruta del archivo que se desea cargar sobre el editor.\n        Llave - La llave del sistema usada por seguridad para la carga del contenido\n\n	Salida:\n		Contenido del textarea del editor actualizado con el contenido a editar\n*/\nfunction PCODER_CargarContenidoInicial()\n    {\n        ValorContenidoArchivo=\"\";\n        ValorContenidoArchivo=PCO_ObtenerContenidoAjax(0,\"index.php\",\"PCO_Accion=PCO_EjecutarPostFormulario&Formulario=-33&Llave=\"+$(\"#Llave\").val()+\"&PCODER_Accion=PCOMOD_ObtenerContenidoArchivo&PCODER_archivo=\"+$(\"#PCODER_archivo\").val()+\"&Origen_Archivo={$Origen_Archivo}&Tabla_Archivo={$Tabla_Archivo}&Campo_Archivo={$Campo_Archivo}&Llave_Registro={$Llave_Registro}\");\n\n		//Actualiza el editor ACE con el valor obtenido y sus propiedades\n		editor.setValue(ValorContenidoArchivo);\n		editor.focus();											//Establece el foco al editor\n		editor.gotoLine(1, 0, false);							//Ubica cursor en la linea,columna,sin animacion\n		editor.scrollToLine(1, true, false, function () {});	//Desplaza archivo hasta la linea, sin centrarla en pantalla, sin animacion\n		editor.clearSelection();\n		ActualizarTituloEditor(\"{P} {$PCODER_NombreArchivo}\");\n    }\n\n\n//##############################################################################\n//##############################################################################\n/*\n	Function: PCODER_RecalcularMaquetacion\n	Define el tamano de los marcos de cada elemento (especialmente los editores) segun los tamanos disponibles para la ventana actual del navegador\n	\n    Variables de entrada:\n\n        VistaSplit - Indica el modo bajo el cual se encuentra el editor (completo, division horizontal o vertical)\n        varias - Tomadas desde el ambiente, como anchos y altos de algunos marcos del editor\n\n	Salida:\n		Cambio en caliente de los tamanos de los diferentes elementos para redibujar todo en el navegador\n*/\nfunction PCODER_RecalcularMaquetacion()\n	{\n		//Define el ALTO Y ANCHO DE LOS EDITORES segun la disposicion visual (splits) y el tamano del panel_central_medio\n		var AltoBarraMenu = $(\"#MENU_FORMULARIO_-33\").height();\n		var AltoBarraEstado = $(\"#MarcoContenedorInferior\").height();  //*2 Factor de corrección en alto de barra\n		var AltoBarraTitulo=0;\n		\n		if (\"{$PCODER_Titulo}\"!=\"\")\n		    AltoBarraTitulo = $(\"#TituloElemento\").height() + 3; //Los altos no incluyen los padding, como el marco tiene 2 por todos lados se sume 3 dejando un pixel de diferencia y evitar marcos blancos.\n		\n		//Calcula tamano de la ventana\n		//DEPRECATED: var AltoDisponiblePagina = $(\"body\").height();\n		//DEPRECATED: var AltoDisponiblePagina = $(\"document\").height();\n		//DEPRECATED: var AltoDisponiblePagina = $(\"#page-wrapper\").height();\n		//DEPRECATED: var AltoDisponiblePagina = $(\"#PCO_PestanaFormulario_1\").height();\n		var AltoDisponiblePagina = $(window).height();\n\n		var AltoDisponible_Editores = AltoDisponiblePagina-AltoBarraMenu-AltoBarraEstado-AltoBarraTitulo;\n		var AnchoDisponible_Editores = $(\"#PCO_PestanaFormulario_1\").width();\n\n		//Establece tamanos especificos para los editores segun la disposicion visual (splits) y deja visible el editor clonado\n		if(VistaSplit==\"H\")\n			{\n				AltoDisponible_Editores=Math.round(AltoDisponible_Editores/2)-1;\n				$(\"#panel_editor_clonado\").show();\n			}\n			\n		if(VistaSplit==\"V\")\n			{\n				AnchoDisponible_Editores=Math.round(AnchoDisponible_Editores/2)-2;\n				$(\"#panel_editor_clonado\").show();\n			}\n\n		//Reasigna los anchos y altos a los paneles por defecto\n		AltoEditorReal = AltoDisponible_Editores;\n		AnchoEditorReal = AnchoDisponible_Editores;\n		AltoEditorClonado = AltoDisponible_Editores;\n		AnchoEditorClonado = AnchoDisponible_Editores;\n		\n		//Si no hay divisiones pone en ceros el editor clonado y ademas oculta el marco que lo contiene\n		if(VistaSplit==\"\")\n			{\n				AltoEditorClonado = 0;\n				AnchoEditorClonado = 0;\n				$(\"#panel_editor_clonado\").hide();\n			}\n		\n		$(\'#editor_codigo\').height( AltoEditorReal+\"px\" ).css({ });	//Asignacion en porcentaje\n		$(\'#editor_codigo\').width( AnchoEditorReal+\"px\" ).css({ });	//Asignacion en porcentaje\n		$(\'#editor_clonado\').height( AltoEditorClonado+\"px\" ).css({ });	//Asignacion en porcentaje\n		$(\'#editor_clonado\').width( AnchoEditorClonado+\"px\" ).css({ });	//Asignacion en porcentaje\n		\n		//Actualiza el tamano de los editores segun las nuevas dimensiones\n		editor.resize();\n		try\n			{\n				EditorClonado.resize();\n			}\n		catch(error)\n			{\n				//document.getElementById(\"demo\").innerHTML = err.message;\n			}\n	}\n\n\n//##############################################################################\n//##############################################################################\n/*\n	Function: ActualizarTituloEditor\n	Cambia el titulo de la ventana de navegador para coincidir con el del archivo editado actualmente\n	\n    Variables de entrada:\n\n        titulo - Texto que debe asignarse a la ventana\n\n	Salida:\n		Titulo de ventana actualizado, que deberia estar visible en barras de tareas del sistema operativo del usuario\n*/\nfunction ActualizarTituloEditor(titulo)\n	{\n		//Cambia el titulo presentado en la ventada del editor\n		document.title = titulo;\n		$(document).attr(\'title\',titulo);\n	}\n\n\n//##############################################################################\n//##############################################################################\n/*\n	Function: ActualizarBarraEstado\n	Actualiza periodicamente la barra de estado inferior del editor con la informacion del archivo\n\n	Salida:\n		Actualizacion de marcos con la informacion de la barra de estado\n*/\nfunction ActualizarBarraEstado()\n	{\n	    //Si se desea ocultar las barras de menu y estado presenta una barra simplificada, sino muestra la barra completa\n	    if ($(\"#PCODER_OcultarMenu\").val()==\"1\")\n	        {\n	            $(\"#panel_inferior\").html(\"<div align=\'right\' style=\'margin-top:3px; color:gray; font-size:11px;\'><i class=\'fa fa-info-circle fa-fw text-info\'></i> <b>{P}Coder</b> <i>en modo ampliado.  Use <font color=white>Ctrl+B</font> para ver/ocultar herramientas</i></div>\");\n	        }\n	    else\n	        {\n        		//Actualiza ademas las posiciones del cursor sobre el arreglo de archivos abiertos\n        		posicion_cursor=editor.getCursorPosition();\n        		LineaActual=posicion_cursor.row;\n        		ColumnaActual=posicion_cursor.column;\n        \n        		//Actualiza la barra de estado del editor\n        		var NroLineasDocumento=editor.session.getLength();\n        		var NroCaracteresDocumento=editor.session.getValue().length;\n        		//Actualiza formulario de envio de archivo por posible almacenamiento de estadisticas\n        		$(\"#PCODER_NroLineasDocumento\").val(NroLineasDocumento);\n        		$(\"#PCODER_NroCaracteresDocumento\").val(NroCaracteresDocumento);\n\n	            if ($(\"#PCODER_EstadoSimple\").val()!=\"1\" )\n                    {\n                        $(\"#panel_inferior\").html(ContenidoBarraEstado);\n                		//Actualiza los contenedores con la informacion de estado\n                		$(\"#NroLineasDocumento\").html(\"{$MULTILANG_PCODER_Linea}: \" + (LineaActual+1) +\" / \"+NroLineasDocumento);\n                		$(\"#NroColumnaDocumento\").html(\"{$MULTILANG_PCODER_Columna}: \"+ (ColumnaActual+1));\n                		$(\"#NroCaracteresDocumento\").html(\"{$MULTILANG_PCODER_Caracteres}: \"+NroCaracteresDocumento);\n                 		$(\"#TipoDocumento\").html(\"{$MULTILANG_PCODER_Tipo}: {$PCODER_TipoElemento}\");\n                 		$(\"#TamanoDocumento\").html(\"{$MULTILANG_PCODER_Tamano}: <b>{$PCODER_TamanoElemento} Kb</b>\");\n                 		$(\"#FechaModificadoDocumento\").html(\"{$MULTILANG_PCODER_Modificado}: <b>{$PCODER_FechaElemento}</b>\");\n                    }\n                else\n                    {\n                		$(\"#NroLineasDocumento\").html(\"{$MULTILANG_PCODER_Linea}: \" + (LineaActual+1) +\"/\"+NroLineasDocumento);\n                		$(\"#NroColumnaDocumento\").html(\"{$MULTILANG_PCODER_Columna}: \"+ (ColumnaActual+1));\n                		$(\"#NroCaracteresDocumento\").html(\"\");\n                 		$(\"#TipoDocumento\").html(\"\");\n                 		$(\"#TamanoDocumento\").html(\"\");\n                 		$(\"#FechaModificadoDocumento\").html(\"\");\n                    }\n	        }\n        \n		//Llama periodicamente la rutina de actualizacion de la barra\n		window.setTimeout(ActualizarBarraEstado, 1000);\n	}\n\nfunction VerificarSintaxisEditor()\n	{\n		//Cambia la verificacion de sintaxis del editor\n		if (document.getElementById(\"Check_VerificarSintaxisEditor\").value==\"1\")\n			{\n				editor.session.setOption(\"useWorker\", false);\n				EditorClonado.session.setOption(\"useWorker\", false);\n				document.getElementById(\"Check_VerificarSintaxisEditor\").value=\"0\";\n				$(\'#Check_VerificarSintaxisEditor\').prop(\'checked\', false);\n			}\n		else\n			{\n				editor.session.setOption(\"useWorker\", true);\n				EditorClonado.session.setOption(\"useWorker\", true);\n				document.getElementById(\"Check_VerificarSintaxisEditor\").value=\"1\";\n				$(\'#Check_VerificarSintaxisEditor\').prop(\'checked\', true);\n			}\n	}\n\n\nfunction VerificarAutocompletado()\n	{\n		//Cambia el autocompletado del editor\n		if (document.getElementById(\"Check_VerificarAutocompletado\").value==\"1\")\n			{\n				editor.setOptions({enableBasicAutocompletion: false, enableLiveAutocompletion: false});\n				EditorClonado.setOptions({enableBasicAutocompletion: false, enableLiveAutocompletion: false});\n				//EditorClonado.session.setOption(\"useWorker\", false);\n				document.getElementById(\"Check_VerificarAutocompletado\").value=\"0\";\n				$(\'#Check_VerificarAutocompletado\').prop(\'checked\', false);\n			}\n		else\n			{\n				editor.setOptions({enableBasicAutocompletion: true, enableLiveAutocompletion: true});\n				EditorClonado.setOptions({enableBasicAutocompletion: true, enableLiveAutocompletion: true});\n				//EditorClonado.session.setOption(\"useWorker\", true);\n				document.getElementById(\"Check_VerificarAutocompletado\").value=\"1\";\n				$(\'#Check_VerificarAutocompletado\').prop(\'checked\', true);\n			}\n	}\n\nfunction AbrirAcercaDe()\n    {\n        var LMQTP=$(\'#myModalACERCADEPCODER\').modal(\'show\');\n        var LMQTP2=$(\'#myModalACERCADEPCODER\').css(\'z-index\', \'1500\');\n        //Si detecta que se tiene activado el filtro de colores inverso (modo noche) deja el editor en su formato oscuro original revirtiendo el filtro\n        if (\"{$PCO_TransformacionColores}\"==\"inverso\")\n            $(\".modal-backdrop\").css(\"filter\",\"invert(0%)\");\n    }\n\nfunction AbrirAtajosTeclado()\n    {\n        var LMQTP=$(\'#AtajosTeclado\').modal(\'show\');\n        var LMQTP2=$(\'#AtajosTeclado\').css(\'z-index\', \'1500\');\n        //Si detecta que se tiene activado el filtro de colores inverso (modo noche) deja el editor en su formato oscuro original revirtiendo el filtro\n        if (\"{$PCO_TransformacionColores}\"==\"inverso\")\n            $(\".modal-backdrop\").css(\"filter\",\"invert(0%)\");\n    }\n\n\nfunction AbrirPreferencias()\n    {\n        var LMQTP=$(\'#myModalPREFERENCIAS\').modal(\'show\');\n        var LMQTP2=$(\'#myModalPREFERENCIAS\').css(\'z-index\', \'1500\');\n        //Si detecta que se tiene activado el filtro de colores inverso (modo noche) deja el editor en su formato oscuro original revirtiendo el filtro\n        if (\"{$PCO_TransformacionColores}\"==\"inverso\")\n            $(\".modal-backdrop\").css(\"filter\",\"invert(0%)\");\n    }\n\n\nfunction OperacionFS_CrearArchivo()\n	{\n		//Presenta el cuadro de dialogo\n		$(\'#myModalOPERARFS\').css(\'z-index\', \'500\');	//Asigna un index inferior a los dialogos emergentes de resultado\n		$(\'#myModalOPERARFS\').modal(\'show\');\n		\n        //Si detecta que se tiene activado el filtro de colores inverso (modo noche) deja el editor en su formato oscuro original revirtiendo el filtro\n        if (\"{$PCO_TransformacionColores}\"==\"inverso\")\n            $(\".modal-backdrop\").css(\"filter\",\"invert(0%)\");\n	}\n\nfunction OperacionFS_AbrirArchivo()\n	{\n		//Presenta el cuadro de dialogo\n		$(\'#myModalABRIRFS\').css(\'z-index\', \'500\');	//Asigna un index inferior a los dialogos emergentes de resultado\n		$(\'#myModalABRIRFS\').modal(\'show\');\n		\n        //Si detecta que se tiene activado el filtro de colores inverso (modo noche) deja el editor en su formato oscuro original revirtiendo el filtro\n        if (\"{$PCO_TransformacionColores}\"==\"inverso\")\n            $(\".modal-backdrop\").css(\"filter\",\"invert(0%)\");\n	}\n\nfunction OperacionFS_CerrarModalAperturaArchivo()\n	{\n		//Cierra el cuadro de dialogo\n		$(\'#myModalABRIRFS\').modal(\'hide\');\n	}',0,'nav-tabs','form_archivo_editado','responsive','col-xs-12 col-sm-12 col-md-12 col-lg-12','panel-primary','<?php\n    ##########################################################################\n    ##########################################################################\n    //VERIFICA SEGURIDAD: Perfil de Administrador requerido antes de continuar\n    global $PCOSESS_LoginUsuario,$MULTILANG_ErrorTitAuth,$MULTILANG_WSErr06;\n    if (!PCO_EsAdministrador(@$PCOSESS_LoginUsuario))\n        {\n            PCO_Mensaje(\"{$MULTILANG_ErrorTitAuth}\", \"{$MULTILANG_WSErr06}\", \'\', \'fa fa-exclamation-triangle fa-3x texto-rojo texto-blink\', \'alert alert-warning alert-dismissible\');\n            PCO_Auditar(\"$PCOSESS_LoginUsuario Intenta acceso no autorizado Frm:-33\",\"SECLog:event\");\n            die();\n        }\n    ##########################################################################\n    ##########################################################################\n\n\n    /*\n    	Function: PCO_CargarObjeto_LlamadoInternoPCoder\n    	Carga el elemento interno (Formulario -33) asociado al diseno del {P}Coder\n    	\n        Variables de entrada basicas del Framework:\n            URL - index.php?PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:-33:0&Presentar_FullScreen=1&Precarga_EstilosBS=1\n        \n        Variables de entrada especificas para el elemento:\n            PCODER_archivo - Ruta del archivo que sera abierto.\n            PCODER_ModoEditor - Modo utilizado para el editor (lenguaje a ser reconocido)\n            PCODER_OcultarMenu - Indica a PCoder que no cargue la barra de menu superior y la barra de estado para hacer el editor mas amplio.  Se presentara mensaje advirtiendo como se puede abrir en caso que se desee.\n            PCODER_OcultarEstado - Oculta barra de estado del editor\n            PCODER_TipoMenu - Indica el tipo de diseno de menu del editor como uno de dos valores:  Texto | Iconos.  Si no es especificado se asume tipo texto\n            PCODER_EstadoSimple - Indica a PCoder que no cargue la barra de estado inferior con datos sobre el contenido editado.  Solo presentara las opciones basicas de distribucion del editor y comando de saltar a una linea.\n            PCODER_SoloLectura - Determina si el editor ACE se inicia en modo de solo lectura.  Util para vistas o revision de versiones anteriores del documento.  Que permiten editor completo sin posibilidad de edicion\n            PCODER_Titulo - Define un texto utilizado como titulo del documento cuando se requiera dar detalles para su edicion\n\n            Origen_Archivo - Determina el origen del contenido para el archivo.  A=Archivo B=BaseDatos\n            Tabla_Archivo - Cuando el origen es B.  Indica el nombre de la tabla vinculada que almacena el contenido\n            Campo_Archivo - Cuando el origen es B.  Indica el nombre del campo que almacena el contenido\n            Llave_Registro - Cuando el origen es B.  Indica valor del campo ID del registro que almacena el contenido\n            PCODER_extension - Extension de archivo asociada al contenido.  Si no se recibe y es un archivo se intenta tomar desde su nombre.  Obligatorio en las aperturas de contenido por BD.  Ej:  php | html | js | txt\n\n    	Salida:\n    		Editor {P}Coder cargado en el navegador con edicion del elemento deseado\n    	\n    	Ejemplos (Concatene a la URL base):\n    	    Llamado archivo:            &PCODER_archivo=tmp/index.html\n    	    Cambio del modo o lenguaje: &PCODER_ModoEditor=HTML\n    	    Ocultar menu superior:      &PCODER_OcultarMenu=1\n    	    Usar menu de iconos:        &PCODER_TipoMenu=Iconos\n    	    Ocultar la barra de estado: &PCODER_OcultarEstado=1\n    	    Abrir en modo de lectura:   &PCODER_SoloLectura=1\n\n    	index.php?PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:-33:0&Presentar_FullScreen=1&Precarga_EstilosBS=1&PCODER_archivo=tmp/index.html&PCODER_ModoEditor=PHP&PCODER_TipoMenu=Iconos&PCODER_EstadoSimple=1&PCODER_SoloLectura=1\n\n    */\n\n    ############################################################################\n    ############################################################################\n    ##  Compatilidad/Equivalencia con  mod/pcoder/inc/variables.php\n            //Define los modos o lenguajes soportados por el editor\n            global $PCODER_Modos;\n        	$PCODER_Modos[]=array(\"Nombre\" => \"ABAP\",	\"Extensiones\" => \"abap\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"ActionScript\",	\"Extensiones\" => \"as\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"ADA\",	\"Extensiones\" => \"ada|adb|ads\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Apache_Conf\",	\"Extensiones\" => \"htaccess|htgroups|htpasswd|conf|htaccess|htgroups|htpasswd\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"AsciiDoc\",	\"Extensiones\" => \"asciidoc|adoc|ans|asc\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Assembly_x86\",	\"Extensiones\" => \"asm\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"AutoHotKey\",	\"Extensiones\" => \"ahk\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"BatchFile\",	\"Extensiones\" => \"bat|cmd|pif|wsf\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"C9Search\",	\"Extensiones\" => \"c9search_results\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"C_Cpp\",	\"Extensiones\" => \"cpp|c|cc|cxx|h|hh|hpp|bcp|tcc\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Cirru\",	\"Extensiones\" => \"cirru|cr\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Clojure\",	\"Extensiones\" => \"clj|cljs\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Cobol\",	\"Extensiones\" => \"CBL|COB\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"coffee\",	\"Extensiones\" => \"coffee|cf|cson|Cakefile\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"ColdFusion\",	\"Extensiones\" => \"cfm\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"CSharp\",	\"Extensiones\" => \"cs|csx\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"CSS\",	\"Extensiones\" => \"css\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Curly\",	\"Extensiones\" => \"curly\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"D\",	\"Extensiones\" => \"d|di\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Dart\",	\"Extensiones\" => \"dart\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Diff\",	\"Extensiones\" => \"diff|patch\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Dockerfile\",	\"Extensiones\" => \"Dockerfile\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Dot\",	\"Extensiones\" => \"dot\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Dummy\",	\"Extensiones\" => \"dummy\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"DummySyntax\",	\"Extensiones\" => \"dummy\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Eiffel\",	\"Extensiones\" => \"e\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"EJS\",	\"Extensiones\" => \"ejs\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Elixir\",	\"Extensiones\" => \"ex|exs\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Elm\",	\"Extensiones\" => \"elm\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Erlang\",	\"Extensiones\" => \"erl|hrl\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Forth\",	\"Extensiones\" => \"frt|fs|ldr|4th|forth\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"FTL\",	\"Extensiones\" => \"ftl\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Gcode\",	\"Extensiones\" => \"gcode\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Gherkin\",	\"Extensiones\" => \"feature\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Gitignore\",	\"Extensiones\" => \"gitignore|gcloudignore\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Glsl\",	\"Extensiones\" => \"glsl|frag|vert\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"golang\",	\"Extensiones\" => \"go\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Groovy\",	\"Extensiones\" => \"groovy\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"HAML\",	\"Extensiones\" => \"haml\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Handlebars\",	\"Extensiones\" => \"hbs|handlebars|tpl|mustache\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Haskell\",	\"Extensiones\" => \"hs|has|lhs|lit\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"haXe\",	\"Extensiones\" => \"hx\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"HTML\",	\"Extensiones\" => \"html|htm|xhtml|asp|aspx\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"HTML_Ruby\",	\"Extensiones\" => \"erb|rhtml\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"INI\",	\"Extensiones\" => \"ini|cfg|prefs\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Io\",	\"Extensiones\" => \"io\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Jack\",	\"Extensiones\" => \"jack\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Jade\",	\"Extensiones\" => \"jade\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Java\",	\"Extensiones\" => \"java\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"JavaScript\",	\"Extensiones\" => \"js|jsm\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"JSON\",	\"Extensiones\" => \"json\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"JSONiq\",	\"Extensiones\" => \"jq\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"JSP\",	\"Extensiones\" => \"jsp\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"JSX\",	\"Extensiones\" => \"jsx\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Julia\",	\"Extensiones\" => \"jl\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"LaTeX\",	\"Extensiones\" => \"tex|latex|ltx|bib|sty\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"LESS\",	\"Extensiones\" => \"less\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Liquid\",	\"Extensiones\" => \"liquid\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Lisp\",	\"Extensiones\" => \"lisp|lsp\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"LiveScript\",	\"Extensiones\" => \"ls\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"LogiQL\",	\"Extensiones\" => \"logic|lql\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"LSL\",	\"Extensiones\" => \"lsl\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Lua\",	\"Extensiones\" => \"lua\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"LuaPage\",	\"Extensiones\" => \"lp\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Lucene\",	\"Extensiones\" => \"lucene\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Makefile\",	\"Extensiones\" => \"Makefile|GNUmakefile|makefile|OCamlMakefile|make|am\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Markdown\",	\"Extensiones\" => \"md|markdown|markdn\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Mask\",	\"Extensiones\" => \"mask\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"MATLAB\",	\"Extensiones\" => \"matlab\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"MEL\",	\"Extensiones\" => \"mel\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"MUSHCode\",	\"Extensiones\" => \"mc|mush\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"MySQL\",	\"Extensiones\" => \"mysql\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Nix\",	\"Extensiones\" => \"nix\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"ObjectiveC\",	\"Extensiones\" => \"m|mm\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"OCaml\",	\"Extensiones\" => \"ml|mli\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Pascal\",	\"Extensiones\" => \"pas|p|dfm\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Perl\",	\"Extensiones\" => \"pl|pm\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"pgSQL\",	\"Extensiones\" => \"pgsql\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"PHP\",	\"Extensiones\" => \"php|phtml|inc|ctp|snt\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Powershell\",	\"Extensiones\" => \"ps1\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Praat\",	\"Extensiones\" => \"praat|praatscript|psc|proc\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Prolog\",	\"Extensiones\" => \"plg|prolog\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Properties\",	\"Extensiones\" => \"properties\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Protobuf\",	\"Extensiones\" => \"proto\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Python\",	\"Extensiones\" => \"py\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"R\",	\"Extensiones\" => \"r\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"RDoc\",	\"Extensiones\" => \"Rd\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"RHTML\",	\"Extensiones\" => \"Rhtml\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Ruby\",	\"Extensiones\" => \"rb|ru|gemspec|rake|Guardfile|Rakefile|Gemfile\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Rust\",	\"Extensiones\" => \"rs\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"SASS\",	\"Extensiones\" => \"sass\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"SCAD\",	\"Extensiones\" => \"scad\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Scala\",	\"Extensiones\" => \"scala\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Scheme\",	\"Extensiones\" => \"scm|rkt\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"SCSS\",	\"Extensiones\" => \"scss\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"SH\",	\"Extensiones\" => \"sh|bash|bashrc|bsh\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"SJS\",	\"Extensiones\" => \"sjs\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Smarty\",	\"Extensiones\" => \"smarty|tpl\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"snippets\",	\"Extensiones\" => \"snippets\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Soy_Template\",	\"Extensiones\" => \"soy\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Space\",	\"Extensiones\" => \"space\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"SQL\",	\"Extensiones\" => \"sql|dblib|dblib_mssql|fbd|ibm|ifmx|mssql|odbc|oracle|sqlite|sqlsrv\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Stylus\",	\"Extensiones\" => \"styl|stylus\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"SVG\",	\"Extensiones\" => \"svg\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Tcl\",	\"Extensiones\" => \"tcl\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Tex\",	\"Extensiones\" => \"tex\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Text\",	\"Extensiones\" => \"txt|nfo|dat|inf|log|csv|tab|url|1st|fountain|me|now|readme|rft|cst|pl1|pli|plc|src|swift|tk\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Textile\",	\"Extensiones\" => \"textile\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Toml\",	\"Extensiones\" => \"toml\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Twig\",	\"Extensiones\" => \"twig\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Typescript\",	\"Extensiones\" => \"ts|typescript|str\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Vala\",	\"Extensiones\" => \"vala\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"VBScript\",	\"Extensiones\" => \"bas|vbs|vb|b|sb\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Velocity\",	\"Extensiones\" => \"vm\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"Verilog\",	\"Extensiones\" => \"v|vh|sv|svh\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"VHDL\",	\"Extensiones\" => \"vhd|vhdl\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"XML\",	\"Extensiones\" => \"xml|rdf|rss|wsdl|xsl|xslt|atom|mathml|mml|xul|xbl\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"XQuery\",	\"Extensiones\" => \"xq\");\n        	$PCODER_Modos[]=array(\"Nombre\" => \"YAML\",	\"Extensiones\" => \"yaml|yml\");\n\n\n    ############################################################################\n    ############################################################################\n    ##  Compatilidad/Equivalencia con  mod/pcoder/index.php\n	//L72: Variables y entorno inicial\n	/*	Define el Path inicial sobre el cual el usuario puede navegar\n		por el sistema de archivos del servidor para editarlos. A mayor\n		numero de carpetas a leer sera mas lenta la apertura del editor.\n		Posibles valores:	/							-> Todo su disco!!!\n							.							-> Directorio Actual de PCoder (generalmente sobre mod/pcoder)\n							../							-> Raiz de PCoder (generalmente sobre mod/pcoder/mod)\n							../../						-> Raiz de PCoder (Donde reside LICENSE, AUTHORS, Etc)\n							../../../  					-> Raiz Instalacion PCoder cuando es independiente o Raiz de Practico si esta como modulo\n							Otros						-> Agregue aqui tantos niveles superiores como desee segun su ruta de instalacion\n							$_SERVER[\'DOCUMENT_ROOT\']	-> Raiz de Todo el servidor web  */\n	global $PCO_PCODER_RaizExploracionArchivos;\n	$PCO_PCODER_RaizExploracionArchivos=$_SERVER[\'DOCUMENT_ROOT\'].DIRECTORY_SEPARATOR;\n\n    //L125: Variables y entorno inicial\n    // Datos de fecha, hora y direccion IP para algunas operaciones asi como variables de compatibilidad para modulo de Practico\n    $PCO_PCODER_FechaOperacion=date(\"Ymd\");\n    $PCO_PCODER_FechaOperacionGuiones=date(\"Y-m-d\");\n    $PCO_PCODER_HoraOperacion=date(\"His\");\n    $PCO_PCODER_HoraOperacionPuntos=date(\"H:i\");\n    $PCO_PCODER_DireccionAuditoria=$_SERVER [\'REMOTE_ADDR\'];\n    $PCO_FechaOperacion=$PCO_PCODER_FechaOperacion;\n    $PCO_FechaOperacionGuiones=$PCO_PCODER_FechaOperacionGuiones;\n    $PCO_HoraOperacion=$PCO_PCODER_HoraOperacion;\n    $PCO_HoraOperacionPuntos=$PCO_PCODER_HoraOperacionPuntos;\n    $PCO_DireccionAuditoria=$PCO_PCODER_DireccionAuditoria;\n\n	// Establece version actual del sistema\n	$PCO_PCODER_VersionActual = file(\"inc/version_actual.txt\");\n	$PCO_PCODER_VersionActual = trim($PCO_PCODER_VersionActual[0]);\n	\n	// Si no hay una accion definida entonces inicia con la predeterminada\n	if (@$PCO_Accion==\"\" || !isset($PCO_Accion))\n		$PCO_Accion=\"PCOMOD_CargarPcoder\";\n    \n\n    global $PCODER_archivo,$LlaveVentana_Archivo,$LlaveVentana_Ruta,$LlaveDePaso;\n    \n	//Genera algunas variables requeridas con informacion del archivo\n	global $PCODER_PathVisual,$PCODER_FechaElemento,$PCODER_TamanoElemento,$PCODER_TipoElemento,$PCODER_NombreArchivo;\n	//Genera token unico de edicion para el archivo.  La variable queda en el form disponible para cada envio\n	global $PCODER_TokenEdicion;\n    \n    //Determina tipo de contenido (Archivo o BaseDatos)\n    global $Origen_Archivo,$Tabla_Archivo,$Campo_Archivo,$Llave_Registro;\n    if ($Origen_Archivo==\"\") $Origen_Archivo=\"A\";\n    //Si el origen del archivo es BaseDatos genera algunas variables por defecto para tratar el contenido de manera generica como un archivo\n    if ($Origen_Archivo==\"B\")\n        {\n            $PCODER_archivo=\"{$Tabla_Archivo}[{$Llave_Registro}].{$Campo_Archivo}\";\n        	$PCODER_TipoElemento=\"BD\";\n        	$PCODER_FechaElemento=\"N/A\";\n        	$ContenidoRecuperadoBD=PCO_EjecutarSQL(\"SELECT {$Campo_Archivo} as Contenido, LENGTH({$Campo_Archivo}) as TamanoBytes FROM {$Tabla_Archivo} WHERE id=\'{$Llave_Registro}\' \")->fetch();\n        	$PCODER_TamanoElemento=$ContenidoRecuperadoBD[\"TamanoBytes\"];\n            $PCODERcontenido_original_archivo=$ContenidoRecuperadoBD[\"Contenido\"];\n            $PCODER_TokenEdicion=md5($PCODER_archivo.$PCODER_TamanoElemento.$PCODER_FechaElemento.$PCODERcontenido_original_archivo);\n            $PCODER_NombreArchivo = \"{$Tabla_Archivo}.{$Campo_Archivo}\";\n        }\n\n    //Define las llaves y valores con que se diferencia el editor de texto (sobre el LocalStorage)\n    $LlaveVentana_Archivo=base64_encode(substr($LlaveDePaso,-3).\"{$PCODER_archivo}\");\n    $LlaveVentana_Ruta=$PCODER_archivo;\n\n    //Carga el archivo recibido, si no recibe nada carga un demo\n    if (@$PCODER_archivo==\"\")\n        {\n            global $MULTILANG_Error;\n            PCO_Mensaje(\"{$MULTILANG_Error}\",\"[ES]:No se ha recibido un archivo u origen de datos a ser editado<br>[EN]:A file or data source to be edited has not been received.\",\"\",\"fa fa-fw fa-4x fa-times\",\"alert alert-dismissible alert-danger btn-xs\");\n            die();\n            //$PCODER_archivo = \"mod/pcoder/demos/demo.txt\"; //Archivo de pruebas.   Comentado en produccion\n            //$PCODER_archivo = \"tmp/index.html\";\n        }\n\n	//Verifica permisos de escritura en cada cargue de archivo para saber si presenta o no mensaje de advertencia\n	global $PCODER_SoloLectura,$PCODER_EstadoSimple,$PCODER_TipoMenu,$PCODER_OcultarMenu,$PermisosRW,$CadenaPermisoEscritura,$MULTILANG_PCODER_ErrorRW,$MULTILANG_PCODER_Estado,$MULTILANG_Error;\n	$PermisosRW=1;\n	//Si el origen es desde un archivo valida los permisos desde el filesystem\n    if ($Origen_Archivo==\"A\")\n        {\n        	$permisos_encontrados=@substr(sprintf(\'%o\', fileperms($PCODER_archivo)), -4);\n        	if (!is_writable($PCODER_archivo)) { $PermisosRW=0; }\n            $CadenaPermisoEscritura=\'\';\n            if ($PermisosRW==0)\n                PCO_Mensaje(\"{$MULTILANG_Error}\",\"{$MULTILANG_PCODER_ErrorRW}\",\"\",\"fa fa-fw fa-2x fa-thumbs-down\",\"alert alert-dismissible alert-warning btn-xs\");\n        }\n	if ($PCODER_OcultarMenu==\"\") $PCODER_OcultarMenu=\"0\";\n	if ($PCODER_TipoMenu==\"\") $PCODER_TipoMenu=\"Texto\";\n\n    //Marco para recepcion de eventos generados por el boton de guardar\n    echo \'<iframe OnLoad=\"if (frame_almacenamiento.location.href != \\\'about:blank\\\') QuitarAvisoAlmacenamiento();\" height=\"0\" width=\"0\" name=\"frame_almacenamiento\" id=\"frame_almacenamiento\" src=\"about:blank\" style=\"visibility:hidden; display:none\"></iframe>\';\n\n    //Busca datos especificos del archivo en el filesystem\n    if ($Origen_Archivo==\"A\")\n        {\n        	$PCODER_TipoElemento=@filetype($PCODER_archivo);\n        	$PCODER_FechaElemento=@date(\"d F Y H:i:s\", @filemtime($PCODER_archivo));\n        	$PCODER_TamanoElemento=@round(filesize($PCODER_archivo)/1024);\n            $PCODERcontenido_original_archivo=@file_get_contents($PCODER_archivo);\n            $PCODER_TokenEdicion=md5($PCODER_archivo.$PCODER_TamanoElemento.$PCODER_FechaElemento.$PCODERcontenido_original_archivo);\n            $PCODER_PartesNombreArchivo=explode(DIRECTORY_SEPARATOR,$PCODER_archivo);\n            $PCODER_NombreArchivo = $PCODER_PartesNombreArchivo[count($PCODER_PartesNombreArchivo)-1];\n        }\n\n    //Antes de seguir adelante con la apertura verifica si el archivo no tiene registro de bloqueo\n    global $MULTILANG_PCODER_AdvertenciaMalCierre,$MULTILANG_PCODER_ErrorRO;\n    global $MensajesBloqueo; //Variable que contiene cualquier mensaje de error o advertencia del archivo\n    $MensajesBloqueo=\"\";\n    //Genera/revisa bloqueo evitando el archivo de base que es abierto por todos\n    if ($PCODER_archivo!=\"inc/practico/PCoder\")\n        {\n            $RegistroBloqueo=PCO_EjecutarSQL(\"SELECT * FROM core_pcoder_bloqueos WHERE archivo=\'$PCODER_archivo\' \")->fetch();\n            if ($RegistroBloqueo[\"id\"]==\"\")\n                {\n                    PCO_EjecutarSQLUnaria(\"INSERT INTO core_pcoder_bloqueos (archivo,ultima_edicion,usuario,abierto,direccion_origen,agente) VALUES (\'$PCODER_archivo\',\'$PCO_PCODER_FechaOperacionGuiones $PCO_PCODER_HoraOperacionPuntos:00\',\'$PCOSESS_LoginUsuario\',\'1\',\'$PCO_PCODER_DireccionAuditoria\',\'\".$_SERVER[\'HTTP_USER_AGENT\'].\"\');\");\n                }\n            else\n                {\n                    //Verifica si el bloqueo es de otro usuario o del mismo\n                    if ($RegistroBloqueo[\"usuario\"]!=$PCOSESS_LoginUsuario)\n                        {\n                            $MensajesBloqueo= \"<i class=\'fa fa-warning fa-2x\'></i> [ERR]: \".$MULTILANG_PCODER_ErrorRO.\"<br><br><font color=blue><b>Se abre como sólo lectura</b></font><br><br><li>Usuario/User: <b>\".$RegistroBloqueo[\"usuario\"].\"</b></li><li>Fecha de apertura/Opened date: <b>\".$RegistroBloqueo[\"ultima_edicion\"].\"</b></li><li>Origen/Origin: <b>\".$RegistroBloqueo[\"direccion_origen\"].\"</b> <i>(\".$RegistroBloqueo[\"agente\"].\")</i></li>\";\n                            //Envia a si mismo un mensaje de advertencia a posible estacion abierta\n                            PCO_EjecutarSQLUnaria(\"INSERT INTO core_chat (remitente,destinatario,message,sent,recd) VALUES (\'$PCOSESS_LoginUsuario\',\'\".$RegistroBloqueo[\"usuario\"].\"\',\'He intentado abrir el archivo $PCODER_archivo pero se encuentra bloqueado por ti (mensaje automatico)\',\'$PCO_PCODER_FechaOperacionGuiones $PCO_PCODER_HoraOperacionPuntos:00\',\'0\');\");\n            \n                            //Cambia algunos estados del editor par que sea de solo lectura\n                            $PCODER_OcultarMenu=1;\n                            $PCODER_TipoMenu=\"Iconos\";\n                            $PCODER_SoloLectura=1;\n                        }\n                    else\n                        {\n                            $MensajesBloqueo= \"<i class=\'fa fa-info-circle fa-2x\'></i> [ADV]: \".$MULTILANG_PCODER_AdvertenciaMalCierre.\"<br><br><li>Fecha de apertura/Opened date: <b>\".$RegistroBloqueo[\"ultima_edicion\"].\"</b></li><li>Origen/Origin: <b>\".$RegistroBloqueo[\"direccion_origen\"].\"</b> <i>(\".$RegistroBloqueo[\"agente\"].\")</i></li><hr>\".$MULTILANG_PCODER_AdvConcurrencia;\n                            //Despues de generar advertencia actualiza ultima fecha apertura, direccion y agente como la actual\n                            PCO_EjecutarSQLUnaria(\"UPDATE core_pcoder_bloqueos SET ultima_edicion=\'$PCO_PCODER_FechaOperacionGuiones $PCO_PCODER_HoraOperacionPuntos:00\',direccion_origen=\'$PCO_PCODER_DireccionAuditoria\',agente=\'\".$_SERVER[\'HTTP_USER_AGENT\'].\"\' WHERE archivo=\'$PCODER_archivo\' \");\n                            //Envia a si mismo un mensaje de advertencia a posible estacion abierta\n                            //PCO_EjecutarSQLUnaria(\"INSERT INTO core_chat (remitente,destinatario,message,sent,recd) VALUES (\'$PCOSESS_LoginUsuario\',\'\".$RegistroBloqueo[\"usuario\"].\"\',\'He abierto el archivo $PCODER_archivo con advertencia de apertura desde $PCO_PCODER_DireccionAuditoria (mensaje automatico)\',\'$PCO_PCODER_FechaOperacionGuiones $PCO_PCODER_HoraOperacionPuntos:00\',\'0\');\");\n                        }\n                }\n        }\n\n\n    ################################################################################\n    ################################################################################\n    /*\n    	Function: PCOMOD_ObtenerModoEditor\n    	Detecta el tipo de archivo y especifica el modo que se debe utilizar en el editor\n    */\n        //Obtiene la extension del archivo (cuando es archivo y no se ha recibido directamente)\n        global $PCODER_extension;\n        if ($Origen_Archivo==\"A\" && $PCODER_extension==\"\")\n            {\n                $PCODER_partes_extension = explode(\".\",$PCODER_archivo);\n                $PCODER_extension = $PCODER_partes_extension[count($PCODER_partes_extension)-1];\n            }\n\n        //Identifica el tipo de documento a ser aplicado segun la extension del archivo\n        global $PCODER_ModoEditor;\n        for ($i=0;$i<count($PCODER_Modos) && $PCODER_ModoEditor==\'\';$i++)\n            {\n				//Lleva las extensiones a un array para buscar en el\n				$ArregloExtensiones=explode(\"|\",$PCODER_Modos[$i][\"Extensiones\"]);\n                if(in_array($PCODER_extension,$ArregloExtensiones))\n					{\n						$PCODER_ModoEditor=$PCODER_Modos[$i][\"Nombre\"];\n					}\n            }\n		//Valida que no se trate de un archivo sin extension despues de revisar todo\n		if($PCODER_ModoEditor==\"\")\n			{\n				//Asigna por defecto el modo de texto plano\n				if(count($PCODER_partes_extension)==1)\n					$PCODER_ModoEditor=\"Text\";\n			}\n\n\n    //Prepara el nombre de archivo visual sobre el editor en la esquina superior izquierda\n    global $MULTILANG_PCODER_Archivo,$MULTILANG_PCODER_Permisos;\n    $PCODER_PathVisual=\"<div ><i class=\'fa fa-file\'></i> <i data-html=\'true\' data-toggle=\'tooltip\' data-placement=\'bottom\' title=\'<b>{$MULTILANG_PCODER_Archivo}</b>: {$PCODER_archivo}<br><b>{$MULTILANG_PCODER_Permisos}</b>: {$permisos_encontrados}<br><font color=yellow><b>Tipo</b>: {$PCODER_ModoEditor}</font>\'>\".$PCODER_NombreArchivo.\"</i></div>\";\n\n\n    //L329: Marcos para el editor\n    global $CadenaEditoresACE,$PCODER_Titulo;\n    //Agrega marco con el titulo del editor\n    if ($PCODER_Titulo!=\"\")\n        $CadenaEditoresACE.=\'<div class=\"row\" style=\"margin:0px; color:orange; font-size:12px; font-weight:bold; padding:2px;\" id=\"TituloElemento\" align=center><i class=\"fa fa-pencil fa-fw\"></i> \'.$PCODER_Titulo.\'</div>\';\n\n    $CadenaEditoresACE.=\'\n		<div class=\"row\" style=\"margin:0px;\">\n		    <div id=\"EditorD\">\n    			<div id=\"panel_editor_real\" style=\"float:left\">\n    				<div id=\"editor_codigo\" name=\"editor_codigo\" style=\"display:block;  width:100%; height:100vh;\" width=\"100%\" height=\"100vh\"></div>\n    			</div>\n    			<div id=\"panel_editor_clonado\" style=\"float:right\">\n    				<div id=\"editor_clonado\" name=\"editor_clonado\" style=\"display:block;  width:100%; height:100vh; border-style: solid; border-width:1px; border-color:#373737;\" width=\"100%\" height=\"100vh\"></div>\n    			</div>\n    		</div>\n		</div>\';\n\n    //Genera barra de estado del editor y archivo\n    global $CadenaBarraEstado,$MULTILANG_PCODER_DividirNO,$MULTILANG_PCODER_DividirHorizontal,$MULTILANG_PCODER_DividirVertical,$MULTILANG_PCODER_Ir,$MULTILANG_PCODER_SaltarLinea;\n\n    //Define la barra de estado a presentar con el archivo o la cambia mas adelante si se desea simplificada\n    $CadenaMarcosEstados=\'\n		<!-- LINEAS DEL DOCUMENTO -->\n		<div id=\"NroLineasDocumento\" class=\"btn-xs\" style=\"display:inline;\">\n		</div>\n\n		<!-- COLUMNA ACTUAL DEL DOCUMENTO -->\n		<div id=\"NroColumnaDocumento\" class=\"btn-xs\" style=\"display:inline;\">\n		</div>\n\n		<!-- CARACTERES DEL DOCUMENTO -->\n		<div id=\"NroCaracteresDocumento\" class=\"btn-xs\" style=\"display:inline;\">\n		</div>\n\n		<!-- TIPO DOCUMENTO -->\n		<div id=\"TipoDocumento\" class=\"btn-xs\" style=\"display:inline;\">\n		</div>\n\n		<!-- TAMANO DEL DOCUMENTO -->\n		<div id=\"TamanoDocumento\" class=\"btn-xs\" style=\"display:inline;\">\n		</div>\n\n		<!-- FECHA MODIFICACION -->\n		<div id=\"FechaModificadoDocumento\" class=\"btn-xs\" style=\"display:inline;\">\n		</div>\';\n    \n    //Cambia la barra de estado por una mas simple cuando asi es requerido pero sin eliminar los marcos\n    $CadenaBarraEstado=\'\n        <div class=\"row\" id=\"MarcoContenedorInferior\">\n        	<div class=\"col-md-12\">\n        \n        		<div id=\"panel_inferior\">\n        			\n        			<div class=\"well well-sm\" style=\"border:0px; margin:0px; padding:0px; padding-bottom:1px; background: #272727;\">\n        \n        						<!-- FORMULARIO DISPOSICION DE PANTALLA -->\n        						<div style=\"display:inline;\">\n        							<div data-toggle=\"tooltip\" data-placement=\"top\" title=\"\'.$MULTILANG_PCODER_DividirNO.\'\" class=\"btn btn-success btn-xs\" onClick=\"var LMQTP=PCODER_DividirPantalla_NO();\"><i class=\"fa fa-stop fa-fw\"></i></div>\n        							<div data-toggle=\"tooltip\" data-placement=\"top\" title=\"\'.$MULTILANG_PCODER_DividirHorizontal.\'\" class=\"btn btn-danger btn-xs\" onClick=\"var LMQTP=PCODER_DividirPantalla_Horizontal();\"><i class=\"fa fa-pause fa-rotate-90 fa-fw\"></i></div>\n        							<div data-toggle=\"tooltip\" data-placement=\"top\" title=\"\'.$MULTILANG_PCODER_DividirVertical.\'\" class=\"btn btn-danger btn-xs\" onClick=\"var LMQTP=PCODER_DividirPantalla_Vertical();\"><i class=\"fa fa-pause fa-fw\"></i></div>\n        						</div>\n        \n        						<!-- FORMULARIO IR A -->\n        						<!--\n        						<div style=\"display:inline;\">\n        							<input type=\"text\" id=\"linea_salto\" size=10 name=\"linea_salto\" class=\"input-mini btn-xs btn-default\" placeholder=\"\'.$MULTILANG_PCODER_SaltarLinea.\'\">\n        							<div class=\"btn btn-primary btn-xs\" onClick=\"var LMQTP=SaltarALinea();\">\'.$MULTILANG_PCODER_Ir.\' <i class=\"fa fa-arrow-circle-right\"></i></div>\n        						</div>\n        						-->\n        \n        						<font color=\"gray\">\n        							\n                            		<!-- LINEAS DEL DOCUMENTO -->\n                            		<div id=\"NroLineasDocumento\" class=\"btn-xs\" style=\"display:inline;\">\n                            		</div>\n                            \n                            		<!-- COLUMNA ACTUAL DEL DOCUMENTO -->\n                            		<div id=\"NroColumnaDocumento\" class=\"btn-xs\" style=\"display:inline;\">\n                            		</div>\n                            \n                            		<!-- CARACTERES DEL DOCUMENTO -->\n                            		<div id=\"NroCaracteresDocumento\" class=\"btn-xs\" style=\"display:inline;\">\n                            		</div>\n                            \n                            		<!-- TIPO DOCUMENTO -->\n                            		<div id=\"TipoDocumento\" class=\"btn-xs\" style=\"display:inline;\">\n                            		</div>\n                            \n                            		<!-- TAMANO DEL DOCUMENTO -->\n                            		<div id=\"TamanoDocumento\" class=\"btn-xs\" style=\"display:inline;\">\n                            		</div>\n                            \n                            		<!-- FECHA MODIFICACION -->\n                            		<div id=\"FechaModificadoDocumento\" class=\"btn-xs\" style=\"display:inline;\">\n                            		</div>        \n        						</font>\n        \n        			</div>\n        \n        		</div><!-- /.contenedor -->\n        \n        	</div>\n        </div>\';\n\n\n    //L415: Carga librerias\n    echo \'\n        <!-- Carga editor ACE y sus extensiones -->\n    	<script src=\"inc/ace/src-min-noconflict/ace.js\" type=\"text/javascript\" charset=\"utf-8\"></script>\n    	<script src=\"inc/ace/src-min-noconflict/ext-language_tools.js\" type=\"text/javascript\" charset=\"utf-8\"></script>\n\n	<!-- Funciones especificas de PCoder -->\'; ?>\n	<script language=\"JavaScript\">\n	    var MensajeFuncionalidadNoDisponible=\"<center><b>OPCION INACTIVA!!! - FEATURE DISABLED!!!</b></center><HR>Su instalacion de {P}Coder no se encuentra integrada a <a href=\'https://www.practico.org\'>Practico Framework</a><br>Muchas de las caracteristicas solo son habilitadas cuando PCoder se integra de manera nativa con Practico Framework<br><br>Your {P}Coder setup its not embeded into <a href=\'https://www.practico.org\'>Practico Framework</a><br>Many features are available when your PCoder is embeded into a Practico Framework setup\";\n		//Convierte variables de idioma desde PHP a JS\n		var MULTILANG_PCODER_Linea=\"<?php echo $MULTILANG_PCODER_Linea; ?>\";\n		var MULTILANG_PCODER_Columna=\"<?php echo $MULTILANG_PCODER_Columna; ?>\";\n		var MULTILANG_PCODER_Caracteres=\"<?php echo $MULTILANG_PCODER_Caracteres; ?>\";\n		var MULTILANG_PCODER_Tipo=\"<?php echo $MULTILANG_PCODER_Tipo; ?>\";\n		var MULTILANG_PCODER_Tamano=\"<?php echo $MULTILANG_PCODER_Tamano; ?>\";\n		var MULTILANG_PCODER_Modificado=\"<?php echo $MULTILANG_PCODER_Modificado; ?>\";\n		var MULTILANG_PCODER_ErrorRW=\"<?php echo $MULTILANG_PCODER_ErrorRW; ?>\";\n		var MULTILANG_PCODER_Estado=\"<?php echo $MULTILANG_PCODER_Estado; ?>\";\n		var MULTILANG_PCODER_ErrGuardarDefecto=\"<?php echo $MULTILANG_PCODER_ErrGuardarDefecto; ?>\";\n		var MULTILANG_PCODER_ErrGuardarNoPermiso=\"<?php echo $MULTILANG_PCODER_ErrGuardarNoPermiso; ?>\";\n		var MULTILANG_PCODER_Guardando=\"<?php echo $MULTILANG_PCODER_Guardando; ?>\";\n		var MULTILANG_PCODER_Error=\"<?php echo $MULTILANG_PCODER_Error; ?>\";\n		var MULTILANG_PCODER_Finalizado=\"<?php echo $MULTILANG_PCODER_Finalizado; ?>\";\n		var MULTILANG_PCODER_ElementoCreado=\"<?php echo $MULTILANG_PCODER_ElementoCreado; ?>\";\n		var MULTILANG_PCODER_ElementoExiste=\"<?php echo $MULTILANG_PCODER_ElementoExiste; ?>\";\n		var MULTILANG_PCODER_ElementoNoCreado=\"<?php echo $MULTILANG_PCODER_ElementoNoCreado; ?>\";\n		var MULTILANG_PCODER_Propietario=\"<?php echo $MULTILANG_PCODER_Propietario; ?>\";\n		var MULTILANG_PCODER_Permisos=\"<?php echo $MULTILANG_PCODER_Permisos; ?>\";\n		var MULTILANG_PCODER_Eliminado=\"<?php echo $MULTILANG_PCODER_Eliminado; ?>\";\n		var MULTILANG_PCODER_ExtensionNoSoportada=\"<?php echo $MULTILANG_PCODER_ExtensionNoSoportada; ?>\";\n		var MULTILANG_PCODER_HistorialVersiones=\"<?php echo $MULTILANG_PCODER_HistorialVersiones; ?>\";\n		var PCO_PCODER_StandAlone=\"<?php echo $PCO_PCODER_StandAlone; ?>\";\n		var PCOSESS_LoginUsuario=\"<?php echo $PCOSESS_LoginUsuario; ?>\";\n		var MULTILANG_PCODER_AdvertenciaCierre=\"<?php echo $MULTILANG_PCODER_AdvertenciaCierre; ?>\";\n	</script>\n\n\n<?php\n\n\n    \n    \n    ############################################################################\n    ############################################################################\n    ##  Compatilidad/Equivalencia con  mod/pcoder/inc/lib_pcoder.php\n    \n/* ################################################################## */\n/* ################################################################## */\n/*\n	Function: PCODER_EliminarElemento\n	Elimina un elemento en el sistema de ficheros\n	Retorna:\n		1	Operacion exitosa\n		-1	Error\n*/\nif ($PCO_Accion==\"PCODER_EliminarElemento\") \n	{\n		$ResultadoOperacion=\"0\";\n		//Realiza operacion segun el tipo de elemento\n		if($PCODER_TipoElementoFS==\"archivo\")\n			$Eliminacion=unlink($PCODER_ElementoFS);\n		if($PCODER_TipoElementoFS==\"carpeta\")\n			$Eliminacion=rmdir($PCODER_ElementoFS);\n		//Determina valor a devolver\n		if ($Eliminacion)\n			$ResultadoOperacion=\"1\";\n		else\n			$ResultadoOperacion=\"-1\";\n		@ob_clean();\n        echo $ResultadoOperacion;\n        die();\n	}\n\n\n/* ################################################################## */\n/* ################################################################## */\n/*\n	Function: PCODER_EditarPermisos\n	Cambia los permisos o propietario de un elemento en el sistema de ficheros\n	Retorna:\n		1	Operacion exitosa\n		-1	Error cambiando permisos y propietario\n		-2	Error cambiando permisos\n		-3	Error cambiando propietario\n*/\nif ($PCO_Accion==\"PCODER_EditarPermisos\") \n	{\n		$ResultadoOperacion=\"0\";\n\n		//Cambia permisos\n		$CambioPermisos=chmod($PCODER_ElementoFS, $PCODER_PermisosFS );\n		\n		//Cambia propietario\n		$CambioPropietario=chown($PCODER_ElementoFS, $PCODER_PropietarioFS );\n		\n		if ($CambioPermisos && $CambioPropietario)\n			{\n				$ResultadoOperacion=\"1\";\n			}\n		else\n			{\n				if (!$CambioPermisos && !$CambioPropietario)\n					{\n						$ResultadoOperacion=\"-1\";\n					}\n				else\n					{\n						if (!$CambioPermisos)\n							$ResultadoOperacion=\"-2\";\n						if (!$CambioPropietario)\n							$ResultadoOperacion=\"-3\";\n					}\n			}\n		@ob_clean();\n        echo $ResultadoOperacion;\n        die();\n	}\n\n\n/* ################################################################## */\n/* ################################################################## */\n/*\n	Function: PCODER_CrearCarpeta\n	Crea una nueva carpeta sobre el sistema de ficheros\n	Retorna:\n		1	Operacion exitosa\n		-1	La carpeta ya existe\n		-2	La carpeta no se pudo crear\n*/\nif ($PCO_Accion==\"PCODER_CrearCarpeta\") \n	{\n		$ResultadoOperacion=\"0\";\n		//Crea el archivo solo si no existe\n		$ExisteElemento=file_exists($PCODER_ElementoFS);\n		if(!$ExisteElemento)\n			{\n				$CreacionElemento=mkdir($PCODER_ElementoFS);\n				if ($CreacionElemento)\n					$ResultadoOperacion=\"1\";\n				else\n					$ResultadoOperacion=\"-2\";\n			}\n		else\n			$ResultadoOperacion=\"-1\";\n		@ob_clean();\n        echo $ResultadoOperacion;\n        die();\n	}\n\n\n\n\n\n\n\n\n/* ################################################################## */\n/* ################################################################## */\n/*\n	Function: PCOMOD_ObtenerPermisosArchivo\n	Determina cuales son los permisos de un archivo\n*/\nif ($PCO_Accion==\"PCOMOD_ObtenerPermisosArchivo\") \n	{\n		$permisos_encontrados=@substr(sprintf(\'%o\', fileperms($PCODER_archivo)), -4);\n        @ob_clean();\n        echo $permisos_encontrados;\n        die();\n	}\n\n\n/* ################################################################## */\n/* ################################################################## */\n/*\n	Function: PCOMOD_ObtenerPropietarioArchivo\n	Determina el propietario de un archivo\n*/\nif ($PCO_Accion==\"PCOMOD_ObtenerPropietarioArchivo\") \n	{\n        //Arreglo de no disponibilidad POSIX\n        $Arreglo_Sin_POSIX_Usuario=array(\n            name  => \"SinSoportePOSIX\",\n            passwd  => \"SinSoportePOSIX\",\n            uid  => \"SinSoportePOSIX\",\n            gid  => \"SinSoportePOSIX\",\n            gecos  => \"SinSoportePOSIX\",\n            dir  => \"SinSoportePOSIX\",\n            shell  => \"SinSoportePOSIX\");\n\n        if (function_exists(\'posix_getpwuid\'))\n            {\n        		$propietario_encontrado=@posix_getpwuid(fileowner($PCODER_archivo));\n        		$propietario_encontrado=$propietario_encontrado[\'name\'];\n            }\n        else\n            {\n                $propietario_encontrado=$Arreglo_Sin_POSIX_Usuario;\n        		$propietario_encontrado=$propietario_encontrado[\'name\'];\n            }\n\n        @ob_clean();\n        echo $propietario_encontrado;\n        die();\n	}\n\n\n/* ################################################################## */\n/* ################################################################## */\n/*\n	Function: PCOMOD_VerificarPermisosRW\n	Verifica si el archivo cuenta o no con permisos de escritura por parte del usuario que corre el proceso web (generalmente Apache)\n*/\nif ($PCO_Accion==\"PCOMOD_VerificarPermisosRW\") \n	{\n		$permisos_ok=1;\n		$permisos_encontrados=@substr(sprintf(\'%o\', fileperms($PCODER_archivo)), -4);\n		if (!is_writable($PCODER_archivo)) { $permisos_ok=0; }\n        @ob_clean();\n        echo $permisos_ok;\n        die();\n	}\n\n\n/* ################################################################## */\n/* ################################################################## */\n/*\n	Function: PCOMOD_ObtenerTamanoDocumento\n	Obtiene el tamano de elemento o archivo indicado\n*/\nif ($PCO_Accion==\"PCOMOD_ObtenerTamanoDocumento\") \n	{\n        $PCODER_TamanoElemento=@round(filesize($PCODER_archivo)/1024);\n		@ob_clean();\n        echo $PCODER_TamanoElemento;\n        die();\n	}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n    ############################################################################\n    ############################################################################\n    ##  Compatilidad/Equivalencia con  mod/pcoder/inc/variables.php\n            //Define los temas de color claro disponibles para el editor\n            $PCODER_TemasBrillantes[]=array(Nombre => \"Chrome\",	Valor => \"chrome\");\n            $PCODER_TemasBrillantes[]=array(Nombre => \"Clouds\",	Valor => \"clouds\");\n            $PCODER_TemasBrillantes[]=array(Nombre => \"Crimson Editor\",	Valor => \"crimson_editor\");\n            $PCODER_TemasBrillantes[]=array(Nombre => \"Dawn\",	Valor => \"dawn\");\n            $PCODER_TemasBrillantes[]=array(Nombre => \"Dreamweaver\",	Valor => \"dreamweaver\");\n            $PCODER_TemasBrillantes[]=array(Nombre => \"Eclipse\",	Valor => \"eclipse\");\n            $PCODER_TemasBrillantes[]=array(Nombre => \"GitHub\",	Valor => \"github\");\n            $PCODER_TemasBrillantes[]=array(Nombre => \"Solarized Light\",	Valor => \"solarized_light\");\n            $PCODER_TemasBrillantes[]=array(Nombre => \"TextMate\",	Valor => \"textmate\");\n            $PCODER_TemasBrillantes[]=array(Nombre => \"Tomorrow\",	Valor => \"tomorrow\");\n            $PCODER_TemasBrillantes[]=array(Nombre => \"XCode\",	Valor => \"xcode\");\n            $PCODER_TemasBrillantes[]=array(Nombre => \"Kuroir\",	Valor => \"kuroir\");\n            $PCODER_TemasBrillantes[]=array(Nombre => \"KatzenMilch\",	Valor => \"katzenmilch\");\n        \n        \n            //Define los temas de color oscuro disponibles para el editor\n            $PCODER_TemasOscuros[]=array(Nombre => \"Ambiance\",	Valor => \"ambiance\");\n            $PCODER_TemasOscuros[]=array(Nombre => \"Chaos\",	Valor => \"chaos\");\n            $PCODER_TemasOscuros[]=array(Nombre => \"Clouds Midnight\",	Valor => \"clouds_midnight\");\n            $PCODER_TemasOscuros[]=array(Nombre => \"Cobalt\",	Valor => \"cobalt\");\n            $PCODER_TemasOscuros[]=array(Nombre => \"idle Fingers\",	Valor => \"idle_fingers\");\n            $PCODER_TemasOscuros[]=array(Nombre => \"krTheme\",	Valor => \"kr_theme\");\n            $PCODER_TemasOscuros[]=array(Nombre => \"Merbivore\",	Valor => \"merbivore\");\n            $PCODER_TemasOscuros[]=array(Nombre => \"Merbivore Soft\",	Valor => \"merbivore_soft\");\n            $PCODER_TemasOscuros[]=array(Nombre => \"Mono Industrial\",	Valor => \"mono_industrial\");\n            $PCODER_TemasOscuros[]=array(Nombre => \"Monokai\",	Valor => \"monokai\");\n            $PCODER_TemasOscuros[]=array(Nombre => \"Pastel on dark\",	Valor => \"pastel_on_dark\");\n            $PCODER_TemasOscuros[]=array(Nombre => \"Solarized Dark\",	Valor => \"solarized_dark\");\n            $PCODER_TemasOscuros[]=array(Nombre => \"Terminal\",	Valor => \"terminal\");\n            $PCODER_TemasOscuros[]=array(Nombre => \"Tomorrow Night\",	Valor => \"tomorrow_night\");\n            $PCODER_TemasOscuros[]=array(Nombre => \"Tomorrow Night Blue\",	Valor => \"tomorrow_night_blue\");\n            $PCODER_TemasOscuros[]=array(Nombre => \"Tomorrow Night Bright\",	Valor => \"tomorrow_night_bright\");\n            $PCODER_TemasOscuros[]=array(Nombre => \"Tomorrow Night 80s\",	Valor => \"tomorrow_night_eighties\");\n            $PCODER_TemasOscuros[]=array(Nombre => \"Twilight\",	Valor => \"twilight\");\n            $PCODER_TemasOscuros[]=array(Nombre => \"Vibrant Ink\",	Valor => \"vibrant_ink\");\n\n\n    ############################################################################\n    ##  Compatilidad/Equivalencia con  mod/pcoder/inc/marco_teclado.php\n	//Genera dialogo modal para Atajos de Teclado\n            global $MULTILANG_PCODER_Ayuda,$MULTILANG_PCODER_AtajosTitPcoder;\n            PCO_AbrirDialogoModal(\"AtajosTeclado\",$MULTILANG_PCODER_Ayuda.\': <b>\'.$MULTILANG_PCODER_AtajosTitPcoder.\'</b>\',\"\"); ?>\n                <DIV style=\"DISPLAY: block; OVERFLOW: auto; WIDTH: 100%; POSITION: relative; HEIGHT: 400px\">\n                    <?php PCODER_PresentarKeyBindings(); ?>\n                </DIV>\n            <?php \n                $barra_herramientas_modal=\'\n                <button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\">\'.$MULTILANG_PCODER_Cerrar.\' {<i class=\"fa fa-keyboard-o\"></i> Esc}</button>\';\n                PCO_CerrarDialogoModal($barra_herramientas_modal);\n\n\n    ############################################################################\n    ############################################################################\n    ##  Compatilidad/Equivalencia con  mod/pcoder/inc/marco_acerca.php\n	//Genera dialogo modal para Acerca de PCoder\n            global $MULTILANG_PCODER_Acerca,$MULTILANG_PCODER_Cerrar;\n            PCO_AbrirDialogoModal(\"myModalACERCADEPCODER\",$MULTILANG_PCODER_Acerca); ?>\n        		<div align=\"center\">\n        			<br><h2><b>{P}Coder </b><i>ver Embebido</i></h2>\n        			Practico CODe EditoR<br><br>\n        			 Powered by <a href=\"http://www.practico.org/\"><i>Practico Framework PHP (www.practico.org)</i></a><hr>\n        \n        			   <b>Editor de Código en la Nube basado en PHP<br></b>\n        			   Copyright (C) 2015  John F. Arroyave Gutiérrez<br><br>\n        		</div>\n            <?php \n                $barra_herramientas_modal=\'\n                <button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\">\'.$MULTILANG_PCODER_Cerrar.\' {<i class=\"fa fa-keyboard-o\"></i> Esc}</button>\';\n                PCO_CerrarDialogoModal($barra_herramientas_modal);\n\n    ############################################################################\n    ############################################################################\n    ##  Compatilidad/Equivalencia con  mod/pcoder/inc/marco_preferencias.php\n	//Genera dialogo modal para marco de preferencias\n	        global $MULTILANG_PCODER_Preferencias,$MULTILANG_PCODER_TamanoFuente,$MULTILANG_PCODER_AparienciaEditor;\n	        global $MULTILANG_PCODER_LenguajeProg,$MULTILANG_PCODER_VerCaracteres,$MULTILANG_PCODER_No,$MULTILANG_PCODER_Si;\n	        global $MULTILANG_PCODER_RevisarSintaxis;\n\n	        PCO_AbrirDialogoModal(\"myModalPREFERENCIAS\",$MULTILANG_PCODER_Preferencias); ?>\n			<div class=\"row\">\n				<div class=\"col-lg-6\">\n						<label for=\"tamano_fuente\"><?php echo $MULTILANG_PCODER_TamanoFuente; ?></label>\n						<select id=\"tamano_fuente\" size=\"1\" class=\"form-control btn-warning\" onchange=\"CambiarFuenteEditor(this.value)\">\n						  <option value=\"10px\">10px</option>\n						  <option value=\"11px\">11px</option>\n						  <option value=\"12px\">12px</option>\n						  <option value=\"13px\">13px</option>\n						  <option value=\"14px\" selected=\"selected\">14px</option>\n						  <option value=\"16px\">16px</option>\n						  <option value=\"18px\">18px</option>\n						  <option value=\"20px\">20px</option>\n						  <option value=\"24px\">24px</option>\n						</select>\n				</div>\n				<div class=\"col-lg-6\">\n						<label for=\"tema_grafico\"><?php echo $MULTILANG_PCODER_AparienciaEditor; ?></label>\n						<select id=\"tema_grafico\" size=\"1\" class=\"form-control btn-primary\" onchange=\"CambiarTemaEditor(this.value)\">\n						  <optgroup label=\"Brillantes / Bright\">\n							  <?php\n								//Presenta los temas claros disponibles\n								for ($i=0;$i<count($PCODER_TemasBrillantes);$i++)\n									echo \'<option value=\"ace/theme/\'.$PCODER_TemasBrillantes[$i][\"Valor\"].\'\">\'.$PCODER_TemasBrillantes[$i][\"Nombre\"].\'</option>\';\n							  ?>\n						  </optgroup>\n						  <optgroup label=\"Oscuros / Dark\">\n							  <?php\n								//Presenta los temas claros disponibles\n								for ($i=0;$i<count($PCODER_TemasOscuros);$i++)\n									{\n										$EstadoSeleccionTema=\"\";\n										if ($PCODER_TemasOscuros[$i][\"Valor\"]==\"ambiance\")\n											$EstadoSeleccionTema=\" SELECTED \";\n										echo \'<option value=\"ace/theme/\'.$PCODER_TemasOscuros[$i][\"Valor\"].\'\" \'.$EstadoSeleccionTema.\'>\'.$PCODER_TemasOscuros[$i][\"Nombre\"].\'</option>\';\n									}\n							  ?>\n						  </optgroup>\n						</select>\n				</div>\n			</div>\n			<hr>\n			<div class=\"row\">\n				<div class=\"col-lg-6\">\n						<label for=\"modo_archivo_preferencias\"><?php echo $MULTILANG_PCODER_LenguajeProg; ?></label>\n						<select id=\"modo_archivo_preferencias\" size=\"1\" class=\"form-control btn-info\" onchange=\"CambiarModoEditor(this.value)\">\n							  <?php\n								//Presenta los lenguajes disponibles\n								for ($i=0;$i<count($PCODER_Modos);$i++)\n									echo \'<option value=\"ace/mode/\'.$PCODER_Modos[$i][\"Nombre\"].\'\">\'.$PCODER_Modos[$i][\"Nombre\"].\'</option>\';\n							  ?>\n						</select>\n				</div>\n				<div class=\"col-lg-6\">\n						<label for=\"modo_invisibles\"><?php echo $MULTILANG_PCODER_VerCaracteres; ?></label>\n						<select id=\"modo_invisibles\" size=\"1\" class=\"form-control btn-default\" onchange=\"CaracteresInvisiblesEditor(this.value)\">\n							<option value=\"0\"><?php echo $MULTILANG_PCODER_No; ?></option>\n							<option value=\"1\"><?php echo $MULTILANG_PCODER_Si; ?></option>\n						</select>\n				</div>\n			</div>\n			<hr>\n			<div class=\"row\">\n				<div class=\"col-lg-6\">\n						<label for=\"verificacion_sintaxis\"><?php echo $MULTILANG_PCODER_RevisarSintaxis; ?></label>\n						<select id=\"verificacion_sintaxis\" size=\"1\" class=\"form-control btn-success\" onchange=\"VerificarSintaxisEditor(this.value)\">\n							<option value=\"0\"><?php echo $MULTILANG_PCODER_No; ?></option>\n							<option value=\"1\"><?php echo $MULTILANG_PCODER_Si; ?></option>\n						</select>\n				</div>\n				<div class=\"col-lg-6\">\n					<!--\n						<label for=\"verificacion_autocompletado\"><?php echo $MULTILANG_PCODER_RevisarSintaxis; ?></label>\n						<select id=\"verificacion_autocompletado\" size=\"1\" class=\"form-control btn-success\" onchange=\"VerificarAutocompletadoEditor(this.value)\">\n							<option value=\"0\"><?php echo $MULTILANG_PCODER_No; ?></option>\n							<option value=\"1\"><?php echo $MULTILANG_PCODER_Si; ?></option>\n						</select>\n					-->\n				</div>\n			</div>\n    <?php \n            $barra_herramientas_modal=\'\n            <button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\">\'.$MULTILANG_PCODER_Cerrar.\' {<i class=\"fa fa-keyboard-o\"></i> Esc}</button>\';\n            PCO_CerrarDialogoModal($barra_herramientas_modal);\n\n\n    ############################################################################\n    ############################################################################\n    ##  Compatilidad/Equivalencia con  mod/pcoder/inc/marco_operarfs.php\n	//Genera dialogo modal para crear archivos o carpetas\n	global $MULTILANG_PCODER_OperacionesFS,$MULTILANG_PCODER_Ubicacion,$MULTILANG_PCODER_Explorar,$MULTILANG_PCODER_Operacion;\n	global $MULTILANG_PCODER_CrearArchivo,$MULTILANG_PCODER_CrearCarpeta,$MULTILANG_PCODER_EditarPermisos,$MULTILANG_PCODER_SubirArchivo,$MULTILANG_PCODER_EliminarElemento;\n	global $MULTILANG_PCODER_Nombre,$MULTILANG_PCODER_Permisos,$MULTILANG_PCODER_Propietario,$MULTILANG_PCODER_Aceptar,$MULTILANG_Cancelar,$MULTILANG_Cerrar;\n	global $MULTILANG_PCODER_Comunes,$MULTILANG_PCODER_Predeterminado,$MULTILANG_PCODER_PathDisco,$MULTILANG_PCODER_PathFull;\n	PCO_AbrirDialogoModal(\"myModalOPERARFS\",$MULTILANG_PCODER_OperacionesFS); ?>\n			<div class=\"row\">\n				<div class=\"col-xs-12 col-sm-12 col-md-6 col-lg-12\">\n					<iframe width=\"100%\" height=400 src=\"index.php?PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:-34:0&Presentar_FullScreen=1&Precarga_EstilosBS=1&PFE_OcultarMigasPan=0&PFE_VistaBasicaArchivos=1&PFE_VisibleBotonDT=0&PFE_VisibleBotonCargarArchivo=0&PFE_VisibleBotonCargarCloud=0&PFE_VisibleBotonDescargar=0&PFE_ActivarDataTable=0&PFE_VisibleBotonCargarArchivo=0&PFE_VisibleBotonCargarCloud=0&PFE_VisibleBotonDT=0&PFE_OcultarArchivos=1\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\">Cargando...</iframe>\n				</div>\n			</div>\n    <?php \n        $barra_herramientas_modal=\'\n        <button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\"><i class=\"fa fa-times fa-fw\"></i> \'.$MULTILANG_Cerrar.\' {<i class=\"fa fa-keyboard-o\"></i> Esc}</button>\';\n        PCO_CerrarDialogoModal($barra_herramientas_modal);\n\n\n    ############################################################################\n    ############################################################################\n	//Genera dialogo modal para abrir archivos\n	global $MULTILANG_PCODER_OperacionesFS,$MULTILANG_PCODER_Ubicacion,$MULTILANG_PCODER_Explorar,$MULTILANG_PCODER_Operacion;\n	global $MULTILANG_PCODER_CrearArchivo,$MULTILANG_PCODER_CrearCarpeta,$MULTILANG_PCODER_EditarPermisos,$MULTILANG_PCODER_SubirArchivo,$MULTILANG_PCODER_EliminarElemento;\n	global $MULTILANG_PCODER_Nombre,$MULTILANG_PCODER_Permisos,$MULTILANG_PCODER_Propietario,$MULTILANG_PCODER_Aceptar,$MULTILANG_Cancelar,$MULTILANG_Cerrar;\n	global $MULTILANG_PCODER_Comunes,$MULTILANG_PCODER_Predeterminado,$MULTILANG_PCODER_PathDisco,$MULTILANG_PCODER_PathFull;\n	PCO_AbrirDialogoModal(\"myModalABRIRFS\",\"Abrir/Editar un archivo\"); ?>\n			<div class=\"row\">\n				<div class=\"col-xs-12 col-sm-12 col-md-6 col-lg-12\">\n					<iframe width=\"100%\" height=400 src=\"index.php?PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:-34:0&Presentar_FullScreen=1&Precarga_EstilosBS=1&PFE_OcultarMigasPan=0&PFE_VistaBasicaArchivos=1&PFE_VisibleBotonDT=0&PFE_VisibleBotonCargarArchivo=0&PFE_VisibleBotonCargarCloud=0&PFE_VisibleBotonDescargar=0&PFE_ActivarDataTable=0&PFE_VisibleBotonCargarArchivo=0&PFE_VisibleBotonCargarCloud=0&PFE_VisibleBotonDT=0&PFE_OcultarBarraHerramientas=0&PFE_VisibleBotonEliminar=0&PFE_VisibleBotonRenombrar=0&PFE_VisibleBotonPermisos=0&PFE_VisibleBotonNuevoArchivo=0&PFE_VisibleBotonNuevoDirectorio=0&PFE_ActivarCargarEnPcoder=1\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\">Cargando...</iframe>\n				</div>\n			</div>\n    <?php \n        $barra_herramientas_modal=\'\n        <button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\"><i class=\"fa fa-times fa-fw\"></i> \'.$MULTILANG_Cerrar.\' {<i class=\"fa fa-keyboard-o\"></i> Esc}</button>\';\n        PCO_CerrarDialogoModal($barra_herramientas_modal);\n\n\n    ############################################################################\n    ############################################################################\n    //Define los modos o lenguajes soportados por el editor\n            global $PCODER_LenguajesResaltado,$MULTILANG_PCODER_LenguajeResaltado;\n            //Genera la lista con las opciones\n            $PCODER_LenguajesResaltado=\"\";\n            $PCODER_LenguajesResaltado.=\"<select style=\'width:25px; padding:0px;\' id=\'modo_archivo_top\' size=\'1\' class=\' btn-xs btn-primary\' onclick=\'event.preventDefault();\' onchange=\'event.preventDefault(); CambiarModoEditor(this.value);\'  data-toggle=\'tooltip\' data-placement=\'bottom\' title=\'{$MULTILANG_PCODER_LenguajeResaltado}\'>\";\n        		for ($i=0;$i<count($PCODER_Modos);$i++)\n        		    $PCODER_LenguajesResaltado.=\"<option class=\'btn-xs\' value=\'ace/mode/\".$PCODER_Modos[$i][\"Nombre\"].\"\' >\".$PCODER_Modos[$i][\"Nombre\"].\"</option>\";\n            $PCODER_LenguajesResaltado.=\"</select>\";\n\n        \n/* ################################################################## */\n/* ################################################################## */\n    ##  Compatilidad/Equivalencia con  mod/pcoder/inc/comunes.php\n\n/*\n    Function: Presentar_KeyBindings\n    Presenta la inforamcion de ayuda de atajos de teclado\n*/\nfunction PCODER_PresentarKeyBindings()\n    {\n        global $MULTILANG_PCODER_Basicos,$MULTILANG_PCODER_Otros,$MULTILANG_PCODER_Desplazar,$MULTILANG_PCODER_Seleccionar;\n        echo \'\n            <div class=\"btn btn-success btn-block\"><b>\'.$MULTILANG_PCODER_Basicos.\'</b></div>\n            <table class=\"table table-responsive table-bordered table-condensed table-hover btn-xs\">\n                <thead>\n                    <tr>\n                        <td><b>PC (Windows/Linux)</b></td>\n                        <td><b>Mac</b></td>\n                        <td><b>Acción</b></td>\n                    </tr>\n                </thead>\n                <tbody>\n                    <tr>\n                        <td>Ctrl-L</td>\n                        <td>Command-L</td>\n                        <td>Ir a la línea</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-F</td>\n                        <td>Command-F</td>\n                        <td>Buscar</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-H</td>\n                        <td>Command-Option-F</td>\n                        <td>Buscar y reemplazar</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-K</td>\n                        <td>Command-G</td>\n                        <td>Buscar siguiente</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Shift-K</td>\n                        <td>Command-Shift-G</td>\n                        <td>Buscar anterior</td>\n                    </tr>\n                    <tr>\n                        <td>Tab</td>\n                        <td>Tab</td>\n                        <td>Agregar sangría</td>\n                    </tr>\n                    <tr>\n                        <td>Shift-Tab</td>\n                        <td>Shift-Tab</td>\n                        <td>Disminuir sangría</td>\n                    </tr>\n                    <tr>\n                        <td>Alt-L, Ctrl-F1</td>\n                        <td>Command-Option-L, Command-F1</td>\n                        <td>Recoger/Expandir selección</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-P</td>\n                        <td></td>\n                        <td>Buscar el siguiente elemento que abre o cierra el actual (llaves, paréntesis,cochetes,etc)</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Shift-P</td>\n                        <td></td>\n                        <td>Buscar el siguiente elemento que abre o cierra el actual (llaves, paréntesis,cochetes,etc)</td>\n                    </tr>\n                </tbody>\n            </table>\n\n            <div class=\"btn btn-success btn-block\"><b>\'.$MULTILANG_PCODER_Desplazar.\'</b></div>\n            <table class=\"table table-responsive table-bordered table-condensed table-hover btn-xs\">\n                <thead>\n                    <tr>\n                        <td><b>PC (Windows/Linux)</b></td>\n                        <td><b>Mac</b></td>\n                        <td><b>Acción</b></td>\n                    </tr>\n                </thead>\n                <tbody>\n                    <tr>\n                        <td>Down</td>\n                        <td>Down, Ctrl-N</td>\n                        <td>Bajar una línea</td>\n                    </tr>\n                    <tr>\n                        <td>Up</td>\n                        <td>Up, Ctrl-P</td>\n                        <td>Subir una línea</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-End</td>\n                        <td>Command-End, Command-Down</td>\n                        <td>Ir al final</td>\n                    </tr>\n                    <tr>\n                        <td>Left</td>\n                        <td>Left, Ctrl-B</td>\n                        <td>Ir a la izquierda</td>\n                    </tr>\n                    <tr>\n                        <td>Alt-Right, End</td>\n                        <td>Command-Right, End, Ctrl-E</td>\n                        <td>Ir al final de la línea</td>\n                    </tr>\n                    <tr>\n                        <td>Alt-Left, Home</td>\n                        <td>Command-Left, Home, Ctrl-A</td>\n                        <td>Ir al comienzo de la línea</td>\n                    </tr>\n                    <tr>\n                        <td>PageDown</td>\n                        <td>Option-PageDown, Ctrl-V</td>\n                        <td>Ir una página abajo</td>\n                    </tr>\n                    <tr>\n                        <td>PageUp</td>\n                        <td>Option-PageUp</td>\n                        <td>Ir una página arriba</td>\n                    </tr>\n                    <tr>\n                        <td>Right</td>\n                        <td>Right, Ctrl-F</td>\n                        <td>Ir a la derecha</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Home</td>\n                        <td>Command-Home, Command-Up</td>\n                        <td>Ir al inicio del documento</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Left</td>\n                        <td>Option-Left</td>\n                        <td>Ir una palabra a la izquierda</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Right</td>\n                        <td>Option-Right</td>\n                        <td>Ir una palabra a la derecha</td>\n                    </tr>\n                    <tr>\n                        <td>Alt-Down</td>\n                        <td>Option-Down</td>\n                        <td>Mover una línea abajo</td>\n                    </tr>\n                    <tr>\n                        <td>Alt-Up</td>\n                        <td>Option-Up</td>\n                        <td>Mover una línea arriba</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Alt-Shift-Up</td>\n                        <td>Ctrl-Option-Shift-Up</td>\n                        <td>Mover multicursor de la línea actual a la línea superior</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Alt-Shift-Down</td>\n                        <td>Ctrl-Option-Shift-Down</td>\n                        <td>Mover multicursor de la línea actual a la línea inferior</td>\n                    </tr>\n                    <tr>\n                        <td>Insert</td>\n                        <td>Insert</td>\n                        <td>Sobreescribir en el cursor</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Alt-Shift-Right</td>\n                        <td>Ctrl-Option-Shift-Right</td>\n                        <td>Remover la ocurrencia actual de la multiseleccion y moverse al siguiente</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Alt-Shift-Left</td>\n                        <td>Ctrl-Option-Shift-Left</td>\n                        <td>Remover la ocurrencia actual de la multiseleccion y moverse al anterior</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-D</td>\n                        <td>Command-D</td>\n                        <td>Remover línea</td>\n                    </tr>\n                    <tr>\n                        <td>Alt-Delete</td>\n                        <td>Ctrl-K</td>\n                        <td>Remover hasta el fin de línea</td>\n                    </tr>\n                    <tr>\n                        <td>Alt-Backspace</td>\n                        <td>Command-Backspace</td>\n                        <td>Remover hasta el inicio de línea</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Backspace</td>\n                        <td>Option-Backspace, Ctrl-Option-Backspace</td>\n                        <td>Remover palabra a la izquierda</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Delete</td>\n                        <td>Option-Delete</td>\n                        <td>Remover palabra a la derecha</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Down</td>\n                        <td>Command-Down</td>\n                        <td>Desplazar una línea hacia abajo</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Up</td>\n                        <td></td>\n                        <td>Desplazar una línea hacia arriba</td>\n                    </tr>\n                    <tr>\n                        <td></td>\n                        <td>Option-PageDown	</td>\n                        <td>Desplazar una página hacia abajo</td>\n                    </tr>\n                    <tr>\n                        <td></td>\n                        <td>Option-PageUp</td>\n                        <td>Desplazar una página hacia arriba</td>\n                    </tr>\n                </tbody>\n            </table>\n\n            <div class=\"btn btn-success btn-block\"><b>\'.$MULTILANG_PCODER_Seleccionar.\'</b></div>\n            <table class=\"table table-responsive table-bordered table-condensed table-hover btn-xs\">\n                <thead>\n                    <tr>\n                        <td><b>PC (Windows/Linux)</b></td>\n                        <td><b>Mac</b></td>\n                        <td><b>Acción</b></td>\n                    </tr>\n                </thead>\n                <tbody>\n                    <tr>\n                        <td>Ctrl-A</td>\n                        <td>Command-A</td>\n                        <td>Seleccionar todo</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Shift-L</td>\n                        <td>Ctrl-Shift-L</td>\n                        <td>Seleccionar todo de una multiselección</td>\n                    </tr>\n                    <tr>\n                        <td>Shift-Down</td>\n                        <td>Shift-Down</td>\n                        <td>Seleccionar hacia abajo</td>\n                    </tr>\n                    <tr>\n                        <td>Shift-Left</td>\n                        <td>Shift-Left</td>\n                        <td>Seleccionar hacia la izquierda</td>\n                    </tr>\n                    <tr>\n                        <td>Shift-End</td>\n                        <td>Shift-End</td>\n                        <td>Seleccionar hasta el fin de línea</td>\n                    </tr>\n                    <tr>\n                        <td>Shift-Home</td>\n                        <td>Shift-Home</td>\n                        <td>Seleccionar hasta el comienzo de línea</td>\n                    </tr>\n                    <tr>\n                        <td>Shift-PageDown</td>\n                        <td>Shift-PageDown</td>\n                        <td>Seleccionar una página hacia abajo</td>\n                    </tr>\n                    <tr>\n                        <td>Shift-PageUp</td>\n                        <td>Shift-PageUp</td>\n                        <td>Seleccionar una página hacia arriba</td>\n                    </tr>\n                    <tr>\n                        <td>Shift-Right</td>\n                        <td>Shift-Right</td>\n                        <td>Seleccionar hacia la derecha</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Shift-End</td>\n                        <td>Command-Shift-Down</td>\n                        <td>Seleccionar hasta el fin del documento</td>\n                    </tr>\n                    <tr>\n                        <td>Alt-Shift-Right</td>\n                        <td>Command-Shift-Right	</td>\n                        <td>Seleccionar hasta el fin de línea</td>\n                    </tr>\n                    <tr>\n                        <td>Alt-Shift-Left</td>\n                        <td>Command-Shift-Left</td>\n                        <td>Seleccionar hasta el comienzo de línea</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Shift-Home</td>\n                        <td>Command-Shift-Up</td>\n                        <td>Seleccionar hasta el inicio del documento</td>\n                    </tr>\n                    <tr>\n                        <td>Shift-Up</td>\n                        <td>Shift-Up</td>\n                        <td>Seleccionar hacia arriba</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Shift-Left</td>\n                        <td>Option-Shift-Left</td>\n                        <td>Seleccionar palabra a la izquierda</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Shift-Right</td>\n                        <td>Option-Shift-Right</td>\n                        <td>Seleccionar palabra a la derecha</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Shift-D</td>\n                        <td>Command-Shift-D</td>\n                        <td>Duplicar la selección</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Alt-Up</td>\n                        <td>Ctrl-Option-Up</td>\n                        <td>Agregar multicursor arriba</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Alt-Down</td>\n                        <td>Ctrl-Option-Down</td>\n                        <td>Agregar multicursor abajo</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Alt-Right</td>\n                        <td>Ctrl-Option-Right</td>\n                        <td>Añadir siguiente aparición de selección múltiple</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Alt-Left</td>\n                        <td>Ctrl-Option-Left</td>\n                        <td>Añadir previa aparición de selección múltiple</td>\n                    </tr>\n                    <tr>\n                        <td></td>\n                        <td>Ctrl-L</td>\n                        <td>Centrar la selección</td>\n                    </tr>\n                </tbody>\n            </table>\n\n\n            <div class=\"btn btn-success btn-block\"><b>\'.$MULTILANG_PCODER_Otros.\'</b></div>\n            <table class=\"table table-responsive table-bordered table-condensed table-hover btn-xs\">\n                <thead>\n                    <tr>\n                        <td><b>PC (Windows/Linux)</b></td>\n                        <td><b>Mac</b></td>\n                        <td><b>Acción</b></td>\n                    </tr>\n                </thead>\n                <tbody>\n                    <tr>\n                        <td>Ctrl-Alt-E</td>\n                        <td></td>\n                        <td>Grabar una macro</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Shift-E</td>\n                        <td>Command-Shift-E</td>\n                        <td>Ejecutar una macro</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Z</td>\n                        <td>Command-Z</td>\n                        <td>Deshacer</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Shift-Z, Ctrl-Y</td>\n                        <td>Command-Shift-Z, Command-Y</td>\n                        <td>Rehacer</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Shift-U</td>\n                        <td>Ctrl-Shift-U</td>\n                        <td>Cambiar a minúsculas</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-U</td>\n                        <td>Ctrl-U</td>\n                        <td>Cambiar a mayúsculas</td>\n                    </tr>\n                    <tr>\n                        <td>Alt-Shift-Down</td>\n                        <td>Command-Option-Down</td>\n                        <td>Copiar línea debajo</td>\n                    </tr>\n                    <tr>\n                        <td>Alt-Shift-Up</td>\n                        <td>Command-Option-Up</td>\n                        <td>Copiar línea encima</td>\n                    </tr>\n                    <tr>\n                        <td>Delete</td>\n                        <td></td>\n                        <td>Eliminar</td>\n                    </tr>\n                    <tr>\n                        <td>Alt-0</td>\n                        <td>Command-Option-0</td>\n                        <td>Recoger todo</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-Enter, F11</td>\n                        <td>Command-Enter</td>\n                        <td>Pantalla completa</td>\n                    </tr>\n                    <tr>\n                        <td></td>\n                        <td>Ctrl-O</td>\n                        <td>Dividir línea</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-/</td>\n                        <td>Command-/</td>\n                        <td>Cambiar a comentario</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl-T</td>\n                        <td>Ctrl-T</td>\n                        <td>Transponer letras</td>\n                    </tr>\n                    <tr>\n                        <td>Alt-Shift-L, Ctrl-Shift-F1</td>\n                        <td>Command-Option-Shift-L, Command-Shift-F1</td>\n                        <td>Expandir</td>\n                    </tr>\n                    <tr>\n                        <td>Alt-Shift-0</td>\n                        <td>Command-Option-Shift-0</td>\n                        <td>Expandir todo</td>\n                    </tr>\n                    <tr>\n                        <td>Ctrl- ,</td>\n                        <td>Command- ,</td>\n                        <td>Ver menu de configuración</td>\n                    </tr>\n                </tbody>\n            </table>\n        \';\n    }','<?php\n    ##########################################################################\n    ##########################################################################\n    //VERIFICA SEGURIDAD: Perfil de Administrador requerido antes de continuar\n    global $PCOSESS_LoginUsuario,$MULTILANG_ErrorTitAuth,$MULTILANG_WSErr06;\n    if (!PCO_EsAdministrador(@$PCOSESS_LoginUsuario))\n        {\n            PCO_Mensaje(\"{$MULTILANG_ErrorTitAuth}\", \"{$MULTILANG_WSErr06}\", \'\', \'fa fa-exclamation-triangle fa-3x texto-rojo texto-blink\', \'alert alert-warning alert-dismissible\');\n            PCO_Auditar(\"$PCOSESS_LoginUsuario Intenta acceso no autorizado Frm:-33\",\"SECLog:event\");\n            die();\n        }\n    ##########################################################################\n    ##########################################################################\n\n\nglobal $PCODER_Accion,$PCODER_archivo,$Origen_Archivo,$Tabla_Archivo,$Campo_Archivo,$Llave_Registro,$PCOSESS_LoginUsuario,$ArchivoBloqueo;\n\n\n\n\n################################################################################\n################################################################################\n/*\n	Function: PCO_OpenAI_CODEX\n	Hace llamado a la funcion de completado/predictiva de OpenAI\n*/\nif ($PCODER_Accion==\"PCO_OpenAI_CODEX\") \n	{\n        global $PCODER_PromptAI,$PCODER_PrePromptAI,$PCODER_PosPromptAI,$PCODER_RespuestaSoloContenido;\n        $RespuestaAI= PCO_OpenAI_CODEX(\"gpt-3.5-turbo\",\"{$PCODER_PrePromptAI} {$PCODER_PromptAI} {$PCODER_PosPromptAI}\",2048,0.7,\"\",\"\");\n        if ($PCODER_RespuestaSoloContenido==1)\n            {\n                $ObjetoJSON_Respuesta = json_decode($RespuestaAI, true);\n                $RespuestaAI = $ObjetoJSON_Respuesta[\'choices\'][0][\'message\'][\'content\'];\n            }\n        @ob_clean();\n        //echo $PCODER_PrePromptAI.$RespuestaAI.$PCODER_PosPromptAI;\n        echo $RespuestaAI;\n        die();\n	}\n\n################################################################################\n################################################################################\n/*\n	Function: PCODER_EliminarBloqueo\n	Elimina un bloqueo de la tabla de pcoder siempre y cuando sea un archivo abierto por el usuario activo\n*/\nif ($PCODER_Accion==\"PCODER_EliminarBloqueo\") \n	{\n        PCO_EjecutarSQLUnaria(\"DELETE FROM core_pcoder_bloqueos WHERE archivo=\'{$ArchivoBloqueo}\' AND usuario=\'{$PCOSESS_LoginUsuario}\' \");\n        @ob_clean();\n        die();\n	}\n\n################################################################################\n################################################################################\n/*\n	Function: PCOMOD_EliminarHistorial\n	Dado un ID de registro de historial lo elimina de la tabla.\n*/\nif ($PCODER_Accion==\"PCODER_EliminarHistorial\") \n	{\n        PCO_EjecutarSQLUnaria(\"DELETE FROM core_pcoder_historial WHERE id={$Llave_Registro} \");\n\n   		@ob_clean();\n        echo \"Eliminado\";\n        die();\n	}\n\n\n################################################################################\n################################################################################\n/*\n	Function: PCOMOD_ObtenerContenidoArchivo\n	Obtiene el contenido del archivo indicado dependiendo de su origen (A=rchivo o B=asedatos)\n*/\nif ($PCODER_Accion==\"PCOMOD_ObtenerContenidoArchivo\") \n	{\n	    if ($Origen_Archivo==\"A\")\n            $PCODER_Contenido_original_archivo=@file_get_contents($PCODER_archivo, FILE_BINARY);   // FILE_TEXT | FILE_BINARY | FILE_USE_INCLUDE_PATH\n\n	    if ($Origen_Archivo==\"B\")\n            $PCODER_Contenido_original_archivo=PCO_EjecutarSQL(\"SELECT {$Campo_Archivo} FROM {$Tabla_Archivo} WHERE id={$Llave_Registro} \")->fetchColumn();\n\n        //$PCODER_ContenidoArchivo=@htmlspecialchars($PCODER_Contenido_original_archivo); //Para cargue como estaba en forma original (Sin Ajax)\n        $PCODER_ContenidoArchivo= $PCODER_Contenido_original_archivo;\n\n        //DOCS: http://stackoverflow.com/questions/15186558/loading-a-html-file-into-ace-editor-pre-tag\n        //DOCS: <pre id=\"editor\"><INTE ? php echo htmlentities(file_get_contents($input_dir.\"abc.html\")); ? ></pre>\n        //$PCODER_ContenidoArchivo=@htmlspecialchars(addslashes($PCODER_ContenidoArchivo));\n   		@ob_clean();\n        echo $PCODER_ContenidoArchivo;\n        die();\n	}\n\n\n################################################################################\n################################################################################\n/*\n	Function: PCOMOD_GuardarArchivo\n	Almacena un archivo previamente abierto con el PCODER\n\n	Salida:\n		Archivo para edicion en pantalla\n*/\nif ($PCODER_Accion==\"PCOMOD_GuardarArchivo\") \n	{\n	    global $TablasCore,$PCOSESS_LoginUsuario,$PCODER_AreaTexto,$PCODER_NroLineasDocumento,$PCODER_NroCaracteresDocumento;\n        global $_SeparadorCampos_,$PCO_FechaOperacionGuiones,$PCO_HoraOperacionPuntos,$CantidadLineas,$CantidadCaracteres,$ContenidoArchivo;\n\n        //Guarda el archivo\n        $ContenidoArchivo=$PCODER_AreaTexto;\n        $ContenidoArchivo = preg_replace(\'~\\r\\n?~\', \"\\n\", $ContenidoArchivo); //Normaliza los saltos de linea dentro del archivo\n\n	    if ($Origen_Archivo==\"A\")\n            $PCODER_Respuesta = file_put_contents($PCODER_archivo, $ContenidoArchivo) or die(\"No se puede abrir el archivo para escritura\");\n\n	    if ($Origen_Archivo==\"B\")\n	        {\n	            //Si se tiene contenido para guardar sigue adelante, sino hace consulta de valor fijo\n	            if ($ContenidoArchivo!=\"\")\n	                PCO_EjecutarSQLUnaria(\"UPDATE {$Tabla_Archivo} SET {$Campo_Archivo}=? WHERE id={$Llave_Registro} \",\"$ContenidoArchivo\");\n	            else\n	                PCO_EjecutarSQLUnaria(\"UPDATE {$Tabla_Archivo} SET {$Campo_Archivo}=\'\' WHERE id={$Llave_Registro} \");\n	        }\n            \n\n        //Vuelve a cargar el archivo para continuar con su edicion\n            PCO_Auditar(\"Modifica archivo $PCODER_archivo\",\"PCoder:$PCOSESS_LoginUsuario\");\n            //Lleva el historial de revision\n            $CantidadLineas=$PCODER_NroLineasDocumento;\n            $CantidadCaracteres=$PCODER_NroCaracteresDocumento;\n	        PCO_EjecutarSQLUnaria(\"INSERT INTO \".$TablasCore.\"pcoder_historial (archivo,fecha_edicion,usuario,lineas,caracteres,contenido,tipo_origen) VALUES (?,?,?,?,?,?,?)\",\"$PCODER_archivo$_SeparadorCampos_$PCO_FechaOperacionGuiones $PCO_HoraOperacionPuntos:00$_SeparadorCampos_$PCOSESS_LoginUsuario$_SeparadorCampos_$CantidadLineas$_SeparadorCampos_$CantidadCaracteres$_SeparadorCampos_$ContenidoArchivo$_SeparadorCampos_$Origen_Archivo\",\"\",0,0);\n\n        echo \'<script type=\"\" language=\"JavaScript\"> console.log(\"PCODER: contenido guardado\");  </script>\';\n	}',0),(2,'Clientes','Clientes','Registro de Clientes','app_clientes',3,'function FrmAutoRun()\r\n    {\r\n       \r\n        if($(\'#id\').val()) {\r\n            $(\'#btn_create\').hide();\r\n            $(\'#PCO_ErrorTitulo\').val(\'Actualizado correctamente\');\r\n            $(\'#PCO_ErrorDescripcion\').val(\'El cliente se ha actualizado correctamente\');\r\n        }\r\n        else {\r\n            $(\'#btn_update\').hide();\r\n        }\r\n		\r\n    }',0,'nav-tabs','datos','tradicional','','panel-primary','','<?php\r\nglobal $PCO_PostAccionDirecta;\r\n$PCO_PostAccionDirecta = 1;\r\n$PCO_PostAccion = 1;\r\n$accionForm = \"Guardado\";\r\nif($id)\r\n    $accionForm = \"Actualizado\";\r\nPCO_Mensaje(\"Aviso del sistema\",\"$accionForm el cliente correctamente!\", \'\', \'fa fa-thumbs-up fa-5x icon-green texto-blink\', \'alert alert-success alert-dismissible\');\r\nPCO_CargarFormulario(2);',0),(3,'Proveedores','Proveedores','Proveedores','app_proveedores',3,'function FrmAutoRun()\r\n    {\r\n        if($(\'#id\').val()) {\r\n            $(\'#btn_create\').hide();\r\n        }\r\n        else {\r\n            $(\'#btn_update\').hide();\r\n        }\r\n    }',0,'nav-tabs','datos','tradicional','','panel-primary','','<?php\r\nglobal $PCO_PostAccionDirecta, $id, $accionForm;\r\n$PCO_PostAccionDirecta = 1;\r\n$PCO_PostAccion = 1;\r\n$accionForm = \"Guardado\";\r\nif($id)\r\n    $accionForm = \"Actualizado\";\r\nPCO_Mensaje(\"Aviso del sistema\",\"$accionForm el proveedor correctamente!\", \'\', \'fa fa-thumbs-up fa-5x icon-green texto-blink\', \'alert alert-success alert-dismissible\');\r\nPCO_CargarFormulario(3);',0),(4,'Productos','Productos','Gestión de productos','app_productos',3,'function FrmAutoRun()\n    {\n        if($(\'#id\').val()) {\n            $(\'#btn_create\').hide();\n            /*$(\'#PCO_ErrorTitulo\').val(\'Actualizado correctamente\');\n            $(\'#PCO_ErrorDescripcion\').val(\'El cliente se ha actualizado correctamente\');*/\n        }\n        else {\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_adicionar_inventario\').hide();\n        }\n        if($(\'#id_proveedor\').val()) {\n            $(\'#idProveedor\').val($(\'#id_proveedor\').val());\n            PCOJS_ActualizarComboBox(\'idProveedor\');\n        }\n    }\n\nfunction onchangeProveedor(){\n    $(\'#id_proveedor\').val($(\'#idProveedor\').val());\n    document.datos.PCO_Accion.value = \"PCO_CargarObjeto\";\n    document.datos.PCO_Objeto.value = \"frm:4:1\";\n    document.datos.submit();\n}\n\nfunction eliminar() {\n    const respEliminar = PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=Ventas_eliminarProducto&idProducto=\' + document.FRMBASEINFORME.PCO_Valor.value);\n    if(respEliminar == 0) {\n        setTimeout(() => { \n			document.FRMBASEINFORME.PCO_Accion.value=\'PCO_CargarObjeto\';\n			document.FRMBASEINFORME.PCO_Objeto.value=\'frm:4:1\';\n			document.FRMBASEINFORME.Precarga_EstilosBS.value=\'1\';\n			document.FRMBASEINFORME.Presentar_FullScreen.value=\'0\';\n			document.FRMBASEINFORME.target = \'_self\';\n			document.FRMBASEINFORME.submit();\n        }, 2000);\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Se ha eliminado el producto\");\n    }\n    else\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Hubo un error eliminando el producto\");\n}',0,'nav-tabs','datos','responsive','col-xs-12 col-sm-12 col-md-6 col-lg-4','panel-primary','','<?php\r\nglobal $PCO_PostAccionDirecta, $adicionar_inventario, $id, $inventario;//, $id, $accionForm;\r\n$PCO_PostAccionDirecta = 1;\r\n//$PCO_PostAccion = 1;\r\n$accionForm = \"Guardado\";\r\nif($id)\r\n    $accionForm = \"Actualizado\";\r\nPCO_Mensaje(\"Aviso del sistema\",\"$accionForm el producto correctamente!\", \'\', \'fa fa-thumbs-up fa-5x icon-green texto-blink\', \'alert alert-success alert-dismissible\');\r\n\r\nif(is_numeric($adicionar_inventario))\r\n    PCO_EjecutarSQLUnaria(\"\r\n        UPDATE app_productos \r\n        SET inventario = ($inventario + $adicionar_inventario)\r\n        WHERE id = $id \r\n    \");\r\n\r\nPCO_CargarFormulario(4);',0),(5,'Clientes: subformulario','','','app_ordenes_compra',4,'function FrmAutoRun()\r\n    {\r\n\r\n    }\r\n\r\nfunction guardarCliente() {\r\n    PCOJS_ValidarCamposYProcesarFormulario(\'cliente\');\r\n}',0,'nav-tabs','cliente','tradicional','','panel-primary','<?php\r\n\r\nglobal $id;','<?php \r\nglobal $PCO_PostAccionDirecta, $PCO_PostAccion, $PCO_Objeto, $PCO_Accion;\r\n$PCO_PostAccionDirecta = 1;\r\n$PCO_PostAccion = 1;\r\n\r\nPCO_Mensaje(\"Aviso del sistema\",\"Cliente creado correctamente!\", \'\', \'fa fa-thumbs-up fa-5x icon-green texto-blink\', \'alert alert-success alert-dismissible\');\r\nPCO_CargarFormulario(8);',0),(6,'Ventas: Filtros por ventas realizadas','','','app_inventarios',3,'function FrmAutoRun()\n    {\n        if(!$(\'#fecha_inicio\').val()) $(\'#fecha_inicio\').val($(\'#fecha\').val());\n        if(!$(\'#fecha_fin\').val()) $(\'#fecha_fin\').val($(\'#fecha\').val());\n        // console.log(\"Hopla {{$ingresos}}\");\n    }',0,'nav-tabs','datos','responsive','col-xs-12 col-sm-12 col-md-6 col-lg-4','panel-primary','<?php\nglobal $id, $abono, $PCO_PostAccionDirecta, $arqueo, $fecha_inicio, $fecha_fin;\n\n$arqueo=0;\nif($fecha_inicio && $fecha_fin) {\n    \n    $total1 = PCO_EjecutarSQL(\"\n        SELECT SUM(total)\n         FROM app_ventas\n            WHERE fecha >= \'$fecha_inicio 00:00:00\' AND fecha <= \'$fecha_fin 23:59:59\'\n             AND estado = 1 \n             AND tipo_venta IN (2,3) \n             AND forma_pago = \'Efectivo\' \n             AND tipo_pago = \'Contado\' \n    \")->fetchColumn();\n    \n    $total2 = PCO_EjecutarSQL(\"\n        SELECT SUM(total)\n         FROM app_ventas\n         WHERE fecha >= \'$fecha_inicio 00:00:00\' AND fecha <= \'$fecha_fin 23:59:59\'\n             AND estado = 1 \n             AND tipo_pago = \'Credito\'  \n             AND factura_pagada = 1   \n    \")->fetchColumn();\n    \n    $egresos = PCO_EjecutarSQL(\"\n        SELECT SUM(valor_egreso) \n        FROM app_egresos\n        WHERE fecha >= \'$fecha_inicio\' AND fecha <= \'$fecha_fin\'\n    \")->fetchColumn();\n    \n    $arqueo = \"$\".number_format( $total1 + $total2 - $egresos, 2, \",\", \".\");\n}\n','<?php\nglobal $PCO_PostAccionDirecta, $fecha_inicio, $fecha_final, $arqueo;\n$PCO_PostAccionDirecta = 1;\n// $PCO_PostAccion = 1;\n\nPCO_CargarFormulario(6);',0),(7,'Editar producto','','','app_ventas_detalle',1,'// const { tipo_venta2 } = document.datos2;\n\n/* const origenListaOpciones2 = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n}); */\n\n/* function actualizarProducto()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Precio\", \"El precio es obligatorio\");\n            return;\n        }\n        const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n            \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_actualizarProductoVenta\' +\n                \'&id=\' + $(\'#id2\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        window.parent.finalizarEdicionProducto();\n    } */\n\nfunction FrmAutoRun(){}\n\n/* $(document).ready(function() {\n    $(\"#id_producto2\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones2({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta2.value,\n        }));\n    $(\"#id_producto2\").trigger(\"change\");\n}); */',0,'nav-tabs','datos2','tradicional','','panel-primary','','',0),(8,'Ventas: Realizar venta','','','app_ventas',1,'const { \n    id_cliente, id_producto, cantidad, numero_documento, telefono, nombre_completo, hora_inicio, hora_fin, guaje,\n    id, idClienteDB, total_fake, dinero_entregado, devuelta, tipo_venta, id_mecanico, placa, tipo_pago, precio, estado\n} = document.datos;\n\nconst lavado = 1;\nconst producto = 2;\nconst servicio = 3;\n\nconst formatter = (n, d = 2) => new Intl.NumberFormat(\'es-MX\').format(n);\n\nfunction isMobileDevice() {\n  return /Mobi|Android|iPhone|iPad|iPod|Windows Phone/i.test(navigator.userAgent);\n}\n\nfunction actualizarInforme() {\n    $(\'#informeCompra\').html(PCO_ObtenerContenidoAjax(0, \'index.php\',\n        \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=inf:11:0&id=\' + id.value)\n    );\n}\n\nfunction cargarDatosFE(resp) {\n    const { total, iva } = resp;\n    total_fake.value = formatter(total).replace(\'$\',\'\');\n    // iva_fake.value = formatter(iva).replace(\'$\',\'\');\n    /* if(!id.value && resp.id)\n        id.value = resp.id; */\n    actualizarInforme();\n}\n\nfunction calcularTiempo() {\n    const horaInicio = $(\'#hora_inicio\').val();\n    const horaFin = $(\'#hora_fin\').val();\n    if (!horaInicio || !horaFin) return;\n    const hiMom = moment(horaInicio, \"hh:mm:ss\");\n    const hfMom = moment(horaFin, \"hh:mm:ss\");\n    const duration = moment.duration(hfMom.diff(hiMom));\n    const minutes = duration.asHours() || 0;\n    $(\'#cantidad\').val((minutes).toFixed(2));\n}\n\nfunction consultarTotalVenta() {\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_consultarTotalVenta\' +\n            \'&id=\' + id.value\n        )\n    );\n    if(resp.success) {\n        cargarDatosFE(resp);\n    }\n    else {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n    }    \n}\n\nfunction FrmAutoRun()\n    {\n        document.title = \"Realizar venta\";\n        $(\'#PCOContenedor_id_mecanico\').hide();\n        $(\'#PCOContenedor_hora_inicio\').hide();\n        $(\'#PCOContenedor_hora_fin\').hide();\n        $(\'#PCOContenedor_guaje\').hide();\n        $(\'#PCOContenedor_factura_pagada\').hide();\n        $(\'#PCOContenedor_firma\').hide();\n\n        if($(\'#id\').val()) {\n            //$(\'#add_product\').hide();\n            $(\'#PCOContenedor_clientesSubForm\').hide();\n            // $(\'#id_cliente\').val(idClienteDB.value);\n            // PCOJS_ActualizarComboBox(\'id_cliente\');\n           actualizarInforme();\n          if($(\'#id_cliente\').val() == 1) {\n                $(\'#PCOContenedor_placa\').show();\n            } else {\n                $(\'#PCOContenedor_placa\').hide();\n            }\n            onChangeTipoProducto();\n            consultarTotalVenta();\n        }\n        else {\n            $(\'#finalizar_venta\').hide();\n            $(\'#btn_update\').hide();\n            $(\'#PCOContenedor_placa\').hide();\n        }\n        \n        if (isMobileDevice()) {\n          $(\'#CANVAS_firma\').width(250);\n          $(\'#CANVAS_firma\').height(150);\n        }\n    }\n\n function onchangeCliente(){\n    $(\'#PCOContenedor_placa\').show();\n    if($(\'#id_cliente\').val() == 1) {\n        $(\'#PCOContenedor_placa\').show();\n    } \n} \n\nfunction agregarProducto() {\n    if(validarDatosCompra()) {\n        if(!id.value) {\n            document.datos.PCO_Accion.value = \'VENTA_agregarProductoCrearOC\';\n            document.datos.Precarga_EstilosBS.value = 1;\n            document.datos.Presentar_FullScreen.value = 0;\n            document.datos.target = \'_self\';\n        	document.datos.submit();\n        }\n        else {\n            const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n                \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_agregarProducto\' +\n                    \'&id=\' + id.value + \n                    \'&id_cliente=\' + id_cliente.value +\n                    \'&id_producto=\' + id_producto.value +\n                    \'&cantidad=\' + cantidad.value +\n                    \'&precioVenta=\' + precio.value +\n                    \'&hora_inicio=\' + hora_inicio.value +\n                    \'&hora_fin=\' + hora_fin.value +\n                    \'&guaje=\' + guaje.value\n                )\n            );\n            if(resp.success) {\n                cargarDatosFE(resp);\n                $(\'#finalizar_venta\').show();\n                $(\'#id_producto\').val(\'\');\n                PCOJS_ActualizarComboBox(\'id_producto\');\n                $(\'#precio\').val(\'\');\n                $(\'#cantidad\').val(\'1\');\n            }\n            else {\n                PCOJS_MostrarMensaje(\"Aviso del sistema\", resp.msg);\n            }\n        }\n    }\n}\n\nfunction mostrarMensajePopUp(TituloPopUp, Mensaje) {\n    $(\'#modalMensajeTitulo\').html(TituloPopUp);\n	$(\'#modalMensajeCuerpo\').html(Mensaje);\n\n    //Retira cualquier clase preexistente o remanente de cualquier personalizacion previa y agrega las clases base\n    $(\"#modalMensaje\").removeClass();\n    $( \"#modalMensaje\" ).addClass( \"modal\" );\n    $( \"#modalMensaje\" ).addClass( \"fade\" );\n    $( \"#modalMensaje\" ).addClass( \"oculto_impresion\" );\n\n    //Agrega las clases personalizadas por el usuario\n    /* if (ClasesAdicionales!=\"\")\n        $( \"#modalMensaje\" ).addClass( ClasesAdicionales ); */\n\n	// Se muestra el cuadro modal\n	$(\'#modalMensaje\').modal(\'show\');\n\n	//Hacer que la ventana este siempre por encima\n	$(\"#modalMensaje\").css(\"z-index\", \"1500\");\n}\n\nfunction editProduct() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent,cant,prec] = product.split(\'|\');\n    /* PCOJS_MostrarMensajeCargando(\"Editar producto\", PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    )); */\n    mostrarMensajePopUp(\'Editar producto\', PCO_ObtenerContenidoAjax(0, \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:7:1\'+\n        \'&id2=\' + idVent +\n        \'&cantidad2=\' + cant +\n        \'&precio2=\' + prec\n    ));\n\n}\n\nfunction finalizarEdicionProducto() {\n    $(\'#modalMensaje\').modal(\'hide\');\n	$(\'#modalMensaje\').hide();\n    consultarTotalVenta();\n    actualizarInforme();\n}\n\nfunction actualizarProducto2()\n    {\n        if(!$(\'#id2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Venta\", \"No estas trabajando sobre una venta\");\n            return;\n        }\n        if(!$(\'#cantidad2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Cantidad\", \"La cantidad es obligatoria\");\n            return;\n        }\n        if(!$(\'#precio2\').val()) {\n            PCOJS_MostrarMensaje(\"Alerta Precio\", \"El precio es obligatorio\");\n            return;\n        }\n        const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n            \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_actualizarProductoVenta\' +\n                \'&id=\' + $(\'#id2\').val() + \n                \'&id_producto=\' + $(\'#id_producto2\').val()  +\n                \'&cantidad=\' + $(\'#cantidad2\').val() +\n                \'&precio=\' + $(\'#precio2\').val()\n            )\n        );\n        finalizarEdicionProducto();\n    }\n\nfunction finalizarCompra() {\n    /*if(tipo_pago.value != \'Credito\' && dinero_entregado.value < total_fake.value) {\n        PCOJS_MostrarMensaje(\"Editar producto\", \"El valor a pagar es menor al total!\");\n        return;\n    }*/\n    actualizar_CANVAS_firma();\n    estado.value = 1;\n    //Actualiza\n        /*document.datos.PCO_Accion.value = \'PCO_ActualizarDatosFormulario\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n    //Abre la venta para imprimirla\n        /*document.datos.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.datos.id_registro_datos.value = id.value;\n        document.datos.Precarga_EstilosBS.value = 0;\n        document.datos.Presentar_FullScreen.value = 1;\n    	document.datos.target = \'_blank\';\n    	document.datos.submit();*/\n\n    document.datos.PCO_Accion.value=\'PCO_ActualizarDatosFormulario\';\n    PCOJS_ValidarCamposYProcesarFormulario(\'datos\');\n}\n\nfunction eliminar_producto() {\n    const product = document.FRMBASEINFORME.PCO_Valor.value;\n    const [idVent] = product.split(\'|\');\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=VENTA_eliminarProducto\' +\n            \'&id_venta=\' + id.value +\n            \'&id_venta_detalle=\' + idVent\n        )\n    );\n    console.log(\"resp\", resp);\n    cargarDatosFE(resp);\n}\n\nfunction validarDatosCompra() {\n    /* if(!id_cliente.value && !nombre_completo.value && !numero_documento.value && !telefono.value && id_cliente.value != 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    } */\n    if(!id_cliente.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar o ingresar un cliente!\");\n        return false;\n    }\n    if(!cantidad.value || isNaN(cantidad.value) || cantidad.value < 1) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una cantidad válida!\");\n        return false;\n    }\n    if(!id_producto.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un producto\");\n        return false;\n    }\n    if(id_cliente.value == 1 && !placa.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes ingresar una placa\");\n        return false;\n    }\n    if(tipo_venta.value == servicio && !id_mecanico.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un mecánico\");\n        return false;\n    }\n    if(tipo_venta.value == lavado && (!hora_inicio.value || !hora_fin.value)) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar una hora inicio y hora fin\");\n        return false;\n    }\n    if(tipo_venta.value == lavado && !guaje.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes seleccionar un guaje\");\n        return false;\n    }\n    if(!precio.value) {\n        PCOJS_MostrarMensaje(\"Aviso del sistema\", \"Debes agregar un precio al producto\");\n        return false;\n    }\n    return true;\n}\n\nconst convertToInt = (n) => parseInt(n.replace(/,/g, \"\"));\n\nfunction calcularDevuelta() {\n    devuelta.value = \'\';\n    if(dinero_entregado.value && total_fake.value) {\n        dinero_entregado.value = dinero_entregado.value.replace(/\\D/g, \"\")\n            .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n        const diff = convertToInt(dinero_entregado.value) - convertToInt(total_fake.value);\n        //console.log({diff});\n        devuelta.value = formatter(diff).replace(\'$\', \'\');\n    }\n}\n/*\n        $(event.target).val(function (index, value ) {\n            return value.replace(/\\D/g, \"\")\n                        .replace(/([0-9])([0-9]{2})$/, \'$1.$2\')\n                        .replace(/\\B(?=(\\d{3})+(?!\\d)\\.?)/g, \",\");\n*/\n\nconst origenListaOpciones = ({ PCO_TablaConsulta, PCO_ListaCamposRetorno, PCO_ListaCamposBusqueda, PCO_CondicionFiltrado }) => ({\n      values: \"a, b, c\",\n      ajax: {\n        url: \"index.php\",\n        type: \"POST\",\n        dataType: \"json\",\n        data: {\n          q: \"{{{q}}}\",\n          PCO_Accion: \"PCO_ObtenerOpcionesAjaxSelect\",\n          Presentar_FullScreen: \"1\",\n          PCO_TablaConsulta,\n          PCO_ListaCamposRetorno,\n          PCO_ListaCamposBusqueda,\n          PCO_CondicionFiltrado\n        }\n      },\n      minLength: 3,\n      locale: {\n        emptyTitle: \"Seleccione y digite para buscar\",\n        statusInitialized: \"Empiece a digitar para recuperar registros\",\n        statusSearching: \"Cargando...\",\n        currentlySelected: \"Actualmente seleccionado(s):\",\n        errorText: \"No se pueden recuperar registros\",\n        statusTooShort: \"Ingrese al menos tres caracteres\",\n        statusNoResults: \"No se encuentran resultados\",\n        searchPlaceholder: \"Buscar...\"\n      },\n      log: 0,\n      preprocessData: (data) => data.length ? data.map(({ T: text, V: value, S: subtext, I: icon }) => ({\n        text,\n        value,\n        data: {\n          subtext,\n          icon,\n        }\n        })) : []\n});\n\nfunction onChangeTipoProducto() {\n    $(\'#PCOContenedor_id_mecanico\').hide();\n    if(tipo_venta.value == servicio) $(\'#PCOContenedor_id_mecanico\').show();\n\n    $(\'#PCOContenedor_hora_inicio\').hide();\n    $(\'#PCOContenedor_hora_fin\').hide();\n    $(\'#PCOContenedor_guaje\').hide();\n    if(tipo_venta.value == lavado) {\n        $(\'#PCOContenedor_hora_fin\').show();\n        $(\'#PCOContenedor_hora_inicio\').show();\n        $(\'#PCOContenedor_guaje\').show();\n    }\n\n    // const filtradoProductos = tipo_venta.value == 2 ? \" AND inventario>0\" : \"\";\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            PCO_CondicionFiltrado: \"AND tipo_producto=\"+tipo_venta.value,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n}\n\nfunction getProduct() {\n    if(!id_producto.value || tipo_venta.value != lavado) return;\n    const resp = JSON.parse(PCO_ObtenerContenidoAjax(0,\n        \'index.php\', \'Presentar_FullScreen=1&Precarga_EstilosBS=0&PCO_Accion=PRODUCTOS_getProductById\' +\n            \'&id=\' + $(\'#id_producto\').val()\n        )\n    );\n    $(\'#precio\').val(resp.precio_venta || \"\")\n}\n\nfunction onchangeTipoPago() {\n    $(\'#PCOContenedor_factura_pagada\').hide();\n    $(\'#PCOContenedor_firma\').hide();\n    if(tipo_pago.value == \"Credito\") {\n        $(\'#PCOContenedor_factura_pagada\').show();\n        $(\'#PCOContenedor_firma\').show();\n    }\n}\n\n$(\'#DatePicker_hora_inicio\').on(\'dp.change\', function(e){ calcularTiempo(); });\n\n$(\'#DatePicker_hora_fin\').on(\'dp.change\', function(e){ calcularTiempo(); });\n\n\n/* $(document).ready(() => {\n    $(\"#id_producto\").selectpicker().ajaxSelectPicker(\n        origenListaOpciones({ \n            PCO_TablaConsulta: \"app_productos\",\n            PCO_ListaCamposRetorno: \"id,CONCAT(codigo,\' | \',nombre,\' | \',precio_venta)\",\n            PCO_ListaCamposBusqueda: \"codigo,nombre\",\n            // PCO_CondicionFiltrado: \"tipo_producto=\"+$(\'#tipo_venta\').val()+filtradoProductos,\n        }));\n    $(\"#id_producto\").trigger(\"change\");\n});*/',0,'nav-tabs','datos','responsive','','panel-primary','','<?php\n\nglobal $PCO_PostAccionDirecta, $id;\n$PCO_PostAccionDirecta = 1;\n$PCO_Accion = \"VENTA_ingresarRealizarVenta\";\nif($id)\n    $accionForm = \"Actualizado\";\nPCO_Mensaje(\"Aviso del sistema\",\"Se ha almacenado la compra!\", \'\', \'fa fa-thumbs-up fa-5x icon-green texto-blink\', \'alert alert-success alert-dismissible\');\nPCO_CargarFormulario(8);\n//echo \"hola\";\necho \"\n<script>\n    //setTimeout(() => {\n    (function() {\n        document.FRMBASEINFORME.PCO_Accion.value = \'VENTA_imprimirFactura\';\n        document.FRMBASEINFORME.PCO_Valor.value = $id;\n        document.FRMBASEINFORME.Precarga_EstilosBS.value = 0;\n        document.FRMBASEINFORME.Presentar_FullScreen.value = 1;\n    	document.FRMBASEINFORME.target = \'_blank\';\n    	document.FRMBASEINFORME.submit();\n\n})();\n\n    //}, 1000);\n</script>\n\";',0),(-35,'{$MULTILANG_PCODER_HerramientaDiferencias}','','','core_tabla_comodin',1,'function AjustarMaquetacion_FormularioEditor()\r\n    {\r\n        //Estilos para ajustar la maquetacion y economizar espacio\r\n        $(\'#page-wrapper\').css(\'padding\',\'0\');\r\n        $(\"[class=container-fluid]\").each(function() { $(this).css(\"padding\", \"0\"); });\r\n        $(\"[class=col-lg-12]\").each(function() { $(this).find(\'br:first\').remove(); });\r\n        \r\n        //El analizador inserta <br> adicionales mediante funciones nl2br.  Aqui se eliminan los excesos.\r\n        $(\"[class=borrado]\").each(function() { $(this).find(\'br\').remove(); });\r\n        $(\"[class=insertado]\").each(function() { $(this).find(\'br\').remove(); });\r\n        $(\"[class=conservado]\").each(function() { $(this).find(\'br\').remove(); });\r\n        \r\n        AltoVentana=$(window).height();\r\n        TamanoMarcoResultados=AltoVentana-120;\r\n        $(\"#MarcoResultado\").css(\"height\", TamanoMarcoResultados+\"px\");\r\n    }\r\n\r\nfunction FrmAutoRun()\r\n    {\r\n        AjustarMaquetacion_FormularioEditor();\r\n\r\n        //Deshabilitar F5 \r\n        $(function() {\r\n                  $(window).keydown(function(event){\r\n                    if(event.keyCode == 116) {\r\n                      event.preventDefault();\r\n                      return false;\r\n                    }\r\n                  });\r\n            \r\n        });\r\n    }',0,'nav-tabs','datos','responsive','','panel-primary','<?php \r\n    ##########################################################################\r\n    ##########################################################################\r\n    //VERIFICA SEGURIDAD: Perfil de Administrador requerido antes de continuar\r\n    global $PCOSESS_LoginUsuario,$MULTILANG_ErrorTitAuth,$MULTILANG_WSErr06;\r\n    if (!PCO_EsAdministrador(@$PCOSESS_LoginUsuario))\r\n        {\r\n            PCO_Mensaje(\"{$MULTILANG_ErrorTitAuth}\", \"{$MULTILANG_WSErr06}\", \'\', \'fa fa-exclamation-triangle fa-3x texto-rojo texto-blink\', \'alert alert-warning alert-dismissible\');\r\n            PCO_Auditar(\"$PCOSESS_LoginUsuario Intenta acceso no autorizado Frm:-35\",\"SECLog:event\");\r\n            die();\r\n        }\r\n    ##########################################################################\r\n    ##########################################################################\r\n\r\n    /*\r\n    	Function: PCO_CargarObjeto_VisorDeDiferencias\r\n    	Carga el elemento interno (Formulario -35) asociado al visor de diferencias\r\n    	\r\n        Variables de entrada basicas del Framework:\r\n            URL - index.php?PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:-35:0&Presentar_FullScreen=1&Precarga_EstilosBS=1\r\n        \r\n        Variables de entrada especificas para el elemento:\r\n            PDIFF_Version1 - Ruta al elemento que representa la version 1 del documento o codigo\r\n            PDIFF_Version2 - Ruta al elemento que representa la version 2 del documento o codigo\r\n            PDIFF_OrigenVersion1 - Tipo de origen (A=Archivo B=BaseDatos)\r\n            PDIFF_OrigenVersion2 - Tipo de origen (A=Archivo B=BaseDatos)\r\n            PDIFF_TablaBDVersion1 - Para Origenes de version tipo B indica ubicacion en el motor\r\n            PDIFF_CampoBDVersion1 - Para Origenes de version tipo B indica ubicacion en el motor\r\n            PDIFF_LlaveBDVersion1 - Para Origenes de version tipo B indica ubicacion en el motor\r\n            PDIFF_TablaBDVersion2 - Para Origenes de version tipo B indica ubicacion en el motor\r\n            PDIFF_CampoBDVersion2 - Para Origenes de version tipo B indica ubicacion en el motor\r\n            PDIFF_LlaveBDVersion2 - Para Origenes de version tipo B indica ubicacion en el motor\r\n\r\n    	Salida:\r\n    	    Comparacion de ambas cadenas formateada en HTML\r\n    */\r\n\r\n	global $PDIFF_Version1,$PDIFF_Version2,$PDIFF_OrigenVersion1,$PDIFF_OrigenVersion2;\r\n	global $PDIFF_TablaBDVersion1,$PDIFF_CampoBDVersion1,$PDIFF_LlaveBDVersion1,$PDIFF_TablaBDVersion2,$PDIFF_CampoBDVersion2,$PDIFF_LlaveBDVersion2;\r\n	global $Presentar_FullScreen,$Precarga_EstilosBS;\r\n\r\n	//PARAMETROS BASICOS DE CONFIGURACION\r\n	$URLRecarga=\"&PCO_Accion=PCO_CargarObjeto&PCO_Objeto=frm:-35:0&Presentar_FullScreen={$Presentar_FullScreen}&Precarga_EstilosBS={$Precarga_EstilosBS}&PDIFF_Version1={$PDIFF_Version1}&PDIFF_Version2={$PDIFF_Version2}&PDIFF_OrigenVersion1={$PDIFF_OrigenVersion1}&PDIFF_OrigenVersion2={$PDIFF_OrigenVersion2}\";\r\n\r\n    //VARIABLES DE BANCO DE PRUEBAS - Deberian estar siempre comentadas para produccion\r\n    // ARCHIVOS:\r\n        //$PDIFF_Version1=\"index.php\";\r\n        //$PDIFF_Version2=\"index.php\";\r\n        //$PDIFF_Version2=\"tmp/index2.php\";\r\n\r\n    // BASEDATOS:\r\n        //$PDIFF_OrigenVersion2=\"B\";\r\n        //$PDIFF_CampoBDVersion2=\"contenido\";\r\n        //$PDIFF_TablaBDVersion2=\"core_pcoder_historial\";\r\n        //$PDIFF_LlaveBDVersion2=\"10\";\r\n    \r\n        //$PDIFF_OrigenVersion1=\"B\";\r\n        //$PDIFF_CampoBDVersion1=\"contenido\";\r\n        //$PDIFF_TablaBDVersion1=\"core_pcoder_historial\";\r\n        //$PDIFF_LlaveBDVersion1=\"34\";\r\n\r\n################################################################################\r\n################################################################################\r\n    class BuscadorDiferencias\r\n        {\r\n        	var $error = \'\';\r\n            ////////////////////////////////////////////////////////////////////\r\n            ////////////////////////////////////////////////////////////////////\r\n        	function SepararCadena($Cadena, $Separador, $Fin, &$positions)\r\n            	{\r\n            		$l = strlen($Cadena);\r\n            		$split = array();\r\n            		for($p = 0; $p < $l;)\r\n            		{\r\n            			$e = strcspn($Cadena, $Separador.$Fin, $p);\r\n            			$e += strspn($Cadena, $Separador, $p + $e);\r\n            			$split[] = substr($Cadena, $p, $e);\r\n            			$positions[] = $p;\r\n            			$p += $e;\r\n            			if(strlen($Fin)\r\n            			&& ($e = strspn($Cadena, $Fin, $p)))\r\n            			{\r\n            				$split[] = substr($Cadena, $p, $e);\r\n            				$positions[] = $p;\r\n            				$p += $e;\r\n            			}\r\n            		}\r\n            		$positions[] = $p;\r\n            		return $split;\r\n            	}\r\n        \r\n\r\n            ////////////////////////////////////////////////////////////////////\r\n            ////////////////////////////////////////////////////////////////////\r\n        	function Diff($before, $after, &$difference)\r\n            	{\r\n            		$for_patch = (IsSet($difference->patch) && $difference->patch);\r\n\r\n    				$before = $this->SepararCadena($before, \"\\r\\n\", \'\', $posb);\r\n    				$lb = count($before);\r\n    				$after = $this->SepararCadena($after, \"\\r\\n\", \'\', $posa);\r\n    				$la = count($after);\r\n\r\n            		$diff = array();\r\n            		for($b = $a = 0; $b < $lb && $a < $la;)\r\n            		{\r\n            			for($pb = $b; $a < $la && $pb < $lb && $after[$a] === $before[$pb]; ++$a, ++$pb);\r\n            			if($pb !== $b)\r\n            			{\r\n            				$diff[] = array(\r\n            					\'change\'=>\'=\',\r\n            					\'position\'=>$posb[$b],\r\n            					\'length\'=>$posb[$pb] - $posb[$b]\r\n            				);\r\n            				$b = $pb;\r\n            			}\r\n            			if($b === $lb)\r\n            				break;\r\n            			for($pb = $b; $pb < $lb; ++$pb)\r\n            			{\r\n            				for($pa = $a ; $pa < $la && $after[$pa] !== $before[$pb]; ++$pa);\r\n            				if($pa !== $la)\r\n            					break;\r\n            			}\r\n            			if($pb !== $b)\r\n            			{\r\n            				$diff[] = array(\r\n            					\'change\'=>\'-\',\r\n            					\'position\'=>$posb[$b],\r\n            					\'length\'=>$posb[$pb] - $posb[$b]\r\n            				);\r\n            				$b = $pb;\r\n            			}\r\n            			if($pa !== $a)\r\n            			{\r\n            				$position = $posa[$a];\r\n            				$length = $posa[$pa] - $posa[$a];\r\n            				$change = array(\r\n            					\'change\'=>\'+\',\r\n            					\'position\'=>$position,\r\n            					\'length\'=>$length\r\n            				);\r\n            				if($for_patch)\r\n            				{\r\n        						$patch = $after[$a];\r\n        						for(++$a; $a < $pa; ++$a)\r\n        							$patch .= $after[$a];\r\n            							\r\n            					$change[\'patch\'] = $patch;\r\n            				}\r\n            				$diff[] = $change;\r\n            				$a = $pa;\r\n            			}\r\n            		}\r\n            		if($a < $la)\r\n            		{\r\n            			$position = $posa[$a];\r\n            			$length = $posa[$la] - $posa[$a];\r\n            			$change = array(\r\n            				\'change\'=>\'+\',\r\n            				\'position\'=>$position,\r\n            				\'length\'=>$length\r\n            			);\r\n            			if($for_patch)\r\n            			{\r\n            					$patch = $after[$a];\r\n            					for(++$a; $a < $la; ++$a)\r\n            						$patch .= $after[$a];\r\n\r\n            				$change[\'patch\'] = $patch;\r\n            			}\r\n            			$diff[] = $change;\r\n            		}\r\n            		$difference->difference = $diff;\r\n            		return true;\r\n            	}\r\n\r\n\r\n            ////////////////////////////////////////////////////////////////////\r\n            ////////////////////////////////////////////////////////////////////\r\n        	function FormatearEnHTML($before, $after, &$difference)\r\n            	{\r\n            		if(!$this->diff($before, $after, $difference))\r\n            		{\r\n            			return false;\r\n            		}\r\n            		$html = \'\';\r\n            		$td = count($difference->difference);\r\n            		for($d = 0; $d < $td; ++$d)\r\n            		{\r\n            			$diff = $difference->difference[$d];\r\n            			\r\n            			//Define los elementos indicadores que van al lado izquierdo solo despues de la primera interaccion\r\n            			//if ($d>=1)\r\n            			    {\r\n                    			$IndicadorNormal =\"<div class=\'btn btn-xs btn-default\' data-toggle=\'tooltip\' data-placement=\'bottom\' data-html=\'true\' title=\'Interacción <font color=yellow><b>#{$d}</b></font><br>Conservar\' style=\'margin-left:-30px !important;text-decoration:none;\' ><i class=\'fa fa-arrow-right\'></i></div>\";\r\n                    			$IndicadorAgregar=\"<div class=\'btn btn-xs btn-success\' data-toggle=\'tooltip\' data-placement=\'bottom\' data-html=\'true\' title=\'Interacción <font color=yellow><b>#{$d}</b></font><br>Insertar\'  style=\'margin-left:-30px !important; text-decoration:none;\'><i class=\'fa fa-plus\'></i></div>\";\r\n                    			$IndicadorBorrar =\"<div class=\'btn btn-xs btn-warning\' data-toggle=\'tooltip\' data-placement=\'bottom\' data-html=\'true\' title=\'Interacción <font color=yellow><b>#{$d}</b></font><br>Eliminar\'  style=\'margin-left:-30px !important;text-decoration:none;\' ><i class=\'fa fa-minus\'></i></div>\";\r\n            			    }\r\n            			\r\n            			switch($diff[\'change\'])\r\n            			{\r\n            				case \'=\':\r\n            					$html .= \'<div class=\"conservado\">\'.$IndicadorNormal.nl2br(HtmlSpecialChars(substr($before, $diff[\'position\'], $diff[\'length\']))).\'</div>\';\r\n            					break;\r\n            				case \'-\':\r\n            					$html .= \'<div class=\"borrado\" style=\"background-color:orange;\">\'.$IndicadorBorrar.nl2br(HtmlSpecialChars(substr($before, $diff[\'position\'], $diff[\'length\']))).\'</div>\';\r\n            					break;\r\n            				case \'+\':\r\n            					$html .= \'<div class=\"insertado\" style=\"background-color:lightgreen;\">\'.$IndicadorAgregar.nl2br(HtmlSpecialChars(substr($after, $diff[\'position\'], $diff[\'length\']))).\'</div>\';\r\n            					break;\r\n            				default:\r\n            					$this->error = $diff[\'change\'].\' : Este no es un tipo de cambio esperado\';\r\n            					return false;\r\n            			}\r\n            		}\r\n            		$difference->html = $html;\r\n            		return true;\r\n            	}\r\n\r\n            ////////////////////////////////////////////////////////////////////\r\n            ////////////////////////////////////////////////////////////////////\r\n            function GenerarParche($before, $difference, &$after_patch)\r\n            	{\r\n            		$after = \'\';\r\n            		$b = 0;\r\n            		foreach($difference as $segment)\r\n            		{\r\n            			switch($segment[\'change\'])\r\n            			{\r\n            				case \'-\':\r\n            					if($segment[\'position\'] !== $b)\r\n            					{\r\n            						$this->error = \'la posicion de segmento removida es \'.$segment->position.\' y no \'.$b.\' como se esperaba\';\r\n            						return false;\r\n            					}\r\n            					$b += $segment[\'length\'];\r\n            					break;\r\n            \r\n            				case \'+\':\r\n            					$after .= $segment[\'patch\'];\r\n            					break;\r\n            \r\n            				case \'=\':\r\n            					if($segment[\'position\'] !== $b)\r\n            					{\r\n            						$this->error = \'la posicion de segmento removida es \'.$segment->position.\' y no \'.$b.\' como se esperaba\';\r\n            						return false;\r\n            					}\r\n            					$b += $segment[\'length\'];\r\n            					$after .= substr($before, $segment[\'position\'], $segment[\'length\']);\r\n            					break;\r\n            \r\n            				default:\r\n            					$this->error = $segment[\'change\'].\' tipo de cambio no soportado (no es +, - o =)\';\r\n            					return false;\r\n            			}\r\n            		}\r\n            		$after_patch->after = $after;\r\n            		return true;\r\n            	}\r\n        };\r\n\r\n\r\n################################################################################\r\n################################################################################\r\n    //Carga la version 1 segun su origen\r\n    if ($PDIFF_OrigenVersion1==\"A\")\r\n        $before=file_get_contents($PDIFF_Version1);\r\n    if ($PDIFF_OrigenVersion1==\"B\")\r\n        $before=PCO_EjecutarSQL(\"SELECT {$PDIFF_CampoBDVersion1} FROM {$PDIFF_TablaBDVersion1} WHERE id=\'{$PDIFF_LlaveBDVersion1} \'\")->fetchColumn();\r\n\r\n    //Carga la version 2 segun su origen\r\n    if ($PDIFF_OrigenVersion2==\"A\")\r\n        $after=file_get_contents($PDIFF_Version2);\r\n    if ($PDIFF_OrigenVersion2==\"B\")\r\n        $after=PCO_EjecutarSQL(\"SELECT {$PDIFF_CampoBDVersion2} FROM {$PDIFF_TablaBDVersion2} WHERE id=\'{$PDIFF_LlaveBDVersion2} \'\")->fetchColumn();\r\n\r\n    //Ejecuta la comparacion si se reciben al menos dos versiones\r\n	if($before!=\"\" || $after!=\"\")\r\n    	{\r\n    	    echo \'<div style=\"font-family: sans-serif,arial,helvetica;\">\';\r\n    		$diff = new BuscadorDiferencias;\r\n    		$difference = new stdClass;\r\n    		$difference->patch = true;\r\n    		$after_patch = new stdClass;\r\n    		if($diff->FormatearEnHTML($before, $after, $difference)\r\n    		&& $diff->GenerarParche($before, $difference->difference, $after_patch))\r\n        		{\r\n        			echo \'<div class=\"well well-sm\">\r\n    			            Comparando: \r\n    			                <div class=\"btn btn-xs btn-default\">[\'.$PDIFF_OrigenVersion1.\']->\'.$PDIFF_Version1.$PDIFF_TablaBDVersion1.\'.\'.$PDIFF_CampoBDVersion2.\'[\'.$PDIFF_LlaveBDVersion1.\']</div> \r\n    			                <b>VS</b> \r\n    			                <div class=\"btn btn-xs btn-default\">[\'.$PDIFF_OrigenVersion2.\']->\'.$PDIFF_Version2.$PDIFF_TablaBDVersion2.\'.\'.$PDIFF_CampoBDVersion2.\'[\'.$PDIFF_LlaveBDVersion2.\']</div>\r\n    			            <div>\r\n            			    <pre id=\"MarcoResultado\" style=\"margin-top:10px; background-color:lightgray; padding-left:40px; font-family: mono,monospace,terminal; font-size:11px;\">\r\n            			        \', $difference->html, \'\r\n            			    </pre>\r\n            			  \';\r\n        			\r\n        			echo \'<div class=\"\">\r\n        			        <div class=\"btn btn-xs btn-default\">Chequeo de integridad</div>\r\n        			        \', ($after === $after_patch->after ? \' <b>OK</b>\' : \'Se ha encontrado un bug. Texto parcheado (<b>\'.HtmlSpecialChars($after_patch->after).\'</b>) no coincide con el texto posterior (<b>\'.HtmlSpecialChars($after).\'</b>).\');\r\n        			echo \'</div>\';\r\n        		}\r\n    		else\r\n    			echo \'<div>Error: \', HtmlSpecialChars($diff->error), \'</div>\';\r\n    	    echo \'</div>\';\r\n    	}','',0),