#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Oct  8 17:55:14 2024
https://dadosabertos.tse.jus.br/dataset/resultados-2024-arquivos-transmitidos-para-totalizacao
MS - Boletim de Urna - Primeiro turno - 06.10.2024
@author: ojacques
"""
import pandas as pd
import glob 
lstUrnas=glob.glob('*-rdv.dat')
# auxUrnas=lstUrnas.copy()

# for urna in auxUrnas:
#     if not ('rdv.dat' in urna):
#         lstUrnas.remove(urna)
        
# auxUrnas.clear()
cand = 55455   #também dá certo cand='55455', pois f'alguma coisa {cand}' torna-se string
bcand=bytes(f'\x0a\x0a\x01\x02\x12\x05{cand}0','iso-8859-1')

#707700
df=pd.read_excel('LOCAIS_VOTAÇÃO_MS_2024 - Google Drive.xls')
totVotos=0
votos=0
dfRel=pd.DataFrame({"Zona":[],"Seção":[],"Local":[], "Votos": []})
for urna in lstUrnas:
    with open(urna,'rb') as datUrna:
        #Conta as sequências de bytes correspondentes aos votos do candidato
        votos=datUrna.read().count(bcand)
        totVotos+=votos
        #arquivo no formato fpppppeeMMMMMzzzzssss-tipo.dat
        #f: fase (s ou o) ppppp:pleito com 0 à esquerda ee:sigla do estado
        #MMMMM: codigo municipio com 0 à esquerda zzzz: codigo da zona com 0 à esquerda
        #ssss: código da seção com 0 à esquerda tipo:bu, rdv,log, etc
        #01234567890123456789012345678
        #o00452ms9073500430427-rdv.dat
        #fpppppeeMMMMMzzzzssss

        zona=urna[13:17]    #número da zona na posição 13 do nome do arquivo da urna
        secao=urna[17:21]   #número da seção na posição 17 do nome do arquivo da urna
        locSec=df.loc[df['Seção']==int(secao)]
        local=list(locSec.loc[locSec['Zona']==int(zona)]['Local'])[0]        # if urna=="o00452ms9073500430221-rdv.dat":
        #     print(f'Zona:{zona}')
        #     print(f'votos: {votos}')
        #     print(f'seçao: {secao}')
        #     print(f'Local:{local}')
        #     input()
            
        dfRel=pd.concat([dfRel,pd.DataFrame({"Zona":[zona],"Seção":[secao],"Local":[local], "Votos": [votos]})])
    
dfRelLoc=dfRel.groupby('Local')[['Votos']].sum()
#temos a opção mode={'w','a'}, 'a' para append
with pd.ExcelWriter(f'RelatCand{cand}.xls',engine='xlwt') as wb: 
    dfRel.to_excel(wb, sheet_name='Votos Por Seção',index=False)    
    dfRelLoc.to_excel(wb,sheet_name='Votos Por Local',float_format=None, header=True, index=True)
print(f'Total votos: {totVotos}')
    
    


    
        
        

            
