def get_valid_routes(): query = "SELECT rota, data FROM tb_data_rota;" rows = bd.consulta(query) routes = {} for route in rows: routes[route[0]] = route[1] return montaJson({"routes": routes})
def login(user, password): query = "SELECT * from tb_usuario WHERE nome=%s and senha=%s and funcao=1;" rows = bd.consulta(query, (user, password)) if len(rows) == 0: return False else: return True
def api_v1_mostrar_alocacao(id_escala): query = "SELECT tb_usuario.nome, tb_ponto_de_fiscalizacao.nome, tb_alocacao.dia, tb_escala.mes FROM tb_usuario, tb_ponto_de_fiscalizacao, tb_alocacao, tb_escala WHERE tb_alocacao.id_escala = %s AND tb_alocacao.id_escala = tb_escala.id AND tb_alocacao.id_ponto_fiscalizacao = tb_ponto_de_fiscalizacao.id AND tb_usuario.matricula = tb_alocacao.id_usuario;" row = bd.consulta(query, (id_escala, )) if row: return json.dumps(row) else: abort(404)
def api_v1_get_alocacoes_usuario(matricula): query = "SELECT * FROM tb_alocacao WHERE id_usuario = %s;" row = bd.consulta(query, (matricula, )) if row: return json.dumps(row) else: abort(404)
def get_route_trips_and_ticketing(start_date, end_date): answer = "id,passageiros,estudantes,gratuitos,equivalencia,id,rota,data,saida,chegada,duracao,numero_onibus,operador,id_bilhetagem,numero,empresa,id,nome\n" query = "SELECT * FROM tb_bilhetagem b, tb_viagem v, tb_onibus o, tb_empresa e WHERE b.id = v.id_bilhetagem AND v.numero_onibus = o.numero AND o.empresa = e.id AND v.data BETWEEN %s AND %s;" rows = bd.consulta(query, (start_date, end_date)) for row in rows: id_bilhetagem = str(row[0]) passageiros = row[1] estudantes = row[2] gratuitos = row[3] equivalencia = float(row[4]) id_viagem = row[5] rota = str(row[6]) data = datetime.datetime.strftime(row[7], '%Y-%m-%d') saida = str(row[8]) chegada = str(row[9]) duracao = row[10] numero_onibus = row[11] operador = row[12].encode('utf-8') id_bilhetagem2 = str(row[13]) numero = row[14] empresa = str(row[15]) id = str(row[16]) nome = str(row[17]) answer += ("%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n") %\ (id_bilhetagem,passageiros,estudantes,gratuitos,equivalencia,id_viagem,rota,data,saida,chegada,duracao,numero_onibus,operador,id_bilhetagem2,numero,empresa,id,nome) return answer
def api_v1_mostrar_escalas(): query = "SELECT tb_escala.id, tb_escala.mes, tb_escala.ano, tb_turno_escala.turno, tb_status_escala.status FROM tb_escala, tb_turno_escala, tb_status_escala WHERE tb_escala.turno = tb_turno_escala.id AND tb_escala.status = tb_status_escala.id;" row = bd.consulta(query) if row: return json.dumps(row) else: abort(404)
def api_v1_mostrar_escala(id): query = "SELECT * FROM tb_escala WHERE id = %s;" row = bd.consulta(query, (id, )) if row: return json.dumps(row) else: abort(404)
def api_v1_get_turno(id): query = "SELECT turno FROM tb_escala WHERE id = %s" row = bd.consulta(query, (id, )) if row: return json.dumps([row[0]]) else: abort(500)
def get_all_frame_schedules(date): day_type = schedule_day_type(date) query = "SELECT qh.id, qh.tipo_dia, h.hora_onibus AS saida, ADDTIME(h.hora_onibus, SEC_TO_TIME(duracao * 60)) AS chegada , qh.duracao, qh.tamanho_da_viagem, qh.id_rota " \ "FROM tb_quadro_horario_2 AS qh, tb_horario_quadro_horario AS h " \ "WHERE qh.id = h.id_quadro_horario " \ "AND qh.tipo_dia = %s " \ "AND qh.id_rota IN (SELECT DISTINCT id_rota FROM tb_quadro_horario_2 WHERE id_rota != 'TIC-0001') " \ "AND h.indice_viagem = 1 " \ "ORDER BY id_rota, hora_onibus, duracao;" rows = bd.consulta(query, (day_type)) cols = [ "id", "tipo_dia", "saida", "chegada", "duracao", "tamanho_da_viagem", "id_rota" ] routes_schedules = {} for row in rows: route = row[6] if route not in routes_schedules: routes_schedules[route] = [] routes_schedules[route].append(row_to_dict(row, cols)) return routes_schedules
def api_v1_mostrar_usuario(matricula): query = "SELECT * FROM tb_usuario WHERE matricula = %s;" row = bd.consulta(query, (matricula, )) if row: return json.dumps(row) else: abort(404)
def get_all_travels(ranking_date): if ranking_date == "": query = "SELECT * FROM tb_viagem " \ "WHERE data = (SELECT MAX(data) FROM tb_data_rota) and " \ "rota IN (SELECT DISTINCT id_rota FROM tb_quadro_horario_2 WHERE id_rota != 'TIC-0001') " \ "ORDER BY rota, saida;" else: query = "SELECT * FROM tb_viagem " \ "WHERE data = '%s' and " \ "rota IN (SELECT DISTINCT id_rota FROM tb_quadro_horario_2 WHERE id_rota != 'TIC-0001') " \ "ORDER BY rota, saida;" % ranking_date rows = bd.consulta(query) cols = [ "id", "rota", "data", "saida", "chegada", "duracao", "numero_onibus", "operador", "id_bilhetagem" ] date = rows[0][2] routes_travels = {} routes = [] for row in rows: route = row[1] if route not in routes_travels: routes_travels[route] = [] routes.append(route) routes_travels[route].append(row_to_dict(row, cols)) return date, routes, routes_travels
def get_travels(date, bus): query = "SELECT * FROM tb_viagem WHERE data = %s and rota = %s ORDER BY saida;" rows = bd.consulta(query, (date, bus)) col = [ "id", "rota", "data", "saida", "chegada", "duracao", "numero_onibus", "operador", "id_bilhetagem" ] return montaListaJson(rows, col)
def get_days_travels_between_days(date1, date2, bus): query = "SELECT * FROM tb_viagem WHERE data >= %s and data < %s and rota = %s ORDER BY saida;" rows = bd.consulta(query, (date1, date2, bus)) col = [ "id", "rota", "data", "saida", "chegada", "duracao", "numero_onibus", "operador", "id_bilhetagem" ] return build_days_list(rows, col)
def get_travels_analysis(date, bus): query = "SELECT v.rota,v.data,v.saida,v.chegada,v.duracao,v.numero_onibus,v.operador,e.nome,l.nome FROM tb_viagem v, tb_onibus o, tb_empresa e, tb_rota r,tb_linha l "\ " WHERE v.data = %s and v.rota = %s and v.numero_onibus=o.numero and o.empresa=e.id and v.rota=r.rota and r.linha=l.id ORDER BY saida;" rows = bd.consulta(query, (date, bus)) col = [ "rota", "data", "saida", "chegada", "duracao", "numero_onibus", "operador", "nome_empresa", "nome_linha" ] return montaListaJson(rows, col)
def get_travels_and_ticketing(date, bus): query = "SELECT v.rota,v.data,v.saida,v.chegada,v.duracao,v.numero_onibus,v.operador,b.passageiros,b.estudantes,b.gratuitos,b.equivalencia "\ "FROM tb_viagem v, tb_bilhetagem b WHERE data = %s and rota = %s and v.id_bilhetagem = b.id ORDER BY saida;" rows = bd.consulta(query, (date, bus)) col = [ "rota", "data", "saida", "chegada", "duracao", "numero_onibus", "operador", "passageiros", "estudantes", "gratuitos", "equivalencia" ] return montaListaJson(rows, col)
def login(matricula, senha): query = "SELECT * FROM tb_usuario WHERE matricula=%s AND senha=%s" row = bd.consulta(query, (matricula, senha)) if len(row) > 0: user = row[0] if user[5] == 1: session['matricula'] = user[1] session['nome'] = user[2] session['funcao'] = user[4]
def get_time_stocking_data(start_date, end_date): query = "SELECT SUM(b.passageiros),SUM(b.estudantes),SUM(b.gratuitos),SUM(b.equivalencia),v.data,e.nome FROM tb_bilhetagem b, tb_viagem v, tb_onibus o, tb_empresa e WHERE b.id = v.id_bilhetagem AND v.numero_onibus = o.numero AND o.empresa = e.id AND e.nome != 'INDEFINIDO' AND v.data BETWEEN %s AND %s GROUP BY v.data, e.nome;" rows = bd.consulta(query, (start_date, end_date)) col = [ "passageiros", "estudantes", "gratuitos", "equivalencia", "data", "nome_empresa" ] return montaListaJson(rows, col)
def get_frame_schedules(date, bus): day_type = schedule_day_type(date) query = "SELECT qh.id, qh.tipo_dia, h.hora_onibus AS saida, ADDTIME(h.hora_onibus, SEC_TO_TIME(duracao * 60)) AS chegada , qh.duracao, qh.tamanho_da_viagem, qh.id_rota " \ "FROM tb_quadro_horario_2 AS qh, tb_horario_quadro_horario AS h " \ "WHERE qh.id = h.id_quadro_horario " \ "AND qh.tipo_dia = %s " \ "AND qh.id_rota = %s " \ "AND h.indice_viagem = 1 " \ "ORDER BY hora_onibus, duracao;" rows = bd.consulta(query, (day_type, bus)) col = [ "id", "tipo_dia", "saida", "chegada", "duracao", "tamanho_da_viagem", "id_rota" ] return montaListaJson(rows, col)
def api_v1_get_numero_usuarios(): query = "SELECT COUNT(*) FROM tb_usuario;" row = bd.consulta(query) return str(row[0][0])
def route_isEmpty(data, bus): query = "SELECT COUNT(*) FROM tb_viagem WHERE data < %s and rota = %s ORDER BY saida;" rows = bd.consulta(query, (data, bus)) return function_cors(montaJson({"isEmpty": rows[0][0] == 0}))
def get_all_routes(): query = "SELECT rota FROM tb_rota;" rows = bd.consulta(query) col = ["rota"] return montaListaJson(rows, col)
def api_v1_usuarios(): query = "SELECT * FROM tb_usuario;" row = bd.consulta(query) return json.dumps(row)
def api_v1_pontos_de_fiscalizacao(): query = "SELECT * FROM tb_ponto_de_fiscalizacao;" row = bd.consulta(query) return json.dumps(row)