Post on 06-Jun-2015
description
FUNDAÇÃO CULTURAL CAMPANHA DA PRINCESA
FACULDADES INTEGRADAS PAIVA DE VILHENA
CURSO DE SISTEMAS DE INFORMAÇÃO
CARLOS HENRIQUE PEREIRA
Desenvolvimento de um Software para Atendimento
Bancário
Campanha – MG
2011
FUNDAÇÃO CULTURAL CAMPANHA DA PRINCESA
FACULDADES INTEGRADAS PAIVA DE VILHENA
CURSO DE SISTEMAS DE INFORMAÇÃO
CARLOS HENRIQUE PEREIRA
Desenvolvimento de um Software para Atendimento
Bancário
Monografia apresentada à disciplina Trabalho
Final de Curso, como parte dos requisitos para
obtenção do titulo de Bacharel em Sistemas de
Informação, pela Fundação Cultural
Campanha da Princesa.
Orientador: Prof. Paulo Guilherme Pereira
Campanha – MG
2011
CARLOS HENRIQUE PEREIRA
SOFTWARE PARA ATENDIMENTO BÁNCARIO
Monografia aprovada como requisito para a obtenção do
título de Bacharel em Sistemas de Informação, das
Faculdades Integradas Paiva de Vilhena.
Data da aprovação
______/______/______
BANCA EXAMINADORA
Nome:__________________________________________________________
Instituição:______________________________________________________
Assinatura:______________________________________________________
Nome:__________________________________________________________
Instituição:______________________________________________________
Assinatura:______________________________________________________
Nome:__________________________________________________________
Instituição:______________________________________________________
Assinatura:______________________________________________________
Dedicatória
Dedico este trabalho a Deus, primeiramente,
que me deu muita força para conclusão, a
toda minha família que sempre incentivou e
esteve comigo todo esse tempo.
Agradecimentos
Agradeço ao professor Paulo Guilherme
Pereira que me orientou durante esta jornada
de trabalho, incentivando e apoiando o seu
desenvolvimento; ao coordenador do curso
Alessandro Mateus Salomé, pela confiança e
apoio, e a todos os meus amigos que
acreditaram em mim.
“[...] E nunca considerem seu estudo como uma obrigação, mas
sim como uma oportunidade invejável de aprender, sobre a
influência libertadora da beleza no domínio do espírito, para
seu prazer pessoal e para o proveito da comunidade à qual
pertencerá o seu trabalho futuro”.
Albert Einstein
RESUMO
Com o crescimento dos serviços bancários, surgem situações desagradáveis, na
maioria das vezes, na hora dos atendimentos. Frequentemente, dentre desse crescimento
gera-se a possibilidade de se criar sistemas informatizados para que seja possível um melhor
atendimento não só nos serviços bancários, mas dentre outros estabelecimentos. E a
principal reclamação que é enfrentada nesse cenário é ter que ficar tempo demais em uma
fila de espera e ainda por falta de comodidade para ser atendido. Se parar e pensar logo vem
à ideia; e quanto às pessoas idosas, portadoras de alguma deficiência física? Essas pessoas
sofrem muito mais, dessa forma faz com que gere irritabilidade por partes dos clientes. Com
o desenvolvimento de um software que gerencie filas por senhas, poderíamos reduzir
consideravelmente diversos aborrecimentos.
Diante do exposto, esta pesquisa irá demostrar como o desenvolvimento de um
software capaz de gerenciar filas por senhas contendo informações relevantes para o
ambiente implantado concorreria para uma melhora acerca dos problemas supracitados. Os
benefícios gerados em caso de implantação do software é oferecer maiores benefícios não só
para a empresa como também para seus clientes.
PALAVRAS CHAVE: Serviços bancários, senhas por filas, estabelecimentos, atendimento
e software.
ABSTRACT
With the growth of banking services, arise unpleasant situations, most often, in hours
of care. Often, of this growth creates the possibility of creating computer systems so that you
can better care not only in banking, but among other establishments. And the main
complaint that is addressed in this scenario is to have to stay too long in a queue, and yet for
lack of convenience to be served. If you stop and think immediately comes to mind, and as
the elderly, suffering from any physical disabilities? These people suffer much more, thus
generating cause’s irritability by customers. With the development of a software that
manages queues for passwords, could greatly reduce many hassles.
Given the above, this research will demonstrate how the development of a software
able to manage passwords for queues containing information relevant to the deployed
environment would further improvement of the problems mentioned above. The benefits in
the event of deployment of the software is not only provide greater benefits to the company
but also for their customers.
KEY WORDS: Banking, passwords by lines, facilities, service and software.
LISTA DAS FIGURAS
Figura 01 – DFD Login dos Usuários 30
Figura 02 – DFD Cadastro de Usuários 31
Figura 03 – DFD Cadastro de Mesas 32
Figura 04 – DFD Alteração de Senha 33
Figura 05 – DFD Cadastro de Atendente 34
Figura 06 – DFD Cadastro de Mensagens 35
Figura 07 – DFD Acesso ao Guichê 36
Figura 08 – DFD Cadastro de Mensagens Manualmente 37
Figura 09 – Caso de Uso de Clínica Médica 38
Figura 10 – UML Funções dos Usuários 1 39
Figura 11 – UML Funções dos Usuários 2 39
Figura 12 – UML Funções dos Usuários 3 40
Figura 13 – UML Funções do Administrador 1 40
Figura 14 – UML Funções do Administrador 2 41
Figura 15 – Diagrama de ER 42
Figura 16 – Consulta SQL 42
Figura 17 – Diagrama de Classe 43
Figura 18 – Gráfico de Gantt (Informações do Software) 55
Figura 19 – Gráfico de Gantt (Tempo de Realização) 55
Figura 20 – Gráfico de Gantt (Tarefas) 56
Figura 21 – Gráfico de Gantt (Pessoas Envolvidas) 56
Figura 22 – Tela Splash 58
Figura 23 – Tela de Login 59
Figura 24 – Tela Menu Principal 59
Figura 25 – Amostra da Tela de Senhas Comuns e Preferenciais 60
Figura 26 – Tela de Atendente 60
Figura 27 – Tela de Manutenção de Atendimentos 61
Figura 28 – Tela de Manutenção de Mesas 61
Figura 29 – Tela de Manutenção de Senha 62
Figura 30 – Tela de Manutenção de Mensagens 62
Figura 31 – Tela do Painel de Atendimento 63
Figura 32 – Tela de Lista de Usuários 63
Figura 33 – Tela do Gráfico Demonstrativo dos Atendimentos 64
Figura 34 – Tela de Cadastro de usuários 64
Figura 35 – Tela de Sobre o Sistema 65
Figura 36 – Tela de Relatório dos Atendimentos 65
LISTA DOS QUADROS
Quadro 01 – Tabela Usuários 28
Quadro 02 – Tabela Letreiro Digital 28
Quadro 03 – Tabela Atendimento 29
Quadro 04 – Tabela Atendente 29
Quadro 05 – Tabela Senha 29
Quadro 06 – Tabela Mesas 30
Quadro 07 – Necessidades do Software 46
LISTA DAS TABELAS
Tabela 01 – Investimento 24
Tabela 02 – Despesas Fixas Mensais 25
Tabela 03 – Licenciamentos do Software 25
Tabela 04 – Custo Total do Período de Desenvolvimento 26
Tabela 05 – Custo Após o Período de Desenvolvimento 26
Tabela 06 – Custo Total 26
SUMÁRIO
1. Tema 14
1.1 Introdução 14
1.2 Problema 15
1.3 Hipóteses 15
1.4 Justificativa 15
1.5 Objetivos 15
1.5.1 Objetivo Geral 15
1.5.2 Objetivos Específicos 15
1.6 Metodologia 16
2. Marco Teórico 17
2.1 Histórico da Linguagem de Programação 17
2.1.1 Sintaxe 17
2.1.1 Semântica 17
2.2 Microsoft Corporation e a Linguagem Visual Basic .NET 18
2.3 Conceitos Sobre Banco de Dados 19
2.3.1 Banco de Dados SQL 19
2.3.2 Banco de Dados em Access 20
2.3.3 SGBD 20
3. Desenvolvimento 21
3.1 Definição do Problema 21
3.2 Estudo de Viabilidade 21
3.2.1 Custos Envolvidos 22
3.2.2 Investimentos 22
3.2.3 Período de Desenvolvimento 23
3.2.4 Custo Total do Período de Desenvolvimento 23
3.2.5 Custos Após o Período de Desenvolvimento 24
3.2.6 Custo Total 24
3.2.7 Benefícios 25
3.2.8 Conclusão 25
3.3 Solução Proposta 25
3.4 Dicionário de Dados 26
3.5 Diagramas de Fluxos de Dados 28
3.6 Diagramas de Casos de Uso 37
3.7 Entidade Relacionamento 40
3.8 Diagrama de Classes 42
4. Software para Atendimento Bancário 43
4.1 Do que se Trata o Sistema 43
4.2 Qual a sua Finalidade 43
4.3 Funcionamento do Software 43
4.4 Aplicação do Software de Atendimento 44
4.5 Ciclo de Vida do Software de Atendimento 44
4.6 Elicitação de requisitos 44
4.6.1 Motivação 44
4.6.2 Visão da Solução 45
4.6.3 Escopo da Solução 45
4.6.4 Limites e Restrições da Solução 46
4.6.5 Análise e Negociação de Requisitos 46
4.6.5.1 Critérios de Aceitação do Produto do Projeto 46
4.6.5.2 Requisitos de Aprovação 46
4.6.5.3 Entrega do Projeto 46
4.6.5.4 Riscos Iniciais Identificados 47
4.6.5.5 Premissas 47
4.7 Especificações de Requisitos de Software 47
4.7.1 Propósito 47
4.7.2 Escopo 47
4.8 Identificação e Localização do Documento 48
4.8.1 Organização do Documento 48
4.8.2 Descrição Geral do Software 48
4.8.3 Requisitos Funcionais 48
4.8.4 Requisitos Não-Funcionais 49
4.9 Visões Gerais do Software 49
4.9.1 Características dos Usuários 49
4.9.2 Restrições 49
4.10 Chamadas 49
4.10.1 Requisitos Funcionais 49
4.10.2 Requisitos Não-Funcionais 50
4.10.2.1 Usabilidade 51
4.10.2.2 Confiabilidade 51
4.10.2.3 Desempenho 51
4.10.2.4 Reusabilidade 51
4.10.2.5 Segurança 51
4.10.2.6 Acessibilidade 52
4.11 Requisitos de Interface 52
4.11.1 Interfaces com Usuários 52
4.11.2 Interfaces Hardware e Software 52
4.11.3 Interfaces de Comunicação 52
4.12 Requisitos de Documentação 52
4.12.1 Manual dos Usuários 53
4.12.2 Duvidas On-Line 53
4.13 Requisitos de Licença 53
4.14 Informações para Suporte 53
4.15 Gerenciamentos de Mudanças de Requisitos 53
4.16 Análise de Risco 54
5. Relatório de Atividades 55
5.1 Gráfico de Gantt 55
6. Relação dos Componentes 57
7. Apresentação das Interfaces do Usuário 68
Conclusão 76
Referências Bibliográficas 77
Anexo I 79
Anexo II 113
16
1. Tema
Desenvolvimento de um Software para Atendimento Bancário.
1.1 Introdução
Com o avanço da tecnologia da informação, observa-se a necessidade de pensar e
analisar o mercado de trabalho, buscando a geração de oportunidades para a inovadora
geração da qual que fazemos parte, de modo que seja possível desenvolver métodos mais
rápidos para o auxilio da vida quotidiana, uma vez que a tecnologia da informação avança,
nesse cenário globalizado, criam novas estruturas para serem analisadas e estudadas com a
finalidade de reformulação e entendimento. Pensando dessa forma para melhor atender o
mercado de trabalho e não deixar de ressaltar a necessidade da realidade da qual fazemos
parte, dessa forma observa-se um recorte ou delimitação em realizar um projeto que pudesse
gerenciar filas por senha para que assim através da informática e o avanço tecnológico
gerasse melhor satisfação para as futuras pessoas que utilizarão.
O SOFTWARE PARA ATENDIMENTO BANCÁRIO é parte integrante da
estratégia que visa garantir a qualidade na realização dos atendimentos, a agilidade nos
serviços prestados e o alto nível de satisfação do cidadão. No mundo atual podemos provar
que nesse cenário globalizado não podemos ficar parado diante da realidade.
Assim a presente pesquisa busca, por meios de processos informatizados através das
tecnologias presentes o desenvolvimento do software. O sistema permite organizar as filas
de atendimento, gerir as demandas com o correto dimensionamento e alocação dos recursos
materiais e humanos para o atendimento e prestação dos serviços, propiciando a rapidez e
eficiência nos serviços públicos prestados e garantindo a satisfação do cidadão.
Ademais, se parar para analisar e refletir sobre o tema poderá facilmente entender as
razões pela qual pretendemos realizar a pesquisa. As expectativas quanto ao
desenvolvimento é grande e é fundamental ter uma visão global das estruturas o dos índices
que serão alcançados. Pensando mais em longo prazo e com objetivo organizacional é viável
a expansão e a necessidade de renovação no mercado, assim estabelecendo níveis de fluxos
de informação podemos atingir grande parte das necessidades podendo chegar a excelência
nos atendimentos.
17
1.2 Problema
O problema principal é conseguir facilitar o atendimento e garantir um melhor
atendimento aos clientes.
1.3 Hipóteses
Com a nova configuração de mundo globalizado, o tempo passou a ser um elemento
imprescindível para a vida das pessoas. Dessa forma, seria possível projetar um software que
desse conta de poupar tempo e dar maior tranquilidade e conforto para o público desse
segmento.
1.4 Justificativa
Com o avanço da tecnologia da informação surgem cada vez mais necessidades e
com elas novas perturbações. Dentro desse crescimento em tempo real o melhor a fazer é
tentar realizar com a melhor qualidade e empenho a busca da satisfação dos cidadãos,
demonstrando através da programação de computadores e olhando com mais cuidado o que
se passa diante de nossos olhos diante desse cenário globalizado o meu tema justifica-se pela
falta frequente de comprometimento com os clientes que não podem ficar mais de 15
minutos para o atendimento bancário.
1.5 Objetivos
1.5.1 Objetivo Geral
Desenvolver um software capaz de controlar filas através de senhas, com o intuito de
gerar melhor atendimento nos setores públicos e privados.
1.5.1 Objetivos Específicos
18
Criar um ambiente de fácil utilização para o usuário final, a ponto que realiza tarefas
de modo mais rápido e eficaz;
Combinar diversos meios de comunicação com os clientes, tais como painel
eletrônico com informações atualizadas do que está acontecendo no mundo todo;
Reduzir gastos, a fim de possibilitar maiores possibilidades a adquirir o sistema pelo
baixo custo;
Permitir que o sistema de banco de dados armazene e gere relatórios sobre os dados
cadastrados em sua base;
Verificar novas possibilidades de atendimento e;
Transmitir maior segurança.
1.6 Metodologia
Para o que o projeto fosse desenvolvido foram feitas pesquisas em diversos sites e
livros para obter um maior embasamento na área tendo em base; análise de sistemas,
linguagem de programação e algoritmo.
O sistema será desenvolvido em linguagem VB .NET utilizando o banco de dados
em SQL, modelos de diagramas utilizados são: diagramas de fluxo de dados, diagramas de
caso de uso, dicionário de dados e diagramas de classes.
Com respeito ao material utilizado foi um microcomputador.
19
2. Marco Teórico
Nesta sessão do capítulo será visto os conceitos relevantes ao desenvolvimento do
software.
2.1 Histórico Da Linguagem De Programação
De acordo com JÚNIOR (2009), Desde o aparecimento dos primeiros computadores
que ficou claro que seria necessário encontrar um método padronizado para melhor
expressar as instruções que deveriam ser dadas à máquina. Um conjunto de regras sintáticas
e semânticas que permitissem definir um programa, passível de ser interpretado pela
máquina da forma mais eficiente.
A linguagem de programação se deu inicio na década de 50, com isso ficou claro que
de alguma forma poderia criar linhas de códigos através dos comandos a fim de controlar
máquinas. Vale ressaltar que antes do desenvolvimento das linguagens de programação de
alto nível as máquinas (computadores) eram controladas por uma linguagem de baixo nível
que se caracteriza linguagem de máquina ou como preferir (Assembly), nenhuma outra
linguagem se equipara a Assembly porque é a única mais próxima da máquina, inclusive
muitos programas desenvolvidos ainda utilizam a linguagem de máquina, por ter como
característica a rapidez de compilação das rotinas criadas.
No momento em que o homem sentiu maiores necessidades de controlar as
máquinas, observou-se o desenvolvimento de linguagens de alto nível, como foi mencionada
logo acima que para tal forma gerasse um melhor aproveitamento, produtividade, rapidez,
dentre outros fatores. Temos que ter em mente que a linguagem de programação se
configura a partir de códigos (instruções) passados para o computador que assim pudesse
armazenar e gerar determinada informação para o usuário final.
Quando falamos de linguagem de programação, temos dois conceitos muitos
importantes a respeito, a saber: a sintaxe e a semântica, sob os quais deteremos a seguir.
2.1.1 Sintaxe
A sintaxe forma um conjunto de regras para construir os sistemas que serão
instalados nas máquinas (computadores). Ela está ligada diretamente com a escrita das
linhas de códigos e como esses irão se comportar quando executados diante de determinadas
20
rotinas criadas, e quando falamos de sintaxe estamos referindo-nos ao que foi digitado
como: letras, números, caracteres especiais entre outros. Desta forma, podemos constatar
que a sintaxe é o que chamamos de alfabeto da linguagem de programação em si.
2.1.2 Semântica
Tratamos a semântica como a parte mais importante na elaboração de um sistema de
computador, porque é ela quem define, caracteriza a linguagem de programação. Podemos
expressar a semântica da seguinte forma: tal como uma rotina para gerar números
aleatoriamente pode ser criada de diferentes formas e é isso que caracteriza, ou seja, ter um
valor lógico e coerente não importando a linguagem utilizada para o desenvolvimento.
Dessa forma, ao se entender a sintaxe e semântica será mais confiável a escrita e a
forma de interpretação da máquina na hora de compilar as linhas de códigos seja mais
eficiente.
Com o passar dos anos, o incentivo aos avanços tecnológicos, assim como os
desenvolvimentos dos cenários econômicos, obrigaram a fazer diversas padronizações e
comunicação com um todo, assim as linguagens de programação evoluíram em termos
bastante significativos para o progresso, transmitindo maior produtividade, eficiência,
confiabilidade e principalmente rapidez, para que pudesse gerar uma interação entre o
homem e o computador.
2.2 Microsoft Corporation e a Linguagem Visual Basic .NET
De acordo com FRANKLIN (2002), a Microsoft sempre esteve na dianteira quando
se trata de ambientes avançados de desenvolvimento, e os desenvolvedores do Visual Basic
geralmente são os primeiros a experimentar suas inovações.
A empresa Microsoft iniciou-se como uma nova empresa na década de 70 com a
criação da linguagem de programação BASIC, onde gerou um grande sucesso e se tornou
muito popular para os desenvolvedores de softwares.
Segundo MACKENZIE & SHARKEY (2002), na verdade, o Visual Basic .Net
possui um numero real de versões, 7,.7 – só que ele não é muito usado. Da mesma maneira
como o Windows 2000 é na realidade a versão 5.0 do Windows NT, quando mais simples
ou assimilável é o nome, mas ele é usado. No entanto, não espere ouvir falar do Visual Basic
21
7.0 com frequência; havia até uma penalidade em dinheiro dentro da Microsoft para quem se
referisse ao Windows 2000 como NT 5.0.
Visual Basic .NET é uma linguagem de programação desenvolvida pela Microsoft e,
no que diz a respeito à linguagem, ela é totalmente orientada a eventos e não como dizem
por aí que é totalmente orientada a objetos mas, vale ressaltar que o VB.NET também tem
suas características e trabalha com orientação a objetos. Nesse sentido, podemos classificar
os métodos da linguagem VB.NET, que tem impactos relacionados com a ideia de
classificar, organizar e abstrair coisas, a fim de se criar estruturas ou o que chamamos de
conjuntos de operações. Esse empenho em analisar diversos modos funcionais de dados
torna-se de fácil manuseio.
2.3 Conceitos Sobre Banco de Dados
Segue, logo abaixo, todas as especificações com relação aos conceitos sobre banco
de dados.
2.3.1 Banco de Dados SQL
Segundo MACHADO (2004), SQL significa Structured Query Language –
Linguagem Estruturada de Pesquisa, de grande utilização, teve seus fundamentos no modelo
relacional de Codd (1970). Sua primeira versão recebeu o nome de SEQUEL (Structured
English Query Language), definida por D.D. Chamberlim, entre outros, em 1974, nos
laboratórios de pesquisa da IBM (Califórnia).
A evolução contínua e rápida sempre teve a necessidade de se desenvolver e construir
sistemas capazes de gerar informações fáceis e seguras. Pensando assim, evoluímos com o
intuído de armazenar informações onde fosse possível a manipulação através de comandos
enviados para o computador e assim deu-se ao nascimento do banco de dados onde,
podemos realizar diversas consultas e gerencia-los da maneira que for mais conveniente para
a utilização. Dentre esses conceitos podemos encontrar algumas características principais
com relação ao banco de dados, tais como:
Incluir Registros;
Alterar Registros;
22
Excluir Registros;
Consultar Registros existentes nas tabelas.
Bancos de dados imensos exigem uma estrutura bastante sólida. Os
programadores podem usar aplicações Visual Database Tools que vem com SQL
Server para criar um esquema de aplicação apropriado, que leve em consideração o
tipo de dados, o local do servidor e os padrões de utilização. Os programadores
também precisam entender como normalizar e “desnormalizar” a estrutura visando
ao desempenha. (OHATA; HAYNIE; NIELSEN, 1999, p.15).
Contudo, o bando de dados trata-se de um conjunto de informações organizadas e
guardadas de forma segura e de fácil manipulação, onde podem ser realizados acessos nos
dados contidos no mesmo.
2.3.2 Banco de Dados em Access
De acordo com o livro TREINAMENTO RÁPIDO EM MICROSOFT ACCESS 97
(1988), um banco de dados é uma coleção de dados estruturados. Como a distribuição dos
dados é previsível, podemos manipular os itens para extrair informações úteis. O
componente mais básico de um banco de dados Access é uma tabela na qual estão as
informações ordenadas em linhas e colunas.
O banco de dados Access é um banco de dados gratuito, ou seja, não é necessário
pagar nada para usá-lo em aplicações (Softwares) para armazenamento de dados.
2.3.3 SGBD
SGBD ou Sistemas Gerenciadores de Banco de Dados são programas com objetivos
de criar base de dados um exemplo de programa é o SQL como mencionado na seção 2.3.1.
23
3. Desenvolvimento
3.1 Definições do Problema
O Sistema Atual apresenta vários problemas, tais como:
Alto custo de contrato de manutenção;
Alto custo de aquisição para novas licenças;
Alto custo de implantação e treinamento;
Dependência do fornecedor para qualquer pequena alteração, tal como a inclusão de
uma nova fila;
Descentralização de informações, acarretando na impossibilidade de consulta à
informação de forma centralizada e na necessidade de servidores de aplicação;
Falta de dados estatísticos de atendimentos;
Dificuldade de utilização, devido à necessidade dos atendentes em decorar códigos
para o registro de serviços, afetando a produtividade do atendimento e causando
erros nas codificações.
Diante do exposto, analisamos e criamos um novo projeto a ser implantado. No item a
seguir veremos a idéia do projeto.
3.2. Estudo de viabilidade
Segundo DAVES (1994), estudo de viabilidade tem como finalidade determinar se
há uma solução viável; caso não haja, qualquer tempo, esforço ou dinheiro gasto no projeto
é um desperdício. Nessa ordem de ideias, expõe-se que:
Uma vez identificado o escopo (com a concordância do cliente), é razoável
perguntar: “Podemos construir um software para satisfazer esse escopo? O projeto é
exequível?” Frequentemente, os engenheiros passam por cima dessas questões (ou
são pressionados para desconsiderá-las por gerentes ou clientes pacientes), para ficar
envolvidos apenas num projeto que está condenado desde o início. (PRESSMAN,
2002, p. 111)
Há diversas maneiras de determinar a viabilidade econômica de um projeto, dentre as
quais destacamos a análise de custo-benefício. O principal benefício que temos que ter em
mente é a garantia de melhora dos serviços prestados à população. Além disso, um melhor
aproveitamento dos recursos também deve ser levado em conta.
24
Nesta seção iremos expor qual é o benefício real obtido com a alternativa e também
analisaremos em quanto tempo o custo atual associado poderá ser recuperado.
3.2.1 Custos envolvidos
Custo com desenvolvimento:
Salário dos desenvolvedores;
Treinamento em novas tecnologias;
Aquisição de ferramentas de software, para auxiliar no desenvolvimento;
Computadores;
Energia elétrica;
Material de escritório.
Custo com implantação e instalações;
Treinamento de pessoal;
Compra de servidores e equipamentos de rede;
Salário dos técnicos para instalação do servidor e da rede.
Custos operacionais:
Manutenção;
Pessoal;
3.2.2 Investimentos
O investimento necessário para operacionalização deste projeto consiste na aquisição
de um servidor capaz de atender a demanda de transações via rede.
Tabela 01 - Investimento
Item Quantidade Valor Unitário (R$) Valor Atual (R$)
TV LCD 40 FULL HD 1 2.000,00 2.000,00
Servidor 1 2.000,00 2.000,00
Computador 2 1.000,00 2.000,00
Impressora 1 450,00 450,00
TOTAL - - 6.450,00
Fonte: Próprio autor
25
3.2.3 Período de desenvolvimento
As despesas listadas logo abaixo referem-se ao período de desenvolvimento do
software, com base em despesas fixas mensais.
Tabela 02 – Despesas Fixas Mensais
Item Quantidade Valor Unitário (R$) Valor Atual (R$)
Salário Programadores 4 1.500,00 6.000,00
Salário Designer 1 1.000,00 1.000,00
Salário Analista de Sistemas 1 1.800,00 1.800,00
Energia - 200,00 200,00
Telefone - 100,00 100,00
Material de Escritório - 50,00 50,00
Banda Larga - 100,00 100,00
TOTAL - - 9.250,00
Fonte: Próprio Autor
No cálculo a seguir, incluiremos no preço do computador os custos de obtenção e
licenciamento dos softwares a serem usados no projeto.
Tabela 03 – Licenciamentos do Software
Item Quantidade Valor Unitário (R$) Valor Atual (R$)
Equipamentos - - 9.250,00
Sistema Operacional 1 400,00 400,00
Ferramenta de
desenvolvimento 1 500,00 500,00
Ferramenta de modelagem 1 1.000,00 1.000,00
TOTAL - - 11.150,00
Fonte: Próprio Autor
3.2.4 Custo total do período de desenvolvimento
Após analises realizadas com o período de desenvolvimento chegamos à seguinte
conclusão: o sistema pode ser concluído no período de três (3) meses, assim a lista logo
abaixo mostra a tabela dos meses e o total gerado para o desenvolvimento.
26
Tabela 04 – Custo Total do Período de Desenvolvimento
Mês Valor Total (R$)
Primeiro Mês 9.250,00
Segundo Mês 9.250,00
Terceiro Mês 9.250,00
TOTAL 27.750,00
Fonte: Próprio Autor
3.2.5 Custos após o período de desenvolvimento
Os custos relativos a este período compreendem as despesas com treinamento de
funcionários e a manutenção do sistema.
Tabela 05 – Custo Após o Período de Desenvolvimento
Item Valor (R$)
Treinamento (um mês) 400,00
Manutenção 300,00
Fonte: Próprio Autor
3.2.6 Custo Total
Abaixo, especificamos o custo total do sistema para um período de quatro anos.
Estimamos que um mês de treinamento, realizado no primeiro ano, será necessário para que
os funcionários se adaptem ao uso do programa. Consideramos, também, que no primeiro
ano a manutenção é coberta pela garantia, e que, a partir do segundo ano, seu custo é de
R$300,00 por mês.
Como especificado, confira na tabela abaixo:
Tabela 06 – Custo Total
Período Valor (R$)
1° ano 27.750,00
2° ano 3.600,00
3° ano 3.600,00
4° ano 3.600,00
TOTAL 38.550,00
Fonte: Próprio Autor
27
3.2.6 Benefício
Como benefício intangível podemos citar: a melhora no atendimento dos clientes, a
diminuição do congestionamento das filas, a eficiência no fornecimento das informações e
organização das solicitações de serviços.
2.2.7 Conclusão
Um grande gerenciamento e economia de custo à empresa, além da possibilidade de
novos negócios, visto que poderá ser utilizado por qualquer Órgão no atendimento à
população. Visto dessa forma que o estudo de viabilidade está relacionado com o custo do
desenvolvimento e a manutenção de uma forma geral do software fica claro que de uma
forma ou outra para se manter no mercado atual é essencial investir para ter um retorno.
Carvalho (2001) define da seguinte forma:
A quantidade de tempo que se deve gastar com o estudo de viabilidade depende do
projeto. Por exemplo, é bastante razoável gastar um dia para avaliar as alternativas
para modificar o formato do relatório. Já para desenvolver um ovo sistema de
contabilidade, será necessário gastar semanas. O desenvolvimento de um novo
pacote que custará milhões de dólares com certeza pede um estudo mais apurado das
possíveis soluções e, portanto, pode levar messes ou até anos.
3.3 Soluções Proposta
Como solução proposta viso desenvolver um software capaz de controlar filas por
senhas, com o intuito de realizar chamadas através de senhas e, ainda, o software conterá
informações contidas em uma tela (Painel) de plasma ou LCD com informativos eletrônicos.
3.4 Dicionários de Dados
Dicionário de dados é uma lista que contém as características, definições lógicas para
os dados inseridos nas tabelas. Durante o desenvolvimento e a análise de fluxo é através do
dicionário de dados que nos proporciona melhores análises durante o planejamento e criação
de um sistema de computador. GANE & SARSON (2002) definem da seguinte forma:
O nome dicionário de dados adquire um significado mais amplo quando começamos
a incluir detalhes sobre processos que, estritamente falando, se referem a lógica e
não a dados. Talvez devesse ser realmente chamado de diretório de projeto. (p. 52)
28
Logo abaixo estão inseridas as tabelas do dicionário de dados conforme suas
respectivas características.
Quadro 01 – Tabela de Usuário
TABELA USUARIO
Nome da
coluna
Descrição da coluna Data type Nulabilidade Constraint
Usuário Nome do usuário Varchar
(10)
Not null
Senha Senha do usuário Varchar
(10)
Not null
Tipo Tipo do usuário Char (1) Not null Fonte: Próprio Autor
A tabela usuário tem como objetivo dentro do sistema registar todos os usuários que
possivelmente irão utilizar o sistema.
Quadro 02 – Tabela Letreiro Digital
TABELA LETREIRO DIGITAL
Nome da
coluna
Descrição da coluna Data type Nulabilidade Constraint
Id_mensagem Código da
mensagem
Int Not null Chave primária e
alto incremento
Nome da
mensagem
Nome da mensagem Varchar
(255)
Not null
Fonte: Próprio Autor
A tabela letreiro digital tem como objetivo dentro do sistema armazenar todas as
informações apresentadas para os clientes no painel.
Quadro 03 – Tabela Atendimento
TABELA ATENDIMENTO
Nome da
coluna
Descrição da
coluna
Data type Nulabilidad
e
Constraint
Código
atendimento
Código do
atendimento
Int Not null Chave primária e
alto incremento
Código
atendente
Código do
atendente
Int Not null Chave estrangeira
referenciando a
tabela atendente
Número_Senh
a
Número da Senha Varchar (20) Not null
Data Data do
atendimento
Datetime Not null
Fonte: Próprio Autor
A tabela atendimento tem como objetivo dentro do sistema registrar todos os
atendimentos gerados durante todo o dia, como: data, hora, senhas, qual atendente realizou
determinada chamada.
29
Quadro 04 – Tabela Atendente
TABELA ATENDENTE
Nome da
coluna
Descrição da coluna Data type Nulabilidade Constraint
Código
atendente
Código do atendente Int Not null Chave primária de
alto incremento
Nome Nome do atendente Varchar
(60)
Not null
Fonte: Próprio Autor
A tabela atendente tem como objetivo dentro do sistema registrar todos os atendentes
que utilizarão o sistema.
Quadro 05 – Tabela Senha
TABELA SENHA
Nome da coluna Descrição da
coluna
Data type Nulabilidade Constraint
Número Número da senha Int Not null Chave primária de
alto incremento
Tipo_comum Tipo de senha
comum
Varchar (1) Not null
Tipo_preferencial Tipo de senha
preferencial
Varchar de
(1)
Not null
Fonte: Próprio Autor
A tabela senha tem como objetivo dentro do sistema de gerar novas senhas para
retirada de uma nova chamda e armazenar qual senha foi gerada pelo sistema.
Quadro 06 – Tabela Mesa
TABELA MESA
Nome da coluna Descrição da
coluna
Data type Nulabilidade Constraint
Código mesa código da mesa Int Not null Chave primária e
estrangeira
fazendo
referencia coma
tabela atendente e
com alto
incremento
Numero_atendente Número do
Atendente
int Not null
Fonte: Próprio Autor
A tabela mesa tem como objetivo dentro do sistema gerenciar as quantidades mesas
que o sistema irá conter para o seu funcionamento.
30
3.5 Diagramas de Fluxos de Dados
Basicamente o diagrama de fluxo de dados serve para elaborar como será feito os
processos realizados dentro do sistema, sendo o mesmo não uma estrutura lógica e
independente, pois:
O diagrama de fluxo de dados é um modelo lógico do sistema. O modelo não
depende do hardware, do software, da estrutura de dados, ou da organização do
arquivo; não há nenhuma implicação física no diagrama de fluxo de dados. (DAVIS,
1994, p. 256).
De acordo com Gane & Sarson (2002), o fluxo de dados é simbolizado por meio de
uma seta, de preferência horizontal e/ou vertical, com a ponta indicando a direção do fluxo.
Figura 01 – DFD Login dos Usuários
Fonte: Próprio Autor
31
Quando o usuário tentar acessar ao software será pedido para o mesmo que entre
com o nome e senha para ser validado, caso o usuário informar nome e senha incorretos será
mostrado na tela uma mensagem de erro informando que não conferem o registro e por fim
se o usuário informar nome e senha corretos o mesmo será direcionado para o menu
principal do software contendo acesso a quase todas as funções do software.
Figura 02 – DFD Cadastro de Usuários
Fonte: Próprio Autor
Quando houver a necessidade de cadastrar novos usuários para a utilização do
software somente o administrador terá essa prioridade, sendo que o para realizar o cadastro o
administrador terá que informar nome e senha de usuário para realizar uma validação para
verificar se está corretamente preenchidos os campos, caso os dados estiverem corretos os
32
dados do usuário será armazenado na TB_Usuarios e caso não estiverem corretos será
enviada uma mensagem de erro para o administrador informando qual erro que aconteceu.
Figura 03 – DFD Cadastro de Mesas
Fonte: Próprio Autor
Quando houver a necessidade de cadastrar mais mesas (Guichê) para obter melhores
atendimentos o somente o administrador terá prioridade no software sendo que para realizar
o cadastro da mesa o mesmo deve informar os dados da mesa e em caso de informações
invalidas será enviada uma mensagem de erro senão será armazenada na tabela TB_Mesas.
33
Figura 04 – DFD Alteração de Senha
Fonte: Próprio Autor
De tempo em tempo haverá a necessidade de alteração de senhas dos usuários e para
isso o mesmo deve informar o nome e senha para que sejam validados conforme feito isso
deverá informar a nova senha e repetir novamente a nova senha para que haja maior
segurança e em caso de informações invalidas dos usuários será enviada uma mensagem de
erro para o mesmo senão será armazenada a nova senha na TB_Usuarios.
34
Figura 05 – DFD Cadastro de Atendente
Fonte: Próprio Autor
Ao cadastrar um novo atendente do software o mesmo, somente o administrador terá
prioridade sendo que o mesmo deve se atentar quanto ao cadastro dos usuários pelo fato que
os atendentes serão os usuários do software e em caso de dados inválidos será enviada uma
mensagem de erro senão será armazenado na TB_Atendente.
35
Figura 06 – DFD Cadastro de Mensagens
Fonte: Próprio Autor
Quando os usuários do software perceber que a necessidade de cadastrar novas
mensagens para que seja exibida para os clientes o mesmo terá que informar os dados
corretamente para que possa ser validados e em caso de dados inválidos será enviada uma
mensagem de erro para o usuário senão armazena na TB_Mensagem.
36
Figura 07 – DFD Acesso ao Guichê
Fonte: Próprio Autor
Quando um atendente for iniciar o atendimento do dia o mesmo terá que informar
seus dados cadastrais para que seja validado e em caso de dados inválidos será enviada uma
mensagem de erro senão o mesmo terá acesso ao guichê.
37
Figura 08 – DFD Cadastro de Mensagens Manualmente
Fonte: Próprio Autor
Quando houver a necessidade de cadastrar um atendimento manualmente, somente o
administrador terá prioridade de realizar esse tipo de tarefa no software, sendo o mesmo terá
que informar os dados para armazenamento para ser validados e em caso de erro nas
informações dos dados será enviada uma mensagem de erro para o administrador senão os
dados informados serão armazenados na TB_Atendimento.
Todo e qualquer processo, tanto administrativo quanto operacional, tem um
fluxo das operações de entrada, processamento e saída. Esse fluxo envolve,
além dessas operações, as áreas da organização envolvidas, os recursos
humanos e matérias, os custos relativos a esses recursos, o volume de
trabalho, os tempos de execução, a documentação que tramita pelo mesmo
e a tecnologia de informação utilizada. (D’ASCENÇÃO, 2001, p. 109)
38
3.6 Diagramas de Casos de Uso
Diagramas de caso de uso têm objetivo de conciliar as funções que cada usuário terá
no software, ou seja, designar as funções por privilégios. Dessa forma fica fácil para o
analista e para o cliente que está solicitando o desenvolvimento do mesmo.
Observe logo abaixo um exemplo de como seria um diagrama de classe.
Figura 09 – Caso de Uso de Clínica Médica
Fonte: Disponível em:
http://www.dsc.ufcg.edu.br/~sampaio/cursos/2007.1/Graduacao/SIII/Uml/diagramas/usecases/usecases.htm.
Acesso em: 20/09/2011
Como vimos no exemplo acima o diagrama de caso de uso é essencial entre o cliente
e o analista, para que assim posso se obter melhores entendimentos na hora do
desenvolvimento. Agora confira nas ilustrações abaixo como ficou o diagrama de caso de
uso do software de Atendimento Bancário.
39
Figura 10 - UML Funções dos Usuários 1
Fonte: Próprio Autor
Figura 11 - UML Funções dos Usuários 2
Fonte: Próprio Autor
40
Figura 12 - UML Funções dos Usuários 3
Fonte: Próprio Autor
Figura 13 - UML Funções do Administrador 1
Fonte: Próprio Autor
41
Figura 14 - UML Funções do Administrador 2
Fonte: Próprio Autor
3.7 Entidade Relacionamento
De acordo com Machado (2004), o modelo Entidade-Relacionamento (ER) foi
definido por Peter Pin-Shan Chen, em 1976, e baseia-se na percepção do mundo real como
constituído por um conjunto de objetos básicos chamados entidades e relacionamentos e
define uma técnica de diagramação para modelos de dados, o diagrama de entidade e
relacionamento. (CHEN, 1976 apud MACHADO, 2004, p. 67).
42
Figura 15 – Diagrama de ER
Fonte: Próprio Autor
Figura 16 – Consultas SQL
Fonte: Próprio Autor
43
3.8 Diagrama de Classes
Basicamente diagrama de classes está relacionado à estrutura do sistema de uma
forma geral, onde por sua vez podemos identificar todos os objetos que existem no
desenvolvimento do software a fim de obter melhores formas de análise.
Figura 17 – Diagrama de Classe
Fonte: Próprio Autor
44
4. Software para Atendimento Bancário
4.1 Do que se Trata o Software
É um software que controla filas por senhas, consiste de um conjunto de informações
que quando operadas funcionam de modo que facilite a organização do atendimento, com
capacidade de medir o desempenho dos atendimentos e a capacidade de medir o nível de
satisfação de determinadas situações.
O software ainda pode informatizar o atendente para que ele possa saber quantas
vezes um determinado cliente foi atendimento, saber o tempo médio de espera do
atendimento, cadastrar os clientes, informatizar os serviços e imprimir fichas sequenciais de
chegada para determinados clientes tais como clientes preferenciais e clientes não
preferenciais.
O software que controla painel virtual tem como finalidade representar o estado
atual das filas, pode apresentar mensagens, últimas fichas atendidas, publicidade da empresa
e etc.
4.2 Qual a sua Finalidade
Este software de atendimento de senhas por fila visa informatizar o controle para
diversas filas, sendo o sistema de atendimento um controle estatístico baseado em
atendimento eletrônico.
Obviamente utilizam um painel eletrônico e um dispensador controlado por um
atendente que ao disparar o comando emite um ticket com senha, data, horário, nome da
empresa e o nome da fila selecionada ao cliente. Assim favorecendo a organização dos
atendimentos onde se encontra várias filas de espera.
4.3 Funcionamento do Software
Basicamente, o cliente ao chegar ao estabelecimento que contém um desse Software
de Atendimento será fornecido a ele uma senha no dispensador, onde por sua vez é o que
corresponde ao emissor de senhas. Após o recebimento de sua senha o cliente aguarda o seu
chamado no painel eletrônico.
45
O software utilizado é operado pelos atendentes da empresa dispõe-se de um
software que permite realizar a chamada do próximo cliente em espera. O software ainda
exibe para o atendente qual a senha a ser atendida e permite que ele registre se o
atendimento foi prestando ou se houve desistência. No caso de priorização ou re-chamada do
atendimento para os clientes preferenciais será sempre possível à intervenção do operador
para emitir senhas específicas para determinadas circunstâncias.
Por fim a cada realização feita pelo software será feita uma alteração no painel que
por sua vez emitirá um sinal sonoro ou tendo a opção de chamada por um sinal de voz.
4.4 Aplicação do Software de Atendimento
Claramente, esse tipo de sistemas pode ser aplicado em todas as empresas que
desejam adquirir e segmentar esse tipo de atendimento na recepção dos seus clientes, no
atendimento preferencial e cumprir as leis de espera (Lei da Fila), ou pode simplesmente
optar em agilizar a prestação de serviços com guichê exclusivo para o atendimento dos seus
clientes.
4.5 Ciclos de Vida e o Software de Atendimento
O software será desenvolvido seguindo o modelo cascata, ou seja, o software será
desenvolvido por completo e ao final será entregue e implantado na empresa solicitadora do
serviço. Segue, logo abaixo, alguns ciclos de vida onde por sua vez são utilizados no
desenvolvimento de softwares.
Modelo Constrói e Conserta (Caótico): O modelo constrói e conserta é utilizado
geralmente para pequenas empresas, onde não é necessário muito planejamento para o
desenvolvimento. Dessa forma quando se inicia o projeto utilizando este modelo, todos os
processos são construídos e apresentados para o cliente quantas vezes forem necessários até
a aceitação do mesmo.
Modelo Cascata: O modelo cascata é uma sequência que onde por sua vez o projeto é
todo desenvolvido e entrega para o cliente final. Este modelo não é muito utilizado
atualmente no processo de desenvolvimento, mas, em certos projetos não há como utilizar
outro tipo de ciclo de vida como, por exemplo, o modelo espiral onde, por sua vez é o mais
utilizado e recomendado para o desenvolvimento de projetos.
46
Modelo Espiral: O modelo espiral segue uma sequência onde o projeto de software é
divido em módulos que por sua vez é desenvolvido em partes. Assim a cada módulo que é
feito o analista entra em contato com o cliente para apresentar o mesmo feito.
No desenvolvimento do software em espiral segue algumas características que são de
suma importância a se seguir, como são mostrados logo abaixo:
Comunicação com o cliente;
Planejamento;
Análise de risco;
Engenharia;
Construção e liberação;
Avaliação do cliente.
4.6 Elicitação de requisitos
Segue logo abaixo todas as especificações com relação à Elicitação de Requisitos.
4.6.1 Motivação
O principal motivo para o desenvolvimento do software se deu após observarmos o
quanto é ruim ficar em filas de espera para ser atendimento e esperamos que através da
tecnologia existente em nosso cenário globalizado possamos realizar nosso objetivo.
4.6.2 Visão da Solução
Gerenciar e Organizar as empresas mantenedoras do software visando à satisfação
dos clientes e tudo isso voltado para uma melhor aparência no mercado competitivo.
4.6.3 Escopo da Solução
Nessa seção serão descritas as principais necessidades para o software a ser
desenvolvido.
47
Quadro 07 – Necessidades do Software
Necessidades Categoria
1. O software deve apresentar interface intuitiva. Essencial
2. O software deve ter área para login. Essencial
3. O software deve apresentar disponibilidade de ajuda off-line. Desejável
4. O software deve apresentar restrição de usuário. Essencial
5. O software deve gerenciar um painel para informações. Essencial
6. O software deve apresentar suporte padrão de solução. Importante
7. O software deve conter o registro do mesmo. Importante
8. O software deve apresentar relatórios diários. Essencial
9. O software deve apresentar tela de inicialização. Desejável
10. O software deve apresentar o que ramo a empresa atua. Essencial
Fonte: Próprio Autor
Essencial: Características essenciais. Falha em sua implementação significa não
satisfazer o usuário. Têm que ser implementadas.
Importante: Esta característica tem que ser implementadas. No entanto, a entrega não
será atrasada pela falta de uma característica importante.
Desejável: São úteis em aplicações pouco típicas, ou de uso pouco frequente. Não se
espera um impacto muito grande na satisfação do cliente pela sua implementação.
4.6.4 Limites e Restrições da Solução
O software tem como limites que não terá como usar um uma página Web e usuários
terão restrições com relação a algumas funções dentro do sistema sendo reservados somente
para o administrador.
4.6.5 Análise e Negociação de Requisitos
Declaração do Escopo.
4.6.5.1 Critérios de Aceitação do Produto do Projeto
48
O software não será desenvolvido de forma prototipada, ou seja, não será entregue
em partes, sendo assim o desenvolvimento do mesmo será realizada em um todo e entregue
completo.
4.6.5.2 Requisitos de Aprovação
Levantamento de Requisitos;
Ata de reunião com aceite;
Documento de Aprovação conforme reuniões quinzenais com o cliente.
4.6.5.3 Entrega do Projeto
Termo de aceite;
Documentação;
Manual de Usuário.
4.6.5.4 Riscos Iniciais Identificados
Os riscos identificados no início do projeto são:
Não cumprimento do prazo para entrega dos módulos e/ou projeto;
Ultrapassar custo definido para concepção do projeto;
Alterações no escopo do projeto no decorrer de sua concepção por mudanças na
Reitoria ou Pró-Reitoria.
4.6.5.5 Premissas
A entrega será ocorrida em seis meses juntamente com sua documentação. Caso não
seja entregue no prazo poderá ocasionar atraso no projeto, aumento de custo e insatisfação
do cliente. Cada parte entregue sem a incidência de erro, testado e aprovado.
Caso não seja entregue sem erro, ocasionará retrabalho podendo incidir em aumento
de custo e atraso na entrega dos próximos módulos.
49
4.7 Especificações de Requisitos de Software
Segue, logo abaixo, todas as especificações.
4.7.1 Propósito
O propósito deste documento é especificar os requisitos do Software para
Atendimento Bancário, de tal forma a fornecer informações relevantes ao desenvolvimento
de projetos.
4.7.2 Escopo
O escopo deste projeto descreve etapas, recursos disponíveis, como o software será
desenvolvido.
4.8 Identificação e Localização do Documento
Segue logo abaixo como será realizada a Identificação e Localização do Documento.
4.8.1 Organização do Documento
Além desta seção introdutória, as seções seguintes estão organizadas como descrito
abaixo.
Descrição geral do software: apresenta uma visão geral do sistema, caracterizando
qual é o seu escopo e descrevendo seus usuários.
Requisitos Funcionais (casos de uso): especifica todos os casos de uso do sistema,
ver seção 2.5, descrevendo os fluxos de eventos, prioridades, atores, entradas e saídas
de cada caso de uso a ser implementado.
50
Requisitos Não-Funcionais: especifica todos os requisitos não funcionais do sistema,
divididos em requisitos de usabilidade, confiabilidade, desempenho, segurança,
distribuição, adequação a padrões e requisitos de hardware e software.
4.8.2 Descrição Geral do Software
Como mencionado na seção 4.6.5.4 segue na seção 4.8.2 e 4.8.3 os conceitos sobre
os requisitos Funcionais e Não-Funcionais.
4.8.3 Requisitos Funcionais
Os requisitos funcionais referem-se aos requisitos que estão relacionados com a
maneira com que o sistema deve operar, onde se especificam as entradas e saídas do sistema
e o relacionamento comportamental entre elas, assim como a iteração com o usuário.
4.8.4 Requisitos Não-Funcionais
A operação do software deve ser de fácil utilização. Geralmente existem pessoas que
não dominam a informática muito bem, esses poderão ser usuários (leigos) e cliente que
posteriormente utilizarão o mesmo para retirada de senhas.
4.9 Visões Gerais do Software
Segue, logo abaixo, todas as visões gerais do software.
4.9.1 Características dos Usuários
Como característica dos usuários define que pelo menos para a utilização do sistema
o mesmo deve ter conhecimentos básicos de informática, sendo assim mais fácil a sua
adaptação ao software.
4.9.2 Restrições
51
Para que não haja maiores problemas na utilização do software as restrições serão
definidas como “COMUM e ADMINISTRADOR”, os usuários serão cadastrados como
“COMUM”, ou seja, os usuários não terão os mesmo privilégios que os administradores do
software de tal forma a ficar mais organizado.
4.10 Chamadas
Segue, logo abaixo, todas as especificações das chamadas.
4.10.1 Requisitos Funcionais
Crie Informações
Descrição do caso de uso: Este caso de uso permite que o usuário crie e armazene um
novo componente no sistema.
Prioridade: (X) Essencial ( )Importante ( )Desejável
Entradas e pré-condições: não tem.
Saídas e pós-condição: um componente é cadastrado no sistema
Excluir Determinada Informação
Descrição do caso de uso: Este caso de uso permite que o usuário exclua um
componente do cadastro de componentes do sistema. Um componente pode ser
excluído.
Prioridade: (X) Essencial ( )Importante ( )Desejável
Entradas e pré-condições: recebe como entrada o componente que se deseja excluir
Saídas e pós-condição: o usuário consegue excluir o componente que deseja
Alterar Informações
Descrição do caso de uso: Este caso de uso permite que o usuário altere os dados de
um componente.
Prioridade: (X) Essencial ( )Importante ( )Desejável
Entradas e pré-condições: recebe como entrada o componente que se deseja alterar.
Saídas e pós-condição: um componente é alterado no sistema.
52
Visualizar Informações
Descrição do caso de uso: Este caso de uso permite que o usuário visualize os dados
de um determinado componente.
Prioridade: ( ) Essencial (X)Importante ( )Desejável
Entradas e pré-condições: deve receber como entrada o componente que se deseja
visualizar.
Saídas e pós-condição: o usuário visualiza o componente desejado
4.10.2 Requisitos Não-Funcionais
Segue logo abaixo todas as especificações dos Requisitos Não-Funcionais do
Software.
4.10.2.1 Usabilidade
A interface com o usuário é de vital importância para o sucesso do sistema.
Principalmente por ser um sistema que será utilizado diariamente, o usuário não
possui tempo disponível para aprender como utilizar o sistema.
O sistema terá uma interface amigável ao usuário primário sem se tornar cansativa
aos usuários mais experientes. Em especial, o módulo de publicação HTML possuirá
um wizard para ajudar o usuário.
Prioridade: (X) Essencial ( )Importante ( )Desejável
4.10.2.2 Confiabilidade
O software terá total identificação dos registros, a fim de, garantir melhores
informações para o administrador.
4.10.2.3 Desempenho
53
O software tem como desempenho para até designado como “Médio” sendo possível
a melhora do mesmo para que obtenha o Máximo. Tratamos o assunto de capacidade de
números de filas que o software irá suportar em primeira instancia será de três filas.
4.10.2.4 Reusabilidade
Nesse caso irá reutilizar rotinas prontas (bibliotecas) para o desenvolvimento do
software.
4.10.2.5 Segurança
Somente o administrador terá acesso a todos os módulos do software, dessa forma
evitando ricos de vazamentos de informações.
4.10.2.6 Acessibilidade
O software deve seguir normas de desenvolvimentos de projetos, que por sua vez,
implantados pela empresa desenvolvedora.
4.11 Requisitos de Interface
Segue, logo abaixo, todas as especificações de Requisitos de Interfaces.
4.11.1 Interfaces com Usuários
O software apresenta interfaces intuitivas e tem como características a facilidade de
uso, dessa forma gera uma melhor aparência hora da utilização.
4.11.2 Interfaces Hardware e Software
54
As interfaces do software serão propriamente desenvolvidas pela empresa
desenvolvedora e tendo como plataforma para a instalação e utilização a plataforma
Windows.
4.11.3 Interfaces de Comunicação
O software terá interfaces de comunicações sendo elas: um painel para visualização
de senhas e informativos.
4.12 Requisitos de Documentação
Segue, logo abaixo, todas as especificações de Requisitos de Documentação.
4.12.1 Manual dos Usuários
O manual precisa ser uma referencia completa do software com o qual o usuário
possa aprender as funcionalidades, bem como os elementos de interface. O manual ainda
deve possibilitar que os usuários esclareçam as duvidas mais rápido possível (O mesmo deve
mais ser completo possível).
4.12.2 Dúvidas On-Line
Através da web site da empresa desenvolvedora poderá ser consultados duvidas ou
sugestões sobre o software desenvolvido.
4.13 Requisitos de Licença
O software deve ser assegurado às liberdades de uso, acesso ao código fonte,
distribuição e modificação.
4.14 Informações para Suporte
55
Após a implantação do software a empresa desenvolvedora dará total suporte ao
mesmo em caso de futuros bugs (erros).
4.15 Gerenciamentos de Mudanças de Requisitos
O gerenciamento de mudanças de requisitos trata as seguintes etapas:
O cliente solicita uma mudança;
O Analista de Sistemas juntamente com o Gerente de Projeto analisarão tal
mudança e avaliarão o impacto da mesma no desenvolvimento;
O Gerente do Projeto juntamente com o cliente negociam a mudança
pretendida;
Como resultado dessa negociação ocorrerá ou não a mudança solicitada.
4.16 Análise de Risco
A análise dos riscos no desenvolvimento do software está ligada ao custo.
A estratégia para lidar com este risco é desenvolver opções para que se possa oferecer
um software mais enxuto e seguro.
5. Relatório de Atividades
Segue, logo abaixo, o relatório do cronograma realizado para o desenvolvimento do
software.
5.1 Gráfico de Gantt
56
Figura 18 – Gráfico de Gantt (Informações do Software)
Fonte: Próprio Autor
Figura 19 – Gráfico de Gantt (Tempo de Realização)
Fonte: Próprio Autor
57
Figura 20 – Gráfico de Gantt (Tarefas)
Fonte: Próprio Autor
Figura 21 – Gráfico de Gantt (Pessoas Envolvidas)
Fonte: Próprio Autor
58
6. Relação dos Componentes
Aqui está o texto com a breve descrição do que seria relação dos componentes1.
Relação de componentes nada mais é do que todos os componentes que foram
utilizados para desenvolver o software. Dentre esses componentes podemos citar algumas
características, tais como:
Componente que permitem gravar os dados no banco de dados;
Componentes que permitem a visualização dos dados;
Componentes que permitem visualizar gráficos
Contudo, a utilização de componentes é muito útil e organizada, onde assim podem
ser usadas para obter melhor desempenho no desenvolvimento de um software.
__________________________
1 Vide Anexos – anexo II – Quadro de relação dos componentes. (p. 113)
59
7. Apresentação das Interfaces do Usuário
Figura 22 - Tela Splash
Fonte: Próprio Autor
Tela Splash é a tela inicial do software, contêm informações da empresa e descrições
do mesmo.
60
Figura 23 - Tela de Login
Fonte: Próprio Autor
Tela de Login onde por sua vez o usuário deverá informar o nome e senha para logar
no software.
Figura 24 - Tela de Menu Principal
Fonte: Próprio Autor
Tela de menu principal onde se encontra todas as funções do software, tais como:
estatísticas, adicionar novos usuários, utilitários entre outras funções.
61
Figura 25 - Amostra da Tela de Senhas Comuns e Preferenciais
Fonte: Próprio Autor
Esta tela é uma amostra de como será realizada a chamada das senhas, se encontra no
menu principal junto com outras funções.
Figura 26 - Tela de Atendentes
Fonte: Próprio Autor
Tela de Atendente, esta tela tem como finalidade realizar a manutenção de todos os
atendentes que irá utilizar o software.
62
Figura 27 - Tela de Manutenção de Atendimentos
Fonte: Próprio Autor
Tela de manutenção dos atendimentos, esta tela tem como finalidade realizar todas as
manutenções dos atendimentos, sendo, possível realizar alteração nos atendimentos como:
data, mesa, atendente entre outras funções.
Figura 28 - Tela de Manutenção de Mesas
Fonte: Próprio Autor
Tela de manutenção de mesas, esta tela tem como finalidade realizar a manutenção
de todas as mesas (guichês) do qual o software irá possuir.
63
Figura 29 - Tela de Manutenção de Senhas
Fonte: Próprio Autor
Tela de manutenção de senhas, esta tela tem como finalidade a alteração de senhas
caso o usuário desejar modificar.
Figura 30 - Tela de Manutenção de Mensagens
Fonte: Próprio Autor
Tela de manutenção de mensagens, esta tela tem como finalidade enviar todas as
mensagens ao menu principal e ao painel onde será por sua vez o painel será visto pelos
clientes.
64
Figura 31 - Tela do Painel de Atendimento
Fonte: Próprio Autor
Tela do painel de atendimentos, esta tela é umas das principais, pois irá controlar a
senhas, mesa e tipo de atendimento os clientes irão se direcionar. Ainda contendo as
mensagens em tempo real, data e hora.
Figura 32 - Tela de Lista de Usuários
Fonte: Próprio Autor
Tela onde poderá visualizar todos os usuários cadastros ativos do software.
65
Figura 33 - Tela do Gráfico Demonstrativo dos Atendimentos
Fonte: Próprio Autor
Esta tela tem como finalidade mostrar um gráfico demonstrativo dos atendimentos
durantes os meses do ano.
Figura 34 - Tela de Cadastro de Usuários
Fonte: Próprio Autor
Tela de registro de usuários tem como objetivo cadastrar e realizar a manutenção de
todos os usuários que irão utilizar o software.
66
Figura 35 - Tela de Sobre o Sistema
Fonte: Próprio Autor
Tela sobre o sistema tem como finalidade mostrar algumas informações relevantes
quanto ao software desenvolvido.
Figura 36 - Tela de Relatório dos Atendimentos
Fonte: Próprio Autor
67
Tela de relatório dos atendimentos, essa tela tem grande importância para o
administrador do software, pois, é através dela que poderá visualizar todos os atendimentos
e gerar os relatórios.
68
Conclusão
Conclui-se que, com o desenvolvimento deste projeto, foi possível adquirir novos
conhecimentos na área de programação e análise de sistemas. Diante disso, torna-se evidente
que a execução deste estudo foi de suma importância e muito gratificante não só pelo fato de
abranger novos conhecimentos, mas, também por ter propiciado uma visão mais ampla sobre
o mercado de trabalho e o que iremos enfrentar na contemporaneidade.
69
Referências Bibliográficas
BEAL, Adriana. Gestão Estratégica da Informação – Editora Atlas, SP, 2004.
BOENTE, Alfredo – Construindo Algoritmos Computacionais: Lógica de programação.
Rio de Janeiro: LTC, 2003.
CARBONI, Irenice de Fátima. Lógica de Programação. São Paulo: Thomson, 2003.
DAVIS, Willian S. Análise e Projeto de Sistemas Abordagem Estruturadas. LTC, 2001.
DUNCAN, Mackenzie. SHARKEY, Kent. Aprenda Visual Basic .NET em 21 Dias;
tradução: Aldir José Coelho Corrêa da Silva; revisão técnica: Marcos Jorge. São Paulo:
Person Education do Brasil, 2003.
GANE, Chris. SARSON, Trish. Análise Estruturadas de Sistemas; tradução Gerry
Edward Tompkins; Revisão técnica: Cesar Gonçalves Neto. Rio de Janeiro: LTC – Livros
Técnicos e Científicos Editora S.A, 2002.
LAGES, Guimarães. Algoritmos e Estruturas de Dados. Rio de Janeiro: LTC, 1994.
JUNIOR, Benjamim, Linguagens de Programação – Resumo Histórico, 2007. Fonte
Disponível em: http://obviousmag.org/archives/2007/09/linguagens_de_p.html - Acessado
em 14/12/2011.
OHATA, Michael; HAYNIE, Bob; NIELSEN, Per Vonge. Microsoft SQL Server 7.0:
Manual Prático. Daniel Vieira. Rio de Janeiro: Campus, 1999.
PEREIRA, Silvio do Lago. Estruturas de Dados Fundamentais: Conceitos Aplicações.
Érica, 2001.
SALITA, Walter Luiz Caram – Técnicas de Programação: Uma abordagem estruturada.
São Paulo: Makron Books, 1992.
70
SALVETTI, Dirce Douglas. BARBOSA, Lisbete Madsen. Algoritmos. São Paulo: Makron
Books, 2004.
STAREC, Cláudio (Org). Gestão Estratégica da Informação e Inteligência Competitiva
– Ed Saraiva, SP, 2005.
http://chasqueweb.ufrgs.br/~paul.fisher/apostilas/basdad/bd_mod_er.htm - Acesso em
28/09/2011.
71
ANEXO I
frmSplash Public Class frmSplash Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.AxShockwaveFlash1.LoadMovie(0, "C:\SysBank\swf\banner.swf") End Sub Private Sub TimerCarrega_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerCarrega.Tick Try Me.pbButoes.Value += 2 If Me.pbButoes.Value = 80 Then Me.btnEntrar.Visible = True Me.Linklbl.Visible = True End If Catch ex As Exception End Try End Sub Private Sub TimerFlash2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerFlash2.Tick Try Me.pbFlash2.Value += 2 If Me.pbFlash2.Value = 2 Then Me.AxShockwaveFlash1.LoadMovie(0, "C:\SysBank\swf\main.swf") End If Catch ex As Exception End Try End Sub Private Sub EncerrarSistema() Try Dim sair As Integer sair = MsgBox("Tem certeza que deseja encerrar a aplicação?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) If sair = vbYes Then If TimeOfDay >= "6:00" And TimeOfDay <= "11:59" Then MessageBox.Show("Tenha um Boa Dia!", "Encerrando...") End Else If TimeOfDay >= "12:00" And TimeOfDay <= "17:59" Then MessageBox.Show("Tenha uma Boa Tarde!", "Encerrando...")
72
End Else If TimeOfDay >= "18:00" And TimeOfDay <= "23:59" Then MessageBox.Show("Tenha uma Boa Noite!", "Encerrando...") End End If End If End If End If Catch ex As Exception End Try End Sub Private Sub Linklbl_LinkClicked_1(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles Linklbl.LinkClicked EncerrarSistema() End Sub Private Sub btnEntrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEntrar.Click Try Hide() frmLogin.Show() Catch ex As Exception End Try End Sub End Class
frmLogin Public Class frmLogin Dim SAPI Dim pergunta As String Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Try Me.Opacity += 0.03 If Me.Opacity > 1 Then Me.Timer1.Enabled = False End If Catch ex As Exception End Try End Sub Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimerLogin.Tick Try Me.pbLogin.Value += 1 If Me.pbLogin.Value <= 30 Then Me.lblMensagem.Text = "Carregando Bando de Dados..." End If If Me.pbLogin.Value <= 60 Then Me.lblMensagem.Text = "Inicializando Sistema GSPF..." End If
73
If Me.pbLogin.Value = 100 Then Me.lblMensagem.Text = "Concluído Sistema GSPF..." End If Catch End Try End Sub Private Sub frmLogin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: This line of code loads data into the 'DbSysBankDataSet.tbUsuarios' table. You can move, or remove it, as needed. Me.TbUsuariosTableAdapter.Fill(Me.DbSysBankDataSet.tbUsuarios) Me.TimerLogin.Enabled = True Me.lblAutenticacao.ForeColor = Color.Black Me.lblAutenticacao.Text = "Verificando Conectividade GSPF..." End Sub Private Sub btnEntrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEntrar.Click Try Me.TbUsuariosTableAdapter.BuscaNomeUsers(Me.DbSysBankDataSet.tbUsuarios, Me.txtNome.Text) If Me.txtNome.Text = "" Or Me.txtSenha.Text = "" Then MsgBox("Campos vazios no formulário!", MsgBoxStyle.Critical, "Erro") Me.txtNome.Focus() Else If Me.txtNome.Text <> Me.NomeTextBox.Text And Me.txtSenha.Text <> Me.SenhaTextBox.Text Then MsgBox("Verifique se digitou corretamente NOME e SENHA!", MsgBoxStyle.Critical, "Erro") Me.ErrorProvider.SetError(Me.txtNome, "Nome Errado") Me.ErrorProvider.SetError(Me.txtSenha, "Senha Errado") Me.txtNome.Clear() Me.txtSenha.Clear() Me.txtNome.Focus() Else If Me.txtNome.Text <> Me.NomeTextBox.Text Then MsgBox("Nome Incorreto!", MsgBoxStyle.Critical, "Erro") Me.ErrorProvider.SetError(Me.txtNome, "Nome Errado") Me.txtNome.Clear() Me.txtNome.Focus() Else If Me.txtSenha.Text <> Me.SenhaTextBox.Text Then MsgBox("Senha Incorreta para o Nome! " & Me.txtNome.Text, MsgBoxStyle.Critical, "Erro") Me.ErrorProvider.SetError(Me.txtSenha, "Senha Errada") Me.txtSenha.Clear() Me.txtSenha.Focus() Else If Me.txtNome.Text = Me.NomeTextBox.Text And Me.txtSenha.Text = Me.SenhaTextBox.Text Then 'SAPI = CreateObject("sapi.spvoice") 'SAPI.speak("Verificando o nome " + Me.txtNome.Text) frmMenu.StatuslblCodigo.Text = Me.CodigoTextBox.Text frmMenu.StatuslblNome.Text = Me.txtNome.Text frmAlteraSenha.txtNome.Text = Me.NomeTextBox.Text If (Me.TipoComboBox.Text = "A") Then frmMenu.StatuslblTipo.Text = "Administrador"
74
Else frmMenu.StatuslblTipo.Text = "Comum" frmMenu.GráficosToolStripMenuItem.Enabled = False frmMenu.RelatóriosDeAtenToolStripMenuItem.Enabled = False frmMenu.ListaDeUsuáriosToolStripMenuItem.Enabled = False frmMenu.UsuáriosToolStripMenuItem.Enabled = False frmMenu.AtendenteToolStripMenuItem.Enabled = False frmMenu.AtendimentosToolStripMenuItem.Enabled = False frmMenu.MesasToolStripMenuItem.Enabled = False frmMenu.btnAtendentes.Enabled = False frmMenu.btnUsuarios.Enabled = False frmMenu.btnMesas.Enabled = False frmMenu.btnAtendimentos.Enabled = False End If MsgBox("Olá " & Me.txtNome.Text & ", seja bem vindo e bom trabalho.", MsgBoxStyle.Information) Me.txtNome.Clear() Me.txtSenha.Clear() Hide() frmMenu.Show() End If End If End If End If End If Catch ex As Exception End Try End Sub Private Sub EncerrarSistema() Try Dim sair As Integer sair = MsgBox("Tem certeza que deseja encerrar a aplicação?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) If sair = vbYes Then If TimeOfDay >= "6:00" And TimeOfDay <= "11:59" Then MessageBox.Show("Tenha um Boa Dia!", "Encerrando...") End Else If TimeOfDay >= "12:00" And TimeOfDay <= "17:59" Then MessageBox.Show("Tenha uma Boa Tarde!", "Encerrando...") End Else If TimeOfDay >= "18:00" And TimeOfDay <= "23:59" Then MessageBox.Show("Tenha uma Boa Noite!", "Encerrando...") End End If End If End If End If Catch ex As Exception End Try End Sub
75
Private Sub btnSair_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSair.Click EncerrarSistema() End Sub End Class
frmMenu 'BIBLIOTECA ADICIONADA PARA QUE O VB POSSO FALAR 'Imports ACTIVEVOICEPROJECTLib Public Class frmMenu 'VARIAVEIS CRIADAS 'Dim voz As New DirectSS Dim SAPI Dim data As String Private Sub ÚsuariosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Try frmRegistroUser.ShowDialog() Catch ex As Exception End Try End Sub Private Sub BackupMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BackupMenuItem.Click Try frmBackUp.ShowDialog() Catch ex As Exception End Try End Sub Private Sub GráficosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GráficosToolStripMenuItem.Click Try frmGraficoAtend.ShowDialog() Catch ex As Exception End Try End Sub Private Sub PainelMenu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PainelMenu.Click Try frmPainel.Show() Catch ex As Exception End Try End Sub Private Sub btnAumenta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAumenta.Click Try timerMensagen.Interval = timerMensagen.Interval - 10 Catch End Try End Sub
76
Private Sub btnDiminui_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDiminui.Click Try timerMensagen.Interval = timerMensagen.Interval + 10 Catch End Try End Sub Private Sub timerMensagen_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timerMensagen.Tick Try Dim H As Integer H = lblMensagem.Location.X If H <= -1395 Then H = 886 End If H = H - 2 lblMensagem.Location = New System.Drawing.Point(H) Catch ex As Exception End Try End Sub Private Sub frmMenu_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing Try Dim sair As Integer sair = MsgBox("Tem certeza que deseja encerrar o programa? Todos os terminais serão fechados!", _ MsgBoxStyle.Question + MsgBoxStyle.YesNo) If sair = vbYes Then End ElseIf sair = vbNo Then e.Cancel = True End If Catch ex As Exception End Try End Sub Private Sub SairToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Try Dim sair As Integer sair = MsgBox("Tem certeza que deseja encerrar o programa? Todos os terminais serão fechados!", _ MsgBoxStyle.Question + MsgBoxStyle.YesNo) If sair = vbYes Then End End If Catch ex As Exception End Try End Sub
77
Private Sub frmMenu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try Me.StatuslblData.Text = Date.Today Me.EncerrarAtendimentoToolStripMenuItem.Enabled = False Catch ex As Exception End Try End Sub Private Sub timerHoras_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timerHoras.Tick Try Me.StatuslblHora.Text = TimeOfDay.ToLongTimeString Catch ex As Exception End Try End Sub Private Sub MensagemMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MensagemMenuItem.Click Try frmMensagens.ShowDialog() Catch ex As Exception End Try End Sub Private Sub guiche1C_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles guiche1C.CheckedChanged Try If Me.guiche1C.Checked = True Then Me.statusMesa.Text = "GUICHÊ 1 OCUPADO" Me.guiche2C.Enabled = False Me.guiche3C.Enabled = False Me.guiche4C.Enabled = False Me.guiche1P.Checked = True Me.guiche2P.Enabled = False Me.guiche3P.Enabled = False Me.guiche4P.Enabled = False End If Catch ex As Exception End Try End Sub Private Sub guiche2C_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles guiche2C.CheckedChanged Try If Me.guiche2C.Checked = True Then Me.statusMesa.Text = "GUICHÊ 2 OCUPADO" Me.guiche1C.Enabled = False Me.guiche3C.Enabled = False Me.guiche4C.Enabled = False Me.guiche2P.Checked = True Me.guiche1P.Enabled = False
78
Me.guiche3P.Enabled = False Me.guiche4P.Enabled = False End If Catch ex As Exception End Try End Sub Private Sub guiche3C_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles guiche3C.CheckedChanged Try If Me.guiche3C.Checked = True Then Me.statusMesa.Text = "GUICHÊ 3 OCUPADO" Me.guiche1C.Enabled = False Me.guiche2C.Enabled = False Me.guiche4C.Enabled = False Me.guiche3P.Checked = True Me.guiche1P.Enabled = False Me.guiche2P.Enabled = False Me.guiche4P.Enabled = False End If Catch ex As Exception End Try End Sub Private Sub guiche4C_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles guiche4C.CheckedChanged Try If Me.guiche4C.Checked = True Then Me.statusMesa.Text = "GUICHÊ 4 OCUPADO" Me.guiche1C.Enabled = False Me.guiche2C.Enabled = False Me.guiche3C.Enabled = False Me.guiche4P.Checked = True Me.guiche1P.Enabled = False Me.guiche2P.Enabled = False Me.guiche3P.Enabled = False End If Catch ex As Exception End Try End Sub Private Sub atualiza() Try Me.TbAtendimentoTableAdapter.Fill(Me.DbSysBankDataSet.tbAtendimento) Catch ex As Exception End Try End Sub Private Sub insertComum() Try
79
If Me.guiche1C.Checked = True Or Me.guiche1P.Checked = True Then Me.CodigoMesaTextBox.Text = "01" Else If Me.guiche2C.Checked = True Or Me.guiche2P.Checked = True Then Me.CodigoMesaTextBox.Text = "02" Else If Me.guiche3C.Checked = True Or Me.guiche3P.Checked = True Then Me.CodigoMesaTextBox.Text = "03" Else If Me.guiche4C.Checked = True Or Me.guiche4P.Checked = True Then Me.CodigoMesaTextBox.Text = "04" End If End If End If End If Me.CodigoAtendenteTextBox.Text = Me.StatuslblCodigo.Text Me.NomeAtendenteTextBox.Text = Me.StatuslblNome.Text Me.NumSenhaTextBox.Text = "C" & Me.lblSenhaComum.Text Me.DataAtendimentoDateTimePicker.Text = Date.Today Me.TbAtendimentoTableAdapter.InsertQuery(Me.CodigoAtendenteTextBox.Text, _ Me.NomeAtendenteTextBox.Text, _ Me.CodigoMesaTextBox.Text, _ Me.NumSenhaTextBox.Text, _ Me.DataAtendimentoDateTimePicker.Text) atualiza() Catch ex As Exception End Try End Sub Private Sub insertPreferencial() Try If Me.guiche1C.Checked = True Or Me.guiche1P.Checked = True Then Me.CodigoMesaTextBox.Text = "01" Else If Me.guiche2C.Checked = True Or Me.guiche2P.Checked = True Then Me.CodigoMesaTextBox.Text = "02" Else If Me.guiche3C.Checked = True Or Me.guiche3P.Checked = True Then Me.CodigoMesaTextBox.Text = "03" Else If Me.guiche4C.Checked = True Or Me.guiche4P.Checked = True Then Me.CodigoMesaTextBox.Text = "04" End If End If End If End If Me.CodigoAtendenteTextBox.Text = Me.StatuslblCodigo.Text Me.NomeAtendenteTextBox.Text = Me.StatuslblNome.Text Me.NumSenhaTextBox.Text = "P" & Me.lblSenhaComum.Text Me.DataAtendimentoDateTimePicker.Text = Date.Today
80
Me.TbAtendimentoTableAdapter.InsertQuery(Me.CodigoAtendenteTextBox.Text, _ Me.NomeAtendenteTextBox.Text, _ Me.CodigoMesaTextBox.Text, _ Me.NumSenhaTextBox.Text, _ Me.DataAtendimentoDateTimePicker.Text) atualiza() Catch ex As Exception End Try End Sub Private Sub Button_chamar_senhaC_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnChamarSenhaComum.Click 'ATENDIMENTO NORMAL Try If (guiche1C.Checked = False) And (guiche2C.Checked = False) And (guiche3C.Checked = False) And (guiche4C.Checked = False) Then MsgBox("Informe qual é o seu guiche para começar o atendimento!", MsgBoxStyle.Exclamation) Exit Sub End If If (guiche1C.Checked = True) Then guiche1P.Checked = True lblGuicheSenhaComum.Text = "0" & 1 frmPainel.lblMesaNormal.Text = lblGuicheSenhaComum.Text lblSenhaComum.Text += +1 frmPainel.lblSenhaNormal.Text = lblSenhaComum.Text If Not (frmPainel.lblSenhaNormal.Text = String.Empty) Then lblSenhaComum.Text = frmPainel.lblSenhaNormal.Text lblFichaComum.Text = lblSenhaComum.Text frmPainel.lblMesaNormal.Text = lblGuicheSenhaComum.Text insertComum() SAPI = CreateObject("sapi.spvoice") SAPI.Speak("Próxima senha normal" + frmPainel.lblSenhaNormal.Text + "no Guichê 1") End If End If If (guiche2C.Checked = True) Then guiche2P.Checked = False lblGuicheSenhaComum.Text = "0" & 2 frmPainel.lblMesaNormal.Text = lblGuicheSenhaComum.Text lblSenhaComum.Text += +1 frmPainel.lblSenhaNormal.Text = lblSenhaComum.Text If Not (frmPainel.lblSenhaNormal.Text = String.Empty) Then lblSenhaComum.Text = frmPainel.lblSenhaNormal.Text lblFichaComum.Text = lblSenhaComum.Text frmPainel.lblMesaNormal.Text = lblGuicheSenhaComum.Text insertComum()
81
SAPI = CreateObject("sapi.spvoice") SAPI.Speak("Próxima senha normal" + frmPainel.lblSenhaNormal.Text + "no Guichê 2") End If End If If (guiche3C.Checked = True) Then guiche3P.Checked = True lblGuicheSenhaComum.Text = "0" & 3 frmPainel.lblMesaNormal.Text = lblGuicheSenhaComum.Text lblSenhaComum.Text += +1 frmPainel.lblSenhaNormal.Text = lblSenhaComum.Text If Not (frmPainel.lblSenhaNormal.Text = String.Empty) Then lblSenhaComum.Text = frmPainel.lblSenhaNormal.Text lblFichaComum.Text = lblSenhaComum.Text frmPainel.lblMesaNormal.Text = lblGuicheSenhaComum.Text insertComum() SAPI = CreateObject("sapi.spvoice") SAPI.Speak("Próxima senha normal" + frmPainel.lblSenhaNormal.Text + "no Guichê 3") End If End If If (guiche4C.Checked = True) Then guiche4P.Checked = True lblGuicheSenhaComum.Text = "0" & 4 frmPainel.lblMesaNormal.Text = lblGuicheSenhaComum.Text lblSenhaComum.Text += +1 frmPainel.lblSenhaNormal.Text = lblSenhaComum.Text If Not (frmPainel.lblSenhaNormal.Text = String.Empty) Then lblSenhaComum.Text = frmPainel.lblSenhaNormal.Text lblFichaComum.Text = lblSenhaComum.Text frmPainel.lblMesaNormal.Text = lblGuicheSenhaComum.Text insertComum() SAPI = CreateObject("sapi.spvoice") SAPI.Speak("Próxima senha normal" + frmPainel.lblSenhaNormal.Text + "no Guichê 4") End If End If Catch End Try End Sub Private Sub btnChamarSenhaPreferencial_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnChamarSenhaPreferencial.Click 'ATENDIMENTO PREFERENCIAL Try If (guiche1C.Checked = False) And (guiche2C.Checked = False) And (guiche3C.Checked = False) And (guiche4C.Checked = False) Then
82
MsgBox("Informe qual é o seu guiche para começar o atendimento!", MsgBoxStyle.Exclamation) End If If (guiche1C.Checked = True) Then guiche1P.Checked = False lblGuicheSenhaPreferencial.Text = "0" & 1 frmPainel.lblMesaPreferencial.Text = lblGuicheSenhaPreferencial.Text lblSenhaPreferencial.Text += +1 frmPainel.lblSenhaPreferencial.Text = lblSenhaPreferencial.Text If Not (frmPainel.lblSenhaPreferencial.Text = String.Empty) Then lblSenhaPreferencial.Text = frmPainel.lblSenhaPreferencial.Text lblFichaPreferencial.Text = lblSenhaPreferencial.Text frmPainel.lblMesaPreferencial.Text = lblGuicheSenhaPreferencial.Text insertPreferencial() SAPI = CreateObject("sapi.spvoice") SAPI.Speak("Próxima senha normal" + frmPainel.lblSenhaPreferencial.Text + "no Guichê 1") End If ElseIf (guiche2C.Checked = True) Then guiche2P.Checked = False lblGuicheSenhaPreferencial.Text = "0" & 2 frmPainel.lblMesaPreferencial.Text = lblGuicheSenhaPreferencial.Text lblSenhaPreferencial.Text += +1 frmPainel.lblSenhaPreferencial.Text = lblSenhaPreferencial.Text If Not (frmPainel.lblSenhaPreferencial.Text = String.Empty) Then lblSenhaPreferencial.Text = frmPainel.lblSenhaPreferencial.Text lblFichaPreferencial.Text = lblSenhaPreferencial.Text frmPainel.lblMesaPreferencial.Text = lblGuicheSenhaPreferencial.Text insertPreferencial() SAPI = CreateObject("sapi.spvoice") SAPI.Speak("Próxima senha normal" + frmPainel.lblSenhaPreferencial.Text + "no Guichê 2") End If ElseIf (guiche3C.Checked = True) Then guiche3P.Checked = True lblGuicheSenhaPreferencial.Text = "0" & 3 frmPainel.lblMesaPreferencial.Text = lblGuicheSenhaPreferencial.Text lblSenhaPreferencial.Text += +1 frmPainel.lblSenhaPreferencial.Text = lblSenhaPreferencial.Text If Not (frmPainel.lblSenhaPreferencial.Text = String.Empty) Then lblSenhaPreferencial.Text = frmPainel.lblSenhaPreferencial.Text lblFichaPreferencial.Text = lblSenhaPreferencial.Text frmPainel.lblMesaPreferencial.Text = lblGuicheSenhaPreferencial.Text insertPreferencial()
83
SAPI = CreateObject("sapi.spvoice") SAPI.Speak("Próxima senha normal" + frmPainel.lblSenhaPreferencial.Text + "no Guichê 3") End If ElseIf (guiche4C.Checked = True) Then guiche4P.Checked = True lblGuicheSenhaPreferencial.Text = "0" & 4 frmPainel.lblMesaPreferencial.Text = lblGuicheSenhaPreferencial.Text lblSenhaPreferencial.Text += +1 frmPainel.lblSenhaPreferencial.Text = lblSenhaPreferencial.Text If Not (frmPainel.lblSenhaPreferencial.Text = String.Empty) Then lblSenhaPreferencial.Text = frmPainel.lblSenhaPreferencial.Text lblFichaPreferencial.Text = lblSenhaPreferencial.Text frmPainel.lblMesaPreferencial.Text = lblGuicheSenhaPreferencial.Text insertPreferencial() SAPI = CreateObject("sapi.spvoice") SAPI.Speak("Próxima senha normal" + frmPainel.lblSenhaPreferencial.Text + "no Guichê 4") End If End If Catch End Try End Sub Private Sub ConfigurarHorasToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ConfigurarHorasToolStripMenuItem.Click Try Shell("rundll32.exe shell32.dll, Control_RunDLL timedate.cpl") Catch ex As Exception End Try End Sub Private Sub BlocoDeNotasToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BlocoDeNotasToolStripMenuItem.Click Try Shell("notepad.exe", vbNormalFocus) Catch ex As Exception End Try End Sub Private Sub AtendimentoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AtendimentoToolStripMenuItem.Click Try frmAtendimento.ShowDialog() Catch ex As Exception End Try End Sub
84
Private Sub RelatóriosDeAtenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RelatóriosDeAtenToolStripMenuItem.Click Try Using frmRelAtendimentos As New frmRelAtendimentos frmRelAtendimentos.ShowDialog() End Using Catch ex As Exception End Try End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAtendimentos.Click Try frmAtendimento.ShowDialog() Catch ex As Exception End Try End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMensagens.Click Try frmMensagens.ShowDialog() Catch ex As Exception End Try End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAtendentes.Click Try frmAtendente.ShowDialog() Catch ex As Exception End Try End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMesas.Click Try frmMesas.ShowDialog() Catch ex As Exception End Try End Sub Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUsuarios.Click Try frmRegistroUser.ShowDialog() Catch ex As Exception End Try End Sub Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDateTime.Click Try Shell("rundll32.exe shell32.dll, Control_RunDLL timedate.cpl")
85
Catch ex As Exception End Try End Sub Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPainel.Click Try frmPainel.ShowDialog() Catch ex As Exception End Try End Sub Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSair.Click Try Dim sair As Integer sair = MsgBox("Tem certeza que deseja encerrar o programa? Todos os terminais serão fechados!", _ MsgBoxStyle.Question + MsgBoxStyle.YesNo, "Atenção") If sair = vbYes Then End End If Catch ex As Exception End Try End Sub Private Sub IniciarAtendimentoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles IniciarAtendimentoToolStripMenuItem.Click Try MsgBox("Verifique se a DATA e HORAS estão corretas. Caso não estiver, por favor atualiza no guia 'Utilitários - Configurar Horas'.", MsgBoxStyle.Information, "Atenção") Me.guiche1C.Enabled = True Me.guiche2C.Enabled = True Me.guiche3C.Enabled = True Me.guiche4C.Enabled = True Me.btnChamarSenhaComum.Enabled = True Me.btnChamarSenhaPreferencial.Enabled = True Me.guiche3P.Enabled = True Me.guiche1P.Enabled = True Me.guiche2P.Enabled = True Me.guiche4P.Enabled = True IniciarAtendimentoToolStripMenuItem.Enabled = False Me.EncerrarAtendimentoToolStripMenuItem.Enabled = True Catch ex As Exception End Try End Sub
86
Private Sub EncerrarAtendimentoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EncerrarAtendimentoToolStripMenuItem.Click Try MsgBox("Atendimento Encerrado.", MsgBoxStyle.Information) Me.guiche1C.Enabled = False Me.guiche2C.Enabled = False Me.guiche3C.Enabled = False Me.guiche4C.Enabled = False Me.guiche1C.Checked = False Me.guiche2C.Checked = False Me.guiche3C.Checked = False Me.guiche4C.Checked = False Me.btnChamarSenhaComum.Enabled = False Me.btnChamarSenhaPreferencial.Enabled = False Me.guiche3P.Enabled = False Me.guiche1P.Enabled = False Me.guiche2P.Enabled = False Me.guiche4P.Enabled = False Me.guiche3P.Checked = False Me.guiche1P.Checked = False Me.guiche2P.Checked = False Me.guiche4P.Checked = False Me.lblFichaComum.Text = "000" Me.lblFichaPreferencial.Text = "000" Me.lblGuicheSenhaComum.Text = "00" Me.lblGuicheSenhaPreferencial.Text = "00" Me.lblSenhaComum.Text = "000" Me.lblSenhaPreferencial.Text = "000" frmPainel.lblMesaNormal.Text = "00" frmPainel.lblMesaPreferencial.Text = "00" frmPainel.lblSenhaNormal.Text = "0000" frmPainel.lblSenhaPreferencial.Text = "0000" Me.EncerrarAtendimentoToolStripMenuItem.Enabled = False IniciarAtendimentoToolStripMenuItem.Enabled = True Catch ex As Exception End Try End Sub Private Sub SistemaMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SistemaMenuItem.Click Try frmSobreSistema.ShowDialog() Catch ex As Exception End Try End Sub Private Sub VersãoDoWindowsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VersãoDoWindowsToolStripMenuItem.Click Try
87
Process.Start("winver.exe") Catch End Try End Sub Private Sub SiteMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SiteMenuItem.Click Try Dim visita As Integer visita = MsgBox("Certeza que Deseja Abrir WebSite da Empresa?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) If visita = vbYes Then System.Diagnostics.Process.Start("http://henriks-si.blogspot.com/") End If Catch ex As Exception End Try End Sub Private Sub UsuáriosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles UsuáriosToolStripMenuItem.Click Try frmRegistroUser.ShowDialog() Catch ex As Exception End Try End Sub Private Sub AtendenteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AtendenteToolStripMenuItem.Click Try frmAtendente.ShowDialog() Catch ex As Exception End Try End Sub Private Sub AtendimentosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AtendimentosToolStripMenuItem.Click Try frmAtendimento.ShowDialog() Catch ex As Exception End Try End Sub Private Sub MesasToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MesasToolStripMenuItem.Click Try frmMesas.ShowDialog() Catch ex As Exception End Try End Sub Private Sub AlterarMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AlterarMenuItem.Click Try Dim sair As Integer sair = MsgBox("Tem certeza que deseja alterar de usuário?", _ MsgBoxStyle.Question + MsgBoxStyle.YesNo, "Atenção")
88
If sair = vbYes Then Me.Hide() frmLogin.ShowDialog() End If Catch ex As Exception End Try End Sub Private Sub AlterarSenhaMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AlterarSenhaMenuItem.Click Try frmAlteraSenha.ShowDialog() Catch ex As Exception End Try End Sub Private Sub ListaDeUsuáriosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListaDeUsuáriosToolStripMenuItem.Click Try frmListaUsuarios.ShowDialog() Catch ex As Exception End Try End Sub End Class
frmBackUp Imports System.IO Public Class frmBackUp Private Sub btnRealizarBackUp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRealizarBackUp.Click Try Dim SaveDialog As New SaveFileDialog SaveDialog.Filter = "Arquivo BackUp|*.accdb" SaveDialog.Title = "Selecione o backup de destino" If SaveDialog.ShowDialog = Windows.Forms.DialogResult.Cancel Then MsgBox("Operação de Backup abortada pelo usuário", MsgBoxStyle.Information, "BackUp Não gerado") Exit Sub Else If File.Exists(SaveDialog.FileName) Then File.Delete(SaveDialog.FileName) End If File.Copy("C:\SysBank\Datas\dbSysBank.accdb", SaveDialog.FileName) Dim Writer As System.IO.TextWriter Writer = New StreamWriter(SaveDialog.FileName & ".txt", FileMode.Create) Writer.WriteLine(SaveDialog.FileName) Writer.Flush() Writer.Close() MsgBox("Backup criado com sucesso.", MsgBoxStyle.Information, "BackUp Gerado") End If Catch ex As Exception End Try End Sub
89
Private Sub btnRestaurarBackUp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRestaurarBackUp.Click Try Dim OpenDialog As New OpenFileDialog OpenDialog.Title = "Selecione o local para acessar o backup" OpenDialog.Filter = "Arquivo Backup|*.accdb" If OpenDialog.ShowDialog = Windows.Forms.DialogResult.Cancel Then MsgBox("Acesso ao backup abortado", MsgBoxStyle.Exclamation, "BackUp não realizado") Exit Sub Else If File.Exists("C:\SysBank\Datas\dbSysBank.accdb") Then File.Delete("C:\SysBank\Datas\dbSysBank.accdb") File.Delete(OpenDialog.FileName & ".txt") End If File.Move(OpenDialog.FileName, "C:\SysBank\Datas\dbSysBank.accdb") MsgBox("Backup Restaurado. Novas alterações terão efeito depois de reiniciar o aplicativo. O programa será encerrado agora.", MsgBoxStyle.Exclamation, "BackUp Acessado. Reinicar Aplicativo") Me.Close() End If Catch ex As Exception End Try End Sub End Class
frmAtendente Public Class frmAtendente Private Sub atualiza() Try Me.TbAtendenteTableAdapter.Fill(Me.DbSysBankDataSet.tbAtendente) Catch ex As Exception End Try End Sub Private Sub frmAtendente_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Try Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False enabledfalse() Me.atualiza() Catch ex As Exception End Try End Sub Private Sub frmAtendente_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load atualiza() End Sub
90
Private Sub limpacampos() Try Me.CodigoAtendenteTextBox.Clear() Me.NomeAtendenteTextBox.Clear() Me.NomeAtendenteTextBox.Focus() Catch ex As Exception End Try End Sub Private Sub enabledtrue() Try Me.NomeAtendenteTextBox.Enabled = True Catch ex As Exception End Try End Sub Private Sub enabledfalse() Try Me.NomeAtendenteTextBox.Enabled = False Catch ex As Exception End Try End Sub Private Sub btnNovo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNovo.Click Try limpacampos() enabledtrue() Me.btnNovo.Enabled = False Me.btnGravar.Enabled = True Me.btnAlterar.Enabled = False Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = False Me.btnVoltar.Enabled = True Catch ex As Exception End Try End Sub Private Sub btnGravar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGravar.Click Try If Me.NomeAtendenteTextBox.Text = "" Then MsgBox("Informe o nome do atendente!", MsgBoxStyle.Information, "Atenção") Else Me.TbAtendenteTableAdapter.InsertQuery(Me.NomeAtendenteTextBox.Text) MsgBox("Atendente Inserido com Sucesso.", MsgBoxStyle.Information) atualiza() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False enabledfalse()
91
End If Catch ex As Exception End Try End Sub Private Sub btnAlterar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAlterar.Click Try Me.btnNovo.Enabled = False Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = False Me.btnInserir.Enabled = True Me.btnExcluir.Enabled = False Me.btnVoltar.Enabled = True enabledtrue() Catch ex As Exception End Try End Sub Private Sub btnInserir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInserir.Click Try If Me.NomeAtendenteTextBox.Text = "" Then MsgBox("Informe o nome do antendente!", MsgBoxStyle.Information, "Atenção") Else Me.TbAtendenteTableAdapter.UpdateQuery(Me.NomeAtendenteTextBox.Text, Me.CodigoAtendenteTextBox.Text) MsgBox("Atendente Alterado com Sucesso.", MsgBoxStyle.Information) atualiza() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False enabledfalse() End If Catch ex As Exception End Try End Sub Private Sub btnExcluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExcluir.Click Try Dim del As Integer del = MsgBox("Tem certeza que desja excluir o " & Me.NomeAtendenteTextBox.Text & "?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) If del = vbYes Then Me.TbAtendenteTableAdapter.DeleteQuery(Me.CodigoAtendenteTextBox.Text) MsgBox("Atendente Excluído com Sucesso.", MsgBoxStyle.Information)
92
atualiza() End If Catch ex As Exception End Try End Sub Private Sub btnVoltar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVoltar.Click Try Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False enabledfalse() Me.atualiza() Catch ex As Exception End Try End Sub End Class
frmAtendimento Public Class frmAtendimento Private Sub atualiza() Try Me.TbAtendimentoTableAdapter.Fill(Me.DbSysBankDataSet.tbAtendimento) Catch ex As Exception End Try End Sub Private Sub frmAtendimento_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Try atualiza() enabledfalse() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False Catch ex As Exception End Try End Sub Private Sub frmAtendimento_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: This line of code loads data into the 'DbSysBankDataSet.tbAtendimento' table. You can move, or remove it, as needed. atualiza() End Sub
93
Private Sub limpacampos() Try Me.CodigoAtendimentoTextBox.Clear() Me.CodigoAtendenteTextBox.Clear() Me.NomeAtendenteTextBox.Clear() Me.CodigoMesaTextBox.Clear() Me.NumSenhaTextBox.Clear() Me.DataAtendimentoDateTimePicker.Text = Date.Today Catch ex As Exception End Try End Sub Private Sub enabledtrue() Try Me.CodigoAtendenteTextBox.Enabled = True Me.NomeAtendenteTextBox.Enabled = True Me.CodigoMesaTextBox.Enabled = True Me.NumSenhaTextBox.Enabled = True Me.DataAtendimentoDateTimePicker.Enabled = True Catch ex As Exception End Try End Sub Private Sub enabledfalse() Try Me.CodigoAtendenteTextBox.Enabled = False Me.NomeAtendenteTextBox.Enabled = False Me.CodigoMesaTextBox.Enabled = False Me.NumSenhaTextBox.Enabled = False Me.DataAtendimentoDateTimePicker.Enabled = False Catch ex As Exception End Try End Sub Sub insert_() Try Me.DataAtendimentoDateTimePicker.Text = Date.Today Me.TbAtendimentoTableAdapter.InsertQuery(Me.CodigoAtendenteTextBox.Text, _ Me.NomeAtendenteTextBox.Text, _ Me.CodigoMesaTextBox.Text, _ Me.NumSenhaTextBox.Text, _ Me.DataAtendimentoDateTimePicker.Text) MsgBox("Atendimento incluido com sucesso") atualiza() Catch ex As Exception End Try End Sub Private Sub btnNovo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNovo.Click Try limpacampos() enabledtrue()
94
Me.btnNovo.Enabled = False Me.btnGravar.Enabled = True Me.btnAlterar.Enabled = False Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = False Me.btnVoltar.Enabled = True Catch ex As Exception End Try End Sub Private Sub btnGravar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGravar.Click Try If Me.CodigoAtendenteTextBox.Text = "" Or Me.NomeAtendenteTextBox.Text = "" Or Me.NumSenhaTextBox.Text = "" Then MsgBox("Verifique os campos.", MsgBoxStyle.Critical) Else Me.TbAtendimentoTableAdapter.InsertQuery(Me.CodigoAtendenteTextBox.Text, _ Me.NomeAtendenteTextBox.Text, _ Me.CodigoMesaTextBox.Text, _ Me.NumSenhaTextBox.Text, _ Me.DataAtendimentoDateTimePicker.Text) MsgBox("Um novo atendimento inserido com sucesso.", MsgBoxStyle.Information) Me.atualiza() enabledfalse() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False End If Catch ex As Exception End Try End Sub Private Sub btnAlterar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAlterar.Click Try enabledtrue() Me.btnNovo.Enabled = False Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = False Me.btnInserir.Enabled = True Me.btnExcluir.Enabled = False Me.btnVoltar.Enabled = True Catch ex As Exception End Try End Sub
95
Private Sub btnInserir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInserir.Click Try If Me.CodigoAtendenteTextBox.Text = "" Or Me.NomeAtendenteTextBox.Text = "" Or Me.NumSenhaTextBox.Text = "" Then MsgBox("Verifique os campos.", MsgBoxStyle.Critical) Else Me.TbAtendimentoTableAdapter.UpdateQuery(Me.CodigoAtendenteTextBox.Text, _ Me.NomeAtendenteTextBox.Text, _ Me.CodigoMesaTextBox.Text, _ Me.NumSenhaTextBox.Text, _ Me.DataAtendimentoDateTimePicker.Text, _ Me.CodigoAtendimentoTextBox.Text) MsgBox("Atendimento alterado com sucesso.", MsgBoxStyle.Information) Me.atualiza() enabledfalse() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False End If Catch ex As Exception End Try End Sub Private Sub btnExcluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExcluir.Click Try Dim exc As Integer exc = MsgBox("Tem certeza que deseja excluir o atendimento do atendente " + Me.NomeAtendenteTextBox.Text + "?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) If exc = vbYes Then Me.TbAtendimentoTableAdapter.DeleteQuery(Me.CodigoAtendimentoTextBox.Text) MsgBox("Oatendimento foi excluído com sucesso.", MsgBoxStyle.Information) Me.atualiza() End If Catch ex As Exception End Try End Sub Private Sub btnVoltar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVoltar.Click Try atualiza() enabledfalse() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True
96
Me.btnVoltar.Enabled = False Catch ex As Exception End Try End Sub End Class
frmGraficoAtend Public Class frmGraficoAtend Private Sub frmGraficoAtend_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: This line of code loads data into the 'DbSysBankDataSet.tbAtendimento' table. You can move, or remove it, as needed. Try Me.TbAtendimentoTableAdapter.Fill(Me.DbSysBankDataSet.tbAtendimento) Catch ex As Exception End Try End Sub End Class
frmMensagens Public Class frmMensagens Dim H, V As Integer Private Sub atualiza() Try Me.TbMensagensTableAdapter.Fill(Me.DbSysBankDataSet.tbMensagens) Catch ex As Exception End Try End Sub Private Sub frmMensagens_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: This line of code loads data into the 'DbSysBankDataSet.tbMensagens' table. You can move, or remove it, as needed. atualiza() End Sub Private Sub txtMP_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtMP.TextChanged Try 'COMANDO SERVE PARA QUE QUANDO O LABEL_255 CHEGAR A "0" NÃO PODERÁ SER INSERIDO NENHUM CARACTERE MAIS If (Label_255.Text <> 0) Then Label_255.Text = 255 - Len(txtMP.Text) If (Label_255.Text = 0) Then MsgBox("O número de caracteres excedeu!", MsgBoxStyle.Exclamation, "Sys Bank") End If End If Catch ex As Exception End Try End Sub
97
Private Sub txtMmenuP_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtMmenuP.TextChanged Try If (Label_255.Text <> 0) Then Label_255.Text = 255 - Len(txtMmenuP.Text) If (Label_255.Text = 0) Then MsgBox("O número de caracteres excedeu!", MsgBoxStyle.Exclamation, "Sys Bank") End If End If Catch ex As Exception End Try End Sub Private Sub txtMPA_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtMPA.TextChanged Try If (Label_255.Text <> 0) Then Label_255.Text = 255 - Len(txtMPA.Text) If (Label_255.Text = 0) Then MsgBox("O número de caracteres excedeu!", MsgBoxStyle.Exclamation, "Sys Bank") End If End If Catch ex As Exception End Try End Sub Private Sub btnContador_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnContador.Click 'COMANDO SERVE PARA REINICIAR O LABEL_255 Me.Label_255.Text = 255 End Sub Private Sub btnLimpa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLimpa.Click Try 'COMANDO SERVE PARA LIMPAR O QUE O USUARIO ESCREVEU If (TabPage1.CausesValidation = True) Then txtMP.Clear() txtMP.Focus() End If If (TabPage2.CausesValidation = True) Then txtMmenuP.Clear() txtMmenuP.Focus() End If If (TabPage3.CausesValidation = True) Then txtMPA.Clear() txtMPA.Focus() End If Catch ex As Exception End Try End Sub Private Sub Button_altera_pela_tabela_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_altera_pela_tabela.Click
98
'PROCEDIMENTO SERVE PARA ALTERAR UMA MENSAGEM DA PELA TABELA E DEPOIS ATUALIZAR Dim sistema As Integer 'codigo = Me.ID_MENSAGEMTextBox.Text 'mensagem = Me.NOME_MENSAGEMTextBox.Text 'Me.QueriesTableAdapter1.ALTERA_MENSAGEM(codigo, mensagem) Try sistema = InputBox("Informe o código para alteração sendo: Código '1' para enviar para painel,código '2' para enviar para o sistema e código 3 para enviar para o painel e para o sistema.") If (sistema = 1) Then H = frmMenu.lblMensagem.Location.X If H <= -66 Then H = 886 End If V = frmMenu.lblMensagem.Location.Y H = H - 1 frmPainel.lblMensagemPainel.Text = Me.NomeMsgTextBox.Text frmPainel.lblMensagemPainel.Location = New System.Drawing.Point(H, V) MsgBox("Mesagem enviada ao sistema com sucesso!", MsgBoxStyle.Exclamation) atualiza() End If Catch End Try 'PROCEDIMENTO PARA ENVIAR PARA O PAINEL E PARA O SISTEMA Try If (sistema = 2) Then H = frmMenu.lblMensagem.Location.X If H <= -932 Then H = 1051 End If V = frmMenu.lblMensagem.Location.Y H = H - 1 frmMenu.lblMensagem.Text = Me.NomeMsgTextBox.Text frmPainel.lblMensagemPainel.Text = Me.NomeMsgTextBox.Text frmMenu.lblMensagem.Location = New System.Drawing.Point(H, V) MsgBox("Mensagem enviada ao sistema com sucesso!", MsgBoxStyle.Exclamation) End If Catch End Try 'PROCEDIMENTO PARA ENVIAR PARA O PAINEL E PARA O SISTEMA Try
99
If (sistema = 3) Then H = frmMenu.lblMensagem.Location.X If H <= -932 Then H = 1051 End If V = frmMenu.lblMensagem.Location.Y H = H - 1 frmMenu.lblMensagem.Text = Me.NomeMsgTextBox.Text frmPainel.lblMensagemPainel.Text = Me.NomeMsgTextBox.Text frmMenu.lblMensagem.Location = New System.Drawing.Point(H, V) MsgBox("Mensagem enviada ao sistema com sucesso e ao painel!", MsgBoxStyle.Exclamation) End If Catch End Try 'PROCEDIMENTO PARA QUANDO OS NUMEROS FOREM DIFERENTES DE 1 E 2 E 3 Try If (sistema <> 1) And (sistema <> 2) And (sistema <> 3) Then MsgBox("Os códigos Disponivéis são: '1' - '2' - '3'!", MsgBoxStyle.Exclamation) End If Catch End Try End Sub Private Sub Button_conf_alte_msg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_conf_alte_msg.Click Try Dim H, V As Integer 'procedimento para enviar mensagem para a tela do programa If (Radio_painel.Checked = True) Then H = frmPainel.lblMensagemPainel.Location.X If (txtMP.Text = "") Then MsgBox("Atenção, informe uma mensagem para alteração!", MsgBoxStyle.Exclamation) ElseIf (txtMP.Text <> "") Then If H <= -932 Then H = 1051 End If V = frmPainel.lblMensagemPainel.Location.Y H = H - 1 frmPainel.lblMensagemPainel.Text = txtMP.Text frmPainel.lblMensagemPainel.Location = New System.Drawing.Point(H, V) MsgBox("Mensagem altera e enviada ao sistema com sucesso!", MsgBoxStyle.Information) ElseIf (Radio_painel.Checked = False) Then
100
MsgBox("Marque uma opção para onde irá enviar a mensagem!", MsgBoxStyle.Information) End If End If 'procedimento para enviar para o sistema dentro do programa If (Radio_sistema.Checked = True) Then H = frmMenu.lblMensagem.Location.X If (txtMmenuP.Text = "") Then MsgBox("Atenção, informe uma mensagem para alteração!", MsgBoxStyle.Exclamation, "Sys Bank") ElseIf (txtMmenuP.Text <> "") Then If H <= -66 Then H = 886 End If V = frmMenu.lblMensagem.Location.Y H = H - 1 frmMenu.lblMensagem.Text = txtMmenuP.Text frmMenu.lblMensagem.Location = New System.Drawing.Point(H, V) MsgBox("Mensagem altera e enviada ao sistema com sucesso!", MsgBoxStyle.Information, "Sys Bank") ElseIf (Radio_sistema.Checked = False) Then MsgBox("Marque uma opção para onde irá enviar a mensagem!", MsgBoxStyle.Information, "Sys Bank") End If End If 'procedimento para enviar para o tela e para o sistema If (Radio_ambos.Checked = True) Then H = frmMenu.lblMensagem.Location.X If (txtMPA.Text = "") Then MsgBox("Atenção, informe uma mensagem para alteração!", MsgBoxStyle.Exclamation, "Sys Bank") ElseIf (txtMPA.Text <> "") Then If H <= -932 Then H = 1051 End If V = frmMenu.lblMensagem.Location.Y H = H - 1 frmMenu.lblMensagem.Text = txtMPA.Text frmPainel.lblMensagemPainel.Text = txtMPA.Text frmMenu.lblMensagem.Location = New System.Drawing.Point(H, V) frmPainel.lblMensagemPainel.Location = New System.Drawing.Point(H, V) MsgBox("Mensagem altera e enviada ao sistema com sucesso!", MsgBoxStyle.Information, "Sys Bank") ElseIf (Radio_ambos.Checked = False) Then
101
MsgBox("Marque uma opção para onde irá enviar a mensagem!", MsgBoxStyle.Information, "Sys Bank") End If End If Catch ex As Exception End Try End Sub Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged If Me.CheckBox1.Checked = True Then Me.TabControl1.Enabled = False Else Me.TabControl1.Enabled = True End If End Sub Private Sub LIMPACAMPOS() Try Me.CodMsgTextBox.Clear() Me.NomeMsgTextBox.Clear() Me.NomeMsgTextBox.Focus() Catch ex As Exception End Try End Sub Private Sub enabledtrue() Try Me.NomeMsgTextBox.Enabled = True Catch ex As Exception End Try End Sub Private Sub enabledfalse() Try Me.NomeMsgTextBox.Enabled = False Catch ex As Exception End Try End Sub Private Sub btnNovo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNovo.Click Try LIMPACAMPOS() ENABLEDTRUE() Me.btnNovo.Enabled = False Me.btnGravar.Enabled = True Me.btnAlterar.Enabled = False Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = False Me.btnCancelar.Enabled = True Catch ex As Exception End Try End Sub Private Sub btnGravar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGravar.Click
102
Try If Me.NomeMsgTextBox.Text = "" Then MsgBox("Informe o nome da mensagem!", MsgBoxStyle.Information, "Atenção") Else Me.TbMensagensTableAdapter.InsertQuery(Me.NomeMsgTextBox.Text) MsgBox("Mensagem Inserida com Sucesso", MsgBoxStyle.Information) atualiza() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnCancelar.Enabled = False enabledfalse() End If Catch ex As Exception End Try End Sub Private Sub btnAlterar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAlterar.Click Try Me.btnNovo.Enabled = False Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = False Me.btnInserir.Enabled = True Me.btnExcluir.Enabled = False Me.btnCancelar.Enabled = True enabledtrue() Catch ex As Exception End Try End Sub Private Sub btnInserir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInserir.Click Try If Me.NomeMsgTextBox.Text = "" Then MsgBox("Informe o nome da mensagem!", MsgBoxStyle.Information, "Atenção") Else Me.TbMensagensTableAdapter.UpdateQuery(Me.NomeMsgTextBox.Text, Me.CodMsgTextBox.Text) MsgBox("Mensagem Alterada com Sucesso", MsgBoxStyle.Information) atualiza() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnCancelar.Enabled = False enabledfalse()
103
End If Catch ex As Exception End Try End Sub Private Sub btnExcluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExcluir.Click Try Dim del As Integer del = MsgBox("Tem certeza que desja excluir a mensagem selecionada?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) If del = vbYes Then Me.TbMensagensTableAdapter.DeleteQuery(Me.CodMsgTextBox.Text) MsgBox("Mensagem Excluída com Sucesso", MsgBoxStyle.Information) atualiza() End If Catch ex As Exception End Try End Sub Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click Try Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnCancelar.Enabled = False enabledfalse() Me.atualiza() Catch ex As Exception End Try End Sub Private Sub frmMensagens_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LostFocus Try Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnCancelar.Enabled = False enabledfalse() Me.atualiza() Catch ex As Exception End Try End Sub
104
End Class
frmMesas Public Class frmMesas Private Sub atualiza() Try Me.TbMesaTableAdapter.Fill(Me.DbSysBankDataSet.tbMesa) Catch ex As Exception End Try End Sub Private Sub limpacampos() Try Me.CodigoMesaTextBox.Clear() Me.CodigoAtendenteTextBox.Clear() Me.NomeAtendenteTextBox.Clear() Me.CodigoAtendenteTextBox.Focus() Catch ex As Exception End Try End Sub Private Sub enabledtrue() Try Me.CodigoAtendenteTextBox.Enabled = True Me.NomeAtendenteTextBox.Enabled = True Catch ex As Exception End Try End Sub Private Sub enabledfalse() Try Me.CodigoAtendenteTextBox.Enabled = False Me.NomeAtendenteTextBox.Enabled = False Catch ex As Exception End Try End Sub Private Sub frmMesas_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Try Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False enabledfalse() Me.atualiza() Catch ex As Exception End Try End Sub Private Sub frmMesas_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
105
atualiza() End Sub Private Sub btnNovo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNovo.Click Try limpacampos() enabledtrue() Me.btnNovo.Enabled = False Me.btnGravar.Enabled = True Me.btnAlterar.Enabled = False Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = False Me.btnVoltar.Enabled = True Catch ex As Exception End Try End Sub Private Sub btnGravar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGravar.Click Try If Me.NomeAtendenteTextBox.Text = "" Then MsgBox("Informe corretamente os dados!", MsgBoxStyle.Information, "Atenção") Else Me.TbMesaTableAdapter.InsertQuery(Me.CodigoAtendenteTextBox.Text, Me.NomeAtendenteTextBox.Text) MsgBox("Mesa Inserida com Sucesso.", MsgBoxStyle.Information) atualiza() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False enabledfalse() End If Catch ex As Exception End Try End Sub Private Sub btnAlterar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAlterar.Click Try Me.btnNovo.Enabled = False Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = False Me.btnInserir.Enabled = True Me.btnExcluir.Enabled = False Me.btnVoltar.Enabled = True enabledtrue() Catch ex As Exception End Try End Sub
106
Private Sub btnInserir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInserir.Click Try If Me.NomeAtendenteTextBox.Text = "" Then MsgBox("Informe corretamente os dados!", MsgBoxStyle.Information, "Atenção") Else Me.TbMesaTableAdapter.UpdateQuery(Me.CodigoAtendenteTextBox.Text, Me.NomeAtendenteTextBox.Text, Me.CodigoMesaTextBox.Text) MsgBox("Mesa Alterada com Sucesso.", MsgBoxStyle.Information) atualiza() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False enabledfalse() End If Catch ex As Exception End Try End Sub Private Sub btnExcluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExcluir.Click Try Dim del As Integer del = MsgBox("Tem certeza que desja excluir o " & Me.CodigoMesaTextBox.Text & "?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) If del = vbYes Then Me.TbMesaTableAdapter.DeleteQuery(Me.CodigoAtendenteTextBox.Text) MsgBox("Mesa Excluída com Sucesso.", MsgBoxStyle.Information) atualiza() End If Catch ex As Exception End Try End Sub Private Sub btnVoltar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVoltar.Click Try Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnVoltar.Enabled = False enabledfalse() Me.atualiza() Catch ex As Exception
107
End Try End Sub End Class
frmPainel Public Class frmPainel Private Sub Timer_letra_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer_letra.Tick Try Dim H, V As Integer H = Me.lblMensagemPainel.Location.X If H <= -1395 Then H = 13 End If V = Me.lblMensagemPainel.Location.Y() H = H - 1 Me.lblMensagemPainel.Location = New System.Drawing.Point(H, V) Catch ex As Exception End Try End Sub Private Sub Timer_hora_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer_hora.Tick Try Me.lblHoraPainel.Text = TimeOfDay.ToLongTimeString Catch ex As Exception End Try End Sub Private Sub frmPainel_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load lblDataPainel.Text = Date.Today If Keys.A Then Hide() End If End Sub End Class
frmRelAtendimentos Public Class frmRelAtendimentos Private Sub frmRelAtendimentos_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Try Me.ReportViewer1.Clear() Me.txtBusca.Clear() Catch ex As Exception End Try End Sub Private Sub frmRelAtendimentos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: This line of code loads data into the 'dbSysBankDataSet.tbAtendimento' table. You can move, or remove it, as needed.
108
Me.tbAtendimentoTableAdapter.Fill(Me.dbSysBankDataSet.tbAtendimento) 'TODO: This line of code loads data into the 'dbSysBankDataSet.tbAtendimento' table. You can move, or remove it, as needed. End Sub Private Sub btnFiltrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFiltrar.Click Try If Me.cbBusca.Text = "Nome" Then Me.tbAtendimentoTableAdapter.BuscaNomeAtendente(Me.dbSysBankDataSet.tbAtendimento, "%" & Me.txtBusca.Text & "%") Me.ReportViewer1.RefreshReport() If Me.cbBusca.Text = "Numero Senha" Then Me.tbAtendimentoTableAdapter.BuscaNumSenha(Me.dbSysBankDataSet.tbAtendimento, "%" & Me.txtBusca.Text & "%") Me.ReportViewer1.RefreshReport() End If End If Catch ex As Exception End Try End Sub Private Sub btnTodos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTodos.Click Try Me.tbAtendimentoTableAdapter.Fill(Me.dbSysBankDataSet.tbAtendimento) Me.ReportViewer1.RefreshReport() Catch ex As Exception End Try End Sub Private Sub btnData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnData.Click Try If Me.cbBusca.Text = "Data" Then Me.tbAtendimentoTableAdapter.BuscaDataAtendimento(Me.dbSysBankDataSet.tbAtendimento, Me.DateTimePicker1.Text) Me.ReportViewer1.RefreshReport() End If Catch ex As Exception End Try End Sub End Class
frmSobreSistema Public Class frmSobreSistema Private Sub frmSobreSistema_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' Set the title of the form. Dim ApplicationTitle As String If My.Application.Info.Title <> "" Then ApplicationTitle = My.Application.Info.Title
109
Else ApplicationTitle = System.IO.Path.GetFileNameWithoutExtension(My.Application.Info.AssemblyName) End If Me.Text = String.Format("About {0}", ApplicationTitle) ' Initialize all of the text displayed on the About Box. ' TODO: Customize the application's assembly information in the "Application" pane of the project ' properties dialog (under the "Project" menu). Me.lblNome.Text = My.Application.Info.ProductName Me.lblVersao.Text = String.Format("Version {0}", My.Application.Info.Version.ToString) Me.lblCopy.Text = My.Application.Info.Copyright Me.lblEmpresa.Text = My.Application.Info.CompanyName End Sub End Class
frmAlteraSenha Public Class frmAlteraSenha Private Sub frmAlteraSenha_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: This line of code loads data into the 'DbSysBankDataSet.tbUsuarios' table. You can move, or remove it, as needed. Try Me.TbUsuariosTableAdapter.Fill(Me.DbSysBankDataSet.tbUsuarios) If Me.txtNome.Text <> "" Then Me.TbUsuariosTableAdapter.BuscaNomeUsers(Me.DbSysBankDataSet.tbUsuarios, Me.txtNome.Text) End If Catch ex As Exception End Try End Sub Private Sub btnAltera_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAltera.Click Try If Me.txtSenhaAtual.Text = "" Or Me.txtNovaSenha.Text = "" Or Me.txtRepitaNovaSenha.Text = "" Then MsgBox("Preencha os campos corretamente!", MsgBoxStyle.Critical) Me.txtSenhaAtual.Focus() Else If Me.txtSenhaAtual.Text <> Me.SenhaTextBox.Text Then MsgBox("A senha não confere com a original.", MsgBoxStyle.Critical) Me.txtSenhaAtual.Focus() Else If Me.txtNovaSenha.Text <> Me.txtRepitaNovaSenha.Text Then MsgBox("A senhas não conferem.", MsgBoxStyle.Critical) Me.txtNovaSenha.Clear() Me.txtRepitaNovaSenha.Clear() Me.txtNovaSenha.Focus() Else If Me.txtSenhaAtual.Text = Me.SenhaTextBox.Text Then Me.TbUsuariosTableAdapter.UpdateQuery(Me.txtNome.Text, _
110
Me.txtNovaSenha.Text, _ Me.TipoComboBox.Text, _ Me.CodigoTextBox.Text) MsgBox("Sua senha foi alterada com sucesso.", MsgBoxStyle.Information) Me.txtNovaSenha.Clear() Me.txtSenhaAtual.Clear() Me.txtRepitaNovaSenha.Clear() Me.txtSenhaAtual.Focus() End If End If End If End If Catch ex As Exception End Try End Sub Private Sub btnCancela_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancela.Click Try Me.txtNovaSenha.Clear() Me.txtSenhaAtual.Clear() Me.txtRepitaNovaSenha.Clear() Me.txtSenhaAtual.Focus() Hide() Catch ex As Exception End Try End Sub End Class
frmListaUsuarios Public Class frmListaUsuarios Private Sub frmListaUsuarios_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: This line of code loads data into the 'DbSysBankDataSet.tbUsuarios' table. You can move, or remove it, as needed. Try Me.TbUsuariosTableAdapter.Fill(Me.DbSysBankDataSet.tbUsuarios) Catch ex As Exception End Try End Sub End Class
frmRegistroUser Public Class frmRegistroUser Private Sub atualiza() Try Me.TbUsuariosTableAdapter.Fill(Me.DbSysBankDataSet.tbUsuarios) Catch ex As Exception End Try End Sub
111
Private Sub frmRegistroUser_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Try Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnCancelar.Enabled = False enabledfalse() Me.atualiza() Catch ex As Exception End Try End Sub Private Sub frmRegistroUser_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load atualiza() End Sub Private Sub btnLista_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLista.Click Try frmListaUsuarios.ShowDialog() Catch ex As Exception End Try End Sub Private Sub limpaCampos() Try Me.CodigoTextBox.Clear() Me.NomeTextBox.Clear() Me.SenhaTextBox.Clear() Me.TipoComboBox.SelectedIndex = 0 Catch ex As Exception End Try End Sub Private Sub enabledtrue() Try Me.NomeTextBox.Enabled = True Me.SenhaTextBox.Enabled = True Me.TipoComboBox.Enabled = True Catch ex As Exception End Try End Sub Private Sub enabledfalse() Try Me.NomeTextBox.Enabled = False Me.SenhaTextBox.Enabled = False
112
Me.TipoComboBox.Enabled = False Catch ex As Exception End Try End Sub Private Sub btnNovo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNovo.Click Try limpaCampos() enabledtrue() Me.btnNovo.Enabled = False Me.btnGravar.Enabled = True Me.btnAlterar.Enabled = False Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = False Me.btnCancelar.Enabled = True Catch ex As Exception End Try End Sub Private Sub btnGravar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGravar.Click Try If Me.NomeTextBox.Text = "" Or Me.SenhaTextBox.Text = "" Then MsgBox("Informe corretamente os dados!", MsgBoxStyle.Information, "Atenção") Else Me.TbUsuariosTableAdapter.InsertQuery(Me.NomeTextBox.Text, Me.SenhaTextBox.Text, Me.TipoComboBox.Text) MsgBox("Usuário Inserido com Sucesso.", MsgBoxStyle.Information) atualiza() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnCancelar.Enabled = False enabledfalse() End If Catch ex As Exception End Try End Sub Private Sub btnAlterar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAlterar.Click Try Me.btnNovo.Enabled = False Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = False
113
Me.btnInserir.Enabled = True Me.btnExcluir.Enabled = False Me.btnCancelar.Enabled = True enabledtrue() Catch ex As Exception End Try End Sub Private Sub btnInserir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInserir.Click Try If Me.NomeTextBox.Text = "" Or Me.SenhaTextBox.Text = "" Then MsgBox("Informe corretamente os dados!", MsgBoxStyle.Information, "Atenção") Else Me.TbUsuariosTableAdapter.UpdateQuery(Me.NomeTextBox.Text, Me.SenhaTextBox.Text, Me.TipoComboBox.Text, Me.CodigoTextBox.Text) MsgBox("Usuário Alterado com Sucesso.", MsgBoxStyle.Information) atualiza() Me.btnNovo.Enabled = True Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnCancelar.Enabled = False enabledfalse() End If Catch ex As Exception End Try End Sub Private Sub btnExcluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExcluir.Click Try Dim del As Integer del = MsgBox("Tem certeza que desja excluir o usuário " & Me.NomeTextBox.Text & "?", MsgBoxStyle.Question + MsgBoxStyle.YesNo) If del = vbYes Then Me.TbUsuariosTableAdapter.DeleteQuery(Me.CodigoTextBox.Text) MsgBox("Usuário Excluído com Sucesso.", MsgBoxStyle.Information) atualiza() End If Catch ex As Exception End Try End Sub Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click Try Me.btnNovo.Enabled = True
114
Me.btnGravar.Enabled = False Me.btnAlterar.Enabled = True Me.btnInserir.Enabled = False Me.btnExcluir.Enabled = True Me.btnCancelar.Enabled = False enabledfalse() Me.atualiza() Catch ex As Exception End Try End Sub End Class
ANEXO II
115
116
117
118
119
120
121
122
123
124
125