示例#1
0
def cPanelClienteG():
    if "ID" in session and session["Tipo"] == 6:
        if request.method == 'GET':
            objEmpresa = Empresa()
            objEmpresa.setIdTipo(1)
            empresas = objEmpresa.ListarEmpresasXTipo()
            return render_template('clienteG/cPanelClienteG.html',
                                   avatar=session["Avatar"],
                                   empresas=empresas,
                                   ID=session['ID'])
        elif request.method == 'POST':
            titulo = request.form['titulo']
            detalle = request.form['detalle']
            urgencia = request.form['urgencia']
            empresa = request.form['empresa']

            objTicket = Ticket()
            objTicket.setTicket(titulo, detalle, empresa,
                                int(session['Empresa']), int(session['ID']),
                                urgencia)
            if objTicket.agregarTicket():
                return "Exito"
            else:
                return "Error"
        else:
            return redirect(url_for('index'))
    else:
        return redirect(url_for('index'))
示例#2
0
def verificarEmpresa():
    nombre = request.form['nombreEmp']
    url = str(request.form['url'])
    objEmp = Empresa()
    objEmp.setNombre(nombre)
    
    if objEmp.verificarEmpresa(url):
        return "Existe"
    else:
        return "Valido"
示例#3
0
def verificarTelefono():
    telefono = request.form['tel']
    origen = request.form['url']
    objEmp = Empresa()
    objEmp.setTelefono(telefono)
    
    if objEmp.verificarTelefono(origen):
        return "Existe"
    else:
        return "Valido"
示例#4
0
def activarEmpresa():
    if request.method != 'POST':
        return redirect(url_for('inicio.index'))
    else:
        if "ID" in session:
            IdEmpresa = int(request.form['IdEmpresa'])
            objEmpresa = Empresa()
            objEmpresa.setID(IdEmpresa)

            if  objEmpresa.activarEmpresa():
                return "Exito"
    
    return "Error"
示例#5
0
def cPanelAdmin():
    objUsuario = Usuario()
    objDep = Departamento()
    objEmp = Empresa()

    if "ID" in session and session['Tipo'] == 1:
        usuarios = objUsuario.ListarUsuariosXEstado(1)
        depActivos = objDep.ListarDepartamentosXEstado(1)
        empresas = objEmp.ListarEmpresasXEstado(1)
        return render_template('cPanelAdmin.html',
                               usuarios=usuarios,
                               avatar=session["Avatar"],
                               departamentos=depActivos,
                               empresas=empresas,
                               ID=session["ID"])
    else:
        return redirect(url_for('inicio.index'))
示例#6
0
    def add_empresa(self):
        name = False
        rfc = False
        if self.txt_name.text():
            name = self.txt_name.text()
        if self.txt_rfc.text():
            rfc = self.txt_rfc.text()

        if not name or not rfc:
            print('Debe Insertar un Nombre y RFC.')
        else:
            e = Empresa.find_by_rfc(rfc)
            if e:
                print('Ya existe una empresa con ese RFC.')
            else:
                e = Empresa(rfc=rfc, name=name)
                print('Agregando {}, {}'.format(name, rfc))
                e.save_to_db()
示例#7
0
 def load_data(self):
     empresas = Empresa.find_all()
     if empresas:
         self.empresas = {
             '{} ({})'.format(e.name, e.rfc): e
             for e in empresas
         }
         emp_list = list(self.empresas.keys())
         self.select_empresa.clear()
         self.select_empresa.addItems(emp_list)
示例#8
0
def cargarEmpresas():
    if request.method == "POST" and "ID" in session:
        plantilla = ""
        idFiltro = request.form["idFiltro"]
        objEmpresa = Empresa()
        empresas = objEmpresa.ListarEmpresasXEstado(idFiltro)

        if len(empresas) > 0:
            for empresa in empresas:
                if empresa.Activo == 1:    
                    plantilla += """<div class='card mb-3' style='max-width: 100%;'>
                    <div class='row no-gutters'>
                    <div class='col-12'>
                    <div class='card-body'>
                    <h5 class='card-title'>"""+empresa.Nombre+"""</h5>
                    <p class='card-text'>"""+empresa.TipoEmpresa+"""</p>
                    <p class='card-text'><small class='text-muted'>"""+empresa.Telefono+"""</small></p>
                        <button class='btn btn-primary mt-1' style='width: 120px !important;' idEmpresa='"""+str(empresa.IdEmpresa)+"""'>Modificar</button>
                        <button class='btn btn-danger mt-1' style='width: 120px !important;' idElimEmpresa='"""+str(empresa.IdEmpresa)+"""'>Eliminar</button>
                    </div>
                    </div>
                    </div>
                    </div>"""
                else:
                    plantilla += """<div class='card mb-3' style='max-width: 100%;'>
                    <div class='row no-gutters'>
                    <div class='col-12'>
                    <div class='card-body'>
                    <h5 class='card-title'>"""+empresa.Nombre+"""</h5>
                    <p class='card-text'>"""+empresa.TipoEmpresa+"""</p>
                    <p class='card-text'><small class='text-muted'>"""+empresa.Telefono+"""</small></p>
                        <button class='btn btn-success mt-1' style='width: 120px !important;' idEmpresaAct='"""+str(empresa.IdEmpresa)+"""'>Activar</button>
                    </div>
                    </div>
                </div>
                </div>"""

            return plantilla
        else:
            return "<h4 class='text-center' style='text-transform:capitalize'>No existen empresas con este filtro</h4>"
    else:
        return redirect(url_for('inicio.index'))
示例#9
0
def buscarEmpresas():
    if request.method == "POST" and session['Tipo'] == 1:
        plantilla = ""
        objEmp = Empresa()
        filtro = request.form['filtro']

        resultado = objEmp.buscarEmpresas(filtro)
        if len(resultado) > 0:
            for r in resultado:
                if r.Activo == 1:
                    plantilla += """<div class='card mb-3' style='max-width: 100%;'>
                    <div class='row no-gutters'>
                    <div class='col-12'>
                    <div class='card-body'>
                    <h5 class='card-title'>"""+r.Nombre+"""</h5>
                    <p class='card-text'>"""+r.TipoEmpresa+"""</p>
                    <p class='card-text'><small class='text-muted'>"""+r.Telefono+"""</small></p>
                        <button class='btn btn-primary mt-1' style='width: 120px !important;' idEmpresa='"""+str(r.IdEmpresa)+"""'>Modificar</button>
                        <button class='btn btn-danger mt-1' style='width: 120px !important;' idElimEmpresa='"""+str(r.IdEmpresa)+"""'>Eliminar</button>
                    </div>
                    </div>
                    </div>
                    </div>"""
                else:
                    plantilla += """<div class='card mb-3' style='max-width: 100%;'>
                    <div class='row no-gutters'>
                    <div class='col-12'>
                    <div class='card-body'>
                    <h5 class='card-title'>"""+r.Nombre+"""</h5>
                    <p class='card-text'>"""+r.TipoEmpresa+"""</p>
                    <p class='card-text'><small class='text-muted'>"""+r.Telefono+"""</small></p>
                        <button class='btn btn-success mt-1' style='width: 120px !important;' idEmpresaAct='"""+str(r.IdEmpresa)+"""'>Activar</button>
                    </div>
                    </div>
                </div>
                </div>"""
        else:
            plantilla += "<h4 class='text-center' style='text-transform:capitalize'>No hay resultados para tu busqueda</h4>"
        
        return plantilla
    
    return redirect(url_for('inicio.index'))
示例#10
0
    def populate_empresa(self):
        """
        Preenche os dados da tabela empresa
        :return:
        """

        path = Path(self.directory)
        files_csvs = sorted(str(p) for p in path.iterdir() if p.name.endswith('EMPRECSV.zip'))
        empresas_cache = []

        for file in files_csvs:
            click.echo(f'[EMPRESA] Importando o CSV {file}', nl=True)
            for i, data in enumerate(self.read_file(file)):

                if len(data) != 7:
                    raise ValueError(
                        f'[EMPRESA] Erro de integridade na leitura do arquivo, linha {i} arquivo {file}'
                    )

                empresa = Empresa()
                empresa.cnpj = data[0] or None
                empresa.razao = data[1] or None
                empresa.natureza = convert.parse_int(data[2])
                empresa.qualificacao_pf = convert.parse_int(data[3])
                empresa.capital = convert.parse_float(data[4])
                empresa.porte = convert.parse_int(data[5])
                empresa.ente_federativo = convert.parse_int(data[6])
                empresas_cache.append(empresa)

                if i > 0 and i % settings.CHUNK_ROWS_INSERT_DATABASE == 0:
                    click.echo(f'[EMPRESA] Inserindo o registro {i} do arquivo {file}', nl=True)
                    self.session.bulk_save_objects(empresas_cache)
                    self.session.commit()
                    empresas_cache = []

            if empresas_cache:
                self.session.bulk_save_objects(empresas_cache)
                self.session.commit()
                empresas_cache = []

        if empresas_cache:
            self.session.bulk_save_objects(empresas_cache)
            self.session.commit()

        click.echo('[EMPRESA] Finalizado a inserção dos dados de empresas', nl=True)
示例#11
0
 def create_tables(self):
     """
     Cria as tabelas da bases de dados
     """
     Empresa().metadata.create_all(self.engine)
     Estabelecimento().metadata.create_all(self.engine)
     DadoSimples().metadata.create_all(self.engine)
     Socio().metadata.create_all(self.engine)
     Cnae().metadata.create_all(self.engine)
     Pais().metadata.create_all(self.engine)
     Municipio().metadata.create_all(self.engine)
     Qualificacao().metadata.create_all(self.engine)
     Natureza().metadata.create_all(self.engine)
示例#12
0
def modificarEmpresa(ID):
    if "ID" in session and session['Tipo'] in [1,5]:
        try:
            ID = int(ID)
        except:
            return redirect(url_for('inicio.index'))

        objEmp = Empresa()
        objEmpDep = EmpresaDepartamento()
        objDep = Departamento()
        objEmp.setID(int(ID))
        departamentos = objDep.ListarDepartamentosXEstado(1)

        deps = objEmpDep.ListarDepartamentosEmp(int(ID))
        depsActuales = []
        
        for dep in deps:
            depsActuales.append(dep.IdDepartamento)

        departamentos.append(depsActuales)
        empresa = objEmp.consultarID()
        if empresa[0].Activo == 1:
            if request.method == "GET":
                if session['Tipo'] != 1 and int(ID) != int(session['Empresa']):
                    return redirect(url_for('inicio.index'))
                else:
                    return render_template('modificarEmpresa.html', empresa=empresa[0], departamentos=departamentos)
            elif request.method == "POST":
                objEmp.setEmpresa(str(request.form['nombre']),str(request.form['direccion']), str("+506"+request.form['telefono']),0)
                depsSeleccionados = request.form.getlist('deps[]')
                objEmpDep.setIDEmpresa(int(ID))

                if empresa[0].IdTipoEmpresa == 1:
                    objEmpDep.setIDEmpresa(int(ID))
                    for departamento in depsSeleccionados:
                        objEmpDep.setIDDepartamento(int(departamento))
                        objEmpDep.agregarDepartamentosEmp()
        
                if objEmp.modificarEmpresa():
                    return "Exito"
                else:
                    return "Error"

    return redirect(url_for('inicio.index'))
示例#13
0
def eliminarEmpresa():
    if request.method != 'POST':
        return redirect(url_for('index'))
    else:
        if "ID" in session:
            IdEmpresa = int(request.form['IdEmpresa'])
            objEmpresa = Empresa()
            objEmpresa.setID(IdEmpresa)
            if objEmpresa.verificarTickets():
                if objEmpresa.EliminarEmpresa():
                    return "Exito"
            else:
                return "Error Tickets"
    return "Error"
示例#14
0
def registroEmpresa():
    if "Tipo" in session:
        return redireccionarUsuario()

    if request.method == "GET":
        return render_template('registroEmpresa.html')
    elif request.method == "POST":
        objEnc = Encriptador()
        objUsuario = Usuario()
        objEmp = Empresa()

        nombreEmpresa = str(request.form['nombreEmp'])
        direccion = str(request.form['direccion'])
        telefono = str("+506" + request.form['telefono'])
        nombreUsuario = str(request.form['usuario'])
        cedula = str(request.form['cedula'])
        email = str(request.form['email'])
        contra = objEnc.Encriptar(str(request.form['contra']))

        objEmp.setEmpresa(nombreEmpresa, direccion, telefono, 2)
        if objEmp.agregarEmpresa():
            idUltimo = int(objEmp.getUltimoID())
            objUsuario.setUsuario(nombreUsuario, cedula, email, contra, 5,
                                  idUltimo, 0)
            if objUsuario.AgregarUsuario():
                usuario = objUsuario.validarUsuario(2)
                session["last_active"] = dt.datetime.now()
                session["ID"] = usuario[0][0]
                session["Nombre"] = usuario[0][1]
                session["Cedula"] = usuario[0][2]
                session["Email"] = usuario[0][3]
                session["Contra"] = usuario[0][4]
                session["Avatar"] = usuario[0][5]
                session["Activo"] = usuario[0][6]
                session["Empresa"] = usuario[0][8]
                session["Tipo"] = usuario[0][9]
                session["Departamento"] = usuario[0][10]
                return "Exito"

        return "Error"
