armador.py 2.01 KB
from Libmod.psql import BaseDatos
from Libmod.reporte import Reporte
import random, string, time


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"""

        self.DB.USER = BaseDatos["usuario"]
        self.DB.PASS = BaseDatos["pass"]
        self.DB.PORT = BaseDatos["puerto"]
        self.DB.DB = BaseDatos["db"]
        self.DB.HOST = BaseDatos["host"]

    
    def ConfiguracionExecl(self):
        """configuro la clase que genera el excel y almaseno el nombre del archivo"""
        self.Excel = Reporte()
        string = time.strftime("%y-%m-%d-%H-%M-%S")
        self.Archivo = "tmp/reporte{}.xlsx".format(string)
        self.Excel.archivo = self.Archivo
        string = ""

    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):
        self.ConfiguracionExecl()
        """Trato de cargar el encabezado si este no es nulo sino"""
        #print("armador encabezado", Reporte["Titulos"])
        try:
            self.Excel.Encabesado = Reporte["Titulos"]
            #print("armador encabezado", Reporte["Titulos"])
        except:
            self.Excel.Encabesado = []
            print("falla encavezado")

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