armador.py 1.89 KB
from Libmod.psql import BaseDatos
from Libmod.reporte import Reporte
import random
import string

class NegroReport():
    def __init__(self):
        self.__DBinit__()
        self.ConfiguracionExecl()
        
    def __DBinit__(self):   
        self.DB = BaseDatos()
        self.DB.HOST = "127.0.0.1" #"192.168.10.59"
        self.DB.PORT = 5432
        self.DB.USER = "administrador"
        self.DB.PASS = "administrador"
        self.DB.DB = "isvareporte"
        self.DB.SELECT = ""

    def ConfiguradorDB(self, BaseDatos):
        """Aca gestionamos el objeto que se recive de falange para configurar
        la db postgress usuario, db, puerto, pass, host enviados por falange"""
        lista = {"usuario": self.DB.USER, "pass": self.DB.PASS,
        "puerto": self.DB.PORT, "db": self.DB.DB, "host": self.DB.PORT}
        for variable in lista.keys():
            try:
                lista[variable] = BaseDatos[variable] 
            except:
                print("falta dato db se toma default")
    
    def ConfiguracionExecl(self):
        """configuro la clase que genera el excel y almaseno el nombre del archivo"""
        self.Excel = Reporte()
        self.Archivo = "tmp/reporte{}.xlsx".format(self.randomString())
        self.Excel.archivo = self.Archivo

    def randomString(self, stringLength=10):
        """Generate a random string of fixed length """
        letters = string.ascii_lowercase
        return ''.join(random.choice(letters) for i in range(stringLength))

    def Encabezado(self, Reporte):
        """Trato de cargar el encabezado si este no es nulo sino"""
        print("armador encabezado", Reporte["Titulos"])
        try:
            self.Excel.Encabesado = Reporte["Titulos"]
        except:
            self.Excel.Encabesado = []

    def Generador(self):
        self.DB.Leer()
        self.Excel.QUERY = self.DB.resultado
        self.Excel.ArmarLibro()
        return(self.Archivo)