Creando un Script para la Lotería 2016 Marketineo

Post with image

Un año más llegan estas fechas en las que empiezan los líos de siempre con la lotería de navidad, y en Marketineo, también.

¿Como organizar un berenjenal de este calibre en el que tienes que coordinar a más de 150 miembros de toda españa (y parte del extranjero) y que no sea un caos?

  1. Formulario para que se apunte quien quiera tener lotería con las opciones correspondientes
  2. Animar al grupo con un mapa de la distribución de los décimos (y de paso ayudando a la prensa a localizarnos cuando nos toque el Gordo)
  3. Comprar los 35, 37, 39, 41, 43 décimos.
  4. Intentar repartirlos en quedadas físicas y ser casi imposible …

Así que como hay que hacer las cosas bien y que cada uno de los que ha pagado, tenga un documento al que poder remitirse cuando toque la solución es crear un certificado en el que quien tiene físicamente los décimos se hace responsable de ello e intentar «firmarlo» de alguna forma para que ese documento no sea fácilmente falsificable y en caso de disputa se pueda verificar la originalidad del documento.

Con estos mimbres creo en Google Spreadsheet una hoja en la que además del Nombre, DNI, e-mail, Sexo, billete correspondiente, fecha de generacion, nombre del archivo, estado de pago y estado de envío.

Además en Google Docs creamos un documento en el que podemos poner las imágenes que queramos y el texto en el que me hago cargo del marrón para que no pueda escaparme a las bahamas con los millones el día 22 por la noche.

La peculiaridad es que en este caso, incluimos dos guiones bajos delante de las palabras que después sustituiremos por la variables correspondientes, en este caso __decimo __nombre __formadepago __email __fecha __firma

Entramos en el editor de Scripts y nos ponemos a la faena:

Podeis ver el código en Github

Primero definimos los documentos de trabajo buscando la ID de cada uno en la barra de dirección, los ponemos en las variables correspondientes, indicamos la primera columna en la que hay datos y cuantas columnas con datos tenemos.

Seleccionamos el rango de datos, recuperamos los valores y nos metemos en un bucle en el que iteramos tantas veces como filas tengamos.

Dentro del bucle generamos una marca de fecha/hora en formato texto y recuperamos cada una de las variables que sustituiremos.

Además concatenaremos alguna de esas variables porque será la cadena que nos firmará (junto con una clave privada) con el algoritmo sha256, que nos dará un array de Bytes, este array lo pasamos a texto y le quitamos las comas que genera entre Bytes (si es una ñapa que hay formas mas elegantes de resolver, pero esta salió así y funciona 😉 )

En la hoja de origen de datos, guardamos los valores de fecha de generación, el nombre del certificado (que es la firma) y cambiamos el enviado a verdadero.

Con estos datos llamamos a la función en la que generamos el certificado sustituyendo las palabras con dos guiones bajos, por las variables que pasamos como parámetro (y alguna cosa más) en el caso que no lo hayamos generado ya y que el décimo esté pagado.

En esta función lo primero es crear una copia del documento original con el nombre del certificado (Nombre de la persona+firma), y posteriormente sustituimos los valores.

La idea es que este archivo fuese temporal y generase directamente un PDF que automáticamente se enviase por correo electrónico, pero no funciona al vuelo, es algo que me queda por investigar (en cuanto lo vea actualizo).

Asi que ahora solo hay que ir a la carpeta, descargarse los documentos como PDF y enviarlo a cada uno de los emails que nos han dado como contacto!

¿Es complicarse la vida para enviar la lotería de Navidad? Sin duda alguna. La razón de hacerlo, además de por darle un toque friki a la operación, es practicar un poco con Google Scripts para automatizar procesos y de paso aprender cosas «raras» que pasan como el que no guarde directamente los cambios.

Espero que os sirva de inspiración y como dice Pepe, un compañero de oficina «lo podéis comentar, compartir… que para eso es gratis»

 

 

 

 

 

 

 

 

 

One thought on “Creando un Script para la Lotería 2016 Marketineo”

Leave a reply

Your email adress will not be published. Required fields are marked*