Herramientas de usuario

Herramientas del sitio


escusabaraja

¡Esta es una revisión vieja del documento!


Escusabaraja

Cajón de sastre para apuntes sin ordenar. El contenido puede desaparecer en cualquier momento.

Cámara vigilancia coche

Las cámaras de acción tienen una batería que suele durar poco más de 2 horas.

Obligatorio:

  • Visión nocturna
  • Modo parking
  • Grabación continua
  • SD 128 GB
  • Conexión con batería
  • Ángulo de visión > 140º

Cámaras de salpicadero (dashcam):

Kit para cablear a la batería del coche:

Notas de foros:

  • Las Thinkware tienen fama de tener un buen “parking mode” que es lo que buscas.
  • Hay 3 opciones que cada vez traen más cámaras (otra cosa es que funcionen bien o no):
    • Motion detection: la cámara graba constantemente y sólo almacena los fragmentos en los que detecta movimiento a través de su óptica.
    • Timelapse: la cámara está constantemente grabando (y almacenando) a 2FPS en lugar de a 30 ó 60 FPS, que es la tasa a la que graba normalmente. Esto ocupa mucha menos memoria.
    • Con el G-sensor (sensor de las fuerzas G aplicadas al coche, o sea, que alguien mueva al coche y la cámara lo “note”). La cámara está inactiva y se pone a grabar (y por supuesto a almacenar) sólo cuando nota que el coche se ha movido.

Cada modo tiene sus cosillas que hay que mirar y considerar.

  • El motion detection, para que sea bueno, tiene que ser “prebuffered” (te lo pongo en inglés para que luego tú busques y te informes más si quieres, en informática un “buffer” es una memoria intermedia). Como te he comentado, este modo la cámara está siempre grabando (mirando), el problema es que algunas cámaras sólo almacenan el trozo en el que han notado movimiento. Lo interesante de que estas cámaras sean prebuffered, es que cuando detectan movimiento, almacenan también 10 segundos antes de la detección, así que te dan un poco más de contexto de lo que ha pasado.
  • Con el G-sensor, no hay prebuffer. Ahorras un montón de batería, pero la cámara está dormida y sólo graba (y almacena) cuando nota que al coche lo han movido, le han dado un toque, etc. Este modo tiene el problema añadido de que hay que ajustar el sensor de movimiento, porque si es muy sensible estará todo el rato saltando y grabando sin necesidad. Y si es poco sensible, puedes perderte parte de la “acción”.

Páginas de referencia que puedes consultar son dashcamtalk (que tienen foro además) y blackboxmycar (que es tienda, pero hace vídeos interesantes e instructivos). Las mejores cámaras de este modo suelen ser las coreanas, especialmente recomiendan la Thinkware F800 (tope de gama) y la Thinkware F50 (baratita). Pero seguro que en los foros te pueden ayudar mejor.

Por último, otra cosa que hay que tener en cuenta para usar el parking mode es que la cámara tiene que estar hardwired (conectada a la caja de fusibles), porque si la conectas al mechero la mayoría de coches cortan la corriente ahí cuando se apaga el motor. Las marcas más buenas te vienen con un hardwiring kit (un ladrón de fusibles o “tap-a-fuse” y un conversor de 12 a 5 V). Si no, te lo tendrás que comprar.

También hay que tener en cuenta que están tirando de la batería del coche. Si la cámara es buena, tendrá un detector de voltaje de la batería y dejará de funcionar cuando note que está floja, para que el coche no te deje tirado. Las cámaras más normalitas no lo traen y lo tienes que conectar tú cuando hagas el hardwiring. Otra opción en este sentido es comprar una batería adicional y conectar ahí la cámara. En blackboxmycar por ejemplo te las venden (se llaman cellink creo).

Perdonad, es que no he tenido tiempo de ponerme a responder.

Los kits de hardwiring más avanzados monitorizan la tensión de la batería para evitar que el coche no arranque. Un ejemplo de esos aparatos es el Power Magic Pro de la coreana BlackVue, el MotoPark Multi Safer también coreano o el VicoVation Vico-Power Plus. Puedes programarlos por tensión o incluso por tiempo.

Yo descarté tener la cámara en modo parking precisamente por lo mismo que tú: hay temporadas que no cojo el coche por varios días seguidos. Al final pusieron cámaras de seguridad en mi garaje y me ahorré el lío. El caso es que hablándolo con mi sobrino hoy, tiene razón: si no en el garaje, sí que interesa tenerlo funcionando en la calle, los centros comerciales…

Respecto a la duración de la batería, depende principalmente del consumo de la dashcam y de la capacidad de la que lleve tu coche (para mi Toyota, por ejemplo, veo que se venden entre 50 y 54 Ah). Aquí tienes una lista de consumos de referencia de diversos modelos (algunos con 2 cámaras y WiFi, ojo) funcionando normalmente (no en modo aparcamiento).

Como no te puedes pulir la batería entera porque la batería del coche no es una batería de ciclo profundo (deep-cycle), sino una batería SLI (starting, lighting, ignition), pues programas el corte de consumo con el aparatejo del hardwiring a 12.2V que es una medida intermedia, no demasiado conservadora pero tampoco tan arriesgada como los 12V a los que corta la Blackvue PowerMagic por ejemplo (que hay gente que los tiene así con baterías más grandes y les arranca bien sin problemas).

Con el aparato programado ya sabes hasta dónde te da la batería. Lo ideal sería, con la batería cargada, usar un multímetro para medir el voltaje que tiene ahora mismo tu batería, pero bueno. Vamos a hacer los cálculos (no sé si están bien):

Mi Viofo A119S creo que ronda los 1.5-2W de consumo funcionando normalmente. Vamos a suponer que una cámara en modo parking gaste 2W. Y vamos a pensar que la batería del coche es de 50 Ah. Y con el coche parado y la luz encendida, nos está dando en el multímetro entre 12.5 y 12.9V. Pongamos 12.8V.

P = V·I Al principio la batería dará 12.8 V · 50 Ah = 640 W. Al final, cuando el aparatejo corte, 12.2 V · 50 Ah = 610 W. Esos 30W de diferencia son los que tienes para la cámara. Si los dividimos entre los supuestos 2Wh que consume, tendrías para 15 h.

He hecho los cálculos con los datos que he visto de un fulano en el foro de dashcamtalk y me cuadran. Él dice que tiene una 650S-2ch con un Motopark que le corta a los 12.0V, y que su coche lleva una batería de 80Ah con la que graba más de 12h y al día siguiente arranca sin problemas. Como sabemos que esa cámara que él tiene, la 650S-2CH, consume 4.8 W en modo normal. Pues haciendo los cálculos…

12.8 V · 80 Ah = 1024W 12.0 V · 80 Ah = 960 W 1024 W - 960 W = 64W / 4.8 Wh = 13.3 horas.

… me cuadra con lo que cuenta el tío.

Otra opción es usar una powerbank. Una específica para coche o una de estas de los móviles. La de los móviles sobra decir que las desaconsejo porque no me fio de una batería de esas en un coche pegándole el solano en verano, por ejemplo. Vamos, para que se hinchen y te salga ardiendo. Bueno, de las específicas para esto, como las Cellink tampoco me fio pero eso ya es cosa mía.

El caso es que con una powerbank de estas de 20.000 mAh, puedes tener para 100 horas de modo parking (20000 mAh, que son 20 Ah, multiplicado por 5V para obtener los Wh). Aunque lo ideal sería no apurarla más de 80 horas, porque las baterías de litio se resienten cuando están cargadas al 100% mucho tiempo o muy descargadas (por debajo del 20%).

Lo que hace las Cellink creo que es combinar el consumo de la batería del coche con el extra de energía que proporcionan ellas. Así te dan un extra de tiempo de grabación en modo parking y cuando arrancas, se van cargando.

En fin, no sé si respondo vuestras preguntas @bol1bus y @javi_sev. Espero que los cálculos estén bien. Y si no, ya me corregirá alguien, que es lo bueno de Internet: nadie pierde el tiempo en ayudar, pero cuando alguien se equivoca, te llueven las críticas y correcciones jaja.

Haría un hilo sobre esto, pero ahora mismo estoy pasando una mala racha y ya bastante tengo con el hilo de los antivirus.

¡Saludos!

Repartidor

Calcular reparto:

/*
    Devuelve el número de elementos que deben asignarse a
    cada semana de forma equitativa.
*/
function repartidor($num_elementos, $num_semanas) {
 
    $division = ($num_elementos / $num_semanas);
 
    if ($division < 1) {
        for ($s = 1; $s <= $num_semanas; $s++) {
            if ($s == 1) {
                $tmp[$s] = $num_elementos;
            } else {
                $tmp[$s] = 0;
            }
 
        }
        return $tmp;
    } else {
        $reparto = round($num_elementos / $num_semanas);
        $ultimo_reparto = $num_elementos - $reparto*($num_semanas - 1);
 
        for ($s = 1; $s <= $num_semanas; $s++) {
            if ($s == $num_semanas) {
                $tmp[$s] = $ultimo_reparto;
            } else {
                $tmp[$s] = $reparto;
            }
        }
 
        return $tmp;
    }
 
}

Reparto:

/*
  Para cada conjunto de elementos, realiza un reparto en X semanas
*/
$semanas = 8;
 
foreach ($conjuntos as $conjunto) {
    $repartidor = repartidor(count($conjunto), $semanas);
 
    for ($s = 1; $s <= $semanas; $s++) {
        echo " - Para la semana {$s}: {$repartidor[$s]} elementos" . PHP_EOL;
        for ($i = 0; $i < $repartidor[$s]; $i++) {
            $reparto_semanas[$s][] = array_shift($contenedor);
        }    
    }
}

Ahora el código que realiza el reparto:

$semanas = 8;
$max_por_semana = 5;
$faltantes = [];
 
// Capacidad de cada semana
for ($s = 1; $s <= $semanas; $s++) {
	$capacidad[$s] = $max_por_semana;
}
 
echo "A repartir entre {$semanas} semanas" . PHP_EOL;
echo "Máximo {$max_por_semana} por semana" . PHP_EOL;
 
foreach ($conjuntos as $cliente => $lineas) {
	//var_dump($lineas);
	//echo " - - - - - - - -" . PHP_EOL;
	echo "- - - - - - Cliente {$cliente} - - - - - -" . PHP_EOL;
	echo "* Líneas: " . count($lineas) . PHP_EOL;
    $repartidor = repartidor(count($lineas), $semanas);
    echo "Reparto propuesto:" . PHP_EOL;
    var_dump($repartidor);
 
    for ($s = 1; $s <= $semanas; $s++) {
    	echo "Semana {$s}" . PHP_EOL;
        for ($i = 1; $i <= $repartidor[$s]; $i++) {
	    	// Comprobar espacio semana X
        	if ($capacidad[$s] != 0) {
            	$reparto_semanas[$s][] = array_shift($lineas);
            } else {
            	//$repartidor[$s+1] += ($repartidor[$s]-$s);
            	break;
            }
            $capacidad[$s]--;
            echo "Huecos libres: {$capacidad[$s]}" . PHP_EOL;
        }
    }
    if (count($lineas) != 0) {
    	//echo "Faltan por meter: " . PHP_EOL;
    	$faltantes[$cliente] = $lineas;
    	//var_dump($conjunto);
    }
}
 
//echo "Resultado final: " . PHP_EOL;
//var_dump($reparto_semanas);
/*
echo "Faltan por meter: " . PHP_EOL;
foreach ($faltantes as $cliente => $lineas) {
	echo "Cliente {$cliente}" . PHP_EOL;
	echo "  Líneas:" . PHP_EOL;
	foreach ($lineas as $linea) {
		echo " - ID: " . $linea["id_linea"]  . " (Marca: " . $linea["marca"]  . ")" . PHP_EOL;
	}
}
*/
 
echo " * * * * * * * Reparto * * * * * * * *" . PHP_EOL;
foreach ($reparto_semanas as $semana => $lineas) {
	echo "Semana {$semana}" . PHP_EOL;
	foreach ($lineas as $linea) {
		echo " - Línea: " . $linea["id_linea"] . " (cliente: " . $linea["cliente"] . ")" . PHP_EOL;
	}
}
 
if (count($faltantes) != 0) {
	echo "No se han podido meter:" . PHP_EOL;
	var_dump($faltantes);
}
//var_dump($faltantes);

Monitor 27 pulgadas

Marca Modelo HDMI DisplayPort USB C Brillo VESA Precio
Dell S2721DGFA No 400 cd/m2 404,99 €
Dell S2721DS No 279,99 €
Asus VG27AQ No 350 cd/m2 349 €
LG 27GN800 No 350 cd/m2 323,9 €
LG 27GP850 No 400 cd/m2 400,37 €
BenQ EX2780Q No 350 cd/m2 379 €
Lenovo Q27h 350 cd/m2 399 €

Daniela y Mia

Docker nginx-proxy

Dos contenedores:

  1. Tener instalado Docker Compose V2 (docker compose en lugar de docker-compose)
  2. Crear carpeta para este proyecto
  3. Crear red por defecto para que use el proxy y lo que se quiera levantar
    1. docker create network skynet
  4. Crear compose.yml
version: '2'

services:
  nginx-proxy:
    image: nginxproxy/nginx-proxy
    container_name: nginx-proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - conf:/etc/nginx/conf.d
      - vhost:/etc/nginx/vhost.d
      - html:/usr/share/nginx/html
      - certs:/etc/nginx/certs:ro
      - /var/run/docker.sock:/tmp/docker.sock:ro
    network_mode: bridge

  acme-companion:
    image: nginxproxy/acme-companion
    container_name: nginx-proxy-acme
    environment:
      - DEFAULT_EMAIL=mail@yourdomain.tld
    volumes_from:
      - nginx-proxy
    volumes:
      - certs:/etc/nginx/certs:rw
      - acme:/etc/acme.sh
      - /var/run/docker.sock:/var/run/docker.sock:ro
    network_mode: bridge

volumes:
  conf:
  vhost:
  html:
  certs:
  acme:

Desplegar contenedores:

