Universidade Católica de Brasília
Curso de Tecnólogo em Processamento de Dados Projeto Final I
Volume II – Dicionário de Dados
Loja Virtual de Passagens Rodoviárias Interestaduais
Alunos: Allysson de Oliveira Noronha - 2000/045081 Fernanda da Silva Fialho - 94/3377-5
George Roberto Carvalho de Lacerda - 96/2835-5 Orientador: Profº. Msc. Fernando Silvera Goulart Júnior
Brasília, DF – dezembro/2001
Universidade Católica de Brasília
Curso de Tecnólogo em Processamento de Dados Projeto Final I
Volume II – Dicionário de Dados
Loja Virtual de Passagens Rodoviárias Interestaduais
Alunos: Allysson de Oliveira Noronha - 2000/045081 Fernanda da Silva Fialho - 94/3377-5
George Roberto Carvalho de Lacerda - 96/2835-5 Orientador: Profº. Msc. Fernando Silvera Goulart Júnior
Brasília, DF - dezembro/2001
ÍNDICE
1. Definições ... 5
1.1. Visão Lógica ... 5
Boundary FormBilhete ... 5
Boundary FormCadastroCliente ... 5
Boundary FormConfirmaCadastro ... 5
Boundary FormEscolhePoltrona ... 5
Boundary FormLogin ... 5
Boundary FormPagamento ... 6
Boundary FormPesquisa ... 6
Boundary FormResultadoPesquisa ... 6
Control CtrUsuario ... 6
Control ctrInformacoes ... 7
Control ctrPagamento ... 7
Control ctrPoltrona ... 7
Entity Bilhete ... 7
Entity Categoria Onibus ... 8
Entity Cidade ... 8
Entity Cliente ... 9
Entity Empresa... 9
Entity Horario ... 10
Entity Itinerario... 10
Entity Onibus ... 11
Entity Pagamento ... 11
Entity UF ... 12
1.2. Visão de negócio ... 12
Business Entity Estado ... 12
Business Entity HorariosViagem... 13
Business Entity ItemCadastro ... 13
Business Entity Linha ... 13
Business Entity Município... 14
Business OnibusEmpresa... 14
Business Entity Passagem... 15
1.3. Atores... 15
Atores que interagem com os Use Case de Negócios... 15
Atores que interagem com os Use Case de Requisitos ... 16
2.Esquema de Dados... 17
3. Script do Banco de Dados... 22
3. Listagem dos Programas ... 26
Conexão.inc ... 26
CtrlInformacoes.inc ... 27
CtrlUsuario.inc ... 37
CtrlBilhete.inc... 39
Ctrl Pagamento.inc ... 43
Ctrl Poltrona.inc... 51
Index.asp ... 60
Resultadopesquisa.asp ... 71
Cadastro.asp ... 73
Formcadastroaction.asp ... 82
FormLogin.asp ... 83
Lembrete.asp... 84
Loginerrado.asp ... 86
Logoff.asp ... 92
Pagamento.asp ... 94
Poltrona.asp ... 96
Bilhete.asp ... 99
Gerabilhete.asp ... 101
Estilo.css ... 107
1. Definições
1.1. Visão Lógica
Boundary FormBilhete
Representa a tela de impressão do bilhete de passagem.
Public Operations:
exibirBilhete () :
Boundary FormCadastroCliente
Representa a tela de cadastro do usuário Public Operations:
inserirDadosPessoais () : confirmar () :
validarCamposInformados () :
Boundary FormConfirmaCadastro
Representa a tela de confirmação do cadastro do cliente.
Public Operations:
apresentarMensagem () :
Boundary FormEscolhePoltrona
É a tela de apresentação das poltronas disponíveis e indisponíveis do ônibus escolhido de referido horário. A classe entity horário sabe qual é o ônibus solicitado.
Public Operations:
exibeResultadoPesquisa () : validaInfoPoltrona () :
Boundary FormLogin
Representa a tela de login do usuário.
Private Attributes:
login : senha :
Public Operations:
informarLogin (Login : , Senha : ) : validaCamposInformados () :
Boundary FormPagamento
Representa o de retorno da validação do pagamento.
Public Operations:
efetuarPagamento () :
Boundary FormPesquisa
Representa a tela inicial do sistema. Nela o cliente pode efetuar a consultar , o login, solicitar o cadastro e recuperar informações de sua compra.
Public Operations:
consultar () :
validaDadosInformados () :
Boundary FormResultadoPesquisa
É a tela de resultado da pesquisa realizada pelo usuário na tela inicial.
Public Operations:
exibirResultados () :
Control CtrUsuario
É a classe de controle que gerencia o cadastro do usuário Public Operations:
cadastrar () : verificaUsuario () : verificaLogin () :
Control ctrInformacoes
É a classe de controle que gerencia a parte da pesquisa do itinerário e data pretendida da viagem.
Public Operations:
solicitarPesquisa () : retornaPesquisa () :
Control ctrPagamento
É a classe de controle que gerencia o pagamento.
Public Operations:
Validar Pagamento () : solicitaImpressao () : logado ():
exibeResultados ():
Control ctrPoltrona
É a classe de controle que gerencia a parte da pesquisa da poltrona e da definição da poltrona desejada pelo usuário que informará ao bilhete.
Public Operations:
pesquisaPoltrona () :
calcularPoltronasDisponiveis () :
Entity Bilhete
É a classe onde as informações pertinentes aos dados informados pelos clientes estão armazenadas para montagem do bilhete.
Responsabilidade: receber os dados passados pelo cliente que geram o bilhete após a validação do pagamento.
Private Attributes:
idBilhete : Integer dtEmissao : Date numPoltrona : Integer idPagamento : Integer
idDataHorario : Integer idUsuario : Integer
Public Operations:
imprimirBilhete (idBilhete : ) : pesquisarBilhete (idDataHorario : ) :
Entity Categoria Onibus
É a classe onde as informações persistentes sobre os tipos de serviços (classe) do ônibus e a sua quantidade de poltronas estão armazenadas.
Responsabilidades: identificar o serviço que o ônibus oferece e sua quantidade de poltronas.
Private Attributes:
idCatOnibus : Integer Tipo_Onibus : String(20) Qtd_Poltrona : Long
Public Operations:
pesquisaCatOnibus (idCatOnibus : ) :
Entity Cidade
É a classe onde as informações persistentes as cidades estão armazenadas.
Responsabilidades: fornece a localização de um cliente quando se cadastrar, informa o cep da cidade e fornece as cidades para o itinerário.
Private Attributes:
idCidade : Integer nomeCidade : String(30) cep : Long(10)
idUF : Integer
Public Operations:
pesquisaCidade (cidadeO : , cidadeD : ) :
Entity Cliente
É a classe onde as informações persistentes aos usuários cadastrados estão armazenadas.
Responsabilidades: mantém o cadastro dos clientes no banco de dados, verifica a existência do cliente e permite a conexão do cliente no sistema.
Private Attributes:
idUsuario : Integer nomeUsuario : String(50) numCPF : String(12) numIdentidade : String(30) dataNascimento : Date endereco : String(50) loginUsuario : String(30) senha : String(10) fraseSenha : String(30) eMail : String(50) idCidade : Integer
Public Operations:
verificaUsuario (login : ) : cadastrar (cliente : ) : verificarLogin (login : ) :
Entity Empresa
É a classe onde as informações persistentes sobre as empresas transportadoras estão armazenadas.
Responsabilidades: mantém a relação com os nomes das empresas transportadores dos ônibus.
Private Attributes:
idEmpresa : Integer nomeEmpresa : String(50) numCNPJ : String(15)
eMail : String(50)
Public Operations:
pesquisaEmpresa (idEmpresa : ) :
Entity Horario
É a classe onde as informações persistentes aos horários de viagem de cada ônibus estão armazenadas.
Responsabilidades: receber os dados referentes à classe ônibus e informar a classe bilhete.
Private Attributes:
idDataHorario : Integer dtChegada : Date hrChegada : Tiime dtPartida : Date hrPartida : Time tempoViagem : Time idOnibus : Integer
Public Operations:
pesquisaHorario (idOnibus : ) :
Entity Itinerario
É a classe onde as informações persistentes sobre as linhas origem/destino, prefixo da linha, tempo de viagem, distanciam do percurso estão armazenadas.
Responsabilidades: buscar as cidades de origem e destino para consulta, gerenciar o prefixo da linha.
Private Attributes:
idItinerario : Integer distPercurso : Long prefLinha : String(20) cidadeO : Integer
cidadeD : Integer
Public Operations:
pesquisaItinerario (cidadeO : , cidadeD : ) :
Entity Onibus
É a classe onde as informações persistentes sobre os tipos de serviços (classe) do ônibus e a sua quantidade de poltronas estão armazenadas.
Responsabilidades: identificar o serviço que o ônibus oferece e sua quantidade de poltronas;
Private Attributes:
idOnibus : Integer tarifaPassagem : Long tarifaSeguro : Long idEmpresa : Integer idCatOnibus : Integer idItinerario : Integer
Public Operations:
pesquisaOnibus (idItinerario : ) :
Entity Pagamento
É a classe que contém as informações persistentes ao pagamento da passagem.
Responsabilidades: validar o pagamento da passagem, e indicar o valor total da passagem.
Private Attributes:
idPagamento : Integer valorTotalPassagem : Long
Public Operations:
validaPagamento (idPagamento : ) :
Entity UF
É a classe onde as informações persistentes sobre os Estados são armazenadas.
Responsabilidades: fornece a unidade de federação de cada munícipio.
Faz a classe cidade existir.
Private Attributes:
idUF : Integer siglaUF : String(2) nomeUF : String(30)
Public Operations:
pesquisaUF (idUF : ) :
1.2. Visão de negócio
Business Entity Estado
É a classe onde as informações persistentes sobre os Estados são armazenadas.
Responsabilidades: fornece a unidade de federação de cada município.
Faz a classe município existir.
Private Attributes:
codigoEstado : Integer siglaEstado : String nomeEstado : String
Public Operations:
pesquisarUF () : Boolean
Business Entity HorariosViagem
É a classe onde as informações persistentes aos horários de viagem de cada ônibus estão armazenadas.
Responsabilidades: receber os dados referentes a classe ônibus e informa para a classe bilhete.
Private Attributes:
codigoDtHorario : Integer dataDesembarque : Date horaDesembarque : Tiime dataEmbarque : Date horaEmbarque : Time tempoMedioViagem : Time
Public Operations:
pesquisaHorarioViagem () :
Business Entity ItemCadastro
É a classe onde a informação persistente ao login e a senha do funcionário estão armazenadas.
Responsabilidades: efetuar o login do funcionário no sistema.
Private Attributes:
nomeFunc : String loginFunc : String senhaFunc : String
Public Operations:
efetuarLogin () :
Business Entity Linha
É a classe onde as informações persistentes sobre as linhas origem/destino, prefixo da linha e a distancia do percurso estão armazenadas.
Responsabilidades: buscar as cidades de origem e destino para consulta, gerenciar o prefixo da linha.
Private Attributes:
codigoLinha : Integer percurso : Long prefixoLinha : String cidOrigem : Integer cidDestino : Integer
Public Operations:
pesquisaLinha () : Boolean
Business Entity Município
É a classe onde as informações persistentes aos municípios estão armazenadas.
Responsabilidades: fornece as cidades origem e destino.
Private Attributes:
codigoMunicipio : Integer nomeMunicipio : String
Public Operations:
pesquisarMunicipio () :
Business OnibusEmpresa
É a classe onde as informações persistentes ao ônibus da empresa e suas características como: categorias, quantidade de poltronas estão armazenadas. Para cada tipo de ônibus existe um valor de passagem conforme a linha.
Responsabilidades: fornecer as características do ônibus.
Private Attributes:
codigoOnibusEmp : Integer tipoOnibusEmp : String qtdePoltronaEmp : Long valorPassagem : Long valorSeguro : Long
Public Operations:
pesquisarOnibusEmp () : pesquisarTipoOnibusEmp () : pesquisarQtdePoltronasEmp () :
Business Entity Passagem
É a classe onde as informações pertinentes aos dados informados pelos clientes estão armazenadas para montagem do bilhete de passagem.
Responsabilidade: receber os dados passados pelo cliente que geram o bilhete de passagem após o pagamento.
Private Attributes:
codigoPassagem : Integer dataEmissaoPassagem : Date numeroPoltronaPassagem : Integer
Public Operations:
criarPassagem () : imprimirPassagem () :
1.3. Atores
Atores que interagem com os Use Case de Negócios
Cliente: representa as pessoas que desejam consultar ou comprar passagens.
Funcionário: representa pessoas que trabalham na empresa.
Ø Atendente: representa as pessoas que realiza pesquisa e atende o cliente;
Ø Pessoal de Suporte: representa as pessoas que trabalham internamente na empresa;
Ø Administrador: representa a pessoa que é responsável (gerência).
Atores que interagem com os Use Case de Requisitos
Cliente: representam todas as pessoas que acessem o sistema via internet.
2.Esquema de Dados
Tabela Rod_Usuario:
Esta tabela contém as informações sobre os usuários cadastrados no sistema:
Ø idUsuario: campo numérico que associa a cada usuário do sistema um número único;
Ø idCidade: campo numérico que associa a cada cidade um número único. Esse campo funciona como uma chave estrangeira;
Ø nomeUsuario: campo de texto que irá armazenar o nome de cada usuário;
Ø numCPF: campo de texto que irá armazenar o nome de cada
usuário;
Ø numIdentidade: campo de texto que irá armazenar o número da identidade de cada usuário;
Ø dataNascimento: campo em formato de data que armazena a data de nascimento de cada usuário;
Ø endereco: campo de texto que irá armazenar o endereço de cada usuário;
Ø Login_usuário: campo de texto que irá armazenar o login que será utilizado pelo usuário para acessar o sistema;
Ø Senha: campo de texto que irá armazenar a senha do usuário;
Ø Frase_senha: campo de texto que irá armazenar uma frase que servirá de auxílio caso o usuário esqueça a senha;
Ø E-mail: campo de texto que irá armazenar o e-mail do usuário;
Tabela Rod_Cidade
Esta tabela contém as informações sobre as cidades cadastradas no sistema:
Ø idCidade: campo numérico que associa a cada cidade um número único;
Ø idUF: campo numérico que associa a cada UF um número único.
Esse campo funciona como uma chave estrangeira;
Ø nomeCidade: campo de texto que irá que irá armazenar o nome de cada cidade;
Ø cep: campo de texto que irá armazenar o cep de cada cidade;
Tabela Rod_UF
Esta tabela contém as informações sobre as cidades cadastradas no sistema:
Ø idUF: campo numérico que associa a cada UF um número único;
Ø nomeUF: campo de texto que irá armazenar o nome de cada UF;
Ø siglaUF: campo de texto que irá armazenar a sigla de cada UF;
Tabela Rod_Bilhete
Esta tabela contém as seguintes informações sobre os bilhetes que podem ser ou foram emitidos pelo sistema:
Ø idBilhete: campo numérico que associa a cada bilhete um número único;
Ø idUsuario: campo numérico que associa a cada usuário um número único. Este campo funciona como uma chave estrangeira;
Ø idPagamento: campo numérico que associa a cada pagamento um número único. Este campo funciona como uma chave estrangeira;
Ø idDataHorario: campo numérico que associa a cada horário um número único. Este campo funciona como uma chave estrangeira;
Ø dataEmissao: campo em formato de data que irá identificar a data de emissão do bilhete;
Ø numPoltrona: campo numérico que irá identificar o número da poltrona adquirida.
Tabela Rod_Itinerário
Esta tabela contém as informações sobre os itinerários cadastrados no sistema:
Ø idItinerario: campo numérico que associa a cada itinerário um número único;
Ø idCidadeO: campo numérico que associa a cada cidade um
número único. Sua existência na tabela é dada pela necessidade de identificar a cidade de origem de cada itinerário. Este campo funciona como uma chave estrangeira;
Ø idCidadeD: campo numérico que associa a cada cidade um
número único. Sua existência na tabela é dada pela necessidade de identificar a cidade de destino de cada itinerário. Este campo funciona como uma chave estrangeira;
Ø distanciaPercurso: campo numérico que identifica a distância entre as cidades de origem e destino para cada itinerário;
Ø prefixoLinha: campo de texto que irá armazenar o prefixo da linha à qual o itinerário está associado.
Tabela Rod_CategOnibus
Esta tabela contém as informações sobre as categorias de ônibus cadastrados no sistema:
Ø idCatOnibus: campo numérico que associa a cada categoria de ônibus um número único;
Ø tipoOnibus: campo de texto que irá armazenar os tipo de ônibus existentes;
Ø qtdePoltronas: campo numérico que armazena a quantidade de poltronas existente em cada ônibus, de acordo com o seu tipo.
Tabela Rod_ônibus
Esta tabela contém as informações sobre os ônibus cadastrados no sistema:
Ø idOnibus: campo numérico que associa a cada UF um número único;
Ø idItinerario: campo numérico que associa a cada itinerário um número único. Este campo funciona como uma chave estrangeira;
Ø idCatOnibus: campo numérico que associa a cada categoria de ônibus um número único. Este campo funciona como uma chave estrangeira;
Ø idEmpresa: campo numérico que associa a cada empresa um
número único. Este campo funciona como uma chave estrangeira;
Ø tarPassagem: campo em formato de moeda que irá especificar o valor da tarifa de cada passagem, segundo o tipo de cada ônibus;
Ø tarSeguro: campo em formato de moeda que irá especificar o valor da tarifa de seguro associada a cada passagem.
Tabela Rod_Pagamento
Esta tabela contém as informações sobre cada pagamento cadastrado no sistema:
Ø idPagamento: campo numérico que associa a cada pagamento um número único;
Ø valoTotalPassagem: campo em formato de moeda que armazenará o valor total de cada passagem;
Ø validaPagemento: campo em formato numérico que servirá como um indicador da efetivação ou não de um pagamento.
Tabela Rod_Horário
Esta tabela contém as informações sobre os horários de viagens cadastrados no sistema:
Ø idDataHorario: campo numérico que associa a cada horário um número único;
Ø idOnibus: campo numérico que associa a cada UF um número único. Este campo funciona como uma chave estrangeira;
Ø dtChegada: campo em formato de data que irá armazenar a data prevista para o desembarque na cidade destino de determinado itinerário;
Ø dtPartida: campo em formato de data que irá armazenar a data de partida de uma determinada viagem em uma cidade de origem;
Ø hrPartida: campo em formato de hora que irá armazenar a hora prevista para o embarque de determinada viagem, a partir da cidade de origem.
Ø hrChegada: campo em formato de hora que irá armazenar a hora prevista para o desembarque na cidade destino de determinado itinerário;
Ø tempoviagem: campo de texto que armazena o tempo de viagem estimado para percorrer a distância entre as cidades de origem e destino especificado para cada itinerário.
Tabela Rod_Empresa
Esta tabela contém as seguintes informações sobre as cidades cadastradas no sistema:
Ø idEmpresa: campo numérico que associa a cada UF um número único;
Ø nomeEmpresa: campo de texto que irá armazenar o nome de cada empresa cadastrada no sistema;
Ø endEmpresa: campo de texto que irá armazenar o endereço para contato de cada empresa cadastrada no sistema;
Ø numCNPJ: campo de texto que irá armazenar o CNPJ de cada empresa cadastrada no sistema;
Ø e-mail: campo de texto que irá armazenar o e-mail de cada empresa cadastrada no sistema.
3. Script do Banco de Dados
CREATE TABLE T_UF(
idUF VARCHAR, siglaUF VARCHAR, nomeUF VARCHAR,
CidadeId NUMBER(5) REFERENCES T_Cidade(CidadeId), UFId NUMBER(5),
PRIMARY KEY(UFId)) go
CREATE TABLE T_Cidade(
idCidade VARCHAR, nomeCidade VARCHAR, cep VARCHAR,
idUF VARCHAR,
UFId NUMBER(5) REFERENCES T_UF(UFId), CidadeId NUMBER(5),
PRIMARY KEY(CidadeId)) go
CREATE TABLE T_Pagamento(
idPagamento VARCHAR, valorTotalPassagem VARCHAR,
BilheteId NUMBER(5) REFERENCES T_Bilhete(BilheteId), PagamentoId NUMBER(5),
PRIMARY KEY(PagamentoId)) go
CREATE TABLE T_Cliente(
idUsuario VARCHAR, nomeUsuario VARCHAR, numCPF VARCHAR,
numIdentidade VARCHAR, dataNascimento VARCHAR, endereco VARCHAR, loginUsuario VARCHAR, senha VARCHAR, fraseSenha VARCHAR, eMail VARCHAR, idCidade VARCHAR,
Possui NUMBER(5) REFERENCES T_Bilhete(BilheteId), ClienteId NUMBER(5),
PRIMARY KEY(ClienteId)) go
CREATE INDEX Cliente_1 ON T_Cliente(idUsuario,name,name) go
CREATE TABLE T_Bilhete(
idBilhete VARCHAR, dtEmissao VARCHAR, numPoltrona VARCHAR, idPagameto VARCHAR, idDataHorario VARCHAR, idUsuario VARCHAR,
Tem NUMBER(5) REFERENCES T_Horario(HorarioId), BilheteId NUMBER(5),
PRIMARY KEY(BilheteId)) go
CREATE TABLE T_Itinerario(
idItinerario VARCHAR, distPercurso VARCHAR, prefLinha VARCHAR, cidadeO VARCHAR, cidadeD VARCHAR,
Possui NUMBER(5) REFERENCES T_Cidade(CidadeId), Possui NUMBER(5) REFERENCES T_Onibus(OnibusId), ItinerarioId NUMBER(5),
PRIMARY KEY(ItinerarioId)) go
CREATE TABLE T_Horario(
idDataHorario VARCHAR, dtChegada VARCHAR, hrChegada VARCHAR, dtPartida VARCHAR, hrPartida VARCHAR, tempoViagem VARCHAR, idOnibus VARCHAR, HorarioId NUMBER(5), PRIMARY KEY(HorarioId)) go
CREATE TABLE T_Empresa(
idEmpresa VARCHAR, nomeEmpresa VARCHAR, numCNPJ VARCHAR, eMail VARCHAR,
Possui NUMBER(5) REFERENCES T_Onibus(OnibusId), EmpresaId NUMBER(5),
PRIMARY KEY(EmpresaId)) go
CREATE TABLE T_Onibus(
idOnibus VARCHAR, tarifaPassagem VARCHAR, tarifaSeguro VARCHAR, idEmpresa VARCHAR, idCatOnibus VARCHAR,
idItinerario VARCHAR,
Categoria OnibusId NUMBER(5) REFERENCES T_Categoria Onibus(Categoria OnibusId),
Possui NUMBER(5) REFERENCES T_Horario(HorarioId), OnibusId NUMBER(5),
PRIMARY KEY(OnibusId)) go
CREATE TABLE T_Categoria Onibus(
idCatOnibus VARCHAR, Tipo_Onibus VARCHAR, Qtd_Poltrona VARCHAR,
OnibusId NUMBER(5) REFERENCES T_Onibus(OnibusId), Categoria OnibusId NUMBER(5),
PRIMARY KEY(Categoria OnibusId)) go
3. Listagem dos Programas
Conexão.inc
<%
'--- 'Declaração de variaveis e constantes para conexão do Banco de Dados.
'String de caminho do banco: strbdRodonet.
'objeto com a instância da classe ADODB.Connection: objConexao 'Criação do objeto ADO. O método Create Object é utilizado para criar a ' variável objConexao como um objeto Connection.
'objeto de RecordSet: objRecordSet (Controle de registros das tabelas do BD).
'Criação do objeto RecordSet. O método CreateObject é utilizado para criar 'as variáveis Rs como objetos RecordSet.
'O método Open é usado para abrir a conexão após ter sido criado.
'--- Dim objConexao, strBdrodonet, objRecordSet
strBdrodonet = "DBQ=" & "c:/bco/BD_Rodonet_2000.mdb"
set objConexao = Server.CreateObject("adodb.Connection")
objConexao.Open = "DRIVER={Microsoft Access Driver (*.mdb)};" & strBdrodonet
%>
<!--Montar titulo do topo da página-->
<%
Sub fMontarTitulo(caminho)
%>
<LINK rel="stylesheet" type="text/css" href="<%=caminho%>css/estilo.css">
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="700" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td>
<div align="center"> <a href="<%=caminho%>index.asp">
<img src="images/Rod_logo.gif" alt="Página Inicial" width="700" height="60"
border="0"></a>
</div>
</td>
</tr>
</table>
<%
End Sub
%>
<!---FIM--->
CtrlInformacoes.inc
<!--Controladora de Informações da Consulta de Viagem -->
<%
'Declarando as variáveis utilizadas nos métodos Dim vdestino, vorigem, vDataViagem
Dim vidItinerario, vCidadeOrigem, vCidadeDestino, vDistancia, vPrefixo Dim vNomeEmpresa, vidEmpresa
Dim vtipoOnibus, vidCatOnibus, vidOnibus Dim vFormatData, cont
set objRsHorario = Server.CreateObject("ADODB.RecordSet") 'Recebe as variáveis passadas na consulta do itinerario
vdestino = Request.Form("slcdestino") vorigem = Request.Form("slcorigem")
vDataViagem = Request.Form("txtDataViagem") 'Response.write(vDataViagem)
'formatação da data recebida para dd/mm/aaaa Call FormatDataInverte(vDataViagem)
'Response.write(vDataViagem)
'Recupera o carrinho de compras do cliente após o login session("Origem") = vorigem
session("Destino") = vdestino
%>
<%
'chamar os métodos
Call PesquisaItinerario(vorigem,vdestino) 'chama o método de itinerario
Call PesquisaCidade(vorigem,vdestino) 'chama o método da consulta de destino
if not vidItinerario="" then 'condição do itinerario <> 0 Call PesquisaOnibus(vidItinerario)
else
%>
<br>
<table class="tabConsulta" align="center">
<tr>
<td align="center">
<font color="#996600" size="2">
<b>NÃO EXISTEM ÔNIBUS PARA ESSE ITINERÁRIO OU DATA!</b></font>
</td>
</tr>
</table>
<br>
<%
end if
'Função de formatação da data para fazer consulta function FormatDataInverte(data)
If month(data) > 9 Then
vFormatData= month(data) else
vFormatData= "0" & month(data) end if
If day(data) > 9 Then
vFormatData= vFormatData & "/" & day(data) & "/"&
year(data)
else
vFormatData= vFormatData & "/" & "0" & day(data) & "/"&
year(data)
end if end function
'Data
function FormatData (data)
FormatData = right( "0" &day(data),2 ) & "/" & right("0"&month(data),2) &
"/"& year ( data ) end function
'Função de PesquisaItinerário
function PesquisaItinerario(vorigem,vdestino) Dim sql
sql = "SELECT Rod_Itinerario.idItinerario, Rod_Itinerario.distanciaPercurso, Rod_Itinerario.prefixolinha "
sql = sql & " FROM Rod_Itinerario WHERE Rod_Itinerario.idCidadeO =" &
vorigem & " AND Rod_Itinerario.idCidadeD = " & vdestino set objRs = objConexao.Execute(sql)
if not objRS.EOF then
vidItinerario = objRs(0) vDistancia = objRs(1) vPrefixo = objRs(2)
end if end function
'Função de PesquisaCidade
function PesquisaCidade(vorigem,vdestino) Dim sql
set objRs = Server.CreateObject("ADODB.RecordSet") set objRs2 = Server.CreateObject("ADODB.RecordSet")
sql = "select nomeCidade as Origem from rod_cidade WHERE idCidade =" &
vorigem
objRs = objconexao.Execute(sql)
sql = "select nomeCidade as Destino from rod_cidade WHERE idCidade =" &
vdestino
objRs2 = objconexao.Execute(sql)
vCidadeOrigem = objRs(0) ' recupera o idcidadeO que é único vCidadeDestino = objRs2(0) ' recupera o idcidadeD que é único end function
'Função de PesquisaOnibus
function PesquisaOnibus(vidItinerario) Dim sql
sql = "select idOnibus, idCatOnibus, idEmpresa, tarPassagem, tarSeguro from rod_onibus "
sql = sql & "WHERE idItinerario =" & vidItinerario set objRsOnibus = objconexao.Execute(sql)
%>
<%
If not objRsOnibus.EOF then
%>
<!-- Exibe as informações de consulta fornecidas pelo usuário---->
<form action="poltrona.asp" name="frmInfo" method="post">
<input type="hidden" name="vCidadeOrigem"
value="<%=vCidadeOrigem%>">
<input type="hidden" name="vCidadeDestino"
value="<%=vCidadeDestino%>">
<input type="hidden" name="vPrefixo" value="<%=vPrefixo%>">
<input type="hidden" name="vDataViagem"
value="<%=vDataViagem%>">
<table class="tabResultado" align="center" width="98%">
<tr bgcolor="#CDB69C">
<td>
<div align="left"> Embarque em: <br> <%=vCidadeOrigem%> </div>
</td>
<td>
<div align="left"> Desembarque em: <br> <%=vCidadeDestino%> </div>
</td>
<td>
<div align="left"> Prefixo da Linha: <br><%=vPrefixo%> </div>
</td>
<td>
<div align="left"> Data da Partida: <br><%=vDataViagem%> </div>
</td>
</tr>
</table>
<br>
<!----exibe o resultado da consulta--->
<div align="center">
<font color="#996600" size="2">
<b>Para escolher poltrona, defina uma opção de viagem.</b></font></div><br>
<table class="tabResultado" width="99%"align="center">
<tr bgcolor="#B3B300">
<td>
<div align="center"><b>Empresa</b></div>
</td>
<td>
<div align="center"><b>Classe</b></div>
</td>
<td>
<div align="center"><b>Partida</b></div>
</td>
<td>
<div align="center"><b>Tempo de Viagem</b></div>
</td>
<td>
<div align="center"><b>Data da Chegada</b></div>
</td>
<td>
<div align="center"><b>Hora</b></div>
</td>
<td>
<div align="center"><b>Distância</b></div>
</td>
<td>
<div align="center"><b>Tarifa</b></div>
</td>
<td>
<div align="center"><b>Seguro</b></div>
</td>
<td>
<div align="center"><b>Comprar</b></div>
</td>
</tr>
<% cont=1
Do While not objRsOnibus.EOF
Call PesquisaEmpresa(objRsOnibus(2)) Call PesquisaCatOnibus(objRsOnibus(1))
%>
<% Call PesquisaHorario(objRsOnibus(0),vFormatData) If not objRsHorario.EOF then
DO While not objRsHorario.EOF
%>
<tr bgcolor="#EBEBC2">
<td >
<div align="center"><b><%=vNomeEmpresa%></b></div>
</td>
<td>
<div align="center"><b><%=vtipoOnibus%></b></div>
</td>
<td>
<div align="center"><b><%=left(objRsHorario("HoraPartida"),5)%></b></div>
</td>
<td>
<div align="center"><b><%=left(objRsHorario("Viagem"),5)%></b></div>
</td>
<td>
<div
align="center"><b><%=FormatData(objRsHorario("DataChegada"))%></b></div>
</td>
<td>
<div
align="center"><b><%=left(objRsHorario("HoraChegada"),5)%></b></div>
</td>
<td>
<div align="center"><b><%=vDistancia%></b></div>
</td>
<td>
<div align="right"><b><%=formatcurrency(objRsOnibus(3),2)%></b> </div>
</td>
<td>
<div align="right"><b><%=formatcurrency(objRsOnibus(4),2)%></b></div>
</td>
<td>
<div align="center">
<input type="radio" name="rad_compra"
value="<%=cont%>" language="javascript" onClick="Envia(this.value);"></div>
</td>
</tr>
<input type="hidden"
name="vNomeEmpresa<%=cont%>" value="<%=vNomeEmpresa%>">
<input type="hidden"
name="vtipoOnibus<%=cont%>" value="<%=vtipoOnibus%>">
<input type="hidden"
name="vHoraPartida<%=cont%>"
value="<%=left(objRsHorario("HoraPartida"),5)%>">
<input type="hidden"
name="vTarifa<%=cont%>" value="<%=formatcurrency(objRsOnibus(3),2)%>">
<input type="hidden"
name="vidDataHorario<%=cont%>"
value="<%=objRsHorario("idDataHorario")%>">
<input type="hidden"
name="vidCatOnibus<%=cont%>" value="<%=objRsOnibus(1)%>">
<input type="hidden"
name="vViagem<%=cont%>" value="<%=left(objRsHorario("Viagem"),5)%>">
<input type="hidden"
name="vDataChegada<%=cont%>"
value="<%=FormatData(objRsHorario("DataChegada"))%>">
<input type="hidden"
name="vHoraChegada<%=cont%>"
value="<%=left(objRsHorario("HoraChegada"),5)%>">
<input type="hidden"
name="vDistancia<%=cont%>" value="<%=vDistancia%>">
<input type="hidden"
name="vtarPassagem<%=cont%>"
value="<%=formatcurrency(objRsOnibus(3),2)%>">
<input type="hidden"
name="vtarSeguro<%=cont%>"
value="<%=formatcurrency(objRsOnibus(4),2)%>">
<% objRsHorario.MoveNext
cont=cont+1 Loop
End if
objRsOnibus.MoveNext Loop%>
</form>
</table>
<script language="JavaScript">
function Envia(c) {
var vEmp="vNomeEmpresa" + c var vTip="vtipoOnibus" + c var vHoraP="vHoraPartida" + c var vTar="vTarifa" + c
var vidDtHora="vidDataHorario" + c var vidCat="vidCatOnibus" + c var vViag="vViagem" + c var vDtCh="vDataChegada" + c var vHrCh="vHoraChegada" + c var vDst="vDistancia" + c
var vtarP="vtarPassagem" + c var vtarS="vtarSeguro" + c
var vCidO=document.frmInfo["vCidadeOrigem"].value var vCidD=document.frmInfo["vCidadeDestino"].value var vPre=document.frmInfo["vPrefixo"].value
var vDtViag=document.frmInfo["vDataViagem"].value
vEmp=document.frmInfo[vEmp].value vTip=document.frmInfo[vTip].value vHoraP=document.frmInfo[vHoraP].value vTar=document.frmInfo[vTar].value
vidDtHora=document.frmInfo[vidDtHora].value vidCat=document.frmInfo[vidCat].value
vViag=document.frmInfo[vViag].value vDtCh=document.frmInfo[vDtCh].value vHrCh=document.frmInfo[vHrCh].value vDst=document.frmInfo[vDst].value
vtarP=document.frmInfo[vtarP].value vtarS=document.frmInfo[vtarS].value
window.location.href="poltrona.asp?vNomeEmpresa="+vEmp+"&vtipoOnibu s="+vTip+"&vHoraPartida="+vHoraP+"&vTarifa="+vTar+"&vidDataHorario="+vid DtHora+"&vidCatOnibus="+vidCat+"&vCidadeOrigem="+vCidO+"&vCidadeDestin o="+vCidD+"&vPrefixo="+vPre+"&vDataViagem="+vDtViag+"&vViagem="+vVia g+"&vDataChegada="+vDtCh+"&vHoraChegada="+vHrCh+"&vDistancia="+vDst+
"&vtarPassagem="+vtarP+"&vtarSeguro="+vtarS;
}
</script>
<%
else
%>
<br>
<table class="tabConsulta" align="center">
<tr>
<td align="center"> <font color="#996600" size="2"><b>NÃO EXISTEM ÔNIBUS PARA
ESSE ITINERÁRIO OU DATA!</b></font> </td>
</tr>
</table>
<br>
<%
end if end function
'Função de PesquisaEmpresa
function PesquisaEmpresa(vidEmpresa) Dim sql
set objRs = Server.CreateObject("ADODB.RecordSet")
sql = "select nomeEmpresa as Empresa from Rod_Empresa WHERE idEmpresa =" & vidEmpresa
objRs = objconexao.Execute(sql)
vNomeEmpresa = objRs(0) ' recupera o cidade que é único end function
'Função de PesquisaCategoriaOnibus function PesquisaCatOnibus(vidCatOnibus)
Dim sql
set objRs = Server.CreateObject("ADODB.RecordSet")
sql = "select IdCatOnibus, tipoOnibus as Classe from Rod_CategOnibus WHERE idCatOnibus =" & vidCatOnibus
objRs = objconexao.Execute(sql) vidCatOnibus = objRs(0)
vtipoOnibus = objRs(1) 'recupera o cidade que é único end function
'Função de PesquisaHorario
function PesquisaHorario(vidOnibus,vDataViagem)
Dim sql
sql = "select dtPartida as DataPartida, dtChegada as DataChegada, hrPartida as HoraPartida, hrChegada as HoraChegada, tempoViagem as Viagem, idDataHorario from Rod_Horario "
sql = sql & "WHERE idOnibus =" & vidOnibus & " AND dtPartida = #" &
vDataViagem & "# "
set objRsHorario = objconexao.Execute(sql) end function
%>
CtrlUsuario.inc
<!--Controladora de Informações do Usuario -->
<% Response.Buffer = True %>
<% Session("loginUsuario")= "" %>
<%
'Declarando as variáveis utilizadas nos métodos Dim vLogin, vSenha
Dim vNome,vCPF,vIdentidade,vEndereco,vDatanasc Dim vEstado,vUF,vConfirmaSenha,vFrase,vMail,vCep 'Recebe as variáveis de login informadas pelo usuario vLogin = Request.Form("txtLogin")
vSenha = Request.Form("txtSenha") Verifica = 0
Function verificaLogin Dim sql
sql = "SELECT loginusuario, senha, nomeUsuario FROM rod_usuario WHERE loginusuario='" & vLogin & "'"
verificaLogin = sql
set objRs = objConexao.Execute(verificaLogin) If not objRs.EOF Then
If objRs("Senha") <> vSenha Then
Session("loginUsuario")= "1" 'senha diferente Else
Session("loginUsuario") = "0" 'exite a senha e o login Session("UsuarioLogado") = objRS(2) 'nome do usuario End If
End if
response.redirect "index.asp"
end function
%>
<!--- cadastro de usuário --->
<%
function FormatData (data)
FormatData= right( "0" &day(data),2 ) & "/" & right("0"&month(data),2) &
"/"& year ( data ) end function
'Recebe as variáveis de cadastro informadas pelo usuário vNome = Request.Form("txtNome") vCPF = Request.Form("txtCPF") vIdentidade = Request.Form("txtIdentidade") vEndereco = Request.Form("txtEndereco") vDatanasc = Request.Form("txtDtnasc")
vCidade = Request.Form("slcCidade")
vUF = Request.Form("slcSigla")
vCep = Request.Form("slcCep") vConfirmaSenha = Request.Form("txtConfirma") vFrase = Request.Form("txtFrase") vMail = Request.Form("txtMail")
Function Cadastrar Dim sql
sql = "INSERT INTO rod_usuario
(idCidade,nomeUsuario,numCpf,numIdentidade,endereco,dataNascimento, "
sql = sql & "loginUsuario,senha,fraseSenha,email) VALUES (" &
vCidade & ",'" &vNome& "','" &vCPF& "','" &vIdentidade& "','" &vEndereco& "', "
sql = sql & "'" &vDatanasc& "','" &vLogin& "','" &vSenha& "','"
&vFrase& "','" &vMail& "') "
objConexao.Execute(sql) Response.write(sql)
Session("cadastro") = "1"
response.redirect "index.asp"
end Function
%>
CtrlBilhete.inc
<!--- Controladora Bilhete ---->
<%
'Declarando as variáveis utilizadas nos métodos
Dim vorigem, vdestino, vPrefixo, vDataViagem, vNomeEmpresa, vtipoOnibus, vHoraPartida, vTarifa, vViagem
Dim vDataChegada, vHoraChegada, vDistancia, vidDataHorario, vidUsuario Dim vradSeguro, vtarPassagem, vtarSeguro
Public vValorTotal
Public vMaxPagamento, vpoltrona
'set objRsHorario = Server.CreateObject("ADODB.RecordSet") 'Recebe as variáveis passadas na pagamento da passagem vorigem = Request.Form("vorigem")
vdestino = Request.Form("vdestino") vPrefixo = Request.Form("vPrefixo")
vDataViagem = Request.Form("vDataViagem") vNomeEmpresa = Request.Form("vNomeEmpresa") vtipoOnibus = Request.Form("vtipoOnibus")
vHoraPartida = Request.Form("vHoraPartida") vTarifa = Request.Form("vTarifa")
vViagem = Request.Form("vViagem")
vDataChegada = Request.Form("vDataChegada") vHoraChegada = Request.Form("vHoraChegada") vDistancia = Request.Form("vDistancia")
vtarPassagem = Request.Form("vtarPassagem") vtarSeguro = Request.Form("vtarSeguro") vpoltrona = Request.Form("vPoltrona") vradSeguro = Request.Form("vradSeguro")
vidDataHorario = Request.Form("vidDataHorario") vidUsuario = Session("idUsuario")
'formatação da data recebida para dd/mm/aaaa 'Call FormatDataInverte(vDataViagem)
%>
<%
'chamar os métodos
Call validarCompra(vradSeguro,vtarPassagem,vtarSeguro) 'chama o método de validação da compra
Call cadastraPagamento 'chama o método que insere o pagamento
Call cadastraBilhete 'chama o método que insere as informações na tabela bilhete Call geraBilhete 'chama o método que constroi o bilhete
%>
<%
'Função que verifica o valor da compra, com ou sem seguro function validarCompra(vradSeguro,vtarPassagem,vtarSeguro)
If vradSeguro = "SIM" then
vvalortotal = cdbl(vtarPassagem) + cdbl(vtarSeguro)
else
vvalortotal = vtarPassagem vtarseguro = "---"
end if end function
%>
<%
'Data
'function FormatData (data)
' FormatData = right( "0" &day(data),2 ) & "/" & right("0"&month(data),2) &
"/"& year ( data ) 'end function
'Função que insere o pagamento function cadastraPagamento
Dim sql
set objRsPagamento = Server.CreateObject("ADODB.RecordSet") set objRsPagamento2 = Server.CreateObject("ADODB.RecordSet")
sql = "insert into rod_pagamento
(valorTotalPassagem,validaPagamento) values ('" & formatcurrency(vValorTotal) &
"',1) "
objRsPagamento1 = objconexao.Execute(sql)
sql = "select Max(Rod_Pagamento.idPagamento) AS maxPagamento from Rod_Pagamento "
objRsPagamento2 = objconexao.Execute(sql) vMaxPagamento = objRsPagamento2(0) 'recupera o maior idPagamento da tabela para inserir na tabela rodBilhete
end function
%>
<%
'Função que insere as informações na tabela bilhete function cadastraBilhete
Dim sql,vdatahoje
vdatahoje = date
set objRsBilhete = Server.CreateObject("ADODB.RecordSet") sql = "insert into rod_Bilhete
(idUsuario,idPagamento,idDataHorario,dataEmissao,numPoltrona) "
sql = sql & " values ('" & vidUsuario & "','" & vMaxPagamento & "','" &
vidDataHorario & "', "
sql = sql & " #" & vdatahoje & "#,'" & vpoltrona & "') "
objRsBilhete = objconexao.Execute(sql)
end function
%>
<SCRIPT LANGUAGE=javascript>
<!--Função que abre a página do bilhete!-->
function abreBilhete(){
newwindow = window.open("geraBilhete.asp","Bilhete", "width=650, height=450, toolbar=0,status=0,scrollbars=1,resizable=0").location.href
="./geraBilhete.asp?vbilhete=Gerar+Bilhete&vorigem=<%=vorigem%>&vdestino=<
%=vdestino%>&vPrefixo=<%=vPrefixo%>&vDataViagem=<%=vDataViagem%>&
vNomeEmpresa=<%=vNomeEmpresa%>&vtipoOnibus=<%=vtipoOnibus%>&vHor aPartida=<%=vHoraPartida%>&vViagem=<%=vViagem%>&vDataChegada=<%=v DataChegada%>&vHoraChegada=<%=vHoraChegada%>&vDistancia=<%=vDistanc ia%>&vtarPassagem=<%=vtarPassagem%>&vvalortotal=<%=vvalortotal%>&vtarSe guro=<%=vtarSeguro%>&vpoltrona=<%=vpoltrona%>"
}
</SCRIPT>
<%
'Função que constrói o bilhete Function geraBilhete%>
<div align="center">
<font size="2">Parabéns
<font size="2" color="brown">
<b><%=Session("UsuarioLogado")%></b></font>
, seu pagamento foi realizado com sucesso!!</font><br>
<br>
<input type="button" name="vbilhete" language="javascript"
onclick="abreBilhete()" value="Gerar Bilhete">
<input type="hidden" name="vorigem" value="<%=vorigem%>">
<input type="hidden" name="vdestino" value="<%=vdestino%>">
<input type="hidden" name="vPrefixo" value="<%=vPrefixo%>">
<input type="hidden" name="vDataViagem"
value="<%=vDataViagem%>">
<input type="hidden" name="vNomeEmpresa"
value="<%=vNomeEmpresa%>">
<input type="hidden" name="vtipoOnibus"
value="<%=vtipoOnibus%>">
<input type="hidden" name="vHoraPartida"
value="<%=vHoraPartida%>">
<input type="hidden" name="vViagem" value="<%=vViagem%>">
<input type="hidden" name="vDataChegada"
value="<%=vDataChegada%>">
<input type="hidden" name="vHoraChegada"
value="<%=vHoraChegada%>">
<input type="hidden" name="vDistancia"
value="<%=vDistancia%>">
<input type="hidden" name="vtarPassagem"
value="<%=vtarPassagem%>">
<input type="hidden" name="vvalortotal"
value="<%=vvalortotal%>">
<input type="hidden" name="vtarSeguro"
value="<%=vtarSeguro%>">
<input type="hidden" name="vpoltrona" value="<%=vpoltrona%>">
</div>
<%end function%>
Ctrl Pagamento.inc
<!--Controladora de Pagamento -->
<%
'Declarando as variáveis utilizadas nos métodos
Dim vorigem, vdestino, vPrefixo, vidDataHorario, vDataViagem
Dim vNomeEmpresa, vtipoOnibus, vHoraPartida, vTarifa, vViagem, vDataChegada Dim vHoraChegada, vDistancia, vtarPassagem, vtarSeguro, vpoltrona
'set objRsHorario = Server.CreateObject("ADODB.RecordSet") 'Recebe as variáveis passadas na consulta da poltrona
'vpoltrona2 = Request.Form("selecionados") 'vpoltrona = Request.Form("slc_poltrona") vpoltrona = Request("selecionados") vorigem = Request("vorigem") vdestino = Request("vdestino") vPrefixo = Request("vPrefixo")
vidDataHorario = Request("vidDataHorario") vDataViagem = Request("vDataViagem") vNomeEmpresa = Request("vNomeEmpresa") vtipoOnibus = Request("vtipoOnibus")
vHoraPartida = Request("vHoraPartida") vTarifa = Request("vTarifa")
vViagem = Request("vViagem")
vDataChegada = Request("vDataChegada") vHoraChegada = Request("vHoraChegada") vDistancia = Request("vDistancia")
vtarPassagem = Request("vtarPassagem") vtarSeguro = Request("vtarSeguro")
%>
<%
'formatação da data recebida para dd/mm/aaaa 'Call FormatDataInverte(vDataViagem)
'Response.write(vDataViagem)
'Recupera o carrinho de compras do cliente após o login 'session("Origem") = vorigem
'session("Destino") = vdestino
%>
<%
'chamar os métodos
Call logado 'chama o método para verificar se o usuário esta logado no sistema Call exibeResultados() 'chama o método que exibe o resultado da consulta da poltrona
' if not vidItinerario="" then 'condição do itinerario <> 0
' Call PesquisaOnibus(vidItinerario)
' else
' end if
%>
<%
'Verificando se o usuário está logado e guardando informações function logado
Dim mensagem
if session("loginUsuario") = "" then session("vpoltrona") = vpoltrona session("vorigem") = vorigem session("vdestino") = vdestino session("vPrefixo") = vPrefixo
session("vidDataHorario") = vidDataHorario session("vDataViagem") = vDataViagem session("vNomeEmpresa") = vNomeEmpresa session("vtipoOnibus") = vtipoOnibus
session("vHoraPartida") = vHoraPartida session("vTarifa") = vTarifa
session("vViagem") = vViagem
session("vDataChegada") = vDataChegada session("vHoraChegada") = vHoraChegada session("vDistancia") = vDistancia
session("vtarPassagem") = vtarPassagem session("vtarSeguro") = vtarSeguro
mensagem = "Você não escolheu nenhuma passagem ou ainda não efetuou login"
'response.write "Você deve estar logado para efetuar o pagamento"
'response.redirect "index.asp"
response.redirect "loginerrado.asp?vmensagem=" & mensagem else
session("vpoltrona") = vpoltrona session("vorigem") = vorigem session("vdestino") = vdestino
session("vPrefixo") = vPrefixo
session("vidDataHorario") = vidDataHorario session("vDataViagem") = vDataViagem session("vNomeEmpresa") = vNomeEmpresa session("vtipoOnibus") = vtipoOnibus
session("vHoraPartida") = vHoraPartida session("vTarifa") = vTarifa
session("vViagem") = vViagem
session("vDataChegada") = vDataChegada session("vHoraChegada") = vHoraChegada session("vDistancia") = vDistancia
session("vtarPassagem") = vtarPassagem session("vtarSeguro") = vtarSeguro end if
end function
%>
<%
'Exibindo os resultados da poltrona escolhida function exibeResultados()
%>
<form name="formpag" action="bilhete.asp" onsubmit="return validaCampos()" method="post">
<table class="tabResultado" align="center" width="98%">
<tr bgcolor="#E2C78D">
<td>
<div align="left"> Embarque em: <br> <%=vorigem%> </div>
<input type="hidden" name="vorigem"
value="<%=vorigem%>">
</td>
<td>
<div align="left"> Desembarque em: <br> <%=vdestino%> </div>
<input type="hidden" name="vdestino"
value="<%=vdestino%>">
</td>
<td>
<div align="left"> Prefixo da Linha: <br><%=vPrefixo%> </div>
<input type="hidden" name="vPrefixo"
value="<%=vPrefixo%>">
</td>
<td>
<div align="left"> Data da Partida: <br><%=vDataViagem%> </div>
<input type="hidden" name="vDataViagem"
value="<%=vDataViagem%>">
</td>
</tr>
</table>
<br>
<!----exibe o resultado da consulta--->
<table class="tabResultado" width="99%"align="center">
<tr bgcolor="#CCCC99">
<td>
<div align="center"><b>Empresa</b></div>
</td>
<td>
<div align="center"><b>Classe</b></div>
</td>
<td>
<div align="center"><b>Partida</b></div>
</td>
<td>
<div align="center"><b>Tempo de Viagem</b></div>
</td>
<td>
<div align="center"><b>Data da Chegada</b></div>
</td>
<td>
<div align="center"><b>Hora</b></div>
</td>
<td>
<div align="center"><b>Distância</b></div>
</td>
<td>
<div align="center"><b>Tarifa</b></div>
</td>
<td>
<div align="center"><b>Seguro</b></div>
</td>
<td>
<div align="center"><b>Poltrona</b></div>
</td>
</tr>
<tr bgcolor="#EBEBD6">
<td >
<div align="center"><b><%=vNomeEmpresa%></b></div>
<input type="hidden" name="vNomeEmpresa"
value="<%=vNomeEmpresa%>">
</td>
<td>
<div align="center"><b><%=vtipoOnibus%></b></div>
<input type="hidden" name="vtipoOnibus"
value="<%=vtipoOnibus%>">
</td>
<td>
<div align="center"><b><%=vHoraPartida%></b></div>
<input type="hidden" name="vHoraPartida"
value="<%=vHoraPartida%>">
</td>
<td>
<div align="center"><b><%=vViagem%></b></div>
<input type="hidden" name="vViagem"
value="<%=vViagem%>">
</td>
<td>
<div align="center"><b><%=vDataChegada%></b></div>
<input type="hidden" name="vDataChegada"
value="<%=vDataChegada%>">
</td>
<td>
<div align="center"><b><%=vHoraChegada%></b></div>
<input type="hidden" name="vHoraChegada"
value="<%=vHoraChegada%>">
</td>
<td>
<div align="center"><b><%=vDistancia%></b></div>
<input type="hidden" name="vDistancia"
value="<%=vDistancia%>">
</td>
<td>
<div align="right"><b><%=vtarPassagem%></b> </div>
<input type="hidden" name="vtarPassagem"
value="<%=vtarPassagem%>">
</td>
<td>
<div align="right"><b><%=vtarSeguro%></b></div>
<input type="hidden" name="vtarSeguro"
value="<%=vtarSeguro%>">
</td>
<td>
<div align="right"><b><%=vpoltrona%></b></div>
<input type="hidden" name="vpoltrona"
value="<%=vpoltrona%>">
</td>
</tr>
</table>
<div align="center">
<table class="tabResultado" align="center" width="51%">
<tr>
<td width="63%"> </td>
<td width="9%"> </td>
<td width="8%"> </td>
<td width="10%"> </td>
<td width="10%"> </td>
</tr>
<tr>
<td width="63%">
<div align="center">
<font color="#996600"><b>Deseja pagar o seguro facultativo?
</b></font></div>
</td>
<td width="9%">
<div align="center"><font color="#FF0000"><b>Sim</b></font></div>
</td>
<td width="8%">
<input type="radio" name="vradSeguro" value="SIM">
</td>
<td width="10%">
<div align="right"><font color="#FF0000"><b>Não</b></font></div>
</td>
<td width="10%">
<input type="radio" name="vradSeguro" value="NAO">
</td>
</tr>
</table>
<br>
</div>
<table class="tabResultado" align="center" width="66%">
<tr>
<td width="41%">
<div align="right"><b>Número Cartão:</b></div>
</td>
<td width="59%">
<input type="text" name="vNum" size="16" maxlength="16">
</td>
</tr>
<tr>
<td width="41%">
<div align="right"><b>Nome do Titular:</b></div>
</td>
<td width="59%">
<div align="left">
<input type="text" name="vNome" size="50" maxlength="50">
</div>
</td>
</tr>
<tr>
<td width="41%">
<div align="right"><b>Validade:</b></div>
</td>
<td width="59%">
<input type="text" name="vValidade" size="12" maxlength="12">
</td>
</tr>
<tr>
<td width="41%">
<div align="right"><b>Tipo:</b></div>
</td>
<td width="59%">
<input type="radio" name="vRadcartao" value="Visa">
Visa
<input type="radio" name="vRadcartao" value="MasterCard">
MasterCard </td>
</tr>
<tr>
<td colspan="2" height="30">
<div align="center">
<input type="hidden" name="vidDataHorario"
value="<%=vidDataHorario%>">
<input type="submit" name="vValidar" value="Efetuar Pagamento">
<br>
</div>
</td>
</tr>
</table>
</form>
<script language="JavaScript">
//validação dos campos do seguro opcional function validaCampos(){
var checado;
if (document.formpag.vradSeguro[0].checked == false &&
document.formpag.vradSeguro[1].checked == false){
alert("É necessário preencher o campo seguro!");
return(false);
} }
</script>
<%end function%>
Ctrl Poltrona.inc
<!--Controladora de Poltrona -->
<%
'Declarando as variáveis utilizadas nos métodos Dim vdestino, vorigem, vDataViagem, vPrefixo
set objRsHorario = Server.CreateObject("ADODB.RecordSet") 'Recebe as variáveis passadas na consulta do itinerario
vdestino = Request("vCidadeDestino") vorigem = Request("vCidadeOrigem") vDataViagem = Request("vDataViagem") vPrefixo = Request("vPrefixo")
vViagem = Request("vViagem")
vDataChegada = Request("vDataChegada") vHoraChegada = Request("vHoraChegada") vTarifa = Request("vTarifa")
vHoraPartida = Request("vHoraPartida") vDistancia = Request("vDistancia") vSeguro = Request("vtarSeguro")
vidDataHorario = Request("vidDataHorario")
'left(Request("rad_compra"),instr(Request("rad_compra"),"-")-1) vidCatOnibus = Request("vidCatOnibus")
'mid(Request("rad_compra"),instr(Request("rad_compra"),"-")+1)
dim objRsBilhetes, objRsCatOnibus 'chama os métodos
Call PesquisaBilhete(vidDataHorario) Call PesquisaQuantPoltronas(vidCatOnibus) call CalculaPoltronasDis()
function PesquisaBilhete(vidDataHorario) Dim sql
sql = "SELECT Rod_Bilhete.numPoltrona, Rod_Bilhete.idBilhete FROM Rod_Bilhete where Rod_Bilhete.idDataHorario=" & vidDataHorario& " order by Rod_Bilhete.numPoltrona "
set objRsBilhetes = objConexao.Execute(sql)
end function
function PesquisaQuantPoltronas(vidCatOnibus) Dim sql
sql = "select idCatOnibus, qtdePoltronas from Rod_CategOnibus WHERE idCatOnibus =" & vidCatOnibus & " "
set objRsCatOnibus = objconexao.Execute(sql)
'vqtdePoltronas = objRsCatOnibus(1) ' recupera o cidade que é único end function
%>
<% function CalculaPoltronasDis()%>
<%
On Error Resume Next Dim a,j
Dim vet ()
objRsBilhetes.movefirst
Select Case objRsCatOnibus(0) Case 1
Redim vet(50) j=50
Case 2
Redim vet(46) j=46
Case 3
Redim vet(46) j=46
Case 4
Redim vet(38) j=38
Case 5
Redim vet(38) j=38
Case 6
Redim vet(34) j=34
Case 7
Redim vet(18) j=18
End Select
For i = 1 to j
a = objRsBilhetes(0) if i <> a then
vet(i) = i else
vet(i)= cstr(i) & "r"
objRsBilhetes.movenext end if
next
%>
<table class="tabResultado" align="center" width="98%">
<form name="frmCompra" action="pagamento.asp" method="post">
<tr bgcolor="#F5D8A0">
<td>
<div align="left"> Embarque em: <br> <%=vorigem%> </div>
</td>
<td>
<div align="left"> Desembarque em: <br> <%=vdestino%> </div>
</td>
<td>
<div align="left"> Prefixo da Linha: <br><%=vPrefixo%> </div>
</td>
<td>
<div align="left"> Data da Partida: <br><%=vDataViagem%>
</div>
</td>
</tr>
</table>
<br>
<table class="tabResultado" width="99%"align="center">
<tr>
<td bgcolor="#CCCC66">
<div align="center"><b>Empresa</b></div>
</td>
<td bgcolor="#CCCC66">
<div align="center"><b>Classe</b></div>
</td>