示例#1
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')

    _id_cliente = to_int_or_none(request.args.get('id_cliente', ''))
    _id_veiculo = to_int_or_none(request.args.get('id_veiculo', ''))
    _data_notificacao = from_str_to_date_or_none(
        request.args.get('data_notificacao', ''))

    _limit = _offset + _limit
    items = []
    filtro = get_filter(_id_cliente, _id_veiculo, _data_notificacao)
    try:
        fetch = Lembrete.query.filter(filtro)
        fetch = Lembrete.sorting_data(fetch, _sort_order, _sort_direction)
        fetch = fetch.slice(_offset, _limit).all()
        for dado in fetch:
            items.append(Lembrete.to_dict(dado, lembrete_colunas))
    except Exception as ex:
        print(ex)
    return Response(response=json.dumps(items),
                    status=200,
                    mimetype="application/json")
示例#2
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')

    _numero_ordem = to_int_or_none( request.args.get("numero_ordem") )
    _id_cliente = to_int_or_none( request.args.get('id_cliente', '') )
    _id_veiculo = to_int_or_none( request.args.get('id_veiculo', '') )
    _id_tecnico = to_int_or_none( request.args.get('id_tecnico', '') )
    _data = from_str_to_date_or_none( request.args.get('data', '') )
    _tipo = request.args.get('tipo', '')

    _limit = _offset + _limit
    items = []
    filtro = get_filter(_numero_ordem, _id_cliente, _id_veiculo, _id_tecnico, _data, _tipo)
    try:
        fetch = Historico.query.filter( filtro )
        fetch = Historico.sorting_data(fetch, _sort_order, _sort_direction)
        fetch = fetch.slice(_offset, _limit).all()
        for dado in fetch:
            items.append( Historico.to_dict(dado, historico_colunas) )
    except Exception as ex:
        print(ex)
    return Response(response=json.dumps( items ), status=200, mimetype="application/json")
示例#3
0
def count():
    _id_cliente = to_int_or_none(request.args.get('id_cliente', ''))
    _id_modelo = to_int_or_none(request.args.get('id_modelo', ''))
    _placa = request.args.get('placa', '')
    count = 0
    filtro = get_filter(_id_cliente, _id_modelo, _placa)
    try:
        count = Veiculo.query.filter( filtro ).count()
    except Exception as ex:
        print(ex)
    return Response(response=json.dumps( {"count":count} ), status=200, mimetype="application/json")
示例#4
0
def form(pk):
    #Pega os dados dos campos na tela
    contexto = {}
    contexto['model'] = {}
    if request.method == 'POST':
        id_cliente = to_int_or_none(request.form.get('id_cliente'))
        id_modelo = to_int_or_none(request.form.get('id_modelo'))
        placa = request.form.get('placa')
        pais = request.form.get('pais')
        cor = request.form.get('cor')
        combustivel = request.form.get('combustivel')
        renavam = request.form.get('renavam')
        chassi = request.form.get('chassi')
        ano = request.form.get('ano')

        #Criar dicionário com os dados
        dicionario = {
            'id_cliente':id_cliente,
            'id_modelo':id_modelo,
            'placa':placa,
            'pais':pais,
            'cor':cor,
            'combustivel':combustivel,
            'renavam':renavam,
            'chassi':chassi,
            'ano':ano,
        }
        if pk:
            dicionario['id'] = pk
        veiculo = Veiculo(**dicionario)
        mensagem = None
        try:
            contexto['tipo_mensagem'] = 'success'
            if pk:
                db.session.merge(veiculo)
            else:
                db.session.add(veiculo)
            db.session.commit()
            id_cadastro = veiculo.id
            if pk:
                flash( u'Veículo {0} atualizado com sucesso.'.format(id_cadastro), 'success')
            else:
                flash( u'Veículo {0} cadastrado com sucesso.'.format(id_cadastro), 'success')
            return redirect(url_for('veiculo.index'))
        except Exception as ex:
            print(ex)
            contexto['mensagem'] = u'Erro ao cadastrar veículo.'
            contexto['tipo_mensagem'] = 'danger'
    elif pk:
        data = Veiculo.query.filter_by(id=pk).one()
        contexto['model'] = Veiculo.to_dict(data, veiculo_colunas)
    return render_template('veiculo/cadastro.html', **contexto)
示例#5
0
def count():
    _id_cliente = to_int_or_none(request.args.get('id_cliente', ''))
    _id_veiculo = to_int_or_none(request.args.get('id_veiculo', ''))
    _data_notificacao = from_str_to_date_or_none(
        request.args.get('data_notificacao', ''))

    count = 0
    filtro = get_filter(_id_cliente, _id_veiculo, _data_notificacao)
    try:
        count = Lembrete.query.filter(filtro).count()
    except Exception as ex:
        print(ex)
    return Response(response=json.dumps({"count": count}),
                    status=200,
                    mimetype="application/json")