services:
  shaarli:
    image: ghcr.io/shaarli/shaarli:release
    container_name: shaarli.tempwin.net
    environment:
      - VIRTUAL_HOST=shaarli.tempwin.net # obligatorio para nginx-proxy
      - LETSENCRYPT_HOST=shaarli.tempwin.net # obligatorio para letsencrypt proxy
      - LETSENCRYPT_EMAIL=tempwin@gmail.com # obligatorio para letsencrypt proxy
    volumes:
      - ./cache:/var/www/shaarli/cache
      - ./data:/var/www/shaarli/data
    restart: unless-stopped

networks:
  default:
    name: alexandria
    external: true

Rifas

Texto: #fdf8dc

  • Número rifa: #f1c232
convert -pointsize 56 -font /usr/share/fonts/TTF/Roboto-Bold.ttf -annotate +830+376 "0001" -pointsize 50 -annotate -90x+1520+235 "0001" -fill "#b8a61c" rifa-navidad-santo-domingo-2023.png salida.png

Original:

Nueva:

convert -pointsize 40 -font /usr/share/fonts/TTF/Roboto-Bold.ttf -annotate +410+220 "0001" -pointsize 40 -annotate -90x+872+125 "0001" -fill "#b8a61c" entrada.png salida.png

En un script:

#!/bin/bash
cd /ruta/imagenes/rifa-navidad-santo-domingo
# Genera números secuenciales del 0001 al 2000
for i in {1..2000}
do
    numero_rifa=$(printf "%04d\n" $i)
    convert -pointsize 40 -font /usr/share/fonts/TTF/Roboto-Bold.ttf -annotate +410+220 "${numero_rifa}" -pointsize 40 -annotate -90x+872+125 "${numero_rifa}" -fill "#b8a61c" boleto-rifa-navidad-santo-domingo-original.png img/boleto_$numero_rifa.png
done

HeidiSQL

SELECT *
FROM backlog_krt_abiertas_entre_48h_168h t
WHERE t.semana = 6 
 
 
 
 
SELECT *
FROM backlog_krt t
WHERE t.marca = 'Telecable' 
 
 
-- Pruebas
SELECT *
FROM backlog_krt t
WHERE t.id = 8025788
 
;
DELETE
FROM backlog_krt_abiertas_entre_48h_168h 
WHERE semana = 52
 
DELETE
FROM backlog_krt_abiertas_menos_48h
WHERE semana = 52
 
 
-- Fin pruebas
 
 
-- Ahora (23/01/2023): 53.622
-- Antes (13/01/2023): 52.269
SELECT COUNT(*)
FROM  backlog_krt t
WHERE t.marca = 'Euskaltel'
AND t.id = 8240429
 
 
 
DELETE
FROM backlog_krt_abiertas 
WHERE semana = 52 
 
 
 
SELECT COUNT(id) AS incidencias, t.marca
FROM backlog_krt_abiertas t
WHERE semana = 52
AND DATE_FORMAT(t.fecha, '%x') = 2022
GROUP BY t.marca
 
 
 
 
SELECT -- *
COUNT(*), YEAR(t.fecha) AS ano
FROM cal t
WHERE t.descripcion LIKE '%xxx%'
GROUP BY  YEAR(t.fecha)
 
 
 
SELECT *
FROM cttcomentarios  t
WHERE t.NCTTCO = 57426969 
 
 
 
-- Total 171
-- Euskaltel:  71
-- R:				91
-- Telecable:   9
SELECT *
FROM backlog_krt_resueltas t
WHERE t.semana = 49
  AND YEAR(t.fecha) = 2022
;;  
 
-- PRO: 		47.939
-- LOCAL: 	50.828 (03/01/2023)
SELECT COUNT(*)
FROM backlog_krt 
 
 
SELECT id, semana, tipo_cliente, fecha_creacion, fecha_solucion, marca
FROM backlog_krt_abiertas
WHERE YEAR(fecha) = 2022 AND semana = 49 AND marca = 'euskaltel' AND tipo_cliente IN ('Mediana Empresa', 'Pequeña Empresa', 'Negocio') AND segmento_postventa = 'N2'
 
 
 
 
 
 
SELECT *
FROM backlog_krt_resueltas_resumen t
WHERE t.semana = 49
  AND t.ano = 2022
 
 
DELETE
FROM backlog_krt_abiertas
WHERE
    marca = 'Euskaltel'
    AND semana = 49
    AND YEAR(fecha) = 2022
 
 
 
 
SELECT * 
FROM backlog_krt_abiertas_resumen t
where t.semana = 50
 
-- Incidencias desde 2022 hasta 12/12/2022
 
-- Euskaltel: 14985
-- R: 		  27820
-- Telecable:  5134
 
-- Total: 47.939
 
 
 
SELECT AVG(horas_resolucion) AS tmr
FROM backlog_krt_resueltas t
WHERE semana = 42
AND tipo_cliente = 'Pyme'
AND marca = 'Telecable'
 
 
SELECT *
from backlog_krt_abiertas
;;
 
SELECT t.*, TIMESTAMPDIFF(HOUR, fecha_creacion, fecha_solucion) as horas_resolucion
FROM backlog_krt t
WHERE t.fecha_solucion BETWEEN '2022-09-26' AND '2022-10-02'
AND t.marca = 'Telecable'
AND t.tipo_cliente = 'Pyme'
AND DATEDIFF('2022-10-02', fecha_creacion) > 7
;;
 
SELECT *
FROM backlog_krt_resueltas t
where t.marca = 'R'
AND t.tipo_cliente = 'MEDIANA'
AND t.semana = 45
 
 
 
 
 
WHERE t.fecha_solucion >= '2022-09-26' 
AND t.fecha_solucion <= '2022-10-02'
 
 
 
 
/*
	Revisión vivos
	--------------
*/
SELECT a.fecha_consulta, a.id, a.fecha_creacion, a.fecha_solucion, a.fecha_cierre, a.tipo_cliente, a.estado, a.marca, a.dias_abierto, a.fecha_4_meses
FROM (
SELECT 
	'2022-11-06' as fecha_consulta, 
	t.*, 
	DATEDIFF('2022-11-06', fecha_creacion) AS dias_abierto,
	DATE_FORMAT(DATE_ADD(t.fecha_creacion, INTERVAL 120 DAY), '%Y-%m-%d') AS fecha_4_meses
FROM backlog_krt t
WHERE 
    DATEDIFF('2022-11-06', fecha_creacion) > 7
    /*
    AND ((DATE_FORMAT(fecha_solucion, '%Y-%m-%d') > '2022-11-06' AND fecha_solucion IS NOT NULL) 
	       OR (fecha_solucion IS NULL AND DATE_FORMAT(DATE_ADD(t.fecha_creacion, INTERVAL 120 DAY), '%Y-%m-%d') < '2022-11-06'))
	       */
    /*
    AND (
	 		(fecha_solucion IS NOT NULL AND DATE_FORMAT(fecha_solucion, '%Y-%m-%d') > '2022-11-06')
 
	 		OR (fecha_solucion IS NULL AND DATE_FORMAT(DATE_ADD(t.fecha_creacion, INTERVAL 120 DAY), '%Y-%m-%d') < '2022-11-06')
		)*/
		AND (
			(marca = 'Euskaltel' AND tipo_cliente IN ('Mediana Empresa', 'Pequeña Empresa') AND segmento_postventa = 'N2')
				OR (marca = 'Telecable' AND tipo_cliente = 'Pyme')
				OR (marca = 'R' AND tipo_cliente = 'MEDIANA')
			)
--			AND id IN (1726507, 1726511, 1734119)
 
) a
WHERE 
     -- a.fecha_solucion IS NULL 
	  (DATE_FORMAT(DATE_ADD(a.fecha_creacion, INTERVAL 120 DAY), '%Y-%m-%d') < '2022-11-06' AND a.fecha_solucion IS NULL)
	  OR (
	  			a.fecha_solucion IS NOT NULL 
				  AND DATE_FORMAT(fecha_solucion, '%Y-%m-%d') > '2022-11-06' 
				  -- AND DATE_FORMAT(DATE_ADD(a.fecha_creacion, INTERVAL 120 DAY), '%Y-%m-%d') < '2022-11-06'
				  )
;
 
-- 55913514
-- 56157363
SELECT *
FROM  backlog_krt
WHERE id IN (55913514, 56157363)
 
 
 
/*
	Tiempo Medio de Gestión (TMG)
	-----------------------------
	*/
SELECT AVG(a.horas_gestion) AS tmr
FROM (
SELECT id, semana, marca, max(horas_gestion) AS horas_gestion
FROM backlog_krt_abiertas
WHERE semana = 47 
AND marca = 'Telecable'
-- AND tipo_cliente IN ('Mediana Empresa', 'Pequeña Empresa') AND segmento_postventa = 'N2'
-- AND tipo_cliente = 'MEDIANA'
AND tipo_cliente = 'Pyme'
GROUP BY id, semana, marca
) a
 
SELECT (43*627 + 18*1056 + 7*1047) / 68
 
 
SELECT *
FROM backlog_krt_abiertas
where id  IN (1726507, 1726511, 1734119)
AND semana = 47
 
 
SELECT t.*, WEEK (t.fecha_solucion) AS semana_solucion
FROM backlog_krt_abiertas t
WHERE id = 8084836
-- where t.semana = WEEK(t.fecha_solucion)
;
 
SELECT t.*, WEEK(t.fecha_solucion, 1)
FROM backlog_krt_resueltas t
WHERE t.semana <> WEEK(t.fecha_solucion, 1)
 
 
SELECT *
FROM backlog_krt_abiertas
WHERE YEAR(fecha) = 2022 AND semana = 47
and tipo_cliente IN ('Mediana Empresa', 'Pequeña Empresa', 'Negocio') AND segmento_postventa = 'N2' 
AND marca = 'Euskaltel'
 
 
 
AND ((tipo_cliente = 'MEDIANA' AND marca = 'R')
     OR (tipo_cliente = 'Pyme' AND marca = 'Telecable') 
	  OR (tipo_cliente IN ('Mediana Empresa', 'Pequeña Empresa', 'Negocio') AND segmento_postventa = 'N2' AND marca = 'Euskaltel')
	  )
-- AND ((tipo_cliente IN ('Mediana Empresa', 'Pequeña Empresa', 'Negocio') AND segmento_postventa = 'N2') OR tipo_cliente = 'MEDIANA' OR tipo_cliente = 'Pyme')
 
 
SELECT *
FROM backlog_krt t
WHERE t.id = 7825597 
 
 
 
 
 
SELECT COUNT(t.id) AS farmacias, t.tecnologia, t.mes
FROM farmacias_historico t
WHERE t.ano = 2022
GROUP BY t.tecnologia, t.mes
 
 
 
SELECT *
FROM backlog_krt 
where fecha_solucion IS null
and DATE_FORMAT(DATE_ADD(fecha_creacion, INTERVAL 120 DAY), '%Y-%m-%d') < '2022-11-28'
 
 
SELECT *
FROM backlog_krt_abiertas
WHERE dias_abierta > 120
AND fecha_solucion IS null
 
SELECT count(id), marca
FROM backlog_krt_abiertas
GROUP BY marca 
 
 
 
SELECT *, DATE_FORMAT(DATE_ADD(fecha_creacion, INTERVAL 120 DAY), '%Y-%m-%d')
FROM backlog_krt_resueltas 
WHERE DATE_FORMAT(DATE_ADD(fecha_creacion, INTERVAL 120 DAY), '%Y-%m-%d') < '2022-10-01'
-- AND fecha_solucion IS NULL
 
 
 
SELECT AVG(a.horas_gestion) as tmg
             FROM (
                 SELECT
                      -- id as incidencias,
                      -- MAX(horas_gestion) AS horas_gestion
                       *
                  FROM backlog_krt_abiertas
                  WHERE
                      marca = 'Euskaltel'
                      AND YEAR(fecha) = 2022
                      AND semana = 41
                       -- AND horas_resolucion IS NULL
                      AND tipo_cliente IN ('Mediana Empresa', 'Pequeña Empresa', 'Negocio') AND segmento_postventa = 'N2' 
                      -- AND id NOT IN (7698998, 7720872, 7825597, 7847448, 7942282, 7947890, 8017220)
                   GROUP BY id) a
 
SELECT *
FROM backlog_krt 
WHERE DATEDIFF('2022-08-01', fecha_creacion) > 7
AND (DATE_FORMAT(fecha_solucion, '%Y-%m-%d') > '2022-08-01' OR fecha_solucion IS NULL) 
 
-- where t.fecha = '2022-08-01'
 
 
 
 
 
SELECT *
FROM backlog_krt_resueltas t
WHERE t.semana = 39
AND t.marca = 'Pyme'
 
SELECT (197+173) / 2
 
 
 
SELECT AVG(a.horas) AS tmg
FROM (
                SELECT 
					 /*id AS incidencia, 
MAX(horas_gestion) AS horas*/ *
                FROM backlog_krt_abiertas
                WHERE
                    marca = 'Euskaltel'
                    AND YEAR(fecha) = 2022
                    AND semana = 44
                    -- AND horas_resolucion IS NULL
                     AND tipo_cliente IN ('Mediana Empresa', 'Pequeña Empresa', 'Negocio') AND segmento_postventa = 'N2' 
                     GROUP BY id
                     ) a
 
 
 
 
 
 
 
 
SELECT *
FROM backlog_krt_abiertas t
WHERE  t.fecha = '2022-11-09'
AND DATE_FORMAT(t.fecha_solucion, '%Y-%m-%d') <= '2022-08-09'
 
 
            SELECT
                id,
                fecha_creacion,
                fecha_solucion,
                fecha_cierre,
                tipo_cliente,
                segmento_postventa,
                marca,
                '2022-08-01' as fecha,
                DATEDIFF('2022-08-01', fecha_creacion) as dias_abierta,
                TIMESTAMPDIFF(HOUR, fecha_creacion, DATE_FORMAT('2022-08-01', '%Y-%m-%d 00:00:00')) as horas_gestion
            FROM backlog_krt
            WHERE marca = 'Euskaltel'
              AND DATEDIFF('2022-08-01', fecha_creacion) > 7
              AND DATE_FORMAT(fecha_solucion, '%Y-%m-%d') > '2022-08-01'
 
 
 
 
 
 
 
 
 
SELECT *
FROM backlog_krt_abiertas t
 
select TIMESTAMPDIFF(HOUR, '2022-07-11 11:03:23', DATE_FORMAT('2022-08-01', '%Y-%m-%d 00:00:00'))
-- 1718084 2022-08-01
 
