fosadiaria.py
3.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
from datetime import datetime
from time import sleep
import os, subprocess
from configuracion import *
import pandas as pd
class FosaDiaria():
"""Esta clase almacenara todos los datos de finalizacion de
una planilla de foza, se busca se baja el excel se abra
y se guarda en ran los resultados"""
def __init__(self) -> None:
self.Cache = {}
self.Archivo = "data/fosa.json"
self.cabezaera = cabezaeraDescargas
self.CarpetaDescarga = carpetaDescargas
def BuscarDatosDominio(self,dominio,selenium,dia=False):
if dia == False:
now = datetime.now()
dia = now.strftime("%d/%m/%Y")
try:
data = self.Cache[dia][dominio]
except:
data = False
if not data == False:
return data
try:
self.ActualizarDatosDominios(selenium,dia)
except Exception as E:
print(f"""Error al actualizar dominio {str(E)}""")
return self.LimpiarData(data,dominio,dia)
def LimpiarData(self,data,dominio,dia):
return(data)
def ActualizarDatosDominios(self,selenium,dia):
self.BajarExcel(selenium)
archivo = self.BuscarExcelDescargado()
df = pd.read_excel(archivo)
#print(df)
#print(df.to_dict())
self.ProcesarDatos(df,dia)
def ProcesarDatos(self,df,dia):
data = df.to_dict()
for n in len(data["domino"]):
dominio = data["domino"][n]
self.Cache[dia][dominio] ={
"dominio":dominio,
"tipo":data["tipo"][n],
"inicio":data["inicio"][n],
"fin":data["fin"][n],
"resultado":data["resultado"][n],
"cuit":data["cuit"][n],
"vence":data["vence"][n],
"hora":self.CorreccionDeHora(data["fin"][n])
}
n = n + 1 #arranco desde 0
print(self.Cache)
def CorreccionDeHora(self,fin):
"""Hora de finalizacion menos 10 minutos"""
return(fin)
def BajarExcel(self,selenium):
self.LimpiarCarpertaDescarga()
selenium.get("https://rto.cent.gov.ar/rto/RTO/planillaDiaria")
now = datetime.now()
dia = now.strftime("%d")
mes = now.strftime("%m")
ano = now.strftime("%Y")
self.LimpiarCarpertaDescarga()
URL = f"""https://rto.cent.gov.ar/rto/report/planillaDiariaEXCEL/planillaDiariaEXCEL?codTaller=54&fechaConsulta={dia}%2F{mes}%2F{ano}&agruparPorLinea=false&format=excel&extension=xls"""
selenium.get(URL)
def BuscarExcelDescargado(self,tmp="/dev/shm/tmpscdecas.txt"):
test = True
n = 0
while test:
arc = self._BuscarExcelDescargado(tmp)
n = n + 1
if not arc == False:
print(arc, n)
test = False
if n > 70:
return " "
return(arc)
def _BuscarExcelDescargado(self,tmp):
rta = False
os.system(grepfile)
sleep(0.1)
file1 = open(tmp, 'r')
Lines = file1.readlines()
for line in Lines:
der = str(line).split(" ")
archivo = f"""{self.CarpetaDescarga}{der[-1]}"""
rta = archivo.replace("\n","")
file1.close()
os.system(f"""rm {tmp}""")
return rta
def LimpiarCarpertaDescarga(self):
try:
os.system(f"""rm {self.CarpetaDescarga}{self.cabezaera}*""")
sleep(0.1)
except Exception as E:
print(f"Error al intentar borrar planillas diarias anteriores: {str(E)}")