fosadiaria.py 3.18 KB
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[dia][dominio]
        except:
            data = False
        if not data == False:
            return data
        try:
            self.ActualizarDatosDominios(selenium)
        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):
        self.BajarExcel(selenium)
        archivo = self.BuscarExcelDescargado()
        df = pd.read_excel(archivo)
        print(df)

    
    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)
            print(arc, n)
            n = n + 1
            if not arc == False:
                test = False
            if n > 70:
                return " "
        return(arc) 
    
    def _BuscarExcelDescargado(self,tmp):
        rta = False
        #cmd = f"""ls {self.CarpetaDescarga} -ls |grep {self.cabezaera}| grep xls | grep -v crdownload""".split(" ")
        #rte = subprocess.check_output([grepfile])
        os.system(grepfile)
        #print(cmd)
        #print(rte)
        #Lines = str(rte).split("\n")
        sleep(0.1)
        file1 = open(tmp, 'r')
        Lines = file1.readlines()
        for line in Lines:
            der = str(line).split(" ")
            #print(1,type(line),type(der))
            #print(2,der)
            archivo = f"""{self.CarpetaDescarga}{der[-1]}"""
            #print(3,line,der,der[-1],archivo)
            print(archivo)
            rta =  archivo
        file1.close()
        os.system(f"""rm {tmp}""")
        return rta

    def LimpiarCarpertaDescarga(self):
        try:
            os.system(f"""rm {self.CarpetaDescarga}{self.cabezaera}*""")
            sleep(0.5)
        except Exception as E:
            print(f"Error al intentar borrar planillas diarias anteriores: {str(E)}")