SELECT DATE_FORMAT('2022-01-01', '%Y-%m-%d 00:00:00')
/*
 
Tipos de cliente 
----------------
 
Euskaltel
 
* Gran cuenta: "Gran Cuenta"
* PYME: "Mediana Empresa" + "Pequeña Empresa" o Segmento Postventa = N2
 
R
 
* Gran Cuenta: GRAN CUENTA
* PYME: MEDIANA
 
Telecable
 
* Gran Cuenta: GRAN CUENTA
* PYME: MEDIANA
 
 
*/
SELECT *
FROM backlog_krt_abiertas t
WHERE t.marca = 'Telecable' 
AND t.semana = '33'
AND t.tipo_cliente = 'Pyme'
 
 
-- IMPORTANTE que hay casi 500  que aparecen
-- como Mediana Empresa y Pequeña Empresa
-- el resto, 3885 son de Pyme
SELECT COUNT(t.id) AS avisos, t.tipo_cliente
FROM backlog_krt t
WHERE t.marca = 'Telecable'
AND t.tipo_cliente NOT IN ('Gran Cliente', 'Gran Cuenta')
GROUP BY t.tipo_cliente
 
 
 
/*
Backlog exportado Vs origen
 
* K: 21.159 (21.167, 8 valores duplicados)
* R: 89.988 (90.249, 261 valores duplicados)
* T:  4.275 (4.275)
 
*/
SELECT COUNT(*), marca
FROM backlog_krt 
GROUP BY marca
;;
 
/*
	Origen
	------
 
	* Euskaltel: 280.805
	* R				8.179
	* Telecable		  620
 
	Limpieza:
	---------
 
	* Euskaltel: 136.182
	* R				8.179
	* Telecable		  620	
 
*/
SELECT *
FROM backlog_krt_abiertas t
WHERE t.fecha_solucion IS NOT NULL
OR t.fecha_cierre IS NOT NULL
;;
 
SELECT *
FROM backlog_krt_abiertas_resumen 
 
 
 
 
 
 
 
-- 115.691 registros debería haber
-- 115.422 son los que se insertan. K tiene repetidos
 
/*
ANTIGUO: Backlog exportado Vs origen
 
* K: 21.159 (21.167, 8 valores duplicados)
* R: 91.647 (91.674)
* T: 4275 (4.275)
 
*/
 
 
SELECT DISTINCT id
FROM backlog_krt_abiertas t
WHERE /*t.semana = 43*/
t.fecha BETWEEN '2022-10-24' AND '2022-10-30'
AND t.marca = 'R'
AND t.tipo_cliente = 'MEDIANA'
 
 
 
 
 
 
 
 
 
 
 
UPDATE backlog_krt_abiertas_resumen
SET tmr = null
 
 
 
SELECT AVG(a.horas_resolucion) AS tmr
FROM (
SELECT DISTINCT id,
horas_resolucion
FROM backlog_krt_abiertas t
WHERE semana = 1
AND YEAR(fecha) = 2022 
AND marca = 'Telecable'
-- Euskaltel:
-- AND tipo_cliente IN ('Mediana Empresa', 'Pequeña Empresa') AND segmento_postventa = 'N2' 
-- Telecable:
AND tipo_cliente = 'Pyme'
AND horas_resolucion IS NOT NULL
) a
-- GROUP BY t.id
 
SELECT AVG(a.horas_resolucion) AS tmr
FROM (
SELECT COUNT(DISTINCT id) AS incidencias
FROM backlog_krt_abiertas
WHERE marca = 'Euskaltel' AND YEAR(fecha) = 2022 AND semana = 39 AND horas_resolucion IS NOT NULL) a
 
 
SELECT (402+359+382+401) / 4
 
 
 
 
 
-- Eliminar los registros de Euskaltel donde no haya fecha de 
-- cierre después de 4 meses
DELETE
FROM backlog_krt_abiertas
WHERE t.marca = 'Euskaltel'
AND t.fecha_cierre IS NULL
AND DATE_ADD(t.fecha_creacion, INTERVAL 120 DAY) > '2022-09-30'
 
-- Candidatos a borrarse:
SELECT t.*,
DATE_ADD(t.fecha_creacion, INTERVAL 120 DAY) AS futuro
FROM backlog_krt_abiertas t
WHERE t.marca = 'Euskaltel'
  AND DATE_FORMAT(DATE_ADD(t.fecha_creacion, INTERVAL 120 DAY), '%Y-%m-%d') > '2022-09-25'
  AND t.fecha = '2022-09-25' --  <---- fecha consulta
  AND t.fecha_cierre IS null
 
SELECT t.*, DATE_ADD(t.fecha_creacion, INTERVAL 120 DAY)
FROM backlog_krt_abiertas t
WHERE t.marca = 'Euskaltel'
AND DATE_FORMAT(DATE_ADD(t.fecha_creacion, INTERVAL 120 DAY), '%Y-%m-%d') < '2022-10-01'
AND t.fecha = '2022-10-01' --  <---- fecha consulta
AND t.fecha_cierre IS NULL
 
;;
 
 
SELECT 
 COUNT(*)
FROM backlog_krt_abiertas t
WHERE t.marca = 'Euskaltel'
AND t.dias_abierta > 120
 -- 483.455 Antes
									 -- Tras limpieza
-- FROM backlog_krt_abiertas_copy 
 
 
SELECT t.*,
(t.horas_resolucion / 24) AS dias
FROM backlog_krt_abiertas t
where t.dias_abierta > 120
WHERE /* t.fecha = '2022-10-02' 
AND */ t.fecha_cierre IS NULL
 
 
 
SELECT *
FROM backlog_krt_abiertas_resumen t
where t.ano = 2022
and t.semana = 40
and t.tipo_cliente = 'PYME'
AND t.marca = 'R'
; 
 
SELECT 
COUNT(DISTINCT t.id) AS incidencias
FROM backlog_krt_abiertas t
WHERE t.marca = 'Euskaltel'
AND t.semana = 43 
AND t.tipo_cliente IN ('Mediana Empresa', 'Pequeña Empresa') AND t.segmento_postventa = 'N2'
 
 
 
-- Calcular horas resolucion R
UPDATE backlog_krt_abiertas
   SET horas_resolucion = TIMESTAMPDIFF(HOUR, fecha_creacion, fecha_solucion)
 WHERE marca = 'R' 
   AND fecha_solucion IS NOT NULL
;;   
   -- Calcular horas resolucion K y T
UPDATE backlog_krt_abiertas
   SET horas_resolucion = TIMESTAMPDIFF(HOUR, fecha_creacion, fecha_cierre)
 WHERE marca IN ('Euskaltel', 'Telecable')
   AND fecha_cierre IS NOT NULL
;;
 
-- Inserción en tabla resumen
INSERT INTO backlog_krt_abiertas_resumen
SELECT 
YEAR(t2.fecha) AS ano,
	t2.semana,
	case
		when t2.marca = 'Euskaltel' AND t2.segmento_postventa = 'N2' AND t2.tipo_cliente IN ('Mediana Empresa', 'Pequeña Empresa') then 'PYME'
		when t2.marca = 'Telecable' AND t2.tipo_cliente = 'Pyme' then 'PYME'
		when t2.marca = 'R' AND t2.tipo_cliente = 'MEDIANA' then 'PYME'
      when t2.marca = 'R' AND t2.tipo_cliente = 'GRAN CUENTA' then 'GGCC'
	END AS tipo_cliente_calc,
	COUNT(DISTINCT t2.id) AS incidencias,
	NULL AS horas_resolucion_promedio,
	t2.marca
FROM backlog_krt_abiertas t2
GROUP BY YEAR(t2.fecha), t2.semana, tipo_cliente_calc, t2.marca
 
)
 
SELECT avg(a.horas_cierre)
FROM (
SELECT 
DISTINCT t.id,
t.fecha_creacion,
t.fecha_solucion,
t.fecha_cierre,
TIMESTAMPDIFF(HOUR, t.fecha_creacion, t.fecha_cierre) AS horas_cierre
FROM backlog_krt_abiertas t 
WHERE t.fecha_cierre IS NOT NULL
AND t.marca IN ('Telecable', 'Euskaltel')
AND t.semana = 10
AND YEAR(t.fecha) = 2022
) a
 
SELECT (1711 + 285) / 2
 
 
 
SELECT 
count(DISTINCT t.id) AS incidencias
/*
	distinct t.id, 
	t.tipo_cliente,
	t.marca,
case 
	when t.marca = 'R' AND t.tipo_cliente = 'GRAN CUENTA' then 'GGCC'
	when t.marca = 'Euskaltel' AND t.tipo_cliente IN ('Pequeña Empresa', 'Mediana Empresa') AND t.segmento_postventa = 'N2' then 'PYME'
	when t.marca = 'Telecable' AND t.tipo_cliente = 'Pyme' then 'PYME'
	END AS tipo_cliente_calc
	*/
FROM  backlog_krt_abiertas t
WHERE t.semana = 10
AND YEAR(t.fecha) = 2022
AND t.tipo_cliente = 'MEDIANA'
AND t.marca = 'R'
;
 
 
 
/*
Backlog exportado Vs origen
 
* K: 21.159 (21.167, 8 valores duplicados)
* R: 91.647 (91.674)
* T: 4275 (4.275)
 
*/
SELECT 21167 + 91674+4275
SELECT COUNT(*), t.marca
FROM backlog_krt t
GROUP BY t.marca
;
 
-- Para K y T, es fecha cierre
-- Para R, fecha solución
SELECT t.id, t.fecha_creacion, t.fecha_solucion, t.fecha_cierre, t.tipo_cliente, t.segmento_postventa, t.marca, '2022-01-31', DATEDIFF('2022-01-31', t.fecha_creacion)
FROM  backlog_krt t
WHERE DATEDIFF('2022-01-31', t.fecha_creacion) > 7
  AND 
  (
  	DATE_FORMAT(t.fecha_cierre, '%Y-%m-%d') > '2022-01-31'
  	OR
  	t.fecha_cierre IS NULL
  	)
;;;
 
 
SELECT  DISTINCT t.id
/*, t.fecha*/
FROM backlog_krt_abiertas t
WHERE 
 t.semana = 13
-- AND YEAR(t.fecha) = 2022
-- t.fecha = '2022-03-28'
AND t.marca = 'Euskaltel'
AND t.tipo_cliente IN ('Pequeña Empresa', 'Mediana Empresa')
AND t.segmento_postventa = 'N2'
-- AND t.tipo_cliente = 'MEDIANA'
-- GROUP BY t.id
 
SELECT *
FROM backlog_krt t
WHERE t.id = 54510465 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SELECT *
FROM ots_campo t
WHERE t.marca = 'Telecable'
; 
 
 
 
 
-- Pendientes citar R
SELECT *
FROM ots_campo t
WHERE t.marca = 'R'
AND t.fecha_actualizacion  = '2022-11-21'
AND t.agrupacion_ot = 'Alta'
AND t.estado_ot_calculado = 'PENDIENTE CONCERTACION'
AND t.tiene_pe = 'n'
-- AND t.subsegmento_canal = 'GRANDE'
-- AND t.subsegmento_canal = 'MEDIANA'
AND t.subsegmento_canal = 'PEQUEÑA'
;;
 
-- Pendientes citar Euskaltel
SELECT *
FROM ots_campo t
WHERE t.marca = 'Euskaltel'
AND t.fecha_actualizacion  = '2022-11-21'
AND t.agrupacion_ot = 'Alta'
AND t.nombre_ot <> 'Supervision Portabilidad'
AND t.estado_ot_calculado = 'PENDIENTE CONCERTACION'
AND t.tiene_pe = 'n'
AND t.subsegmento_canal = 'Gran Cuenta'
-- AND t.subsegmento_canal = 'Mediana Empresa'
-- AND t.subsegmento_canal = 'Pequeña Empresa'
;;
 
-- Pendientes citar Telecable
SELECT *
FROM ots_campo t
WHERE t.marca = 'Telecable'
AND t.fecha_actualizacion  = '2022-11-21'
AND t.agrupacion_ot = 'Alta' 
AND t.nombre_ot NOT IN ('Homologación', 'Reconfiguración Centralita', 'Configuración CCAA')
AND t.nombre_ot <> 'Supervision Portabilidad'
AND t.estado_ot_calculado = 'PENDIENTE CONCERTACION'
AND t.tiene_pe = 'n'
AND t.subsegmento_canal = 'Gran Cliente'
-- AND t.subsegmento_canal = 'Mediana Empresa'
-- AND t.subsegmento_canal = 'Pyme'
;;
 
SELECT *
FROM ots_campo t 
-- WHERE t.id_ot_voa = 36284347
where t.fecha_actualizacion = '2022-11-21'
;;
 
-- Promedio citar R
SELECT /*(COALESCE(AVG(t.tiempo_cita_ot), 0)) / 3600 / 24 AS tiempo*/
*
FROM ots_campo t
WHERE t.marca = 'R'
  AND t.fecha_actualizacion  = '2022-11-21'
  AND t.agrupacion_ot = 'Alta'
  AND t.estado_ot = 'PENDIENTE'
--  AND t.estado_ot IN ('PENDIENTE CONCERTACION', 'PENDIENTE')
  AND t.tiene_pe = 'n'
  AND t.tiene_incidencia_ot = 'n'
--  AND t.subsegmento_canal = 'GRANDE' -- Promedio citar: 3,81 días
 AND t.subsegmento_canal = 'MEDIANA'
-- AND t.subsegmento_canal = 'PEQUEÑA'
;;
 
-- Promedio citar Euskaltel
SELECT (COALESCE(AVG(t.tiempo_cita_ot), 0)) / 3600 / 24 AS tiempo
FROM ots_campo t
WHERE t.marca = 'Euskaltel'
AND t.fecha_actualizacion  = '2022-11-21'
AND t.agrupacion_ot = 'Alta'
AND t.estado_ot_calculado IN ('PENDIENTE', 'PENDIENTE CONCERTACION')
AND t.tiene_pe = 'n'
AND t.nombre_ot <> 'Supervisión Portabilidad'
AND t.subsegmento_canal = 'Gran Cuenta' -- Promedio citar: 1,79 días
-- AND t.subsegmento_canal = 'Mediana Empresa'
-- AND t.subsegmento_canal = 'Pequeña Empresa'
;;
 
