Commit 27aeea3b authored by Sylvain Lesage's avatar Sylvain Lesage

Adición 3 circunscripciones 2014 + script recup res uninominales 2014

parent 282d5ed6
......@@ -62,11 +62,42 @@ Para recalcular las tablas de jerarquia, lanzar
psql -d geoelectoral -h localhost -U geoelectoral -W < scripts/upgrade_0.6_hacia_0.7.sql
```
## Adición de un campo "observacion" en la tabla de resultados
Para añadir un campo "observacion" en la tabla de resultados, lanzar
```
psql -d geoelectoral -h localhost -U geoelectoral -W < scripts/upgrade_0.7_hacia_0.8.sql
```
## Incorporación de 3 circunscripciones 2014 que faltaban
Para incorporación de 3 circunscripciones 2014 que faltaban en la precedente importación, lanzar
```
psql -d geoelectoral -h localhost -U geoelectoral -W < scripts/upgrade_0.8_hacia_0.9.sql
```
## Función de incorporación de datos uninominales en circunscripciones:
Para añadir la función de incorporación de datos uninominales en circunscripciones:
```
psql -d geoelectoral -h localhost -U geoelectoral -W < scripts/upgrade_0.9_hacia_0.10.sql
```
## Ingreso de resultados
Para añadir los resultados, lanzar
Para añadir los resultados plurinominales, lanzar
```
./scripts/parsing_oep_plurinominal.sh
psql -d geoelectoral -h localhost -U geoelectoral -W < /tmp/pluri.sql
```
Para añadir los resultados uninominales, lanzar
```
./scripts/parsing_oep.sh
psql -d geoelectoral -h localhost -U geoelectoral -W < /tmp/t.sql
./scripts/parsing_oep_uninominal.sh
psql -d geoelectoral -h localhost -U geoelectoral -W < /tmp/uni.sql
```
#!/bin/bash
pdf=/tmp/p.pdf
txt=/tmp/p.txt
sql=/tmp/p.sql
pdf=/tmp/pluri.pdf
txt=/tmp/pluri.txt
sql=/tmp/pluri.sql
# Bolivia
......
#!/bin/bash
pdf=/tmp/uni.pdf
txt=/tmp/uni.txt
sql=/tmp/uni.sql
# Bolivia
function dl_sql_uni {
rm $pdf
rm $txt
wget http://computo2014.oep.org.bo/nal/c${1}.PDF -O $pdf
/usr/bin/pdftotext -raw $pdf $txt
num=$(tail -n 5 $txt | grep '[[:digit:]]\+ de [[:digit:]]\+');
porc=$(tail -n 5 $txt | grep '[[:digit:],]\+%');
fecha=$(tail -n 5 $txt | grep -o '[[:digit:]]\+/[[:digit:]]\+/[[:digit:]]\+ [[:digit:]]\+:[[:digit:]]\+:[[:digit:]]\+');
observacion=$(printf "Conteo parcial: %s (%s) a la fecha: %s" "${porc}" "${num}" "${fecha}");
cat $txt | sed 's/ [0-9\.,]*\%/\%/' | sed 's/MAS-IPSP%/SELECT f_insert_resultado_2014_uninominal_votos(25, '${1}', %/' | sed 's/%[0-9]*/&);/' | sed 's/%//' | grep f_insert_resultado_2014_uninominal_votos | sed "s@);@,'$observacion');@" >> $sql
cat $txt | sed 's/ [0-9\.,]*\%/\%/' | sed 's/PDC%/SELECT f_insert_resultado_2014_uninominal_votos(43, '${1}', %/' | sed 's/%[0-9]*/&);/' | sed 's/%//' | grep f_insert_resultado_2014_uninominal_votos | sed "s@);@,'$observacion');@" >> $sql
cat $txt | sed 's/ [0-9\.,]*\%/\%/' | sed 's/PVB-IEP%/SELECT f_insert_resultado_2014_uninominal_votos(87, '${1}', %/' | sed 's/%[0-9]*/&);/' | sed 's/%//' | grep f_insert_resultado_2014_uninominal_votos | sed "s@);@,'$observacion');@" >> $sql
cat $txt | sed 's/ [0-9\.,]*\%/\%/' | sed 's/UD%/SELECT f_insert_resultado_2014_uninominal_votos(88, '${1}', %/' | sed 's/%[0-9]*/&);/' | sed 's/%//' | grep f_insert_resultado_2014_uninominal_votos | sed "s@);@,'$observacion');@" >> $sql
cat $txt | sed 's/ [0-9\.,]*\%/\%/' | sed 's/MSM%/SELECT f_insert_resultado_2014_uninominal_votos(86, '${1}', %/' | sed 's/%[0-9]*/&);/' | sed 's/%//' | grep f_insert_resultado_2014_uninominal_votos | sed "s@);@,'$observacion');@" >> $sql
}
rm $sql
# Circunscripciones
for i in {1..63}
do
dl_sql_uni "${i}"
done
This diff is collapsed.
-------------------------------------------
-- Creación de la función de inserción de un resultado uninominal
-------------------------------------------
-------------------------------------------
-- Paso 1 - creación de la función de inserción de un resultado uninominal
-------------------------------------------
-- Function: public.f_insert_resultado_2014_uninominal_votos(integer, integer, integer, string)
-- entradas:
-- * id_partido
-- * id_dpa
-- * resultado
-- * observacion
CREATE OR REPLACE FUNCTION public.f_insert_resultado_2014_uninominal_votos(
_id_partido integer
, _numero_circunscripcion integer
, _resultado integer
, _observacion text) RETURNS int
AS $$
DECLARE
id_val int;
BEGIN
DELETE FROM public.resultados
WHERE id_resultado IN (
SELECT id_resultado
FROM public.resultados AS r
JOIN (
SELECT id_eleccion FROM public.elecciones WHERE ano = 2014 AND id_tipo_eleccion=2
) AS e ON (r.id_eleccion = e.id_eleccion)
JOIN (
SELECT id_eleccion, id_candidato, id_partido, id_tipo_partido FROM public.candidatos WHERE id_partido=_id_partido
) AS c ON (c.id_eleccion=e.id_eleccion AND r.id_candidato=c.id_candidato)
JOIN (
SELECT id_dpa, id_tipo_dpa FROM public.dpa WHERE codigo=_numero_circunscripcion::varchar AND id_tipo_dpa=5 AND fecha_creacion_corte < '2014-10-12' AND fecha_supresion_corte > '2014-10-12'
) AS d ON r.id_dpa=d.id_dpa);
INSERT INTO public.resultados (id_eleccion, id_candidato, id_partido, id_tipo_partido, id_dpa, id_tipo_dpa, id_tipo_resultado, resultado, observacion)
SELECT e.id_eleccion, c.id_candidato, c.id_partido, c.id_tipo_partido, d.id_dpa, d.id_tipo_dpa, 1, _resultado, _observacion
FROM (
SELECT id_eleccion FROM public.elecciones WHERE ano = 2014 AND id_tipo_eleccion=2
) AS e
JOIN (
SELECT id_eleccion, id_candidato, id_partido, id_tipo_partido FROM public.candidatos WHERE id_partido=_id_partido
) AS c ON (c.id_eleccion=e.id_eleccion)
JOIN (
SELECT id_dpa, id_tipo_dpa FROM public.dpa WHERE codigo=_numero_circunscripcion::varchar AND id_tipo_dpa=5 AND fecha_creacion_corte < '2014-10-12' AND fecha_supresion_corte > '2014-10-12'
) AS d ON true
RETURNING id_resultado INTO id_val;
RETURN id_val;
END;
$$
LANGUAGE plpgsql;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment