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'))
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"
def verificarTelefono(): telefono = request.form['tel'] origen = request.form['url'] objEmp = Empresa() objEmp.setTelefono(telefono) if objEmp.verificarTelefono(origen): return "Existe" else: return "Valido"
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"
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'))
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()
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)
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'))
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'))
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)
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)
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'))
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"
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"
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'})
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'))
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()
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)