-- Promedio citar Telecable
SELECT (COALESCE(AVG(t.tiempo_cita_ot), 0)) / 3600 / 24 AS tiempo
FROM ots_campo t
WHERE t.marca = 'Telecable'
AND t.fecha_actualizacion  = '2022-11-21'
AND t.agrupacion_ot = 'Alta' 
AND t.nombre_ot NOT IN ('Homologación', 'Reconfiguración Centralita', 'Configuración CCAA')
AND estado_ot_calculado IN ('PENDIENTE', 'PENDIENTE CONCERTACION')
AND t.tiene_pe = 'n'
AND t.subsegmento_canal = 'Gran Cliente' -- Promedio citar: 4,42
-- AND t.subsegmento_canal = 'Mediana Empresa'
-- AND t.subsegmento_canal = 'Pyme'
 
-- Indicadores para gráfica
SELECT AVG(valor) AS promedio_grupo
from ots_campo_altas_indicadores i
WHERE i.fecha = '2022-11-21'
-- AND i.marca = 'R'
-- AND i.indicador = 'Tiempo promedio concertación cita (sin PE)'
-- AND i.tipo_cliente = 'Grande'
AND i.tipo_cliente = 'Mediana'
-- AND i.tipo_cliente = 'Pequeña'
;
 
-- OTs pendientes
-- OTs pendientes citar
-- Indicadores para gráfica
SELECT *
from ots_campo_altas_indicadores i
WHERE i.fecha = '2022-11-21'
AND i.indicador = 'Tiempo promedio desde cita (sin PE)'
-- AND i.marca = 'R'
-- AND i.indicador = 'OTs pendiente (sin PE)' -- 12 + 17 + 3
-- AND i.indicador = 'OTs pendiente citar (sin PE)' -- 7 + 3 + 1
-- AND i.tipo_cliente = 'Grande'
AND i.tipo_cliente = 'Mediana'
-- AND i.tipo_cliente = 'Pequeña'
 
 
 
SELECT valor AS ots
            FROM ots_campo_altas_indicadores
            WHERE 
              fecha = '2022-11-07'
            AND indicador = 'OTs pendiente citar (sin PE)'
            AND tipo_cliente = 'Grande'
            AND marca = 'Euskaltel'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
             SELECT
                  e.id,
                  e.fecha,
                  e.descripcion,
                  e.id_tipo,
                  t.nombre AS tipo,
                  e.id_marca,
                  m.nombre AS marca,
                  e.id_grupo,
                  g.nombre AS grupo,
                  masiva.id_ticket AS id_masiva,
                  masiva.clientes,
                  masiva.zona_afectada,
                  masiva.fecha_inicio AS fecha_inicio_masiva,
                  masiva.fecha_fin AS fecha_fin_masiva,
                  sistema.id_sistema,
                  sistema.id_incidencia AS id_jira,
                  sistema.fecha_inicio,
                  sistema.fecha_fin
                   -- e.id_impacto,
                   -- i.nombre AS impacto
               FROM sarabia_eventos e
               INNER JOIN sarabia_eventos_tipos t ON e.id_tipo = t.id
               INNER JOIN sarabia_marcas m ON e.id_marca = m.id
               INNER JOIN sarabia_grupos g ON e.id_grupo = g.id
               LEFT JOIN sarabia_eventos_masivas masiva ON e.id = masiva.id_evento
               LEFT JOIN sarabia_eventos_sistemas sistema ON e.id = sistema.id_evento
               WHERE
                 e.id = 43
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SELECT *
FROM ots_campo t
WHERE t.id_ot_voa = '36286178'
 
;;
 
 
 
SELECT *
FROM ots_campo_altas_indicadores t
WHERE t.fecha = '2022-11-07' 
-- AND t.indicador = 'Tiempo promedio desde cita (sin PE)'
AND t.indicador = 'Tiempo promedio concertación cita (sin PE)'
AND t.tipo_cliente = 'Grande'
 