示例#15
0
def agregarEmpresa():
    if request.method == 'POST' and "ID" in session and session['Tipo'] == 1:
        objEmp = Empresa()
        objEmpDep = EmpresaDepartamento()
        nombre = request.form['nom']
        direccion = request.form['dir']
        telefono = str("+506"+request.form['tel'])
        tipo = int(request.form['tipo'])
        departamentos = []

        if tipo == 1:
            departamentos = request.form.getlist('deps[]')

        try:
            objEmp.setEmpresa(nombre,direccion,telefono,tipo)
            if objEmp.agregarEmpresa():
                ID = int(objEmp.getUltimoID())
                objEmpDep.setIDEmpresa(ID)
                for dep in departamentos:
                    objEmpDep.setIDDepartamento(int(dep))
                    objEmpDep.agregarDepartamentosEmp()
            return jsonify({'result':'success'})
        except:
            return jsonify({'result':'error'})
示例#16
0
def modificarUsuario(ID):
    if "ID" in session and session['Tipo'] in [1,2,5] and str(ID) != str(session['ID']):
        objEmp = Empresa()
        objDep = Departamento()
        objEnc = Encriptador()
        objEmpDep = EmpresaDepartamento()
        objUsuario = Usuario()

        try:
            ID = int(ID)
        except:
            return redirect(url_for('inicio.index'))

        objUsuario.setID(ID)
        usuario = objUsuario.getInfoUsuario()
        empresas = objEmp.ListarEmpresasXEstado(1)
        if request.method == "GET":
            if len(usuario) > 0:
                deps = objEmpDep.ListarDepartamentosEmp(int(usuario[0].IdEmpresa))
                contra = objEnc.Desencriptar(str(usuario[0].Password))
                return render_template('modificarUsuario.html',usuario=usuario[0], contra=contra, empresas=empresas, departamentos=deps, usuarioActual=session['Tipo'])

        elif request.method == "POST":
            boolImg = True
            imagen = ""

            if request.files:
                imagen = request.files["avatar"]
                if not imagenPermitida(imagen.filename):
                    boolImg = False
                else:
                    print(imagen.filename)
                    if str(usuario[0].Avatar) != "default-user.jpg":
                        os.remove(os.path.join(app.config['IMAGE_UPLOADS'],str(usuario[0].Avatar)))
                    ext = imagen.filename.rsplit(".",1)[1]
                    nombreArchivo = str(uuid.uuid4().hex+"."+ext)
                    objUsuario.setAvatar(str(nombreArchivo))

            if boolImg:

                idEmp = request.form['empresa'].rsplit('-')[0]
                idDep = request.form['departamento'] if request.form['departamento'] != 'null' else 0
                tipo = int(request.form['tipo'])
                objUsuario.setNombre(request.form['nombre'])
                objUsuario.setCedula(request.form['cedula'])
                objUsuario.setEmail(request.form['email']) 
                url = request.form['url']
                
                if int(session['Tipo']) == 2:
                    if tipo in[1,2,5,6]:
                        return "Error"
                elif int(session['Tipo']) == 5:
                    if tipo in [1,2,3,4,5]:
                        return "Error"
                elif int(session['Tipo']) in [3,4,6]:
                    return "Error"

                objUsuario.setTipo(tipo)
                objUsuario.setIdDep(int(idDep))
                objUsuario.setIDEmpresa(int(idEmp))
                objUsuario.setID(int(request.form['id']))

                if tipo == 2 and objUsuario.existeTipoUsuario():
                    return "Gerente Existe"
                elif tipo == 5 and objUsuario.existeTipoUsuario():
                    return "ClienteM Existe"


                objUsuario.setContra(objEnc.Encriptar(str(request.form['contra'])))
                
                objEmp.setID(idEmp)
                objDep.setID(idDep)
                depDestino = objDep.consultarID() if len(objDep.consultarID()) > 0 else 0
                empDestino = objEmp.consultarID() if len(objEmp.consultarID()) > 0 else 0

                depActivo = True
                empActiva = True

                if depDestino != 0:
                    if depDestino[0].Activo == 0:
                        depActivo = False

                if empDestino != 0:
                    if empDestino[0].Activo == 0:
                        empActiva = False

                if depActivo and empActiva:
                    if objUsuario.modificarPerfil():
                        if imagen != "":
                            imagen.save(os.path.join(app.config['IMAGE_UPLOADS'],nombreArchivo))
                        return "Exito"
                    else:
                        return "Error"
                else:
                    return "inactivo"

    return redirect(url_for('inicio.index'))
示例#17
0
 def delete_empresa(self):
     for current in self.tbl_empresas.selectedItems():
         rfc_empresa = self.tbl_empresas.item(current.row(), 1).text()
         e = Empresa.find_by_rfc(rfc_empresa)
         e.delete()
     self.load_data()
示例#18
0
 def edit_empresa(self):
     rfc_empresa = self.tbl_empresas.item(self.tbl_empresas.currentRow(),
                                          1).text()
     e = Empresa.find_by_rfc(rfc_empresa)
     self.controller.show_emp_fiel_window(e)