示例#6
0
def count():
    _numero_ordem = to_int_or_none( request.args.get("numero_ordem") )
    _id_cliente = to_int_or_none( request.args.get('id_cliente', '') )
    _id_veiculo = to_int_or_none( request.args.get('id_veiculo', '') )
    _id_tecnico = to_int_or_none( request.args.get('id_tecnico', '') )
    _data = from_str_to_date_or_none( request.args.get('data', '') )
    _tipo = request.args.get('tipo', '')

    count = 0
    filtro = get_filter(_numero_ordem, _id_cliente, _id_veiculo, _id_tecnico, _data, _tipo)
    try:
        count = Historico.query.filter( filtro ).count()
    except Exception as ex:
        print(ex)
    return Response(response=json.dumps( {"count":count} ), status=200, mimetype="application/json")
示例#7
0
def form(pk):
    #Pega os dados dos campos na tela
    contexto = {}
    contexto['model'] = {}
    if request.method == 'POST':

        id_cliente = to_int_or_none(request.form.get("id_cliente"))
        id_veiculo = to_int_or_none(request.form.get("id_veiculo"))
        data_notificacao = from_str_to_datetime_or_none(
            request.form.get("data_notificacao"))
        texto = request.form.get("texto")

        #Criar dicionário com os dados
        dicionario = {
            'id_cliente': id_cliente,
            'id_veiculo': id_veiculo,
            'data_notificacao': data_notificacao,
            'texto': texto,
        }
        if pk:
            dicionario['id'] = pk
        lembrete = Lembrete(**dicionario)
        if not lembrete.id:
            db.session.add(lembrete)
            db.session.flush()
            db.session.refresh(lembrete)
        mensagem = None
        try:
            db.session.commit()
            id_cadastro = lembrete.id
            if pk:
                flash(
                    'Lembrete {0} atualizado com sucesso.'.format(id_cadastro),
                    'success')
            else:
                flash(
                    'Lembrete {0} cadastrado com sucesso.'.format(id_cadastro),
                    'success')
            return redirect(url_for('lembrete.index'))
        except Exception as ex:
            print(ex)
            contexto['mensagem'] = u'Erro ao cadastrar lembrete.'
            contexto['tipo_mensagem'] = 'danger'
    elif pk:
        data = Lembrete.query.filter_by(id=pk).one()
        contexto['model'] = Lembrete.to_dict(data, lembrete_colunas)
    return render_template('lembrete/cadastro.html', **contexto)
示例#8
0
def count():
    _nome = request.args.get('nome', '')
    _id_monta = to_int_or_none(request.args.get('id_monta'))
    count = 0
    filtro = get_filter(_nome, _id_monta)
    try:
        count = Modelo.query.filter(filtro).count()
    except Exception as ex:
        print(ex)
    return Response(response=json.dumps({"count": count}),
                    status=200,
                    mimetype="application/json")
示例#9
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')

    _id_cliente = to_int_or_none(request.args.get('id_cliente', ''))
    _id_modelo = to_int_or_none(request.args.get('id_modelo', ''))
    _placa = request.args.get('placa', '')
    _limit = _offset + _limit
    items = []
    filtro = get_filter(_id_cliente, _id_modelo, _placa)
    try:
        fetch = Veiculo.query.filter( filtro )
        fetch = Veiculo.sorting_data(fetch, _sort_order, _sort_direction)
        fetch = fetch.slice(_offset, _limit).all()
        colunas = [ col.name for col in Veiculo.__table__._columns ]
        for dado in fetch:
            items.append( Veiculo.to_dict(dado, veiculo_colunas) )
    except Exception as ex:
        print(ex)
    return Response(response=json.dumps( items ), status=200, mimetype="application/json")
示例#10
0
def form(pk):
    #Pega os dados dos campos na tela
    contexto = {}
    contexto['model'] = {}
    if request.method == 'POST':
        nome = request.form.get("nome")
        codvei_ea = to_int_or_none(request.form.get("codvei_ea"))
        id_monta = int(request.form.get("id_monta"))

        #Criar dicionário com os dados
        dicionario = {
            "nome": nome,
            "codvei_ea": codvei_ea,
            "id_monta": id_monta
        }
        if pk:
            dicionario['id'] = pk
        modelo = Modelo(**dicionario)
        mensagem = None
        try:
            contexto['tipo_mensagem'] = 'success'
            if pk:
                db.session.merge(modelo)
            else:
                db.session.add(modelo)
            db.session.commit()
            id_cadastro = modelo.id
            if pk:
                flash(
                    u'Modelo {0} atualizado com sucesso.'.format(id_cadastro),
                    'success')
            else:
                flash(
                    u'Modelo {0} cadastrado com sucesso.'.format(id_cadastro),
                    'success')
            return redirect(url_for('modelo.index'))
        except Exception as ex:
            print(ex)
            contexto['mensagem'] = u'Erro ao cadastrar modelo.'
            contexto['tipo_mensagem'] = 'danger'
    elif pk:
        data = Modelo.query.filter_by(id=pk).one()
        contexto['model'] = Modelo.to_dict(data, modelo_colunas)
    return render_template('modelo/cadastro.html', **contexto)