SELECT AVG(
SELECT (1.79+3.81+4.42 ) / 3
 
SELECT ((0.75 + 2) / 3)
 
SELECT ((1.33 + 0.49 + 0) / 3)
 
 
 
SELECT t.codigo_cliente
FROM swap_cerrados t
GROUP BY t.codigo_cliente 
 
 
 
 
 
 
 
 
 
 
 
ALTER TABLE sarabia_eventos AUTO_INCREMENT=1;
 
 
 
            SELECT
                e.id,
                e.fecha,
                e.descripcion,
                e.id_tipo,
                t.nombre AS tipo,
                e.id_marca,
                m.nombre AS marca,
                e.id_grupo,
                g.nombre AS grupo,
                masiva.id_ticket AS id_masiva,
                masiva.clientes,
                masiva.zona_afectada,
                sistema.id_sistema,
                sistema.id_incidencia AS id_jira,
                sistema.fecha_inicio,
                sistema.fecha_fin
                -- e.id_impacto,
                -- i.nombre AS impacto
            FROM sarabia_eventos e
            INNER JOIN sarabia_eventos_tipos t ON e.id_tipo = t.id
            INNER JOIN sarabia_marcas m ON e.id_marca = m.id
            INNER JOIN sarabia_grupos g ON e.id_grupo = g.id
            LEFT JOIN sarabia_eventos_masivas masiva ON e.id = masiva.id_evento
            LEFT JOIN sarabia_eventos_sistemas sistema ON e.id = sistema.id_evento
            WHERE
                e.id = 38
 
 
 
 
 
 
 
 
 
 
/*
 
		QeP Tbook
 
*/
 
SELECT SUM(u.incidencias_promedio) AS esperado
FROM umbrales_servicios u
WHERE u.nombre_dia = 'Lunes'
-- AND u.hora = 10
AND u.servicio_afectado IN (
               'MOVIL',
               'TL',
               'TLMovil',
               'TLMovilMultiSIM',
               'TLMovil_Ajeno',
               'TLMovil_M2M',
               'TLMovil_M2M_Ajeno',
               'TLMovil_MultiSIMDatos'
           )
 
 
 
 
 
               SELECT
--               	t.fecha_creacion
 
                   HOUR(t.fecha_creacion) AS hora,
                   t.servicio_afectado AS servicio_afectado,
                   t.tipo_cliente AS tipo_cliente,
                   COUNT(t.id_ticket) AS total
 
               FROM incidencias_historico t
                WHERE DATE_FORMAT(t.fecha_creacion, '%Y-%m-%d') IN ( '2022-10-24', '2022-10-17', '2022-10-10')
/*
               WHERE DATE_FORMAT(t.fecha_creacion, '%Y-%m-%d') IN (
                                                                   SELECT fecha
                                                                   FROM calendario c
                                                                 WHERE c.ano >= 2021
                                                                     AND c.ano <= 2022
                                                                     AND c.nombre_dia = 'Lunes'
                                                                )
*/                                  
 
 
                GROUP BY HOUR(t.fecha_creacion),
                         t.servicio_afectado,
                         t.tipo_cliente
 
 
 
 
 
 
 
 
/*
 
 
			CGC
 
 
 
*/
          SELECT *
           FROM cttcomentarios a
           LEFT JOIN cttticketcomenta b
             ON a.NCTTCO = b.NCTTO
           WHERE a.Codigodecliente IN (
                                       SELECT ID
                                       FROM cgr
                                       WHERE Matriz LIKE 203933592
                                   )
           GROUP BY a.NCTTCO
          -- Descartamos los CTT que no interesan o son erróneos porque comparten
          -- código de cliente o alguna chapuza/fallo humano que hayan hecho:
          HAVING a.NCTTCO NOT IN (
                                      SELECT id_ctt
                                      FROM ctt_ignorados
                                  )
			ORDER BY a.FHApertura desc
 
 
          order by a.EstadoIncidencia,
                   a.NCTTCO DESC
 
 
           SELECT *
           FROM cttcierre a
           LEFT JOIN cttticketcomenta b
             ON a.NCTT = b.NCTTO
          WHERE a.Codigodecliente IN (
                                       SELECT ID
                                       FROM cgr
                                       WHERE Matriz LIKE 203933592
                                   )
             AND (
                       FHCierre >='2022-10-18 00:00' and FHCierre <= '2022-10-26 00:00:00'
                   )
             AND a.NCTT NOT IN (
                               select NCTT
                              from cgr_cttinfo
                          )
          GROUP BY a.NCTT
          -- Descartamos los CTT que no interesan o son erróneos porque comparten
          -- código de cliente o alguna chapuza/fallo humano que hayan hecho:
          HAVING a.NCTT NOT IN (
                                      SELECT id_ctt
                                     FROM ctt_ignorados
                                  )
          ORDER BY NCTT DESC
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SELECT 
 (coalesce(avg(t.tiempo_cita_instalacion_ot), 0)/ 3600/24) AS tiempo
FROM ots_campo t
WHERE t.fecha_actualizacion = '2022-10-10'
AND t.subsegmento_canal IN ('Gran Cuenta', 'GRANDE')
AND t.agrupacion_ot = 'Alta'
AND t.estado_ot_calculado = 'PENDIENTE'
AND t.marca = 'Euskaltel'
/*
	Euskaltel: 2.265226571268 * 10= 22,6522657127
	R: 13.241304720962 * 18       = 238,3434849773
	Telecable: 0.000000000000 * 1 = 0
*/
 
;;
 
-- Promedio desde concertación a instalación
SELECT valor
FROM ots_campo_altas_indicadores t
WHERE t.indicador = 'Tiempo promedio desde cita (sin PE)'
AND t.marca = 'Telecable'
AND t.tipo_cliente = 'Grande'
AND t.fecha = '2022-10-10'
;;
-- OTs pendiente por marca
SELECT t.valor
FROM  ots_campo_altas_indicadores t
WHERE t.indicador = 'OTs pendiente (sin PE)'
AND t.marca = 'Euskaltel'
AND t.tipo_cliente = 'Grande'
AND t.fecha = '2022-10-10'
;;
 
-- OTs pendiente total
SELECT SUM(t.valor) AS ots
FROM  ots_campo_altas_indicadores t
WHERE t.indicador = 'OTs pendiente (sin PE)'
-- AND t.marca = 'Euskaltel'
AND t.tipo_cliente = 'Grande'
AND t.fecha = '2022-10-10'
;;
 
 
SELECT *
FROM ots_campo_altas_indicadores
WHERE 
 fecha = '2022-07-25' AND indicador = 'OTs pendiente (sin PE)' AND tipo_cliente = 'Grande' AND marca = 'Euskaltel'
 
 
 
 
 
 
 
 
 
 
 
SELECT (2.265226571268*10 + 13.241304720962*18 + 0*1) / 29
 
;
SELECT SUM(valor) AS pendientes
FROM ots_campo_altas_indicadores t
WHERE t.indicador = 'OTs pendiente (sin PE)'
-- AND t.marca = 'Telecable'
AND t.fecha = '2022-10-10'
AND t.tipo_cliente = 'Grande'
 
 
 
 
 
 
SELECT *
FROM ots_campo_altas_indicadores t
WHERE t.fecha = '2022-10-17' 
AND t.tipo_cliente = 'Grande'
AND t.marca = 'R'
;;
;;
 
SELECT 
-- ((coalesce(AVG(t.tiempo_cita_ot),0)) / 3600) / 24
t.fecha_actualizacion,
t.fecha_creacion,
t.fecha_concertacion_cita,
(t.tiempo_cita_ot) / 3600
FROM ots_campo t
WHERE t.fecha_actualizacion = '2022-10-17'
AND t.marca = 'R'
AND t.estado_ot IN ('PENDIENTE', 'PENDIENTE CONCERTACION')
AND t.agrupacion_ot = 'Alta'
AND t.tiene_incidencia_ot = 'n'
AND t.tiene_pe = 'n'
AND t.subsegmento_canal = 'GRANDE'
AND t.identificativo_peticion = '1-1AMRIK0'
;
-- Alex: 5,4
-- Yo: 3,59
 
 
 
 
 
 
 
 
SELECT 
*
--                sede
            FROM pharmdash_incidencias
            WHERE
               cumplimiento_resolucion = 'Fuera de plazo'
               AND impacto = 'Corte'
               AND YEAR(fecha_apertura) >= 2022 AND MONTH(fecha_apertura) = 8
               AND sede REGEXP '^CO|^LU|^OU|^PO'
--            GROUP BY sede
 
 
 
 
 
 
-- Farmacias en UCI por incumplimiento resolución
SELECT t.sede
FROM pharmdash_incidencias t
WHERE YEAR(t.fecha_apertura) = 2022
AND MONTH(t.fecha_apertura) = 09
-- Está en UCI:
AND t.cumplimiento_resolucion = 'Fuera de Plazo'
AND t.impacto = 'Corte'
GROUP BY t.sede
 
-- Farmacias en UCI por exceso de averías
SELECT t.sede, COUNT(t.id_ticket) AS averias
FROM pharmdash_incidencias t
WHERE YEAR(t.fecha_apertura) = 2022
  AND MONTH(t.fecha_apertura) = 09
-- Está en UCI:
GROUP BY t.sede
HAVING COUNT(t.id_ticket) > 3
 
 
 
 
 
 
 
 
SELECT 
	ROUND(UNIX_TIMESTAMP(CONCAT(DATE_FORMAT(fecha_apertura, '%Y-%m'), '-01')) * 1000) AS fecha_apertura, 
	COUNT(id) AS incidencias
FROM pharmdash_incidencias  
WHERE tipo_producto = 'DAT' 
AND infantil = 1
AND YEAR(fecha_apertura) >= 2022
GROUP BY 
	UNIX_TIMESTAMP(CONCAT(DATE_FORMAT(fecha_apertura, '%Y-%m'), '-01')) * 1000
 
SELECT t.tecnologia, COUNT(*)
FROM pharmdash_incidencias t
GROUP BY t.tecnologia
 
 
 
SELECT COUNT(t.id), t.responsabilidad
FROM pharmdash_incidencias t 
WHERE t.tipo_producto = 'DAT'
AND YEAR(t.fecha_apertura) = 2022
GROUP BY t.responsabilidad
 
 
 
 
 
 
-- Promedio citar Euskaltel
SELECT 
((AVG(t.tiempo_cita_ot) / 3600) / 24) AS tiempo_aporta_cita
-- t.identificativo_peticion, 
-- ((t.tiempo_cita_ot / 3600) / 25) AS dias_cita
FROM ots_campo t
WHERE t.fecha_actualizacion = '2022-10-05' 
AND t.marca = 'Euskaltel'
AND t.estado_ot_calculado IN ('PENDIENTE CONCERTACION', 'PENDIENTE')
AND t.nombre_ot <> 'Supervisión Portabilidad'
AND t.tiene_pe = 'n'
AND t.subsegmento_canal = 'Gran Cuenta'
AND t.agrupacion_ot = 'Alta'
 
-- Promedio citar R
SELECT 
*
-- ((AVG(t.tiempo_cita_ot) / 3600) / 24) AS tiempo_aporta_cita
-- t.identificativo_peticion, 
-- ((t.tiempo_cita_ot / 3600) / 25) AS dias_cita
FROM ots_campo t
WHERE t.fecha_actualizacion = '2022-10-05' 
AND t.marca = 'R'
AND t.estado_ot IN ('PENDIENTE CONCERTACION', 'PENDIENTE')
AND t.tiene_pe = 'n'
AND t.subsegmento_canal = 'GRANDE'
AND t.agrupacion_ot = 'Alta'
AND t.tiene_incidencia_ot = 'n'
 
 
 
 
SELECT *
FROM ots_campo_altas_indicadores 
WHERE fecha = '2022-10-05' 
  AND indicador = 'Tiempo promedio concertación cita (sin PE)' 
  AND tipo_cliente = 'Grande' 
  AND marca = 'Euskaltel'
 
 
SELECT SUM(valor) AS pendientes
FROM  ots_campo_altas_indicadores
WHERE fecha = '2022-10-05'
AND indicador IN ('OTs pendiente citar (SIN PE)', 'OTs pendiente (sin PE)')
AND marca = 'Telecable'
AND tipo_cliente = 'Grande'
 
 
 
 
 
SELECT *
FROM ots_campo_altas_indicadores t
WHERE t.fecha = '2022-10-04' 
 
 
 
 
 
SELECT COALESCE(AVG(t.tiempo_cita_ot), 0) AS tiempo
FROM ots_campo t
WHERE t.fecha_actualizacion = '2022-10-04' 
AND t.subsegmento_canal = 'GRANDE'
AND t.marca = 'R'
;;
 
SELECT (4171840.9042 / 3600) / 24
 
SELECT t.subsegmento_canal
FROM  ots_campo t
GROUP BY t.subsegmento_canal
 
 
 
 
 
-- 8.520
-- 8.683
SELECT COUNT(*)
FROM minifric_servicios 
 
 
 
SELECT *
FROM swap_cerrados t
INNER JOIN swap_incidencias_r r ON t.codigo_cliente = r.codigo_cliente
WHERE t.marca = 'R' 
 
 
 
 
 
 
SELECT t.fecha_actualizacion
FROM ots_campo t
GROUP BY t.fecha_actualizacion 
;
 
 
SELECT SUM(t.valor) AS ots
FROM ots_campo_altas_indicadores t
WHERE t.indicador = 'OTs pendiente citar (sin PE)'
 
; 
 
 
 
 
 
 
 
SELECT SUM(t.cantidad * t.precio) AS total
FROM tickets_productos t
WHERE t.ticket_id = 662
;;
 
 
 
 
 
 
 
 
 
;
 
SELECT *
FROM ots_campo t 
WHERE t.marca = 'R'
 
 
2022-08-31 19:22:53 - 2022-09-07 09:50 -- 4,5981018519
 
 
 
SELECT fecha
            FROM calendario_festivos
            WHERE fecha BETWEEN 2022-04-20 AND 2022-09-02
 
 
 
SELECT COUNT(t.referencia) AS ots,
t.subsegmento_canal
FROM ots_campo t
WHERE t.fecha_actualizacion = '2022-09-01' 
AND t.marca = 'Euskaltel'
AND t.agrupacion_ot = 'Alta'
AND t.nombre_ot <> 'Supervisión Portabilidad'
AND t.estado_ot_calculado = 'PENDIENTE CONCERTACION'
AND t.tiene_pe = 'n'
AND t.subsegmento_canal = 'Gran Cuenta'
-- GROUP BY t.subsegmento_canal; 
 
/*
	--------------------------
	Análisis Backlog Euskaltel
	--------------------------
 
	Indicadores
 
*/
-- OTs con INCIDENCIA
SELECT COUNT(t.referencia) AS ots,
t.subsegmento_canal
FROM ots_campo t
WHERE t.fecha_actualizacion = '2022-09-01' 
AND t.marca = 'Euskaltel'
AND t.agrupacion_ot = 'Alta'
AND t.nombre_ot <> 'Supervisión Portabilidad'
AND t.estado_ot_calculado = 'INCIDENCIA'
GROUP BY t.subsegmento_canal;
 
-- OTs pendientes
SELECT COUNT(t.referencia) AS ots,
t.subsegmento_canal
FROM ots_campo t
WHERE t.fecha_actualizacion = '2022-09-01' 
AND t.marca = 'Euskaltel'
AND t.agrupacion_ot = 'Alta'
AND t.nombre_ot <> 'Supervisión Portabilidad'
AND t.estado_ot_calculado = 'PENDIENTE'
GROUP BY t.subsegmento_canal;
 
-- OTs pendientes de concertación cita
SELECT COUNT(t.referencia) AS ots,
t.subsegmento_canal
FROM ots_campo t
WHERE t.fecha_actualizacion = '2022-09-01' 
AND t.marca = 'Euskaltel'
AND t.agrupacion_ot = 'Alta'
AND t.nombre_ot <> 'Supervisión Portabilidad'
AND t.estado_ot_calculado = 'PENDIENTE CONCERTACION'
GROUP BY t.subsegmento_canal; 
 
-- Tiempo de cita
SELECT COUNT(t.referencia) AS ots,
t.subsegmento_canal
FROM ots_campo t
WHERE t.fecha_actualizacion = '2022-09-01' 
AND t.marca = 'Euskaltel'
AND t.agrupacion_ot = 'Alta'
AND t.nombre_ot <> 'Supervisión Portabilidad'
AND t.estado_ot_calculado IN ('PENDIENTE', 'PENDIENTE CONCERTACION')
AND t.tiene_pe = 'n'
AND t.subsegmento_canal = 'Gran Cuenta'
 
 
SELECT SUM(t.cantidad*t.precio) AS total
FROM tickets_productos t
WHERE t.ticket_id = 673
 
 
/*
400832934 - BANKINTER GLOBAL SERVICES
400057128 - BANKINTER
*/
 
SELECT *
FROM ctttbook t
WHERE t.CODIGODECLIENTE IN (400832934, 400057128)
ORDER BY t.FHAPERTURA desc
;;
 
 
 
 
 
SELECT 
*
FROM oc_bruteforce_attempts t
 
 
 
 
SELECT *
FROM  ctttbook t
WHERE t.NCTT = 56338945
 
 
 
 
 
 
SELECT DATE_FORMAT(t.fecha_creacion, '%Y-%m-%d')
FROM avisos_historico t
WHERE YEAR(t.fecha_creacion) = 2022
AND MONTH(t.fecha_creacion) = 7
GROUP BY DATE_FORMAT(t.fecha_creacion, '%Y-%m-%d')
 
 
 
 
 
 
 
 
 
 
      SELECT ROUND(UNIX_TIMESTAMP(CONCAT(DATE_FORMAT(a.FHAPERTURA, '%Y-%m'), '-01')) * 1000) as fecha_apertura,
             YEAR(a.FHAPERTURA) as ano_apertura,
             MONTH(a.FHAPERTURA) as mes_apertura,
             COUNT(a.NCTT) as numero_ctt
      FROM ctttbook a
       WHERE a.CODIGODECLIENTE IN (
               101402053, -- COF Coruña
               400084027, -- COF Lugo
               400084264, -- COF Ourense
              203958277  -- COF Pontevedra
             )
         AND YEAR(a.FHAPERTURA) >= 2020
         AND a.ESTADOCTT = 'CERRADO'
   --      AND a.ORIGEN IN ('CLIENTE', 'VIGILANCIA')
       GROUP BY UNIX_TIMESTAMP(CONCAT(DATE_FORMAT(a.FHAPERTURA, '%Y-%m'), '-01')) * 1000
 
 
 
 
 
 
-- Antes: 48.269
-- Ahora: 48.569
 
SELECT COUNT(t.id_proceso) AS procesos
FROM procesos_finalizados t 
 
 
SELECT *
FROM servicios_afectados_master
-- WHERE mostrar = 's' 
 
 
 
 
 
 
 
 
 
 
 
-- Provisión KRT
SELECT 
  COUNT(id_proceso) AS procesos, 
  semana_fecha_finalizacion 
FROM 
  procesos_finalizados 
WHERE 
  YEAR(fecha_finalizacion) = 2022 
  AND semana_fecha_finalizacion IN (20, 21, 22, 23, 24, 25, 26, 27) 
  AND subsegmento_canal IN ('PEQUEÑA', 'Pequeña Empresa', 'Pyme')
  AND resumen = 'Alta DIRECTO Sin Portabilidad' 
  AND (
    mayor_95_dias = 0 
    OR mayor_95_dias IS NULL
  ) 
  AND (
    proyecto_implantacion IS NULL 
    OR proyecto_implantacion = 'Sin PE'
  ) 
  AND producto_catalogo_origen IS NULL 
  AND (
    nombre_esquema NOT IN (
      'Cambio de Domicilio Cliente', 'Cambio Equipo', 
      'Cambio Modalidad Internet', 'Cambio Domicilio Migracion Acceso Direct'
    ) 
    OR nombre_esquema IS NULL
  ) 
GROUP BY 
  semana_fecha_finalizacion 
ORDER BY 
  1 DESC 
LIMIT 
  1
 
 
 
 
 
 
 
 
 
 
 
SELECT *
FROM procesos_finalizados  t
WHERE YEAR(t.fecha_finalizacion) = 2022
AND t.semana_fecha_finalizacion IN (
20, 21, 22, 23, 24, 25, 26, 27
)
AND t.resumen = 'Alta DIRECTO Sin Portabilidad'
-- AND t.subsegmento_canal IN ('GRANDE', 'Gran Cuenta', 'Gran Cliente')
-- AND t.subsegmento_canal IN ('MEDIANA', 'Mediana Empresa')
AND t.subsegmento_canal IN ('PEQUEÑA', 'Pequeña Empresa', 'Pyme')
/*
'Alta DIRECTO Con Portabilidad',
'Alta INDIRECTO Sin Portabilidad',
'Alta INDIRECTO Con Portabilidad'
*/
  AND (mayor_95_dias = 0 OR mayor_95_dias IS NULL)
  AND proyecto_implantacion = 'PE22-0337'
  AND producto_catalogo_origen IS NULL
  AND (nombre_esquema NOT IN (
          'Cambio de Domicilio Cliente',
          'Cambio Equipo',
          'Cambio Modalidad Internet',
          'Cambio Domicilio Migracion Acceso Direct'
         )
       OR nombre_esquema IS NULL
	)
 
GROUP BY t.semana_fecha_finalizacion
ORDER BY 1 DESC
LIMIT 1;
 
 
 
 
 
 
 
 
 
 
;                   
 
-- Tareas Kanboard                   
SELECT 
    t.id, 
    t.title, 
    t.description, 
    FROM_UNIXTIME(t.date_creation) AS fecha_creacion, 
    FROM_UNIXTIME(t.date_started) AS fecha_inicio, 
    FROM_UNIXTIME(t.date_completed) AS fecha_fin,
    p.name as proyecto
FROM tasks t
INNER JOIN projects p
    ON t.project_id = p.id
WHERE DATE_FORMAT(FROM_UNIXTIME(t.date_completed), '%Y-%m') = '2022-06';;
 
/*
Postventa: 14 + 5 = 19 (39 %)
Provision: 0 + 1 = 1 (0,02 %)
Roberto / SAT: 12 + 17 = 29 (59 %)
*/
 
 
SELECT *
FROM tasks t
WHERE t.id = 1185
;
/*
Deja un fichero de inclusiones con todas las líneas que faltan 
por migrar ( de las objetivo).
Es para hacer una simulación y  ver cuántas se descartarían en DATA.
*/
-- K|706|"AGMSOFT CONSULTING, S.L."|656713940|1
SELECT 'K', t.codigo_cliente, CONCAT('"', t.cliente, '"') AS cliente, t.identificador_producto, 1
FROM lineas_k_resumen t
WHERE t.migracion_propuesta = 'OTA'
AND t.migrada = 0
AND t.cliente_a_migrar = 1
AND t.exclusion_vpn = 0
-- AND t.semana_migracion IS NOT NULL
UNION
SELECT 'R', t2.codigo_cliente, CONCAT('"', t2.cliente, '"') AS cliente, t2.identificador_producto, 1
FROM lineas_r_resumen t2
WHERE t2.migracion_propuesta = 'OTA'
AND t2.migrada = 0
AND t2.cliente_a_migrar = 1
AND t2.exclusion_vpn = 0
;;
 
-- ------------------------------------------------------------
-- Descartes R
-- ------------------------------------------------------------
 
SELECT t.identificador_producto, t.codigo_cliente, t.cliente, t.semana_migracion, 'Bloqueo robo'
FROM lineas_r_resumen t
WHERE t.migrada = 0
  AND t.migracion_propuesta = 'OTA'
  AND t.cliente_a_migrar = 1
  AND t.exclusion_vpn = 0
  AND t.identificador_producto IN (
      SELECT t2.id
      FROM lineas_descartes_bloqueo_robo_r t2 
  )
UNION
SELECT t.identificador_producto, t.codigo_cliente, t.cliente, t.semana_migracion, 'VOA R'
FROM lineas_r_resumen t
WHERE t.migrada = 0
  AND t.migracion_propuesta = 'OTA'
  AND t.cliente_a_migrar = 1
  AND t.exclusion_vpn = 0
  AND t.identificador_producto IN (
      SELECT t2.id
      FROM lineas_descartes_voa_r t2 
  )  
UNION
SELECT t.identificador_producto, t.codigo_cliente, t.cliente, t.semana_migracion, 'Dia anterior'
FROM lineas_r_resumen t
WHERE t.migrada = 0
  AND t.migracion_propuesta = 'OTA'
  AND t.cliente_a_migrar = 1
  AND t.exclusion_vpn = 0
  AND t.identificador_producto IN (
      SELECT t2.id
      FROM lineas_descartes_dia_anterior_r t2 
  )
UNION
SELECT t.identificador_producto, t.codigo_cliente, t.cliente, t.semana_migracion, 'Fallo no reintentable'
FROM lineas_r_resumen t
WHERE t.migrada = 0
  AND t.migracion_propuesta = 'OTA'
  AND t.cliente_a_migrar = 1
  AND t.exclusion_vpn = 0
  AND t.identificador_producto IN (
      SELECT t2.id
      FROM lineas_descartes_fallo_no_reintentable_r t2 
  )  
;
 
-- ------------------------------------------------------------
-- Descartes Euskaltel
-- ------------------------------------------------------------
/*
SELECT t.identificador_producto, t.codigo_cliente, t.cliente, t.semana_migracion, 'Logística K'
FROM lineas_r_resumen t
WHERE t.migrada = 0
  AND t.migracion_propuesta = 'OTA'
  AND t.cliente_a_migrar = 1
  AND t.exclusion_vpn = 0
  AND t.identificador_producto IN (
      SELECT t2.id
      FROM lineas_descartes_bloqueo_robo_r t2 
  )
UNION
*/
SELECT t.identificador_producto, t.codigo_cliente, t.cliente, t.semana_migracion, 'Dia anterior'
FROM lineas_k_resumen t
WHERE t.migrada = 0
  AND t.migracion_propuesta = 'OTA'
  AND t.cliente_a_migrar = 1
  AND t.exclusion_vpn = 0
  AND t.identificador_producto IN (
      SELECT t2.id
      FROM lineas_descartes_dia_anterior_k t2 
  )
UNION
SELECT t.identificador_producto, t.codigo_cliente, t.cliente, t.semana_migracion, 'Fallo no reintentable'
FROM lineas_k_resumen t
WHERE t.migrada = 0
  AND t.migracion_propuesta = 'OTA'
  AND t.cliente_a_migrar = 1
  AND t.exclusion_vpn = 0
  AND t.identificador_producto IN (
      SELECT t2.id
      FROM lineas_descartes_fallo_no_reintentable_k t2 
  )  
UNION
SELECT t.identificador_producto, t.codigo_cliente, t.cliente, t.semana_migracion, 'Logística K'
FROM lineas_k_resumen t
WHERE t.migrada = 0
  AND t.migracion_propuesta = 'OTA'
  AND t.cliente_a_migrar = 1
  AND t.exclusion_vpn = 0
  AND t.identificador_producto IN (
      SELECT t2.msisdn
      FROM lineas_descartes_logistica_k t2 
  )  
;
 
 
-- Líneas y su IMSI que no aparecen en el listado
-- de tarjetas SIM en estado "Activo"
SELECT t.*
FROM lineas_k_resumen t
WHERE t.migracion_propuesta = 'OTA'
AND t.migrada = 0
AND t.cliente_a_migrar = 1
AND t.exclusion_vpn = 0 
AND LENGTH(t.identificador_producto) < 13
AND t.imsi NOT IN (
	-- Listado de tarjetas SIM activas
	SELECT tt.imsi
	FROM tarjetas_sim_activas tt
	WHERE tt.marca = 'Euskaltel' 
);
 
SELECT *
FROM lineas_k_resumen t
WHERE length(t.identificador_producto) = 13 -- M2M 13 dígitos y se supone que esto no aplica a Euskaltel
AND t.migracion_propuesta = 'OTA'
AND t.cliente_a_migrar = 1
AND t.exclusion_vpn = 0
AND t.semana_migracion IS NOT null
;
 
 
 
-- Actualizar tabla resumen con tabla líneas programadas
UPDATE lineas_r_resumen
 INNER JOIN lineas_r_migracion ON (lineas_r_resumen.identificador_producto = lineas_r_migracion.identificador_producto)
   SET lineas_r_resumen.semana_migracion = lineas_r_migracion.semana_migracion
;;
 
 
INSERT INTO lineas_r_migracion (identificador_producto, codigo_cliente, cliente, tipo_cliente, cliente_top, migracion_propuesta, semana_migracion)
SELECT
    identificador_producto,
    codigo_cliente,
    cliente,
    tipologia,
    cliente_top,
    migracion_propuesta,
    5
FROM lineas_r_resumen
WHERE
      codigo_cliente =  400939927
  AND migracion_propuesta = 'OTA'
  AND migrada = 0
  AND exclusion_vpn = 0
  AND semana_migracion IS NULL
;
 
-- Líneas con ICC mal inventariadas en CRM
-- R: las correctas son imsi >= 214035080000000 and imsi <= 214035099999999
-- Euskaltel: las correctas son imsi >= 214035900000000 and imsi <= 214035999999999
 
-- IMSI incorrecta R
SELECT *
FROM lineas_r_resumen l
WHERE l.cliente_a_migrar = 1
AND l.exclusion_vpn = 0
AND l.migracion_propuesta = 'OTA'
AND l.migrada = 0
AND 
	(l.imsi < 214035080000000
		OR
    l.imsi > 214035099999999
	);
 
-- Líneas fuera de IMSI correcto (otra versión)
SELECT *
FROM lineas_r_resumen l
WHERE l.cliente_a_migrar = 1
AND l.exclusion_vpn = 0
AND l.migracion_propuesta = 'OTA'
AND l.migrada = 0
AND l.imsi NOT BETWEEN 214035080000000  AND 214035099999999
;
 
-- IMSI incorrecta	Euskaltel
SELECT *
FROM lineas_k_resumen l
WHERE l.cliente_a_migrar = 1
AND l.exclusion_vpn = 0
AND l.migracion_propuesta = 'OTA'
AND l.migrada = 0
AND 
	(l.imsi < 214035900000000
		OR
    l.imsi > 214035999999999
	);
 
-- Otra versión
SELECT *
FROM lineas_k_resumen l
WHERE l.cliente_a_migrar = 1
AND l.exclusion_vpn = 0
AND l.migracion_propuesta = 'OTA'
AND l.migrada = 0
AND l.imsi NOT BETWEEN 214035900000000 AND 214035999999999
;	
 
-- IMSI vacíos
SELECT *
FROM lineas_r_resumen t
WHERE t.imsi = 0 
AND t.migracion_propuesta <> 'OTA'
 
;
 
 
SELECT f.codigo_cliente, f.cliente, f.msisdn, r.imsi
FROM fichero_inclusiones f
INNER JOIN lineas_k_resumen r on f.msisdn = r.identificador_producto
WHERE f.semana = 2
AND f.marca = 'K'
AND 
	(r.imsi < 214035900000000
		OR
    r.imsi > 214035999999999
	);
 
SELECT t.codigo_cliente, t.cliente, t.subsegmento_canal, t.codigo_producto, t.producto, t.identificador_producto as linea, t.imsi
FROM lineas_k_resumen t
WHERE t.cliente_a_migrar = 1
AND t.migrada = 0
AND t.migracion_propuesta = 'OTA'
AND t.identificador_producto NOT IN (
	SELECT s.ani_movil
	FROM tarjetas_sim_activas s
	WHERE s.marca = 'Euskaltel' 
) 
;;
 
 
-- Descarte por IMSI incorrecto
-- Euskaltel
SELECT *
FROM lineas_k_resumen l
WHERE l.cliente_a_migrar = 1
AND l.exclusion_vpn = 0
AND l.migracion_propuesta = 'OTA'
AND l.migrada = 0
AND l.imsi NOT BETWEEN 214035900000000 AND 214035999999999;;
 
-- R
SELECT *
FROM lineas_r_resumen l
WHERE l.cliente_a_migrar = 1
AND l.exclusion_vpn = 0
AND l.migracion_propuesta = 'OTA'
AND l.migrada = 0
AND l.imsi NOT BETWEEN 214035080000000  AND 214035099999999                ;
 
 
;;
 
-- Lo que hay que enviar en el fichero de inclusiones:
 
-- Lo que toca para esa semana +
-- lo que tuvo error que es reintentable +
-- lo que no se llegó a lanzar / enviar (pero sí estaba en fichero de inclusiones) +
-- Líneas nuevas de clientes seleccionados
 
 
-- Revisar líneas que aparecen con IMSI antiguo (y por tanto migrada = 0),
-- pero en la campaña salen como migradas (solo ocurre en R)
SELECT *
FROM  lineas_r_resumen t
WHERE t.migrada = 0
  AND t.ultimo_estado_migracion = 'Migrada'
 
-- Marcar con 1 campo "exclusion_vpn" en resumen
-- Marcar con 0 cliente_a_migrar
-- Euskaltel: 592 líneas afectadas
-- R: 799
UPDATE lineas_r_resumen 
SET lineas_r_resumen.exclusion_vpn = 1,
    lineas_r_resumen.cliente_a_migrar = 0
WHERE lineas_r_resumen.codigo_cliente IN (
	SELECT clientes_r_migracion.id_cliente
	FROM  clientes_r_migracion
	WHERE clientes_r_migracion.excluido_vpn = 1
)
;;
 
/*
 
	TODO: revisar si todos los lanzamientos tienen resultados de campaña
*/
 
 
-- Diferencias con CM oficial
/*
 
Semana 6
															CM oficial	CM SAT
															----------	------
Cambio forzado en red								180			179
Migrada													669			669
Cambio fisico de SIM en medio del proceso 	1				0
Linea esta preactivada o bloqueada				12				12
Fallo de entrega en OTA temporal					719			717
IMSI incorrecta										3				2
 
Total														1584			1579
 
 
Todas las semanas
 
Migrada													3356			3483
Fallo de entrega en OTA temporal					2827			1704
Cambio forzado en red								917			933
Linea esta preactivada o bloqueada				88				55
No se registra pero SIM cambiada					24				0
IMSI incorrecta										6				5
Cambio fisico de SIM en medio del proceso		2				0
 
Total														7220			6180
 
*/
 
-- Resultados por descripcion de fallo
-- Para comparar con el CM oficial, informe "Lotes y respuestas"
SELECT 
   CASE
		when t.descripcion_fallo_migracion = 'Cambio forzado en red' then 'RECUPERADO ERROR'
		when t.descripcion_fallo_migracion = 'Migrada' then 'MIGRADA'
		when t.descripcion_fallo_migracion = 'Linea dada de baja' then 'BAJA'
		when t.descripcion_fallo_migracion IN ('Linea esta preactivada o bloqueada', 'Fallo de entrega en OTA temporal', 'IMSI incorrecta', 'Cambio fisico de SIM en medio del proceso') then 'EN ERROR'
	END AS estado_migracion,
	t.descripcion_fallo_migracion, 
	COUNT(t.msisdn) AS lineas
FROM  resultados_migracion_r t
WHERE t.msisdn IN (
	SELECT l.msisdn
	FROM lanzamientos_migracion_r l
  	WHERE DATE_FORMAT(l.fecha_envio, '%Y-%m-%d') = '2023-10-03' -- fecha del lote
)
GROUP BY t.descripcion_fallo_migracion
ORDER BY 1 DESC;;      
 
-- --------------------------------
-- 			CONSUMOS
-- --------------------------------
INSERT INTO lineas_consumos_agrupado (ani, marca_terminal, modelo_terminal, sistema_operativo, version_sistema_operativo, total_voz, total_datos, periodo, consumo)
SELECT t.ani, t.marca_terminal, t.modelo_terminal, t.sistema_operativo, t.version_sistema_operativo, SUM(t.total_voz) AS total_voz, SUM(t.total_datos) AS total_datos, 'ene2023-sept2023',
case 
	when SUM(t.total_voz) = 0 AND SUM(t.total_datos) = 0 then 'Consumo 0' 
--	when SUM(t.total_voz) = 0 AND SUM(t.total_datos) <> 0 then 'Consumo solo datos' 
	when SUM(t.total_voz) = 0 AND SUM(t.total_datos) >= 167985.3330505 then 'Consumo normal solo datos' 	
	when SUM(t.total_voz) = 0 AND SUM(t.total_datos) < 167985.3330505 then 'Consumo bajo solo datos' 	
--	when SUM(t.total_voz) <> 0 AND SUM(t.total_datos) = 0 THEN 'Consumo solo voz'
	when SUM(t.total_voz) >= 460.17842 AND SUM(t.total_datos) = 0 THEN 'Consumo normal solo voz'	
	when SUM(t.total_voz) < 460.17842 AND SUM(t.total_datos) = 0 THEN 'Consumo bajo solo voz'	
	when SUM(t.total_voz) < 460.17842 AND SUM(t.total_datos) < 167985.3330505 THEN 'Consumo bajo de voz y datos'
	when SUM(t.total_voz) < 460.17842 AND SUM(t.total_datos) >= 167985.3330505 THEN 'Consumo bajo de voz y normal de datos'
	when SUM(t.total_voz) >= 460.17842 AND SUM(t.total_datos) < 167985.3330505 THEN 'Consumo bajo de datos y normal de voz'
	when SUM(t.total_voz) >= 460.17842 AND SUM(t.total_datos) >= 167985.3330505 THEN 'Consumo normal de voz y datos'
END AS consumo
from lineas_consumos t
GROUP BY t.ani;;
 
-- Promedio consumo datos: 3359706.66101 (el 5 % -> 167985.3330505)
-- promedio consumo voz: 9203.5684 (el 5 % -> 460.17842)
SELECT 
	AVG(t.total_voz) AS promedio_voz, 
	AVG(t.total_datos) AS promedio_datos
FROM lineas_consumos t
;
 
SELECT count(t.ani), t.consumo
FROM lineas_consumos_agrupado t
GROUP BY t.consumo 
 
 
 
-- Actualización resumen con datos consumo 
-- (35.872 + 7.800 filas + 3.888 + 10.875 afectadas Euskaltel)
-- (24.616 + 6.175 + 3.758 filas + 6.902 afectadas R)
UPDATE lineas_r_resumen a
INNER JOIN lineas_consumos_agrupado b ON (a.identificador_producto = b.ani)
SET 
	a.marca_terminal = b.marca_terminal,
	a.modelo_terminal = b.modelo_terminal,
	a.sistema_operativo_terminal = b.sistema_operativo,
	a.version_sistema_operativo_terminal = b.version_sistema_operativo,
	a.tipo_consumo = b.consumo
;
 
-- --------------------------------
--     CONSUMOS ÚLTIMO MES
-- --------------------------------	
-- Promedio consumo datos: 3355845.3695511387768514 (el 5 % -> 167792.26847755)
-- promedio consumo voz: 7155.9724 (el 5 % -> 357.79862)
SELECT 
	AVG(t.total_voz) AS promedio_voz, 
	AVG(t.total_datos) AS promedio_datos
FROM lineas_consumos_ultimo_mes t
;
 
-- Agrupar por MSISDN
INSERT INTO lineas_consumos_agrupado_ultimo_mes (ani, marca_terminal, modelo_terminal, sistema_operativo, version_sistema_operativo, total_voz, total_datos, periodo, consumo)
SELECT t.ani, t.marca_terminal, t.modelo_terminal, t.sistema_operativo, t.version_sistema_operativo, SUM(t.total_voz) AS total_voz, SUM(t.total_datos) AS total_datos, 'dic2023',
CASE 
    when SUM(t.total_voz) = 0 AND SUM(t.total_datos) = 0 then 'Consumo 0' 
--  when SUM(t.total_voz) = 0 AND SUM(t.total_datos) <> 0 then 'Consumo solo datos' 
    when SUM(t.total_voz) = 0 AND SUM(t.total_datos) >= 167792.26847755 then 'Consumo normal solo datos'     
    when SUM(t.total_voz) = 0 AND SUM(t.total_datos) < 167792.26847755 then 'Consumo bajo solo datos'    
--  when SUM(t.total_voz) <> 0 AND SUM(t.total_datos) = 0 THEN 'Consumo solo voz'
    when SUM(t.total_voz) >= 357.79862 AND SUM(t.total_datos) = 0 THEN 'Consumo normal solo voz'    
    when SUM(t.total_voz) < 357.79862 AND SUM(t.total_datos) = 0 THEN 'Consumo bajo solo voz'   
    when SUM(t.total_voz) < 357.79862 AND SUM(t.total_datos) < 167792.26847755 THEN 'Consumo bajo de voz y datos'
    when SUM(t.total_voz) < 357.79862 AND SUM(t.total_datos) >= 167792.26847755 THEN 'Consumo bajo de voz y normal de datos'
    when SUM(t.total_voz) >= 357.79862 AND SUM(t.total_datos) < 167792.26847755 THEN 'Consumo bajo de datos y normal de voz'
    when SUM(t.total_voz) >= 357.79862 AND SUM(t.total_datos) >= 167792.26847755 THEN 'Consumo normal de voz y datos'
END AS consumo
FROM lineas_consumos_ultimo_mes t
GROUP BY t.ani;;
 
-- Actualización resumen con datos consumo 
-- (35.872 + 7.800 filas + 3.888 + 10.875 afectadas Euskaltel)
-- (24.616 + 6.175 + 3.758 filas + 6.902 afectadas R)
UPDATE lineas_r_resumen a
INNER JOIN lineas_consumos_agrupado b ON (a.identificador_producto = b.ani)
SET 
	a.marca_terminal = b.marca_terminal,
	a.modelo_terminal = b.modelo_terminal,
	a.sistema_operativo_terminal = b.sistema_operativo,
	a.version_sistema_operativo_terminal = b.version_sistema_operativo,
	a.tipo_consumo = b.consumo
;
 
 
 
 
 
 
INSERT INTO lineas_21403_pdcp (msisdn, imsi, pdpcp)
SELECT cast(SUBSTRING(msisdn, 3) AS UNSIGNED), imsi, pdpcp
FROM  lineas_21403_tmp 
;;
 
 
SELECT COUNT(*)
FROM lineas_21403 t1
LEFT JOIN fichero_inclusiones t2 ON cast(SUBSTRING(t1.msisdn, 3) AS UNSIGNED) = t2.msisdn
WHERE t2.semana = 6
AND t2.marca = 'K'
;
-- 51.426
 
SELECT 
	t.*, 
--	r.* /*, 
	l.*
FROM fichero_inclusiones t
-- INNER JOIN lineas_r_resumen r ON t.msisdn = r.identificador_producto
INNER JOIN lineas_21403 l ON t.msisdn = cast(SUBSTRING(l.msisdn, 3) AS UNSIGNED)
WHERE t.semana = 6
AND t.marca = 'R'
AND 
(
	l.pdcp >= 200
	OR 
	l.pdcp IN (4, 8, 10, 19, 27, 36, 41, 43, 44, 45, 47, 48, 49, 51, 100, 108, 119, 125)
)
 
/*
-- En el fichero de PDCP no están:
 
688719335
688719400
688753260
688753924
690607311
*/
;
-- Eliminamos del fichero de inclusiones las siguientes líneas con PDCP problemático
SELECT COUNT(i.msisdn) AS lineas, i.marca
FROM fichero_inclusiones i
WHERE semana = 6
GROUP BY i.marca
 
 
-- Sumatorio de consumo de cada línea 
-- abril-junio 2023
SELECT 
	t.ani, 
	SUM(t.total_voz) AS total_voz_s, 
--	SEC_TO_TIME(SUM(t.total_voz)) AS total_voz_hh_mm_ss,
	SUM(t.total_datos) AS total_datos_kb,
	'abril-junio' AS periodo,
	t.id_cliente,
	t.cliente,
	t.migracion_propuesta,
	t.migrada,
	t.marca
FROM  lineas_consumos t
WHERE t.ano_mes_facturacion >= 202304
AND t.ano_mes_facturacion <= 202306
GROUP BY t.ani
UNION 
SELECT 
	t.ani, 
	SUM(t.total_voz) AS total_voz_s, 
--	SEC_TO_TIME(SUM(t.total_voz)) AS total_voz_hh_mm_ss,
	SUM(t.total_datos) AS total_datos_kb,
	'enero-junio' AS periodo,
	t.id_cliente,
	t.cliente,
	t.migracion_propuesta,
	t.migrada,
	t.marca
FROM  lineas_consumos t
GROUP BY t.ani
;;
 
SELECT 
	AVG(t.total_voz) AS total_voz_s, 
	AVG(t.total_datos) AS total_datos_kb
FROM  lineas_consumos t
-- GROUP BY t.ani
;;
 
SELECT *
FROM lineas_consumos t
WHERE t.ani = 600000133;
 
SELECT COUNT(DISTINCT t.ani) AS lineas
FROM lineas_consumos t
 
;;
 
SELECT DISTINCT(l.identificador_producto), l.*
FROM lineas_k_resumen l
WHERE l.identificador_producto IN (
SELECT DISTINCT(t.ani)
FROM lineas_consumos t
);
 
UPDATE lineas_consumos
INNER JOIN lineas_k_resumen ON lineas_consumos.ani = lineas_k_resumen.identificador_producto
SET lineas_consumos.id_cliente = lineas_k_resumen.codigo_cliente,
    lineas_consumos.cliente = lineas_k_resumen.cliente,
    lineas_consumos.migrada = IF(lineas_k_resumen.migrada = 1, 
	 										lineas_k_resumen.migrada, 
	 										IF(lineas_k_resumen.ultimo_estado_migracion IS NULL, 
											 lineas_k_resumen.migrada, 
											  IF (lineas_k_resumen.ultimo_estado_migracion = 'Migrada', 
											 	1, 
												 0
											  )
											)
										),
    lineas_consumos.migracion_propuesta = lineas_k_resumen.migracion_propuesta,
	 lineas_consumos.marca = 'Euskaltel' -- 197.473 filas afectadas
 
;
 
UPDATE lineas_consumos
INNER JOIN lineas_r_resumen ON lineas_consumos.ani = lineas_r_resumen.identificador_producto
SET lineas_consumos.id_cliente = lineas_r_resumen.codigo_cliente,
    lineas_consumos.cliente = lineas_r_resumen.cliente,
    lineas_consumos.migrada = IF(lineas_r_resumen.migrada = 1, 
	 										lineas_r_resumen.migrada, 
	 										IF(lineas_r_resumen.ultimo_estado_migracion IS NULL, 
											 lineas_r_resumen.migrada, 
											  IF (lineas_r_resumen.ultimo_estado_migracion = 'Migrada', 
											 	1, 
												 0
											  )
											)
										),
    lineas_consumos.migracion_propuesta = lineas_r_resumen.migracion_propuesta,
	 lineas_consumos.marca = 'R' -- 132.407 filas afectadas
 
;
 
UPDATE lineas_consumos
INNER JOIN lineas_t_resumen ON lineas_consumos.ani = lineas_t_resumen.identificador_producto
SET lineas_consumos.id_cliente = lineas_t_resumen.codigo_cliente,
    lineas_consumos.cliente = lineas_t_resumen.cliente,
    lineas_consumos.migrada = IF(lineas_t_resumen.migrada = 1, 
	 										lineas_t_resumen.migrada, 
	 										IF(lineas_t_resumen.ultimo_estado_migracion IS NULL, 
											 lineas_t_resumen.migrada, 
											  IF (lineas_t_resumen.ultimo_estado_migracion = 'Migrada', 
											 	1, 
												 0
											  )
											)
										),
    lineas_consumos.migracion_propuesta = lineas_t_resumen.migracion_propuesta,
	 lineas_consumos.marca = 'Telecable' -- 54.522 filas afectadas
 
;;
 
SELECT *
FROM lineas_r_resumen t
WHERE t.identificador_producto IN (647395154 , 604004976, 683581979)
 
-- 647395154, 604004976, 683581979 figura como migrada por resultado, pero en Kiron no
;;
 
SELECT COUNT(t.identificador_producto) AS lineas, t.codigo_cliente, t.cliente
FROM lineas_r_migracion t
WHERE t.semana_migracion = 9
GROUP BY t.codigo_cliente;;
 
-- Clientes a migrar
SELECT *
FROM lineas_k_resumen l
INNER JOIN clientes_k_migracion cli ON l.codigo_cliente = cli.id_cliente
WHERE l.migracion_propuesta = 'OTA'
AND l.cliente LIKE 'CAJASUR%'
ORDER BY l.cliente_a_migrar;
 
SELECT *
FROM lineas_r_resumen l
INNER JOIN clientes_r_migracion cli ON l.codigo_cliente = cli.id_cliente
ORDER BY l.cliente_a_migrar;
 
SELECT *
FROM lineas_r_resumen t
WHERE t.semana_migracion = 9 
;;
 
 
-- 58370 (16/10/2023)
-- 58370 (17/10/2023)
-- Control gasto
-- 46 (16/10/2023)
-- 112 (17/10/2023)
 
-- Líneas en fichero semana 8 y que no llegaron a OTA (fichero Mikel)
SELECT i.*
FROM fichero_inclusiones i 
WHERE i.semana = 8 
AND i.msisdn NOT IN (
	SELECT l.id
	FROM tmp_lanzamiento_20231017 l
)
;;
 
-- El fichero de Mikel tiene 6 duplicados de 6176
/*
      2 606343540
      2 606343541
      2 619017571
      2 664636531
      2 670649329
      2 698178176
*/
SELECT COUNT(*)
FROM tmp_lanzamiento_20231017 
;;
 
-- Líneas que no llegaron a OTA
SELECT *
FROM lineas_r_resumen t1
inner JOIN  tmp_lineas_no_ota t2 ON t1.identificador_producto = t2.msisdn
;
 
-- "En error" semana 7 R
SELECT t1.*
FROM tmp_lineas_no_ota t1
WHERE t1.msisdn IN ( 
	SELECT t2.msisdn
	FROM tmp_resultado_en_error_semana_7_r t2
)
;
 
-- "En error" semana 7 K
SELECT t1.*
FROM tmp_lineas_no_ota t1
WHERE t1.msisdn IN ( 
	SELECT t2.msisdn
	FROM tmp_resultado_en_error_semana_7_k t2
)
;
 
-- Líneas en fichero inclusión semana 8 que no llegaron a OTA
-- ni son líneas que acabaron en error en semana 7
SELECT COUNT(*)
FROM tmp_lineas_no_ota_no_error_7 tt
;;
 
-- Habría que restar más bien todas las de la semana 7 (no las reintentan)
SELECT tt.*
FROM tmp_lineas_no_ota_no_error_7 tt
WHERE tt.msisdn NOT IN (
	SELECT i.msisdn
	FROM fichero_inclusiones i 
	WHERE i.semana = 7
)
;
 
SELECT COUNT(t.msisdn) AS lineas, t.marca
FROM tmp_lineas_no_ota_no_error_7 t
GROUP BY t.marcaM
 
 
;;
INSERT INTO calendario_migracion_lineas_clientes_k
SELECT 
	t.codigo_cliente,
	t.cliente,
	t.semana_migracion,
COUNT(t.identificador_producto) AS lineas_ota,
  'K'
FROM lineas_k_resumen t
WHERE t.codigo_cliente = 7538267 
  AND t.migracion_propuesta = 'OTA'
  AND t.migrada = 0
  AND t.exclusion_vpn = 0
  AND t.exclusion_pdpcp = 0
GROUP BY t.codigo_cliente;;
 
-- Líneas de R no incluidas en la OTA de semana 8: 1979
-- Líneas de R no incluidas en la OTA de semana 8: 1952
-- Total: 3931
SELECT i.*
FROM fichero_inclusiones i
WHERE 
    i.semana = 8
/*  AND i.marca = 'K'*/    
AND i.msisdn NOT IN (
	SELECT l.id
	FROM tmp_lanzamiento_20231017 l
)
;;
-- Líneas que no fueron a OTA en semana 8
-- y que tuvieron un resultado "En error" en
-- campañas pasadas
SELECT l.identificador_producto
FROM lineas_k_resumen  l
WHERE l.migracion_propuesta = 'OTA'
  AND l.migrada = 0
  AND l.cliente_a_migrar = 1
  AND l.semana_migracion < 8
  AND l.ultimo_estado_migracion = 'En error'
  AND l.identificador_producto IN (
			SELECT tt.msisdn
			FROM  tmp_lineas_no_ota tt
			WHERE tt.marca = 'K'
  )
;
 
-- Líneas que no fueron a OTA y no tuvieron error en el pasado:
SELECT t.*
FROM  tmp_lineas_no_ota t
WHERE t.marca = 'R'
AND t.msisdn NOT IN (
	SELECT t2.msisdn
	FROM tmp_lineas_r_no_ota_error_pasado t2
)
-- 
SELECT COUNT(*)
from tmp_lanzamiento_20231017;;
 
-- En fichero de inclusiones que no fueron a OTA ni tuvieron error
-- y aparecen en descartes VOA
SELECT t.*
FROM tmp_lineas_r_no_ota_no_error_pasado t 
WHERE t.msisdn IN (
	SELECT tt.id
	FROM lineas_descartes_voa_r tt
)
;;
 
-- En fichero de inclusiones que no fueron a OTA ni tuvieron error
-- y aparecen en descartes bloqueo / robo
SELECT t.msisdn, t.codigo_cliente, t.cliente, t.semana
FROM tmp_lineas_r_no_ota_no_error_pasado t 
WHERE t.msisdn IN (
	SELECT tt.id
	FROM lineas_descartes_bloqueo_robo_r tt
)
;;;
/*
 
	Consultas kanboard
 
*/
 
-- Tareas sin cerrar
SELECT 
	t.id, 
	t.title, 
	-- t.description, 
	p.name AS proyecto, 
	DATE_FORMAT(FROM_UNIXTIME(t.date_creation), '%Y-%m-%d') AS fecha_creacion, 
	DATE_FORMAT(FROM_UNIXTIME(date_completed), '%Y-%m-%d') AS fecha_fin, 
	t.is_active, 
	-- t.column_id, 
	c.title AS columna,
	DATE_FORMAT(FROM_UNIXTIME(date_due), '%Y-%m-%d') AS fecha_limite
FROM  tasks t
INNER JOIN projects p ON t.project_id = p.id
INNER JOIN columns c ON t.column_id = c.id
-- WHERE DATE_FORMAT(FROM_UNIXTIME(date_completed), '%Y-%m-%d') = '2024-01-16'
WHERE t.is_active = 1
 
-- Tareas completadas hoy
SELECT 
	t.id, 
	t.title, 
	-- t.description, 
	p.name AS proyecto, 
	DATE_FORMAT(FROM_UNIXTIME(t.date_creation), '%Y-%m-%d') AS fecha_creacion, 
	DATE_FORMAT(FROM_UNIXTIME(date_completed), '%Y-%m-%d') AS fecha_fin, 
	t.is_active, 
	-- t.column_id, 
	c.title AS columna,
	DATE_FORMAT(FROM_UNIXTIME(date_due), '%Y-%m-%d') AS fecha_limite
FROM  tasks t
INNER JOIN projects p ON t.project_id = p.id
INNER JOIN columns c ON t.column_id = c.id
WHERE DATE_FORMAT(FROM_UNIXTIME(date_completed), '%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d')
;
 
-- Tareas movidas a "Hecho" hoy
SELECT 
	t.id, 
	t.title, 
	-- t.description, 
	p.name AS proyecto, 
	DATE_FORMAT(FROM_UNIXTIME(t.date_creation), '%Y-%m-%d') AS fecha_creacion, 
	DATE_FORMAT(FROM_UNIXTIME(date_completed), '%Y-%m-%d') AS fecha_fin, 
	t.is_active, 
	-- t.column_id, 
	c.title AS columna,
	DATE_FORMAT(FROM_UNIXTIME(date_due), '%Y-%m-%d') AS fecha_limite
FROM  tasks t
INNER JOIN projects p ON t.project_id = p.id
INNER JOIN columns c ON t.column_id = c.id
WHERE DATE_FORMAT(FROM_UNIXTIME(t.date_moved), '%Y-%m-%d') = CURDATE()
  AND c.title = 'Hecho'
;
 
-- Tareas movidas a "Hecho" ayer:
SELECT 
	t.id, 
	t.title, 
	-- t.description, 
	p.name AS proyecto, 
	DATE_FORMAT(FROM_UNIXTIME(t.date_creation), '%Y-%m-%d') AS fecha_creacion, 
	DATE_FORMAT(FROM_UNIXTIME(date_completed), '%Y-%m-%d') AS fecha_fin, 
	t.is_active, 
	-- t.column_id, 
	c.title AS columna,
	DATE_FORMAT(FROM_UNIXTIME(date_due), '%Y-%m-%d') AS fecha_limite
FROM  tasks t
INNER JOIN projects p ON t.project_id = p.id
INNER JOIN columns c ON t.column_id = c.id
WHERE DATE_FORMAT(FROM_UNIXTIME(t.date_moved), '%Y-%m-%d') = SUBDATE(CURRENT_DATE, 1)
  AND c.title = 'Hecho'
;
 
 
SELECT 
	t.id, 
	t.title, 
	-- t.description, 
	p.name AS proyecto, 
	DATE_FORMAT(FROM_UNIXTIME(t.date_creation), '%Y-%m-%d') AS fecha_creacion, 
	DATE_FORMAT(FROM_UNIXTIME(date_completed), '%Y-%m-%d') AS fecha_fin, 
	t.is_active, 
	-- t.column_id, 
	c.title AS columna,
	DATE_FORMAT(FROM_UNIXTIME(date_due), '%Y-%m-%d') AS fecha_limite
FROM  tasks t
INNER JOIN projects p ON t.project_id = p.id
INNER JOIN columns c ON t.column_id = c.id
WHERE DATE_FORMAT(FROM_UNIXTIME(date_completed), '%Y-%m-%d') = '2024-01-16';;
 
 
    SELECT t.proyecto,
           t.tarea,
           t.id_tarea,
           t.estado_tarea,
           t.columna,
           t.tipo_tarea,
           t.fecha_creacion,
           t.fecha_inicio,
           t.fecha_fin
    FROM v_tareas t
    WHERE DATE_FORMAT(t.fecha_fin, '%Y-%m') = '2024-01'
       OR (t.columna = 'En curso' AND DATE_FORMAT(t.fecha_creacion, '%Y-%m') = '2024-01')
       OR (t.columna = 'Producción' AND DATE_FORMAT(t.fecha_creacion, '%Y-%m') = '2024-01')
/*
	Contrastar CDM Incidencias R
*/
 
-- SET lc_time_names = 'es_ES';
SELECT 
	CASE
		WHEN t.id_cliente = 'null' THEN NULL
		ELSE t.id_cliente
	END AS id_cliente, 
	t.codigo_cuenta,
	t.cliente,
	t.id_ticket,
	t.tipo_cliente,
	t.nivel_servicio,
	t.impacto,
	t.situacion_ticket,
	t.fecha_creacion, 
	CASE
		WHEN t.fecha_solucion = 'null' THEN null
		ELSE  t.fecha_solucion
	END AS fecha_solucion,	
	t.fecha_limite, 
	t.direccion,
	t.municipio,
	CASE
		WHEN	t.ui = 'null' THEN NULL
		ELSE t.ui
	END AS ui,
	t.nodo,
	CASE
		WHEN t.correlado_a = 'null' THEN NULL
		ELSE t.correlado_a 
	END AS correlado_a,
	CASE
		WHEN t.tipo_servicio_afectado = 'null' THEN null
		ELSE t.tipo_servicio_afectado
	END AS tipo_servicio_afectado,
	t.funcionalidad,
	t.sintoma,
	t.segmentacion,
	t.fecha_actualizacion,
	t.prioridad,
	CASE 
		WHEN	t.id_externo = 'null' THEN NULL
		ELSE t.id_externo 
	END AS id_externo,
	CASE 
		WHEN	t.id_expediente = 'null' THEN NULL
		ELSE t.id_expediente 
	END AS id_expediente,
	t.id_servicio,
	CASE
   	WHEN t.producto = 'null' THEN NULL
		ELSE t.producto
	END AS producto, 
	t.area_negocio,
	t.tbrn,
	t.tbrl,
	t.tnrn,
	t.tnrl,
	t.escenario,
	CASE
		WHEN t.responsabilidad = 'null' THEN null
		ELSE t.responsabilidad
		END AS responsabilidad,
	CASE
		WHEN t.origen = 'null' THEN null
		ELSE t.origen
	END AS origen,
	t.id_estado_respaldo,
   CASE 
		wHEN t.id_servicio_respaldo = 'null' THEN null
		ELSE t.id_servicio_respaldo
	END AS id_servicio_respaldo,
	t.telefono,
	t.tv,
	t.internet,
	t.datacenter,
	t.movil,
	t.uci,
	t.grado_reiteracion,
	CASE
		WHEN 	t.tipo_peticion = 'null' then null
		ELSE t.tipo_peticion 
	END AS tipo_peticion,
	t.impacto_creacion,
	t.impacto_peor,
	CASE 
		WHEN t.tramos = 'null' THEN null
		ELSE t.tramos 
	END AS tramos,
	case 
		when t.equipo = 'null' THEN null
		ELSE t.equipo
	END AS equipo,
	CASE 
		when t.actuacion_principal = 'null' THEN NULL 
		ELSE t.actuacion_principal
	END AS actuacion_principal,
	case 
		WHEN TRIM('\r' FROM t.motivo) = 'null' then NULL
		ELSE t.motivo
	END AS motivo
	/**, STR_TO_DATE(fecha_creacion, '%e %b %Y, %k:%i:%s') AS fecha_creacion_dt*/
FROM borrame_tickets_big_query t
WHERE MONTH(STR_TO_DATE(t.fecha_creacion, '%e %b %Y, %k:%i:%s')) = 11
;
 
 
-- STR_TO_DATE('9 dic 2023, 1:37:00', '%e %b %Y, %k:%i:%s')
1-1H4DDF8
 
 
 
SELECT 
                COUNT(id_ticket) as tickets,
                DATE_FORMAT(fecha_creacion, '%Y-%m-%d') as fecha_creacion
            FROM incidencias_historico
            WHERE 
                tipo_cliente = 'GRAN CUENTA'
                AND servicio_afectado IN ('AccesoMetroXeth', 'AccesoMetroXeth_Ind', 'AccesoMetroXeth_IndResp', 'AccesoMetroXeth_Respaldo', 'AccesoOtroOperador', 'AccesoRespaldo', 'equipo_internet', 'INTERNET', 'Internet', 'lambda_directo', 'm-Internet', 'PaP_directo')
 
                AND tipo_peticion IN ('CORRECTIVO') 
                AND DATE_FORMAT(fecha_creacion, '%Y-%m-%d') IN ('2024-05-08', '2024-05-07', '2024-05-06', '2024-05-05', '2024-05-04', '2024-05-03', '2024-05-02', '2024-05-01', '2024-04-30', '2024-04-29', '2024-04-28', '2024-04-27', '2024-04-26', '2024-04-25', '2024-04-24')
                AND reiterada = 1
            GROUP BY 
                DATE_FORMAT(fecha_creacion, '%Y-%m-%d')
/*
500 líneas de clientes de "Pequeña Empresa"
 
y luego otras 3 semanas
 
COGERSA
ECOCOMPUTER ponerlas como exclusión
*/
 
SELECT COUNT(t.identificador_producto) AS total
FROM lineas_t_resumen t
WHERE t.semana_migracion = 23
AND t.exclusion_comercial = 0
AND t.migracion_propuesta = 'OTA'
 
SELECT COUNT(*), t.tipo_consumo_ultimo_mes
FROM lineas_t_resumen t
WHERE t.migracion_propuesta = 'OTA'
GROUP BY t.tipo_consumo_ultimo_mes;
 
 
SELECT COUNT(*)
-- , t.tipo_consumo_ultimo_mes
FROM lineas_t_resumen t
WHERE t.migracion_propuesta = 'OTA'
AND t.migrada = 0
AND t.exclusion_comercial = 0
GROUP BY t.tipo_consumo_ultimo_mes
 
 
GROUP BY t.tipo_consumo_ultimo_mes;
 
-- Fiables para OTA OK son "Consumo normal de voz y datos" 
 
UPDATE lineas_t_resumen a
    INNER JOIN lineas_consumos_agrupado_ultimo_mes b ON (a.identificador_producto = b.ani)
    SET 
        a.marca_terminal = b.marca_terminal,
        a.modelo_terminal = b.modelo_terminal,
        a.sistema_operativo_terminal = b.sistema_operativo,
        a.version_sistema_operativo_terminal = b.version_sistema_operativo,
        a.tipo_consumo_ultimo_mes = b.consumo;
 
SELECT t.identificador_producto, t.codigo_cliente, t.cliente, t.tipo_consumo, t.tipo_consumo_ultimo_mes
FROM lineas_t_resumen t
WHERE t.identificador_producto IN (
684696277,
684696359,
684696377,
684696378,
684696381,
684696397,
684696442,
652080236,
652080237,
653802872,
684636935,
684638700,
685462423,
663797516,
663797528,
663797598,
684602887,
684603096,
684603100,
684603103,
684603519,
684604219,
684604221,
684604224,
684604229,
684604231,
684604234,
684604239,
684606293,
684606314,
684610766,
684610767,
684613425,
684614315,
609569343
)
 
 
 
/*				Reiterados	Total		%
2024-05-14	6				25			24 %	[Datacenter]
2024-05-14	3				15			20 %	[Datacenter-CORRECTIVO]
2024-05-14	3				9			33 %	[Datacenter-SOPORTE]
*/
SELECT COUNT(id_ticket) AS tickets,
       DATE_FORMAT(fecha_creacion, '%Y-%m-%d') AS fecha_creacion
FROM incidencias_historico
WHERE tipo_cliente IN ('GRAN CUENTA',
                       'MEDIANA')
  AND servicio_afectado IN ('Albergue',
                            'BBDD',
                            'DatacenterVirtual',
                            'dominio',
                            'dominioresidencial',
                            'MicrosoftCSP',
                            'ServiciosISP',
                            'ServidorDedicado',
                            'ServidorVirtual',
                            'SVAdatacenterR',
                            'Web')
  AND tipo_peticion IN ('OPERACION')
  AND DATE_FORMAT(fecha_creacion, '%Y-%m-%d') IN ('2024-05-15',
                                                  '2024-05-14',
                                                  '2024-05-13',
                                                  '2024-05-12',
                                                  '2024-05-11',
                                                  '2024-05-10',
                                                  '2024-05-09',
                                                  '2024-05-08',
                                                  '2024-05-07',
                                                  '2024-05-06',
                                                  '2024-05-05',
                                                  '2024-05-04',
                                                  '2024-05-03',
                                                  '2024-05-02',
                                                  '2024-05-01')
 AND reiterada = 1
GROUP BY DATE_FORMAT(fecha_creacion, '%Y-%m-%d')
escusabaraja.1716486372.txt.gz · Última modificación: por tempwin