def ajax_by_id(pk):
    data = Cliente.query.filter_by(id=pk).one()
    if data:
        return Response(response=json.dumps(
            Cliente.to_dict(data, cliente_colunas)),
                        status=200,
                        mimetype="application/json")
    return '', 404
Exemple #2
0
def report(pk):
    data = Historico.query.filter_by(id=pk).one()
    dados = Historico.to_dict(data, historico_colunas)
    cliente = Cliente.query.filter_by(id=data.id_cliente).one()
    dados['cliente'] = Cliente.to_dict(cliente, cliente_colunas)
    veiculo = Veiculo.query.filter_by(id=data.id_veiculo).one()
    dados['veiculo'] = Veiculo.to_dict(veiculo, veiculo_colunas)
    modelo = Modelo.query.filter_by(id=veiculo.id_modelo).one()
    dados['modelo'] = Modelo.to_dict(modelo, modelo_colunas)
    montadora = Montadora.query.filter_by(id=modelo.id_monta).one()
    dados['montadora'] = Modelo.to_dict(montadora, montadora_colunas)
    pdf_buffer = gerar_pdf(dados)
    return send_file(
        pdf_buffer,
        attachment_filename='relatorio.pdf',
        mimetype='application/pdf',
        cache_timeout=0
    )
def ajax():
    _limit = int(request.args.get('limit', '10'))
    _offset = int(request.args.get('offset', '0'))
    _sort_order = request.args.get('sort_order', '')
    _sort_direction = request.args.get('sort_direction', 'asc')

    _nome = request.args.get('nome', '')
    _telefone = request.args.get('telefone', '')
    _celular = request.args.get('celular', '')
    _limit = _offset + _limit
    items = []
    filtro = get_filter(_nome, _telefone, _celular)
    try:
        fetch = Cliente.query.filter(filtro)
        fetch = Cliente.sorting_data(fetch, _sort_order, _sort_direction)
        fetch = fetch.slice(_offset, _limit).all()
        colunas = [col.name for col in Cliente.__table__._columns]
        for dado in fetch:
            items.append(Cliente.to_dict(dado, cliente_colunas))
    except Exception as ex:
        print(ex)
    return Response(response=json.dumps(items),
                    status=200,
                    mimetype="application/json")
def form(pk):
    #Pega os dados dos campos na tela
    contexto = {}
    contexto['model'] = {}
    if request.method == 'POST':
        nome = request.form.get('nome')
        rg = request.form.get('rg')
        cpf = request.form.get('cpf')
        endereco = request.form.get('endereco')
        complemento = request.form.get('complemento')
        bairro = request.form.get('bairro')
        cidade = request.form.get('cidade')
        cep = request.form.get('cep')
        estado = request.form.get('estado')
        pais = request.form.get('pais')
        telefone = request.form.get('telefone')
        fax = request.form.get('fax')
        celular = request.form.get('celular')
        telefone_comercial = request.form.get('telefone_comercial')
        fax_comercial = request.form.get('fax_comercial')
        email = request.form.get('email')
        bip = request.form.get('bip')
        data_nascimento = from_str_to_datetime_or_none(
            request.form.get('data_nascimento'))
        mes = to_int_or_none(request.form.get('mes'))

        if data_nascimento:
            mes = data_nascimento.month
        else:
            mes = 0

        #Criar dicionário com os dados
        dicionario = {
            "nome": nome,
            "rg": rg,
            "cpf": cpf,
            "endereco": endereco,
            "complemento": complemento,
            "bairro": bairro,
            "cidade": cidade,
            "cep": cep,
            "estado": estado,
            "pais": pais,
            "telefone": telefone,
            "fax": fax,
            "celular": celular,
            "telefone_comercial": telefone_comercial,
            "fax_comercial": fax_comercial,
            "email": email,
            "bip": bip,
            "data_nascimento": data_nascimento,
            "mes": mes
        }
        if pk:
            dicionario['id'] = pk
        cliente = Cliente(**dicionario)
        mensagem = None
        try:
            contexto['tipo_mensagem'] = 'success'
            if pk:
                db.session.merge(cliente)
            else:
                db.session.add(cliente)
            db.session.commit()
            id_cadastro = cliente.id
            if pk:
                flash(
                    u'Cliente {0} atualizado com sucesso.'.format(id_cadastro),
                    'success')
            else:
                flash(
                    u'Cliente {0} cadastrado com sucesso.'.format(id_cadastro),
                    'success')
            return redirect(url_for('cliente.index'))
        except Exception as ex:
            print(ex)
            contexto['mensagem'] = u'Erro ao cadastrar cliente.'
            contexto['tipo_mensagem'] = 'danger'
    elif pk:
        data = Cliente.query.filter_by(id=pk).one()
        contexto['model'] = Cliente.to_dict(data, cliente_colunas)
    return render_template('cliente/cadastro.html', **contexto)