示例#11
0
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)
示例#12
0
def form(pk):
    #Pega os dados dos campos na tela
    contexto = {}
    contexto['model'] = {
        "items":[],
        "vistoria":{}
    }
    contexto['tupla_tipo_historico'] = tupla_tipo_historico
    contexto['get_tipo'] = get_tipo
    contexto['tipo_servico'] = tupla_tipo_item[0][0]
    contexto['tipo_falha'] = tupla_tipo_item[1][0]
    contexto['tipo_peca'] = tupla_tipo_item[2][0]
    if request.method == 'POST':

        id_cliente = to_int_or_none( request.form.get("id_cliente") )
        id_veiculo = to_int_or_none( request.form.get("id_veiculo") )
        id_tecnico = to_int_or_none( request.form.get("id_tecnico") )
        numero_ordem = to_int_or_none( request.form.get("numero_ordem") )
        sistema = to_int_or_none( request.form.get("sistema") )
        data = from_str_to_datetime_or_none( request.form.get("data") )
        tipo = request.form.get("tipo")
        valor_total = to_float_or_zero( request.form.get("valor_total") )
        observacao = request.form.get("observacao")
        kilometragem = to_float_or_zero(request.form.get("kilometragem"))
        veiculo = Veiculo.query.filter_by(id=id_veiculo).one()
        if veiculo:
            placa = veiculo.placa

        #Criar dicionário com os dados
        dicionario = {
            'id_cliente':id_cliente,
            'id_veiculo':id_veiculo,
            'id_tecnico':id_tecnico,
            'numero_ordem':numero_ordem,
            'placa':placa,
            'sistema':sistema,
            'data':data,
            'tipo':tipo,
            'valor_total':valor_total,
            'observacao':observacao,
        }
        if pk:
            dicionario['id'] = pk
        historico = Historico(**dicionario)
        if not historico.id:
            db.session.add(historico)
            db.session.flush()
            db.session.refresh(historico)
        if not numero_ordem:
            historico.numero_ordem = historico.id

        items = to_int_or_none( request.form.get("items") )
        list_items = []
        print('*'*10)
        print(historico.id)
        print('*'*10)
        if items:
            for i in range(items):
                idx = str(i)
                if request.form.get('item_descricao_'+ idx):
                    id = to_int_or_none( request.form.get('item_id_'+idx) )
                    ordem = to_int_or_none( request.form.get('item_ordem_'+idx) )
                    tipo = request.form.get('item_tipo_'+idx)
                    descricao = request.form.get('item_descricao_'+idx)
                    quantidade = to_int_or_none( request.form.get('item_quantidade_'+idx) )
                    valor = to_float_or_zero( request.form.get('item_valor_'+idx) )
                    item_dict = {
                            'id':id,
                            'ordem':ordem,
                            'tipo':tipo,
                            'descricao':descricao,
                            'quantidade':quantidade,
                            'valor':valor,
                            'id_historico': historico.id
                            }
                    list_items.append( HistoricoItem(**item_dict) )

        mensagem = None
        try:

            dados_vistoria = {
                'id':historico.id,
                'kilometragem':kilometragem,
                'observacao':''
            }
            vistoria = Vistoria(**dados_vistoria)
            try:
                db.session.merge(vistoria)
            except Exception as e:
                db.session.add(vistoria)
            contexto['tipo_mensagem'] = 'success'
            if pk:
                db.session.merge(historico)
            else:
                db.session.add(historico)
            pk_items = []
            for item in list_items:
                # salvando os items
                item.ordem = len(pk_items)
                if item.id:
                    db.session.merge(item)
                else:
                    db.session.add(item)
                pk_items.append( item.id )
            # excluindo os items apagados que não foram passados na requisição
            items_deletar = HistoricoItem.query.filter(
                and_(
                    ~HistoricoItem.id.in_( pk_items),
                    HistoricoItem.id_historico==historico.id
                    )
                ).all()
            if items_deletar:
                for item_delete in items_deletar:
                    db.session.delete(item_delete)
            db.session.commit()
            id_cadastro = historico.id
            if pk:
                flash( u'Histórico {0} atualizado com sucesso.'.format(id_cadastro), 'success')
            else:
                flash( u'Histórico {0} cadastrado com sucesso.'.format(id_cadastro), 'success')
            return redirect(url_for('historico.index'))
        except Exception as ex:
            print(ex)
            contexto['mensagem'] = u'Erro ao cadastrar histórico.'
            contexto['tipo_mensagem'] = 'danger'
    elif pk:
        data = Historico.query.filter_by(id=pk).one()
        contexto['model'] = Historico.to_dict(data, historico_colunas)
    return render_template('historico/cadastro.html', **contexto)