def login(flag): if session.get('username'): return redirect(url_for('index')) else: form = login_form.LoginForm(username=session.get('username')) form2 = login_form.LoginFormForgotPass() now = datetime.datetime.now() if request.method == 'POST': if request.form['action'] == 'Entrar': if form.validate_on_submit(): db = UsuarioModel() username = request.form['username'] password = request.form['password'] error = None result = db.find_all_username(username) if result is None: error = 'Credenciais inválidas!' flash(error) elif not check_password_hash(result[2], password): error = 'Credenciais inválidas!' flash(error) if error is None: session.clear() session['user_id'] = result[0] session['group'] = result[9] session['username'] = result[1] session['email'] = result[4] session['nome'] = result[3] session['last_active'] = now return redirect(url_for('index')) elif request.form['action'] == 'Resetar': if form2.validate_on_submit(): email = request.form['email'] if email: email = request.form['email'] flag = 0 flash( 'Instruções de reset de senha enviadas para {} com sucesso!' .format(email)) return redirect(url_for('login', flag=flag)) else: flag = 1 return redirect(url_for('login', flag=flag)) else: email = request.form['email'] flash('Email {} inválido!'.format(email)) return redirect(url_for('login', flag=flag)) return render_template('auth/login.html', content_type='application/json', flag=flag, form=form, form2=form2, pagina='')
def exclui_usuario(id): db = UsuarioModel() result = db.get_user(id) flag = 1 if request.method == 'POST': if request.form['submit_button'] == 'Excluir usuário': if result: if db.update_status_user(result[0]): flash('usuário excluído com sucesso!') flag = 0 return render_template('usuario/excluir_usuario.html', pagina='Excluir Usuário', result=result, flag=flag)
def usuarios(): db = UsuarioModel() users = db.get_users() search = False q = request.args.get('q') if q: search = True page = request.args.get(get_page_parameter(), type=int, default=1) pagination = Pagination(page=page, total=len(users), search=search, record_name='users', per_page=1, css_framework='bootstrap4') group = session.get('group') if group == "Administrador": return render_template('usuario/listar_usuarios.html', result=users, group=group, pagina='Listar Usuários', pagination=pagination) else: user_id = session.get('user_id') user = db.get_user(user_id) return render_template('usuario/listar_usuarios.html', result=user, group=group, pagina='Listar Usuários', pagination=pagination)
def register(): form = register_form.RegisterForm() if form.validate_on_submit(): db = UsuarioModel() username = request.form['username'] name = request.form['nome'] password = request.form['password'] email = request.form['email'] error = None if db.find_username(username) is not None: error = 'Username {} já existe. Por favor escolha outro Username!'.format( username) flash(error) if error is None: db.insert_user(username, generate_password_hash(password), name, email) message = 'Cadastro efetuado com sucesso!' flash(message) return redirect(url_for('register', form=form)) return render_template('auth/register.html', form=form, pagina=' Cadastro')
def edita_usuario(id): db = UsuarioModel() result = db.find_one_id(id) if session.get('group') == "Usuario": form = edit_forms.EditFormUser( username=result[0], nome=result[1], email=result[2], password=result[3], confirm=result[3], group=result[4] ) if form.validate_on_submit(): username = request.form['username'] name = request.form['nome'] email = request.form['email'] password = request.form['password'] group = request.form['group'] if password: password = generate_password_hash(password) if db.update_user(username, name, email, password, group, id): flash('Alterações salvas com sucesso!') else: flash('Erro ao realizar as alterações, contate o administrador do sistema.') else: if db.update_user_2(username, name, email, group, id): flash('Alterações salvas com sucesso!') else: flash('Erro ao realizar as alterações, contate o administrador do sistema.') else: form = edit_forms.EditFormAdmin( username=result[0], nome=result[1], email=result[2], password=result[3], confirm=result[3], group=result[4] ) if form.validate_on_submit(): username = request.form['username'] name = request.form['nome'] email = request.form['email'] password = request.form['password'] group = request.form['group'] if password: password = generate_password_hash(password) if db.update_user(username, name, email, password, group, id): flash('Alterações salvas com sucesso!') else: flash('Erro ao realizar as alterações, contate o administrador do sistema.') else: if db.update_user_2(username, name, email, group, id): flash('Alterações salvas com sucesso!') else: flash('Erro ao realizar as alterações, contate o administrador do sistema.') return render_template('usuario/editar_usuario.html', form=form, pagina='Editar Usuário')
def editar_cliente(id): db = ClienteModel() result_a = db.get_nj_porte_nome(id) result = db.find_one_id(id) # TODO atualizar no banco # TODO arrumar template quando otiver somente 1 cnae, carde esta desalinhado cnaes = result[18] cnaes = cnaes.replace('"', '') cnaes = cnaes.replace("'", "") cnaes = cnaes.replace('[', '') cnaes = cnaes.replace(']', '') cnaes = cnaes.replace(']', '') cnaes = cnaes.replace(' ', '') cnaes = cnaes.split(',') form = client_form.ClientForm( nome_responsavel=result_a[2], empresa=result[5], natureza_juridica=result_a[0], porte=result_a[1], cep=result[6], endereco=result[7], numero=result[8], complemento=result[9], cidade=result[10], bairro=result[11], estado=result[12], capital_social=result[13], nire=result[14], cnpj=result[15], inscricao_estadual=result[16], ccm=result[17], tributacao=result[19], cnaes=cnaes, dia_faturamento=result[20], folha_pagamento=result[21], certificado_digital=result[22], impugnacao=result[23], observacoes=result[24], nome=result[28], telefone=result[29], email=result[30], celular=result[31] ) tamanho = len(cnaes) user_id = result[3] db = UsuarioModel() result = db.get_users() form.nome_responsavel.choices = [(row[0], row[2]) for row in result] form.nome_responsavel.choices.insert(0, (user_id, result_a[2])) db = ClienteModel() result = db.get_info_nj() form.natureza_juridica.choices = [(row[0], (row[1] + ' - ' + row[2])) for row in result] form.natureza_juridica.choices.insert(0, (1, result_a[0])) result = db.get_info_porte() form.porte.choices = [(row[0], row[1]) for row in result] form.porte.choices.insert(0, (1, result_a[1])) if request.method == 'POST': nome_responsavel = request.form['nome_responsavel'] empresa = request.form['empresa'] natureza_juridica = request.form['natureza_juridica'] porte = request.form['porte'] cep = request.form['cep'] endereco = request.form['endereco'] numero = request.form['numero'] complemento = request.form['complemento'] cidade = request.form['cidade'] bairro = request.form['bairro'] estado = request.form['estado'] capital_social = request.form['capital_social'] nire = request.form['nire'] cnpj = request.form['cnpj'] inscricao_estadual = request.form['inscricao_estadual'] ccm = request.form['ccm'] tributacao = request.form['tributacao'] cnae_principal = request.form.getlist('cnae[]') dia_faturamento = request.form['dia_faturamento'] folha_pagamento = request.form['folha_pagamento'] certificado_digital = request.form['certificado_digital'] impugnacao = request.form['impugnacao'] observacoes = request.form['observacoes'] id_responsavel = nome_responsavel nome = request.form['nome'] email = request.form['email'] telefone = request.form['telefone'] celular = request.form['celular'] validadores = Validadores() cnae = validadores.valida_cnae("https://servicodados.ibge.gov.br/api/v2/cnae/subclasses/", cnae_principal) if cnae == 1: flash('Erro de CNAE Secundário! Entre com um CNAE Secundário válido.') return redirect(url_for('editar_cliente', id=id)) elif cnae == 2: flash('Erro de CNAE Primário! Entre com um CNAE Primário válido.') return redirect(url_for('editar_cliente', id=id)) if validadores.validar_cnpj(cnpj): if db.update_company(empresa, natureza_juridica, porte, cep, endereco, numero, complemento, cidade, bairro, estado, capital_social, nire, cnpj, inscricao_estadual, ccm, tributacao, cnae_principal, cnae_secundaria, dia_faturamento, folha_pagamento, certificado_digital, impugnacao, observacoes, id_responsavel, id, nome, email, telefone, celular): flash('Alterações salvas com sucesso!') else: flash('Erro ao realizar as alterações, contate o administrador do sistema.') else: flash('Erro de CNPJ! Entre com um CNPJ válido.') return render_template('cliente/editar_cliente.html', form=form, cnaes=cnaes, tamanho=tamanho)
def cadastrar_cliente(): user_id = session['user_id'] user_name = session['nome'] db = UsuarioModel() result = db.get_users() form = client_form.ClientForm() form.nome_responsavel.choices = [(row[0], row[2]) for row in result] form.nome_responsavel.choices.insert(0, (user_id, user_name)) db = ClienteModel() result = db.get_info_nj() form.natureza_juridica.choices = [(row[0], (row[1] + ' - ' + row[2])) for row in result] result = db.get_info_porte() form.porte.choices = [(row[0], row[1]) for row in result] if request.method == 'POST': nome_responsavel = request.form['nome_responsavel'] empresa = request.form['empresa'] natureza_juridica = int(request.form['natureza_juridica']) porte = int(request.form['porte']) cep = request.form['cep'] endereco = request.form['endereco'] numero = request.form['numero'] complemento = request.form['complemento'] cidade = request.form['cidade'] bairro = request.form['bairro'] estado = request.form['estado'] nome = request.form['nome'] telefone = request.form['telefone'] celular = request.form['celular'] email = request.form['email'] capital_social = request.form['capital_social'] nire = request.form['nire'] cnpj = request.form['cnpj'] inscricao_estadual = request.form['inscricao_estadual'] ccm = request.form['ccm'] tributacao = request.form['tributacao'] cnae_principal = request.form.getlist('cnae[]') dia_faturamento = request.form['dia_faturamento'] folha_pagamento = request.form['folha_pagamento'] certificado_digital = request.form['certificado_digital'] impugnacao = request.form['impugnacao'] observacoes = request.form['observacoes'] id_responsavel = int(nome_responsavel) validadores = Validadores() cnaes = validadores.valida_cnae("https://servicodados.ibge.gov.br/api/v2/cnae/subclasses/", cnae_principal) if cnaes[0] == 0: flash('Erro de CNAE! O(s) CNAE(s) precisam ser válidos.') return render_template('cliente/cadastrar_cliente.html', form=form) # TODO codar validação para CNAES do mesmo nome # TODO verificar se a validação do mesmo cnpj esta funcionando corretamente if db.search_cnpj(cnpj) == 0: if validadores.validar_cnpj(cnpj): if db.insert_company(nome_responsavel, natureza_juridica, porte, id_responsavel, empresa, endereco, bairro, cep, cidade, numero, complemento, estado, capital_social, nire, cnpj, inscricao_estadual, ccm, str(cnaes[1]), tributacao, dia_faturamento, folha_pagamento, certificado_digital, impugnacao, observacoes, nome, telefone, email, celular): flash('Empresa cadastrada com sucesso!') return redirect(url_for('listar_clientes', form=form)) else: flash('Houve um erro ao inserir a cliente, contate o administrador do sistema') else: flash('Erro de CNPJ! Entre com um CNPJ válido.') else: flash('Empresa não cadastrada, CNPJ já existe no sistema!') return render_template('cliente/cadastrar_cliente.html', form=form)