Vous êtes sur la page 1sur 88

Andr Luiz de Souza

Douglas Gama da Silva


Ilbis Candido Silva
Joo Paulo Coelho da Silva
Robson de Carvalho Mota
Wellington de C. Faustino de Oliveira








Controle de Estoque
AlphaCE
















So Paulo / SP
2012
TRABALHO DE CONCLUSO DO CURSO TCNICO
EM
INFORMTICA DE NVEL MDIO

Centro Estadual de Educao Tecnolgica Paula Souza
GOVERNO DO ESTADO DE SO PAULO
Etec IRM AGOSTINA



2
















Controle de Estoque
AlphaCE

















Trabalho de Concluso de Curso
apresentado como pr-requisito para
obteno do diploma Tcnico de Nvel
Mdio em Informtica.

Professor Orientador
Joo Carlos Lima e Silva






So Paulo / SP
2012

3
Andr Luiz de Souza
Douglas Gama da Silva
Ilbis Candido Silva
Joo Paulo Coelho da Silva
Robson de Carvalho Mota
Wellington de C. Faustino de Oliveira




Controle de Estoque
AlphaCE




Este Trabalho de Concluso de Curso foi julgado e aprovado para obteno do
certificado, no Curso de Tcnico de Informtica, da Escola Tcnica Estadual Irm
Agostina de So Paulo.

So Paulo, _______ de _________________ de 2012.


Professor: Joo Carlos Lima e Silva
Coordenador do Curso de Tcnico de Informtica


Banca Examinadora

___________________ _____________________
Prof. Prof.
Orientador

___________________ _____________________
Prof. Prof.


4









































[Agradecemos primeiramente a Deus por mais esta
etapa da vida. Tambm, a famlia, amigos, aos
colegas de sala, professores e orientador que
participaram de mais esta fase de nossas vidas].




5





























A dvida o principio da sabedoria.
Aristteles





6
RESUMO

Controle de estoque o procedimento adotado para registrar, fiscalizar e
gerir a entrada e sada de mercadorias e produtos da empresa. O Controle de
estoque deve ser utilizado tanto para matria-prima, mercadorias produzidas e/ou
mercadorias vendidas.
Projeto sobre a elaborao de um sistema de controle de estoque, onde
procuramos inovar perante o programa que utilizado em uma microempresa de
informtica.
Essa microempresa de informtica atende a vendas de peas e
computadores em geral e tambm, manuteno. Para controle de estoque utilizam
um programa que tem uma falha importante, no controla a baixa de estoque. Faz-
se a venda ou manuteno e quando finalizado no sistema, o mesmo no baixa do
estoque.
Em vista dessa questo, conclumos que seria interessante um sistema que
fizesse a baixa em estoque. Mas, junto viriam outras opes como entrada de nota,
relatrios e assim, um sistema completo.
Levamos em considerao o modelo de negcio dessa microempresa para
atender a demanda e atender as expectativas.
Palavras-chave: Controle de estoque; Modelagem controle de estoque;
Funo do controle de estoque;










7
Sumrio
INTRODUO...........................................................................................................09
1 - A EMPRESA.........................................................................................................11
1.1 - ESTRUTURA E FUNCIONAMENTO.................................................................11
1.2 - APLICAO ATUAL.........................................................................................11
1.3 ATUAL ESTRUTURA DE CONTROLE............................................................11
2 - FUNCIONAMENTO DE CONTROLE DE ESTOQUE...........................................13
2.1 FUNO DO CONTROLE DE ESTOQUE.......................................................13
2.2 OBJETIVO DO CONTROLE DE ESTOQUE....................................................13
2.3 POLTICA DE ESTOQUE.................................................................................14
2.4 PRINCPIOS BSICOS PARA O CONTROLE DE ESTOQUES.....................14
3 - LEVANTAMENTO DE REQUISITOS...................................................................16
3.1 CRONOGRAMA................................................................................................16
3.2 DECLARAO DE ESCOPO...........................................................................20
3.3 WBS..................................................................................................................23
4 MODELAGEM LGICA.......................................................................................24
4.1 DIAGRAMA DE CASO DE USO.......................................................................24
4.2 DIAGRAMA DE CLASSE.................................................................................25
4.3 MER MODELO DE ENTIDADE E RELACIONAMENTO..............................26
5. DESENVOLVIMENTO DA APLICAO............................................................27
5.1 - SCRIPT DO BANCO DE DADOS.....................................................................28
5.2 TELAS DO PROGRAMA ALPHACE................................................................34
5.2.1.1 TELA DE LOGIN.........................................................................................34
5.2.1.2 CDIGOS DA TELA DE LOGIN ................................................................35
5.2.2.1 TELA DE ALTERAO DE SENHA..........................................................37
5.2.2.2 CDIGOS DA TELA DE ALTERAOD E SENHA..................................37
5.2.3.1 TELA DE SERVIOS(MENU PRINCIPAL)................................................39
5.2.3.2 CDIGOS DA TELA DE SERVIOS(MENU PRINCIPAL)........................39
5.2.4.1 TELA DE CADASTRO DE GERAL............................................................41
5.2.4.2 CDIGOS DA TELA DE CADASTRO GERAL..........................................41
5.2.5.1 TELA DE CARGO.......................................................................................42
5.2.5.2 CDIGOS DA TELA DE CARGO...............................................................42
5.2.6.1 TELA DE SERVIOS..................................................................................44

8
5.2.6.2 CDIGO DA TELA DE SERVIOS............................................................44
5.2.7.1 TELA DE CADASTRO TIPO DE CLIENTES..............................................46
5.2.7.2 CDIGOS DO CADASTRO TIPO DE CLIENTES......................................46
5.2.8.1 TELA DE CADASTRO DE CLIENTES.......................................................47
5.2.8.2 CDIGO DA TELA DE CADASTRO DE CLIENTES.................................48
5.2.9.1 TELA DE CADASTRO DE FUNCIONRIO...............................................56
5.2.9.2 CDIGO DA TELA DE CADASTRO DE FUNCIONRIOS.......................57
5.2.10.1 TELA DE CADASTRO DE FORNECEDOR.............................................66
5.2.10.2 CDIGO DA TELA DE CADASTRO DE FORNECEDOR.......................68
5.2.11.1 TELA DE ESTOQUE.................................................................................76
5.2.12.1 TELA DE OS.............................................................................................76
5.2.12.2 CDIGO DA TELA DE OS........................................................................78
5.2.13.1 TELA DE CADASTRO DE PRODUTOS..................................................79
5.2.13.2 CDIGO DA TELA DE PRODUTOS........................................................80
5.2.14.1 TELA DE VENDAS...................................................................................84
6. REQUISITOS MNIMOS.........................................................................................85
CONCLUSO............................................................................................................86
REFERNCIA BIBLIOGRFICA...............................................................................87
GLOSSRIO..............................................................................................................88











9
Introduo
O percentual de pequenas e micro empresa informatizadas no estado de So
Paulo cresceu 30% nos ltimos cinco anos, porm, 53% dessas empresas ainda no
se adaptaram ao computador, contra as 47% informatizadas. Os dados so de uma
pesquisa divulgada pelo SEBRAE/SP, realizada no ano de 2003, com 1.163
empresas paulistas. Como mostra grfico abaixo:


Fonte: SEBRAE/SP 2003

Essa informao mostra que, notria que micro e pequenas empresas tm,
mesmo que aos poucos, procurado se informatizar. O mesmo acontece com as
micropequenas empresas no ramo de informtica que so facilmente encontradas
em vrios lugares, como por exemplo, na zona sul do Estado de So Paulo que a
regio da empresa que efetuamos a pesquisa. Algumas microempresas no ramo de
informtica so encontradas na regio e isso promove a competitividade. de se
esperar que micropequenas empresas tenham suas particularidades em
administrao por ter porte dos mais variados, sendo que, na microempresa de
pequeno porte, o empresrio tem que ter um conhecimento para poder administrar
bem o negcio. Uma das formas de se manter essa microempresa funcional ter um
sistema de gesto que ajude a manter o fluxo, por exemplo, de entradas, sadas e
vendas.
Para um dono ou gerente de empresa que precisa estar sempre controlando o
que entra e o que sai do estoque, uma das dicas que deve ser seguida conseguir

10
um bom e confivel sistema que lhe auxilie na administrao de todo o material de
forma que ele consiga ainda realizar suas outras funes.
Fazendo uma pesquisa em sites de internet, empresrios so apresentados
aos mais novos e eficientes sistemas que existem atualmente no mercado. Voc
encontra desde gratuitos a pagos atravs de uma quantia simples que pode ser
interpretada como investimento.
Caso o empresrio no saiba direito como operar o sistema de controle de
estoque, existem ainda muitos sites disponveis explicando detalhadamente como
proceder com todo tipo de operao que o pacote do sistema traz junto.
Alm disso, antes de adquirir o sistema, o empresrio pode escolher em que
tipo de arquivo deseja o pacote, podendo optar sempre pelo tipo de arquivo que ele
possua maior afinidade e lhe apresente os resultados de forma que ele possa
interpret-los da melhor maneira possvel. Sistemas de controle de estoque existem
muitos, sendo possvel escolher aquele que lhe agrade mais, como por exemplo, o
SIE que um sistema para controle de estoque e O.S, o Restages 2.6.0 que
gerencia bar e restaurantes, h espao para novos programas e complementos, pois
quanto mais moderno melhor. Atendendo especificamente a um modelo de negcio,
que no caso para microempresa no ramo de informtica, h mercado para este
tipo de programa.
Utilizamos como estudo de caso uma micro-pequena empresa no ramo de
informtica, a Laser Informtica, onde fizemos uma pesquisa no sistema instalado
para controle de estoque e, a partir da, desenvolvemos esse projeto, o AlphaCE,
pois atualmente a empresa encontra-se com problemas na administrao de seu
estoque.
O nome AlphaCE, alpha = primeiro em grego e CE = controle de estoque,
surgiu como projeto do grupo para essa empresa, no de forma comercial. A
principal necessidade incorporar o controle de estoque, pois de acordo com o
levantamento efetuado, a empresa sofre com o problema de no ter registro no
sistema da sada do item, e como consequncia, no tem como acompanhar a
quantidade do item que ainda h em estoque.
Utilizando dessa dificuldade que a microempresa enfrenta com o sistema, o
objetivo foi verificarmos a possibilidade de fazer um programa que seja mais
completo, para atender a necessidade de baixa de estoque e ter um sistema usual.


11
1. A Empresa
A empresa atua no ramo de informtica desde 1997, foi idealizada por um
tcnico descontente com a empresa onde trabalhava.
Resolveu assim fundar a micro empresa de informtica onde h 16 anos,
presta os servios de manuteno em micros, monitores, impressoras, notebook e
conta tambm com venda direta no balco de vrios produtos sendo eles, por
exemplo, placas de rede, placa me, teclado, mouse, entre outros itens.
1.1 Estrutura e Funcionamento
Consolidada h 15 anos no mercado, atualmente possui 5 funcionrios, sendo
3 tcnicos de informtica, 1 recepcionista e 1 administrador/responsvel pela rea
comercial.
Com essa estrutura, atende em mdia 130 clientes / ms, de segunda a sexta
feira, sendo atendimentos a domiclio e atendimento no balco da loja.
Oferece os servios de manuteno de micros e instalao de software.
Empresa localizada no bairro Vila Emir, So Paulo/SP, tendo como
estrutura 4 cmodos, sendo separados por laboratrio, recepo, estoque e rea de
descarte de dejetos. A loja tem em torno de 200m.
1.2 Aplicao Atual
Atualmente utiliza um sistema de gesto de estoque que o Sistema
Aplicativos Comercias e Ordem de Servio verso 2002. Fizemos o nosso projeto a
partir desse sistema.
Sistema de gesto de estoque que controla entradas de notas, estoque atual,
relatrios e emite ordem de servio, mas quando h sada do estoque, o sistema no
registra a sada de um determinado produto.
1.3 Atual Estrutura de Controle
Foi detectada uma falha durante o ano de 2005 no controle de sada de peas
do estoque. A empresa desenvolvedora do software foi contatada, no houve
retorno e, por consequncia, at a presente data no foi solucionado o problema,
Um exemplo do problema encontrado pela empresa quando um cliente
deixa um microcomputador para manuteno e o tcnico da empresa verifica que
tem que haver a troca de uma pea.
gerada a ordem de servio, posteriormente o tcnico faz o conserto e a
recepcionista fecha a ordem de servio. gerado o boleto para pagamento.

12
Cliente efetua o pagamento, mas essa venda no gera uma movimentao de
sada de estoque. Uma falha grave, pois no tem como confiar nesse sistema para
fazer um abastecimento de estoque com peas para serem repostas.
































13
2. Funcionamento de Controle de Estoque
Controle de estoque o procedimento adotado para registrar, fiscalizar e gerir
a entrada e sada de mercadorias e produtos da empresa. O Controle de estoque
deve ser utilizado tanto para matria-prima, mercadorias produzidas e/ou
mercadorias vendidas.
uma rea muito importante de uma empresa, grande ou pequena, pois
atravs dele que ela ser capaz de prever o quanto que ser necessrio comprar no
prximo pedido ao fornecedor, alm de fornecer informaes teis sobre as vendas.

2.1 Funes do controle de estoque

A administrao do controle de estoque deve minimizar o capital total
investido em estoques, pois ele caro e aumenta continuamente, uma vez que, o
custo financeiro tambm se eleva. Uma empresa no poder trabalhar sem estoque,
pois, sua funo amortecedora entre vrios estgios de produo vai at a venda
final do produto.
O controle de estoque de suma importncia para a empresa, sendo que se
controlam os desperdcios, desvios, apuram-se valores para fins de anlise, bem
como, apura o demasiado investimento, o qual prejudica o capital de giro.
Quanto maior o investimento, tambm maior a capacidade e a
responsabilidade de cada setor da empresa.
Os objetivos dos departamentos de compras, de produo, de vendas e
financeiro, devero ser conciliados pela administrao de controle de estoques, sem
prejudicar a operacionalidade da empresa. A responsabilidade da diviso de
estoques j antiga; os materiais caem sobre o almoxarife, que zela pelas
reposies necessrias.
Na administrao moderna, a responsabilidade dos estoques fica sob um
setor de estoque, que o gerencia. Os departamentos tradicionais ficam livres desta
responsabilidade e podem dedicar-se sua funo primria.




14
2.2 Objetivos do Controle de Estoque
O objetivo do controle de estoque aperfeioar o investimento em estoque,
aumentando o uso dos meios internos da empresa, diminuindo as necessidades de
capital investido.
O estoque do produto acabado, matria-prima e material em processo no
sero vistos como independentes. Todas as decises tomadas sobre um dos tipos
de estoque influenciaro os outros tipos. s vezes acabam se esquecendo dessa
regra nas estruturas de organizao mais tradicionais e conservadoras.
O controle de estoque tem tambm o objetivo de planejar, controlar e
replanejar o material armazenado na empresa.
2.3 Polticas de Estoque
A administrao geral da empresa dever determinar ao departamento de
controle de estoque, o programa de objetivos a serem atingidos, isto , estabelece
certos padres que sirvam de guias aos programadores e controladores e tambm
de critrios para medir o desenvolvimento do departamento.
Estas polticas so diretrizes que, de maneira geral, so as seguintes:
a) Metas de empresas quando a tempo de entrega dos produtos ao cliente;
b) Definio do nmero de depsitos de almoxarifados e da lista de materiais
a serem estocados nele;
c) At que nvel dever flutuar os estoques para atender uma alta ou baixa
demanda ou uma alterao de consumo;
d) As definies das polticas so muito importantes ao bom funcionamento
da administrao de estoques.
2.4 Princpios Bsicos para o Controle de Estoques
Para se organizar um setor de controle de estoque, inicialmente deveremos
descrever suas principais funes:
a) Determinar o que deve permanecer em estoque. Nmero de itens;
b) Determinar quando se deve reabastecer o estoque. Prioridade;
c) Determinar a quantidade de estoque que ser necessrio para um perodo
pr-determinado;
d) Acionar o departamento de compras para executar a aquisio de estoque;
e) Receber, armazenar e atender os materiais estocados de acordo com as
necessidades;

15
f) Controlar o estoque em termos de quantidade e valor e fornecer
informaes sobre sua posio;
g) Manter inventrios peridicos para avaliao das quantidades e estados
dos materiais estocados;
h) Identificar e retirar do estoque os itens danificados.
Existem determinados aspectos que devem ser especificados, antes de se
montar um sistema de controle de estoque.
Um deles refere-se aos diferentes tipos de estoques existentes em uma
fbrica. Os principais tipos encontrados em uma empresa industrial so: matria-
prima, produto em processo, produto acabado e peas de manuteno.















16
3. Levantamento de Requisitos
Neste captulo objetivamos mostrar o que fizemos para nos organizar
utilizando o cronograma, WBS e escopo.
3.1 Cronograma
Neste captulo temos como objetivo mostrar como foram as reunies sobre o
tcc.
Agosto/11
Reunies para definio do grupo;
Funes de cada integrante;
Escolha do tema;
Custo do trabalho;
Inicio do desenvolvimento do trabalho;
Tema j definido;
Reunies agendadas com o nosso orientador Ismael;
Todos integrantes devero comparecer as reunies.

Setembro/11
Mais reunies com orientador;
Encontro do grupo para fechar os trabalhos de agosto sem alterao;
Avaliao do orientar do trabalho e tema feito ate setembro;
Pesquisa de campo;
Inicio das pesquisas cientificas e de dados;
Finalizar as pesquisas cientifica e de dados;
Agendamento de outra reunio.

Outubro/11
Inicio da parte pratica do programa;
Criao das tabelas;
Criao dos diagramas;
Avaliao do orientador;
Melhorar tabelas ps-avaliao;
Melhorar diagramas ps-avaliao;
Finalizar o desenvolvimento da UML e DER;

17
Passar para o DBdesigner;
Iniciar a criao do banco em Mysql;
Avaliao final das tabelas e banco com orientador;
Iniciar a criao do programa;
Desenvolver relatrio do trabalho realizado.

Novembro/11
Reunio com o orientador Ismael;
Avaliao do que foi feito ate agora;
Fazer as correes;
Entregar TCC e o DER para avaliao final do semestre;
Nova reunio com o orientar para poder informar sua avaliao sobre o
desenvolvimento do trabalho;
Desenvolver a pesquisa de campo;
E, escolha de um cone para o trabalho.
Apresentao em PowerPoint para o professor Joo;
Esboo das telas em visual Studio;
Reunio do grupo para avaliar o uso das ferramentas no desenvolvimento do
tcc.

Dezembro/11 e Janeiro/12
Contato do grupo somente via e-mail, para troca de informao, ideias,
atualizaes no contedo e no trabalho.

Fevereiro/12
Iniciar com uma reunio entre o grupo;
Definies do projeto;
Novo nome para o projeto;
Primeiras telas do programa;
Reunio para atualizao de tcc e melhorias do projeto;
Reviso dos diagramas e relatrios.

Maro/12
Apresentao do relatrio do tcc;

18
Reunio de grupo em sala com professor;
Melhorar tcc e desenvolvimento da programao;
Agendar reunio com o orientador;
Finalizar relatrio para entregar aos professores;

Abril/12
Finalizar banco;
Finalizar criao de tabelas;
Reunies em grupo;
Reunies com orientador;
Reunies com professores em sala de aula;
Finalizar telas do programa;
Verificar sua funcionalidade;
Correes;
Avaliao do orientador e dos professores de sala sobre o trabalho
apresentado.

Maio/12
Reunies com orientador sobre apresentao para a pr-banca;
Melhorar e atualizar dados de apresentao;
Apresentao do trabalho em PowerPoint;
Avaliao da pr-banca;
Revises e correes finais do projeto;
Reunio do grupo para avaliaes finais;
Projeto funcionando por completo;
Consideraes finais;
Nova reunio com orientador sobre dicas de apresentao.

Junho/12
Reunio do grupo;
Todo o trabalho finalizado;
Funcionalidade do sistema no ar;
Entrega;
Apresentao a Banca;

19
Reunio final grupo e orientador.


















































20
3.2 Declarao de escopo
Neste captulo estamos apresentado declarao de escopo do projeto.
Produto final Controle de estoque - AlphaCE
Objetivos,
problemas a
resolver
Software para controle de estoque, com o objetivo de dar micro
empresa uma ferramenta de fcil manuseio e que atenda as
expectativas para um timo controle de estoque
Posicionamento
estratgico
Projeto que atende a rea de informtica das micro e pequenas
empresas.
Descrio do
produto
(briefing)
Software que utiliza Mysql e visual basic como ferramentas.
Principal
diferencial a ser
explorado
Produto de fcil manuseio e com fcil instalao. Bem
atualizado.
Subprodutos e
servios
adicionais
Funes de cadastro de clientes, fornecedor, pagamento (carto,
boleto, cheques), endereo, ordem de servio e outros itens.
Caractersticas
especiais do
produto para o
cliente final
Uma funcionalidade melhor e prestar um melhor atendimento ao
cliente. Ser mais rpido.
Produtos do
projeto
- Construo da ideia
- Definio do tema
- Definio de tarefas
- Comeo de esboo das opes do sistema
- Desenho dos diagramas
- Dirio de bordo e tcc
- Utilizando Mysql e Visual Studio 2010
- Telas e Banco de dados
- Testes e Correes
- Finalizando processos
- Apresentao
Comunicao
para o projeto
Integrantes do projeto: Andr, Douglas, Ilbis, Joo Paulo, Robson
e Wellington.
Comunicao por email e reunies em aula, matria TCC.
Mudanas
estruturais
necessrias (na
organizao, no
ambiente de
publicao)
Depois que definido o tema, no houve maiores mudanas de
estrutura em relao ao projeto. Somente aperfeioando a ideia
para ter um programa que faa o que proposto.
Durante o processo, 2 integrantes entraram no grupo.
Troca de orientador.


21
Aquisies
necessrias
At o momento no foi identificado necessidade para aquisio
de algo a mais para o funcionamento do sistema.
Premissas,
ressalvas,
observaes
A questo sobre site do produto est sendo levando em
considerao. Primeiramente, estaremos oferecendo para a
primeira empresa, e a partir da, fazer um marketing mais
avanado sobre o produto. Estamos cogitando a possibilidade da
criao de um site..
Mtodos para
verificar os
resultados
Para o lanamento: A realizao de testes de usabilidade e de
funcionalidade pela equipe de projeto pode homologar o site para
lanamento. A partir da funcionalidade e aceitao por parte
dessa primeira empresa, avanaremos para outras demais.
Para o negcio:.O administrador do programa ter acesso a
vendas, resultados, relatrios. Compararemos com o programa
anterior e teremos uma noo do que melhorar para entrar no
mercado de programas de controle de estoque.
Reviso deste
plano de projeto
Revisado 12/06/2012
Final da arquit.
da informao
Junho/2012
Lanamento da
verso beta
Verso beta 12/06/2012
Lanamento do
produto
Verso final julho/2012










22
3.3 WBS (Work Breakdown Structure)
Neste capitulo o objetivo e mostrar como ficou a organizao do grupo, por
meio do WBS.
Controle de Estoque
Alphatec
Controle Estoque
Funcionando
Desenvolvimento
Projeto
Relatrio/
Apresentao TCC
Distribuio das
Tarefas
Discusso Tema
Inicio do
Projeto
WBS e
Cronograma
Diagrama de
Classes
e Caso de Uso
DER/MER
Testes de
Sistema
Visual do Banco
de Dados
(Visual Studio)
Banco Dados
(MySQL)
Planejamento
Escopo do
Projeto
Script do Banco
de Dados





23
4. Modelagem Lgica
A finalidade deste captulo demonstrar a interao que queremos que o
sistema tenha entre o cliente e a empresa/funcionrio e assim, determinar a
interao entre eles.

4.1 Diagramas de Caso de Uso

No capitulo mostramos a interao sistema / cliente e determinar o melhor
para esse ciclo.
System
Atendente
Tecnico
Gerente
Supervisionar func
Cadastro de clientes
Cadastro de equip
Excluir clientes
Consertar
Passar oramento
Registrar entrada equip.
Fechar OS
Consultar
Excluir equipamentos
Receber pagamento
Relatorio
Fechar o caixa
Abrir o caixa



24
4.2 Diagrama de Classe
No diagrama de classe, visualizamos as opes que queremos que haja no
sistema. Dividimos em parte 1 e 2 para melhor visualizao: Parte 1


25
Parte 2







26
4.3 MER- Modelo de Entidade Relacional
Fazer o modelo de entidade relacional nos ajudou a representar um modelo
conceitual de negcio.

Telefone Contato
Contato
Funcionrio
Fornecedor
Contato
Cliente
Entrega
Produto
Endereo
Cargo Filhos
Ordem de Servio
Ocupao
Dependente
Emisso
Comprovante
Local
Localizao
Localizao
Recibo
Pagamento
Confirmao
Pagamento
Servio
Venda
Item_venda
Prestao
Servio
Produto
Tipo
Pagamento
N
1
1
1
N
1
N
N
1
1
N
N
1
1
N
1
1
1
1 N
1
1
N
N
1
N
1
1
1
Equipamento
1
1
Carto
Boleto
Cheque
Quantidade
Escolha
Pagamento
Escolha
Pagamento
Escolha
Pagamento
1 1
N
N
N
1
1
1






27
5. Desenvolvimento da aplicao
O sistema ter diversas opes de funcionamento, mas dentre todas essas
opes, o maior objetivo da nossa criao desse trabalho fazer o controle de
estoque para uma micro empresa, e conforme a dificuldade encontrada na empresa
do nosso levantamento de dados, registrar as baixas na sada de um produto ou na
emisso de uma ordem de servio, ter um controle de estoque.
O sistema ter todos os itens e produtos oferecidos por essa empresa
cadastrados.
Os usurios devero fazer um cadastro, onde ser criado um login e senha e
a partir da, ter acesso ao sistema. Senha de uso pessoal.
Os clientes sero cadastrados onde ser criado um banco de dados para um
melhor controle e auxilio na administrao dessa empresa e criar um histrico.
Assim, haver uma maior proximidade com os clientes sabendo informaes e
facilitando o contato com eles.
Esse sistema ter como parte integrada do controle do estoque as vendas,
forma de pagamentos, cadastro pessoa fsica e jurdica, acesso restrito de usurio e
tendo um administrador do sistema, que far com que um usurio comum no faa
alteraes no sistema.
Ter emisses de ordem de servio quando for prestado um atendimento a
um cliente, com descrio do servio oferecido e prestado no caso de venda
descrio do produto vendido, horrio, data, nome do prestador do servio, um
cdigo da ordem de servio.
Oferecer, tambm, diversas formas de pagamento no sistema como:
dinheiro, cheque e carto. Forma de pagamento a ser escolhida pelo cliente.
E, o cliente com essa ordem em mos, quando for efetuar o pagamento, a
recepcionista poder usar o cdigo dessa ordem de servio para constatar os dados
e j emitir no prprio sistema as formas de pagamento desse cliente e finalizar a
prestao do servio, facilitando assim, uma melhor gesto administrativa da
contabilidade da empresa com dados mais precisos.
Isso se o cliente ou a empresa desejar ter separadamente as ordens de
servios, pois o sistema emitir, diretamente por um e-mail corporativo, um nmero
desse cdigo com os dados do cliente como nome, RG e telefone de contato para
que a recepcionista constate os dados e, assim, emitir no prprio sistema as formas

28
de pagamento desse cliente e finalizar a prestao do servio em uma s ordem de
servio, diminuindo custos com a impresso de folhas, tendo em vista a conscincia
ambiental.
Alem dos acessos de usurio comum e usurio administrador, cadastros de
clientes.
O sistema tambm ter alterao de cadastro, excluso ou inativao de
cadastro, atualizao de cadastro, efetuara novos cadastros e ter um banco de
dados.
5.1 Scripts do Banco de Dados

Create database AlphaCE

Create table Telefone
(codtelefone int primary key not null,
Telefone varchar (13),
Celular varchar (13),
FAX varchar (13));

Create table Endereco
(codendereco int primary key not null,
Logradouro varchar (50),
Numero Varchar (7),
Complemento varchar (50),
CEP varchar (9),
Bairro varchar (30),
Cidade Varchar (20),
Estado Varchar (2));

Create table PJuridica
(codpjuridica int primary key not null,
Razao_social varchar (30),
CNPJ varchar (18),
IE varchar (13));


29
Create table Pfisica
(codpfisica int primary key not null,
RG varchar (12),
CPF varchar (14));

Create Table Cargo
(Codcargo int auto_increment primary key not null,
funcao varchar (50));

Create Table Cliente
(Codcliente int auto_increment primary key not null,
Nome varchar (50),
Data_nasc varchar (10),
Data_cadastro varchar (10),
Email varchar (100),
Site varchar (100),
Obs varchar (300),
codtelefone int,
codendereco int,
Codpjuridica int,
codpfisica int,
foreign key (codtelefone) references telefone (codtelefone),
foreign key (codendereco) references endereco (codendereco),
foreign key (codpjuridica) references pjuridica (codpjuridica),
foreign key (codpfisica) references pfisica (codpfisica));

Create Table Funcionario
(Codfunc int auto_increment primary key not null,
Nome varchar (50),
Data_nasc varchar (10),
Data_cadastro varchar (10),
Login Varchar (20),
Senha Varchar (20),
Email varchar (100),

30
Obs varchar (300),
Tipo_usuario varchar(14),
status varchar(7),
codtelefone int,
codendereco int,
codpfisica int,
codcargo int,
foreign key (codtelefone) references telefone (codtelefone),
foreign key (codendereco) references endereco (codendereco),
foreign key (codpfisica) references pfisica (codpfisica),
foreign key (codcargo) references cargo (codcargo));

Create table Fornecedor
(codfornecedor int auto_increment primary key not null,
Nome varchar (50),
Representante varchar (50),
Data_cadastro varchar (10),
site varchar (50),
email varchar (50),
Obs varchar (200),
codtelefone int,
codendereco int,
Codpjuridica int,
foreign key (codtelefone) references telefone(codtelefone),
foreign key (codendereco) references endereco (codendereco),
foreign key (codpjuridica) references pjuridica (codpjuridica));


Create table Produto
(codproduto int auto_increment primary key not null,
Nomeproduto varchar (40),
Marca varchar (40),
Modelo Varchar (20),
Fabricante varchar (30),

31
Datacompra varchar (10),
Garantialoja varchar (9),
Garantiaforn varchar (9),
Estoqueatual varchar (4),
Custocompra decimal (0000.00),
Custovenda decimal (0000.00),
obs varchar (200),
codfornecedor int,
Foreign key (codfornecedor) references fornecedor (codfornecedor));

Create table Equipamento
(codequip int auto_increment primary key not null,
Tipo varchar (20),
Marca varchar (20),
Modelo varchar (20),
NS varchar (30));

Create table OS
(codos int auto_increment primary key not null,
Dataentrada varchar (10),
Datasaida varchar(10),
Obs Varchar (200),
codfunc int,
codequip int,
codcliente int,
codproduto int,
Foreign key (codfunc) references funcionario (codfunc),
Foreign key (codequip) references equipamento (codequip),
foreign key (codcliente) references cliente (codcliente),
foreign key (codproduto) references produto (codproduto));

Create table LicagaoOSEquip
(codlig int auto_increment primary key not null,
codOs int,

32
Codequip int,
Foreign key (codos) references OS (codos),
Foreign key (codequip) References Equipamento (codequip));

Create Table Venda
(Codvenda int auto_increment primary key not null,
Qtde int (3),
Valorunitario decimal(0000.00),
Valortotal decimal (0000.00),
codproduto int,
Foreign key (codproduto) references produto (codproduto));

Create table Itemdevenda
(coditensvenda int auto_increment primary key not null,
Qtde int (4),
Codvenda int,
Foreign key (codvenda) references venda (codvenda));

Create Table ligacaofornprod
(codligfornprod int auto_increment primary key,
codfornecedor int,
codproduto int,
foreign key (codproduto) references produto (codproduto),
foreign key (codfornecedor) references fornecedor (codfornecedor));

Create table cheque
(codcheque int auto_increment primary key not null,
Numerocheque int,
Banco varchar (20),
Agencia int,
CC int,
Valor decimal (0000,00),
Vencimento date,
OBS varchar (200),

33
Codos int,
Codvenda int,
codcliente int,
Foreign key (codcliente) references cliente (codcliente),
Foreign key (codos) references os (codos),
Foreign key (codvenda) references venda (codvenda));

Create table boleto
(codboleto int auto_increment primary key not null,
Vencimento date,
OBS varchar (200),
Codos int,
Codvenda int,
codcliente int,
Foreign key (codcliente) references cliente (codcliente),
Foreign key (codos) references os (codos),
Foreign key (codvenda) references venda (codvenda));

Create table Cartao
(codcartao int auto_increment primary key not null,
Bandeira varchar (20),
tipo varchar (20),
Codos int,
Codvenda int,
codcliente int,
Foreign key (codcliente) references cliente (codcliente),
Foreign key (codos) references os (codos),
Foreign key (codvenda) references venda (codvenda));
Create table Pagamento
(codpag int auto_increment primary key not null,
Valorbruto decimal (0000,00),
Emdinheiro decimal (0000,00),
Qtdeparcela int,
Desconto numeric (5),

34
Totalareceber decimal(0000,00),
codcartao int,
codboleto int,
codcheque int,
foreign key (codcartao) references cartao (codcartao),
foreign key (codboleto) references boleto (codboleto),
foreign key (codcheque) references cheque (codcheque));

Create table recibo
(codrecibo int auto_increment primary key not null,
Descricao varchar (500),
codpag int,
foreign key (codpag) references pagamento(codpag));

5.2 Telas do programa AlphaCE

5.2.1.1 Tela de login
A tela abaixo a tela de login, onde o funcionrio faz o login e ter acesso ao
programa para, dependendo do tipo de acesso (administrador ou usurio), ter
acesso total ou no ao sistema AlphaCE.




35
5.2.1.2 Cdigos da tela de login

Imports MySql.Data.MySqlClient
Public Class Form_login
Dim senha, nome_do_login As String
Dim tentativa, tentativa2, tentativa3 As Integer

Private Sub Btn_ok_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_ok.Click
Try
conexao()
cmd.CommandText = "select senha, login, tipo_usuario, status from
funcionario where login = '" & MaskedTextBox1.Text & "'"
reader = cmd.ExecuteReader()
If reader.Read() Then
nome_do_login = reader("login")
senha = reader("senha")
tipo_usuario_var = reader("tipo_usuario")
status_var = reader("status")
reader.Close()
con.Close()
If status_var = "ATIVO" Then

If nome_do_login = MaskedTextBox1.Text Then
If senha = MaskedTextBox2.Text Then
Limpo.Show()
servicos.ShowDialog()
Me.Close()

Else
MsgBox("Senha incorreta!", vbExclamation)
tentativa2 += 1
End If
Else
MsgBox("Login incorreto!", vbExclamation)
tentativa += 1
End If
Else
MsgBox("O usurio est INATIVO", vbExclamation)
tentativa3 += 1
End If
Else
MsgBox("Verifique o campo usuario.", vbExclamation)
tentativa += 1
End If

'encerrar o sistema se houver 3 erros
If tentativa = 3 Or tentativa2 = 3 Or tentativa3 = 3 Then
MsgBox("Muitas tentativas erradas, o sistema ser fechado!", vbCritical)
Application.Exit()

36
End If

Catch ex As Exception
MsgBox(ex.Message)
Finally
con.Close()
End Try
End Sub
Private Sub MaskedTextBox1_MaskInputRejected(ByVal sender As
System.Object, ByVal e As System.Windows.Forms.MaskInputRejectedEventArgs)
Handles MaskedTextBox1.MaskInputRejected
Me.Focus()
End Sub

Private Sub Lnklabel_LinkClicked(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles
Lnklabel.LinkClicked
Alterar_senha.Show()
End Sub

Private Sub Btn_cancelar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_cancelar.Click
Close()
End Sub

Private Sub Form1_login_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
conexao()
cmd.CommandText = "select senha, login from funcionario"
reader = cmd.ExecuteReader()

If reader.Read() Then

lk_adm.Enabled = False
reader.Close()
con.Close()
Else
lk_adm.Enabled = True
End If

End Sub

Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles
lk_adm.LinkClicked
Limpo.Show()
cad_Cargo.Show()

MsgBox("Aps cadastrar um cargo, clique em voltar, clique no boto
Funcionarios e cadastre um funcionrio.", MsgBoxStyle.Information)

37
Me.Visible = False
End Sub
Private Sub MaskedTextBox2_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles MaskedTextBox2.KeyPress
If e.KeyChar = Chr(13) Then
Btn_ok_Click(Me, EventArgs.Empty)
End If
End Sub


Private Sub MaskedTextBox2_MaskInputRejected(ByVal sender As
System.Object, ByVal e As System.Windows.Forms.MaskInputRejectedEventArgs)
Handles MaskedTextBox2.MaskInputRejected

End Sub
End Class

5.2.2.1 Tela de Alterao de Senha
Esta tela para o funcionrio trocar a senha de acesso.



5.2.2.2 Cdigo da tela Alterao de senha
Imports MySql.Data.MySqlClient
Public Class Alterar_senha
Dim Nomelogin, Senhalogin As String
Private Sub btn_cancelar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_cancelar.Click

38
Me.Close()
Form_login.Show()
End Sub

Private Sub btn_alterar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_alterar.Click
Dim reader As MySqlDataReader
Try ' trataviva de erro do banco e do formulrio
conexao() 'procedure de conexo e comando (cmd e con)
cmd.CommandType = System.Data.CommandType.Text
cmd.Connection = con 'variavel de conexo
'con.Open() 'abri a conexo com o banco de dados
cmd.CommandText = "select login, senha from funcionario where login like
'%" & Trim(TextBox1.Text) & "%'" 'Funo trim, remove os espaos iniciais e finais.
reader = cmd.ExecuteReader() 'comando para executar a reader
reader.Read() 'varivel reader para ler os dados selecionado na select
Nomelogin = reader("login")
Senhalogin = reader("senha")
reader.Close() 'fechando a reader
con.Close() 'fecha a conexo com o banco de dados
Catch ex As Exception
MsgBox("Usuario incorreto.", vbCritical)
TextBox1.Focus() 'funo focus, quando acontece algum erro o cursor volta
para o campo especificado.
End Try
If MaskedTextBox1.Text = Senhalogin Then 'condio para a alterao de
senha. A maskedtextbox tem de ser igual a variavel em questo.
Try
If MaskedTextBox2.Text = MaskedTextBox3.Text Then 'segunda condio,
a senha que estiver igual na primeira condio ir fazer estas instrues. A nova
senha da MaskedTextBox2 tem de ser igual a MaskedTextBox3
If MsgBox("Deseja alterar sua senha?", vbYesNo, "confirmao") =
vbYes Then
conexao() 'procedure de conexo e comando (cmd e con)
cmd.Connection = con
'con.Open() 'abri a conexo com o banco de dados
With cmd
.CommandType = CommandType.Text
.CommandText = "UPDATE funcionario SET senha = @senha
WHERE login = '" & Nomelogin & "'"
.Parameters.Add("@senha", MySqlDbType.VarChar)
.Parameters("@senha").Value = Trim(MaskedTextBox3.Text)
.ExecuteNonQuery()
End With
con.Close() 'fecha a conexo com o banco de dados

MsgBox("Senha alterada com sucesso.", vbInformation)
Me.Close()
'btn_cancelar.Focus() 'funo focus, aps efetuar a alterao o boto
cancelar fica selecionado.

39
Else
MsgBox("Alterao cancelada!", vbCritical)
TextBox1.Focus() 'funo focus, quando a alterao e cancelada o
cursor volta para a textbox4 (campo login).
End If
Else
MsgBox("Senha no confere!", vbCritical)
MaskedTextBox2.Focus() 'funo focus, quando a senha no confere o
cursor volta para o campo especificado (campo nova senha)
End If
Catch ex As Exception
MsgBox(ex.Message)
TextBox1.Focus() 'quando acontece algum erro o cursor volta para a
textbox4 (campo login)
End Try
Else
MsgBox("Senha antiga incorreta.", vbCritical)
MaskedTextBox1.Focus()
End If
End Sub

Private Sub MaskedTextBox3_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles MaskedTextBox3.KeyPress
If e.KeyChar = Chr(13) Then
btn_alterar_Click(Me, EventArgs.Empty)
End If
End Sub
End Class

5.2.3.1 Tela de servios(Menu Principal)
Esta tela principal do programa AlphaCE que tem a funo de ajudar o
funcionrio escolher o que vai fazer, como venda, cadastro de cliente, cadastro de
produtos, OS, estoque e administrador. Tambm, um menu superior para maior
acessibilidade.


5.2.3.2 Cdigo da tela de servios
Public Class servicos
Private Sub Btn_cadclie_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_cadclie.Click
Cad_cliente.Show()

40
End Sub

Private Sub Btn_produos_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_produos.Click
Cad_produtos.Show()
End Sub

Private Sub Btn_os_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_os.Click
OS.Show()
End Sub

Private Sub Btn_adm_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_adm.Click
Painel_estoque.Show()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Cadastro_Geral.Show()
End Sub

Private Sub Form2_servicos_FormClosed(ByVal sender As Object, ByVal e As
System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
End
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_vendas.Click
Venda.Show()
End Sub

Private Sub AdicionarToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles AdicionarToolStripMenuItem.Click
Cad_cliente.Show()

End Sub

Private Sub servicos_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
If tipo_usuario_var = "PADRAO" Then
Button1.Enabled = False
Else
Button1.Enabled = True
lbl_adm.Enabled = True
End If
'If Me.MinimizeBox = True Then
'Limpo.MinimizeBox = True
'End If


41

End Sub
End Class

5.2.4.1 Tela de Cadastro Geral
Clicando na opo Administrador, abrir esse menu. Nele o funcionrio
poder fazer todos os tipos de cadastros mostrados na tela.


5.2.4.2 Cdigos da tela de Cadastro Geral
Public Class Cadastro_Geral

Private Sub btn_Cargo_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_Cargo.Click, Button1.Click
cad_Cargo.Show()
Hide()
End Sub

Private Sub btn_servico_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_servico.Click
Cad_servico.Show()
Hide()
End Sub

Private Sub Btn_Cliente_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_Cliente.Click
cad_fis_jur.Show()
Hide()
End Sub

Private Sub Btn_funcionario_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_funcionario.Click

42
Cad_funcionario.Show()
Cad_funcionario.Textbox_nome.Focus()
Hide()
End Sub

Private Sub Btn_alterar_senha_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_alterar_senha.Click

End Sub

Private Sub Btn_produtos_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)

End Sub

Private Sub btn_fornecedor_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_fornecedor.Click
Cad_fornecedor.Show()
Hide()
End Sub

Private Sub Cadastro_Geral_Load(sender As System.Object, e As
System.EventArgs) Handles MyBase.Load

End Sub
End Class

5.2.5.1 Tela de Cadastro de Cargo
Clicando na opo de cargo, abrir esse menu para cadastrar o cargo.


5.2.5.2 Cdigo de Cadastro de Cargo
Imports MySql.Data.MySqlClient

Public Class cad_Cargo


43
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim con As MySqlConnection 'conexao
Dim cmd As MySqlCommand 'consulta
Dim codcargo_var As Integer = 0
Dim reader As MySqlDataReader

con = New MySqlConnection
cmd = New MySqlCommand
cmd.CommandType = CommandType.Text
con.ConnectionString = "server=localhost;User Id=root;password=etecia;Persist
Security Info=True;database=alpha"
con.Open()
cmd = con.CreateCommand
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "select codcargo from cargo where codcargo=(select
max(codcargo) from cargo)"
End With

reader = cmd.ExecuteReader
If reader.Read() Then
codcargo_var = reader("codcargo")
reader.Close()
End If
con.Close()
con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = "INSERT INTO Cargo(codcargo, funcao) Values
(@codcargo, @funcao)"
.Parameters.Add("@codcargo", MySqlDbType.Int32)
.Parameters("@codcargo").Value = codcargo_var + 1
.Parameters.Add("@funcao", MySqlDbType.VarChar)
.Parameters("@funcao").Value = textbox_cargo.Text
.ExecuteNonQuery()
con.Close()
End With
textbox_cargo.Clear()
textbox_cargo.Focus()
Me.Refresh()

End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Cadastro_Geral.Show()
Hide()
End Sub


44
Private Sub textbox_cargo_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles textbox_cargo.KeyPress
If e.KeyChar = Chr(13) Then
Button1_Click(Me, EventArgs.Empty) 'Evento click, quando o usuario digita
enter o boto clickado
textbox_cargo.Focus() 'aps pesquisar o cursor movido para a textbox 2
End If
End Sub

Private Sub textbox_cargo_TextChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles textbox_cargo.TextChanged

End Sub

Private Sub cad_Cargo_Load(sender As System.Object, e As System.EventArgs)
Handles MyBase.Load

End Sub
End Class

5.2.6.1 Tela de Cadastro de Servios
Clicando nesse menu, abrir a opo para cadastrar o tipo de servio.


5.2.6.2 Cdigo da tela de Cadastro de Servios
Imports MySql.Data.MySqlClient
Public Class Cad_servico

Private Sub btn_voltar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_voltar.Click
Cadastro_Geral.Show()
Hide()
End Sub

Private Sub btn_salvar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_salvar.Click
Dim con As MySqlConnection 'conexao

45
Dim cmd As MySqlCommand 'consulta
Dim codservico_var As Integer = 0
Dim reader As MySqlDataReader

con = New MySqlConnection
cmd = New MySqlCommand
cmd.CommandType = CommandType.Text
con.ConnectionString = "server=localhost;User Id=root;password=etecia;Persist
Security Info=True;database=alpha"
con.Open()
cmd = con.CreateCommand
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "select codservico from servicos where codservico=(select
max(codservico) from Servico)"
End With

reader = cmd.ExecuteReader
If reader.Read() Then
codservico_var = reader("codservico")
reader.Close()
End If
con.Close()
con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = "INSERT INTO Servico(codservico, funcao) Values
(@codservico, @funcao)"
.Parameters.Add("@codservico", MySqlDbType.Int32)
.Parameters("@codservico").Value = codservico_var + 1
.Parameters.Add("@funcao", MySqlDbType.VarChar)
.Parameters("@funcao").Value = TextBox_servico.Text
.ExecuteNonQuery()
con.Close()
End With
TextBox_servico.Clear()
TextBox_servico.Focus()
Me.Refresh()

End Sub

Private Sub TextBox_servico_TextChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles TextBox_servico.TextChanged

End Sub

Private Sub Cad_servico_Load(sender As System.Object, e As
System.EventArgs) Handles MyBase.Load

End Sub

46
End Class

5.2.7.1 Tela de Cadastro Tipo de Clientes
Clicando nessa opo, o menu de cadastro que aparece so as opes de
cadastro de pessoa fsica e jurdica.

5.2.7.2 Cdigo da tela de cadastro de Clientes
Public Class cad_fis_jur

Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

End Sub

Private Sub MenuStrip1_ItemClicked(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.ToolStripItemClickedEventArgs)

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Cad_cliente.Show()

Hide()
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Cad_pjuridica.Show()
Hide()

End Sub


47
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Cadastro_Geral.Show()
Hide()
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button4.Click
Close()
End Sub
End Class

5.2.8.1 Tela de Cadastro de Cliente
No menu acima, clicando na opo de cadastro de cliente, abrir esse menu
de cadastro. Aqui pode-se voltar a tela anterior, editar um cadastro, localizar e
excluir.



48
Clicando na opo localizar, abrir uma painel de consulta.

5.2.8.2 Cdigo da tela de cadastro de cliente
Imports mysql.data.mysqlclient
Public Class Cad_cliente

Private Sub FUN_Padrao()
btn_Salvar.Visible = True
btn_Editar.Visible = False
End Sub
Private Sub FUN_Editar()
btn_Salvar.Visible = False
btn_Editar.Visible = True
End Sub
Private Sub FUN_Limpar()
Textbox_nome.Clear()
Textbox_endereco.Clear()
Textbox_numero.Clear()
Textbox_comp.Clear()
Mask_nasc.Clear()
Textbox_bairro.Clear()
TextBox_cidade.Clear()
Masked_UF.Clear()
Maskbox_telefone.Clear()
Maskbox_celular.Clear()
Mask_fax.Clear()
Mbox_rg.Clear()
MBox_cpf.Clear()
TextBox_obs.Clear()

49
Textbox_email.Clear()
Textbox_site.Clear()
Textbox_nome.Focus()
End Sub
Private Sub FUN_Proximo()
conexao()
Try
With cmd
.CommandType = System.Data.CommandType.Text
.Connection = con
.CommandText = "select codcliente from cliente where codcliente = (select
max(codcliente) from cliente)"
End With
reader = cmd.ExecuteReader
If reader.Read() Then
codcliente_var = reader("codcliente")
reader.Close()
con.Close()
Lbl_codcliente.Text = codcliente_var + 1 'ADICIONAR O COD E SOMAR
MAIS 1 NO FORM
Else
Lbl_codcliente.Text = 1
End If
Catch a As Exception
End Try
con.Close()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
cad_fis_jur.Show()
Hide()
End Sub
Private Sub btn_voltar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
cad_fis_jur.Show()
Me.Hide()
End Sub

Private Sub btn_Localizar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Painel_cliente.Show()
End Sub
Private Sub btn_Salvar_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_Salvar.Click
conexao()
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "select codendereco from endereco where
codendereco=(select max(codendereco) from endereco)"
End With

50
reader = cmd.ExecuteReader
If reader.Read() Then
codendereco_var = reader("codendereco")
reader.Close()
End If
con.Close()

con.Open()
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "select codtelefone from telefone where
codtelefone=(select max(codtelefone) from telefone)"
End With
reader = cmd.ExecuteReader
If reader.Read() Then
codtelefone_var = reader("codtelefone")
reader.Close()
End If
con.Close()

con.Open()
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "select codpfisica from pfisica where codpfisica=(select
max(codpfisica) from pfisica)"
End With

reader = cmd.ExecuteReader
If reader.Read() Then
codpfisica_var = reader("codpfisica")
reader.Close()
End If
con.Close()

con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = "INSERT INTO endereco(codendereco,Logradouro,
Numero, Cep, Complemento, Bairro, Cidade, Estado) VALUES
(@codendereco,@Logradouro, @Numero, @Cep, @Complemento, @Bairro,
@Cidade, @Estado)"
.Parameters.Add("@codendereco", MySqlDbType.Int32)
.Parameters.Add("@Logradouro", MySqlDbType.VarChar)
.Parameters.Add("@Numero", MySqlDbType.VarChar)
.Parameters.Add("@Complemento", MySqlDbType.VarChar)
.Parameters.Add("@Bairro", MySqlDbType.VarChar)
.Parameters.Add("@Cidade", MySqlDbType.VarChar)
.Parameters.Add("@Estado", MySqlDbType.VarChar)
.Parameters.Add("@Cep", MySqlDbType.VarChar)


51
.Parameters("@codendereco").Value = codendereco_var + 1
.Parameters("@Logradouro").Value = Textbox_endereco.Text
.Parameters("@Numero").Value = Textbox_numero.Text
.Parameters("@Complemento").Value = Textbox_comp.Text
.Parameters("@Bairro").Value = Textbox_bairro.Text
.Parameters("@Cidade").Value = Textbox_cidade.Text
.Parameters("@Estado").Value = Masked_uf.Text
.Parameters("@Cep").Value = Maskbox_cep.Text
.ExecuteNonQuery()
End With
con.Close()

con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = "INSERT INTO telefone(codtelefone, telefone, celular, fax)
VALUES (@codtelefone, @telefone, @celular, @fax)"
.Parameters.Add("@codtelefone", MySqlDbType.Int32)
.Parameters.Add("@telefone", MySqlDbType.VarChar)
.Parameters.Add("@celular", MySqlDbType.VarChar)
.Parameters.Add("@fax", MySqlDbType.VarChar)

.Parameters("@codtelefone").Value = codtelefone_var + 1
.Parameters("@telefone").Value = Maskbox_telefone.Text
.Parameters("@celular").Value = Maskbox_celular.Text
.Parameters("@fax").Value = Mask_fax.Text
.ExecuteNonQuery()
con.Close()
End With

With cmd
con.Open()
.CommandType = CommandType.Text
.CommandText = "INSERT INTO pfisica(codpfisica, rg, cpf) VALUES
(@codpfisica, @rg, @cpf)"
.Parameters.Add("@codpfisica", MySqlDbType.Int32)
.Parameters.Add("@rg", MySqlDbType.VarChar)
.Parameters.Add("@cpf", MySqlDbType.VarChar)

.Parameters("@codpfisica").Value = codpfisica_var + 1
.Parameters("@rg").Value = Mbox_rg.Text
.Parameters("@cpf").Value = Mbox_cpf.Text
.ExecuteNonQuery()
con.Close()
End With

con.Open()
cmd = con.CreateCommand
With cmd
.CommandType = System.Data.CommandType.Text

52
.CommandText = "select codendereco from endereco where
codendereco=(select max(codendereco) from endereco)"
End With
reader = cmd.ExecuteReader
If reader.Read() Then
codendereco_var = reader("codendereco")
reader.Close()
End If
con.Close()

con.Open()
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "select codtelefone from telefone where
codtelefone=(select max(codtelefone) from telefone)"
End With
reader = cmd.ExecuteReader
If reader.Read() Then
codtelefone_var = reader("codtelefone")
reader.Close()
End If
con.Close()

con.Open()
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "select codpfisica from pfisica where codpfisica=(select
max(codpfisica) from pfisica)"
End With

reader = cmd.ExecuteReader
If reader.Read() Then
codpfisica_var = reader("codpfisica")
reader.Close()
End If
con.Close()

con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = "INSERT INTO Cliente(Nome, data_cadastro, Data_nasc,
email, site, OBS, codendereco, codtelefone, codpfisica) VALUES (@nome,
@data_cadastro, @Data_nasc, @email, @site, @obs, @codendereco,
@codtelefone, @codpfisica)"
.Parameters.Add("@Nome", MySqlDbType.VarChar)
.Parameters.Add("@data_cadastro", MySqlDbType.VarChar)
.Parameters.Add("@data_nasc", MySqlDbType.VarChar)
.Parameters.Add("@email", MySqlDbType.VarChar)
.Parameters.Add("@site", MySqlDbType.VarChar)
.Parameters.Add("@OBS", MySqlDbType.VarChar)

53
.Parameters.Add("@codendereco", MySqlDbType.Int32)
.Parameters.Add("@codtelefone", MySqlDbType.Int32)
.Parameters.Add("@codpfisica", MySqlDbType.Int32)

.Parameters("@Nome").Value = Textbox_nome.Text
.Parameters("@data_cadastro").Value = data_cadastro
.Parameters("@data_nasc").Value = Mask_nasc.Text
.Parameters("@email").Value = Textbox_email.Text
.Parameters("@site").Value = Textbox_site.Text
.Parameters("@OBS").Value = TextBox_obs.Text
.Parameters("@codendereco").Value = codendereco_var
.Parameters("@codtelefone").Value = codtelefone_var
.Parameters("@codpfisica").Value = codpfisica_var

.ExecuteNonQuery()

.CommandText = "SELECT CODCLIENTE FROM CLIENTE WHERE NOME
= @nome"
reader = cmd.ExecuteReader()
reader.Read()
codcliente_var = reader.GetString("codcliente")
Lbl_codcliente.Text = codcliente_var + 1
con.Close()
End With
limpar_campos_cliente()
End Sub
Private Sub Cad_cliente_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
FUN_Padrao()

lbl_data_cadastro.Text = Date.Today
data_cadastro = lbl_data_cadastro.Text

Textbox_nome.Focus()
conexao()
FUN_Proximo()
End Sub
Private Sub btn_Localizar_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_Localizar.Click
Painel_cliente.Show()
Hide()
End Sub
Private Sub btn_Editar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_Editar.Click
Try
If MsgBox("Deseja alterar o cadastro deste Cliente?", vbYesNo,
"confirmao") = vbYes Then
conexao()
With cmd
.CommandType = System.Data.CommandType.Text

54
.CommandText = "select * from cliente where nome=@ncliente"
.Parameters.Add("@ncliente", MySqlDbType.VarChar)
.Parameters("@ncliente").Value = Textbox_nome.Text
End With

reader = cmd.ExecuteReader
If reader.Read() Then
codcliente_var = reader("codcliente")
codendereco_var = reader("codendereco")
codtelefone_var = reader("codtelefone")
codpfisica_var = reader("codpfisica")
End If
reader.Close()
con.Close()

conexao()
With cmd
.CommandType = CommandType.Text
.CommandText = "UPDATE endereco SET Logradouro=@Logradouro,
Numero=@Numero, Cep=@Cep, Complemento=@Complemento, Bairro=@Bairro,
Cidade=@Cidade, Estado=@Estado where codendereco=@codendereco"
.Parameters.Add("@codendereco", MySqlDbType.Int32)
.Parameters.Add("@Logradouro", MySqlDbType.VarChar)
.Parameters.Add("@Numero", MySqlDbType.VarChar)
.Parameters.Add("@Complemento", MySqlDbType.VarChar)
.Parameters.Add("@Bairro", MySqlDbType.VarChar)
.Parameters.Add("@Cidade", MySqlDbType.VarChar)
.Parameters.Add("@Estado", MySqlDbType.VarChar)
.Parameters.Add("@Cep", MySqlDbType.VarChar)

.Parameters("@codendereco").Value = codendereco_var
.Parameters("@Logradouro").Value = Textbox_endereco.Text
.Parameters("@Numero").Value = Textbox_numero.Text
.Parameters("@Complemento").Value = Textbox_comp.Text
.Parameters("@Bairro").Value = Textbox_bairro.Text
.Parameters("@Cidade").Value = Textbox_cidade.Text
.Parameters("@Estado").Value = Masked_uf.Text
.Parameters("@Cep").Value = Maskbox_cep.Text
.ExecuteNonQuery()
End With
con.Close()

conexao()
With cmd
.CommandType = CommandType.Text
.CommandText = "UPDATE telefone SET telefone=@telefone,
celular=@celular, fax=@fax where codtelefone=@codtelefone"
.Parameters.Add("@codtelefone", MySqlDbType.Int32)
.Parameters.Add("@telefone", MySqlDbType.VarChar)
.Parameters.Add("@celular", MySqlDbType.VarChar)

55
.Parameters.Add("@fax", MySqlDbType.VarChar)
.Parameters("@codtelefone").Value = codtelefone_var
.Parameters("@telefone").Value = Maskbox_telefone.Text
.Parameters("@celular").Value = Maskbox_celular.Text
.Parameters("@fax").Value = Mask_fax.Text
.ExecuteNonQuery()
End With
con.Close()

conexao()
With cmd
.CommandType = CommandType.Text
.CommandText = "UPDATE pfisica SET rg=@rg, cpf=@cpf where
codpfisica=@codpfisica"
.Parameters.Add("@codpfisica", MySqlDbType.Int32)
.Parameters.Add("@rg", MySqlDbType.VarChar)
.Parameters.Add("@cpf", MySqlDbType.VarChar)
.Parameters("@codpfisica").Value = codpfisica_var
.Parameters("@rg").Value = Mbox_rg.Text
.Parameters("@cpf").Value = Mbox_cpf.Text
.ExecuteNonQuery()
End With
con.Close()

conexao()
With cmd
.CommandType = CommandType.Text
.CommandText = "UPDATE cliente SET nome=@nome,
data_nasc=@data_nasc, email=@email, site=@site, obs=@obs where
codcliente=@codcliente"
.Parameters.Add("@codcliente", MySqlDbType.Int32)
.Parameters.Add("@nome", MySqlDbType.VarChar)
.Parameters.Add("@data_nasc", MySqlDbType.VarChar)
.Parameters.Add("@email", MySqlDbType.VarChar)
.Parameters.Add("@site", MySqlDbType.VarChar)
.Parameters.Add("@obs", MySqlDbType.VarChar)

.Parameters("@codcliente").Value = codcliente_var
.Parameters("@nome").Value = Textbox_nome.Text
.Parameters("@data_nasc").Value = Mask_nasc.Text
.Parameters("@email").Value = Textbox_email.Text
.Parameters("@site").Value = Textbox_site.Text
.Parameters("@obs").Value = TextBox_obs.Text
.ExecuteNonQuery()
End With
con.Close()

MsgBox("Cadastro alterado com sucesso!", vbInformation)
FUN_Proximo()
FUN_Limpar()

56
FUN_Padrao()
Else
MsgBox("Alterao cancelada!", vbExclamation)
Textbox_nome.Focus() 'Funo focus, move o cursor para o campo
informado
End If

Catch ex1 As Exception
MsgBox(ex1.Message)
End Try
End Sub
End Class

5.2.9.1 Tela Cadastro de Funcionrios
Voltando a tela de cadastro geral, ao clicar na opo funcionrios, abrir a
tela de cadastro de funcionrio, onde ele j cadastrar um logon e senha de acesso.
necessrio preencher todos os campos.






57
Clicando na opo localizar, abrir um painel de consulta.

5.2.9.2 Cdigo da tela de cadastro de funcionrio
Imports MySql.Data.MySqlClient

Public Class Cad_funcionario
Private Sub FUN_Padrao()
btn_Salvar.Visible = True
btn_Editar.Visible = False
btn_Cancelar.Visible = False
GBX_Status.Enabled = False
End Sub
Private Sub FUN_Editar()
btn_Salvar.Visible = False
btn_Editar.Visible = True
btn_Cancelar.Visible = True
GBX_Status.Enabled = True
End Sub
Private Sub FUN_Limpar()
Textbox_nome.Clear()
Textbox_endereco.Clear()
Textbox_num.Clear()
Textbox_comp.Clear()
Mask_cep.Clear()
TextBox_bairro.Clear()
TextBox_cidade.Clear()
Masked_UF.Clear()
Mask_telefone.Clear()
Mask_celular.Clear()
Mask_nasc.Clear()

58
MBox_rg.Clear()
MBox_cpf.Clear()
TextBox_obs.Clear()
MaskBox_senha.Clear()
Textbox_email.Clear()
TextBox_login.Clear()
Textbox_nome.Focus()
End Sub
Private Sub FUN_Proximo()
conexao()
Try
With cmd
.CommandType = System.Data.CommandType.Text
.Connection = con
.CommandText = "select codfunc from funcionario where codfunc = (select
max(codfunc) from funcionario)"
End With
reader = cmd.ExecuteReader
If reader.Read() Then
codfunc_var = reader("codfunc")
reader.Close()
con.Close()
LBL_codfunc.Text = codfunc_var + 1 'ADICIONAR O COD E SOMAR
MAIS 1 NO FORM
Else
LBL_codfunc.Text = 1
End If
Catch a As Exception
End Try
con.Close()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
cad_fis_jur.Show()
Hide()
End Sub
Private Sub btn_voltar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_voltar.Click
Cadastro_Geral.Show()
Me.Hide()
End Sub

Private Sub btn_Localizar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_Localizar.Click
Painel_funcionario.Show()
Hide()
End Sub
Private Sub btn_Salvar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_Salvar.Click
Dim reader As MySqlDataReader

59
conexao()
Try

If codfunc_var = 0 Then
With cmd
.CommandType = System.Data.CommandType.Text
.Connection = con
.CommandText = "select codfunc from funcionario where codfunc =
(select max(codfunc) from funcionario)"
End With
reader = cmd.ExecuteReader
If reader.Read() Then
codfunc_var = reader("codfunc")
reader.Close()
con.Close()
codfunc_var = codfunc_var + 1 'ADICIONAR O COD E SOMAR MAIS 1
NO FORM
Else
LBL_codfunc.Text = 1
End If
con.Close()
Form_login.lk_adm.Visible = False
Me.Hide()
Form_login.Show()
Form_login.MaskedTextBox1.Focus()
End If
Catch ex As Exception
End Try

conexao()
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "select codendereco from endereco where
codendereco=(select max(codendereco) from endereco)"
End With
reader = cmd.ExecuteReader
If reader.Read() Then
codendereco_var = reader("codendereco")
reader.Close()
End If
con.Close()

con.Open()
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "select codtelefone from telefone where
codtelefone=(select max(codtelefone) from telefone)"
End With
reader = cmd.ExecuteReader
If reader.Read() Then

60
codtelefone_var = reader("codtelefone")
reader.Close()
End If
con.Close()

con.Open()
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "select codpfisica from pfisica where codpfisica=(select
max(codpfisica) from pfisica)"
End With

reader = cmd.ExecuteReader
If reader.Read() Then
codpfisica_var = reader("codpfisica")
reader.Close()
End If
con.Close()

con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = "INSERT INTO endereco(codendereco,Logradouro,
Numero, Cep, Complemento, Bairro, Cidade, Estado) VALUES
(@codendereco,@Logradouro, @Numero, @Cep, @Complemento, @Bairro,
@Cidade, @Estado)"
.Parameters.Add("@codendereco", MySqlDbType.Int32)
.Parameters.Add("@Logradouro", MySqlDbType.VarChar)
.Parameters.Add("@Numero", MySqlDbType.VarChar)
.Parameters.Add("@Complemento", MySqlDbType.VarChar)
.Parameters.Add("@Bairro", MySqlDbType.VarChar)
.Parameters.Add("@Cidade", MySqlDbType.VarChar)
.Parameters.Add("@Estado", MySqlDbType.VarChar)
.Parameters.Add("@Cep", MySqlDbType.VarChar)

.Parameters("@codendereco").Value = codendereco_var + 1
.Parameters("@Logradouro").Value = Textbox_endereco.Text
.Parameters("@Numero").Value = Textbox_num.Text
.Parameters("@Complemento").Value = Textbox_comp.Text
.Parameters("@Bairro").Value = TextBox_bairro.Text
.Parameters("@Cidade").Value = TextBox_cidade.Text
.Parameters("@Estado").Value = Masked_UF.Text
.Parameters("@Cep").Value = Mask_cep.Text
.ExecuteNonQuery()
End With
con.Close()

con.Open()
With cmd
.CommandType = CommandType.Text

61
.CommandText = "INSERT INTO telefone(codtelefone, telefone, celular)
VALUES (@codtelefone, @telefone, @celular)"
.Parameters.Add("@codtelefone", MySqlDbType.Int32)
.Parameters.Add("@telefone", MySqlDbType.VarChar)
.Parameters.Add("@celular", MySqlDbType.VarChar)
.Parameters("@codtelefone").Value = codtelefone_var + 1
.Parameters("@telefone").Value = Mask_telefone.Text
.Parameters("@celular").Value = Mask_celular.Text
.ExecuteNonQuery()
con.Close()
End With

With cmd
con.Open()
.CommandType = CommandType.Text
.CommandText = "INSERT INTO pfisica(codpfisica, rg, cpf) VALUES
(@codpfisica, @rg, @cpf)"
.Parameters.Add("@codpfisica", MySqlDbType.Int32)
.Parameters.Add("@rg", MySqlDbType.VarChar)
.Parameters.Add("@cpf", MySqlDbType.VarChar)
.Parameters("@codpfisica").Value = codpfisica_var + 1
.Parameters("@rg").Value = MBox_rg.Text
.Parameters("@cpf").Value = MBox_cpf.Text
.ExecuteNonQuery()
con.Close()
End With

con.Open()
cmd = con.CreateCommand
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "select codendereco from endereco where
codendereco=(select max(codendereco) from endereco)"
End With
reader = cmd.ExecuteReader
If reader.Read() Then
codendereco_var = reader("codendereco")
reader.Close()
End If
con.Close()

con.Open()
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "select codtelefone from telefone where
codtelefone=(select max(codtelefone) from telefone)"
End With
reader = cmd.ExecuteReader
If reader.Read() Then
codtelefone_var = reader("codtelefone")

62
reader.Close()
End If
con.Close()

con.Open()
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "select codpfisica from pfisica where codpfisica=(select
max(codpfisica) from pfisica)"
End With

reader = cmd.ExecuteReader
If reader.Read() Then
codpfisica_var = reader("codpfisica")
reader.Close()
End If
con.Close()

con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = "INSERT INTO funcionario(Nome, data_cadastro,
Data_nasc, email, Login, Senha, OBS, status, tipo_usuario, codendereco,
codtelefone, codcargo, codpfisica) VALUES (@nome, @data_cadastro,
@Data_nasc, @email, @login, @senha, @obs, @status, @tipo_usuario,
@codendereco, @codtelefone, @codcargo, @codpfisica)"
.Parameters.Add("@Nome", MySqlDbType.VarChar)
.Parameters.Add("@data_cadastro", MySqlDbType.VarChar)
.Parameters.Add("@data_nasc", MySqlDbType.VarChar)
.Parameters.Add("@email", MySqlDbType.VarChar)
.Parameters.Add("@login", MySqlDbType.VarChar)
.Parameters.Add("@senha", MySqlDbType.VarChar)
.Parameters.Add("@OBS", MySqlDbType.VarChar)
.Parameters.Add("@status", MySqlDbType.VarChar)
.Parameters.Add("@tipo_usuario", MySqlDbType.VarChar)
.Parameters.Add("@codendereco", MySqlDbType.Int32)
.Parameters.Add("@codtelefone", MySqlDbType.Int32)
.Parameters.Add("@codcargo", MySqlDbType.Int32)
.Parameters.Add("@codpfisica", MySqlDbType.Int32)

.Parameters("@Nome").Value = Textbox_nome.Text
.Parameters("@data_cadastro").Value = data_cadastro
.Parameters("@data_nasc").Value = Mask_nasc.Text
.Parameters("@email").Value = Textbox_email.Text
.Parameters("@login").Value = TextBox_login.Text
.Parameters("@senha").Value = MaskBox_senha.Text
.Parameters("@OBS").Value = TextBox_obs.Text
.Parameters("@status").Value = "ATIVO"
.Parameters("@tipo_usuario").Value = tipo_usuario_var
.Parameters("@codendereco").Value = codendereco_var

63
.Parameters("@codtelefone").Value = codtelefone_var
.Parameters("@codcargo").Value = ComboBox_cargo.SelectedValue
.Parameters("@codpfisica").Value = codpfisica_var
.ExecuteNonQuery()
End With
con.Close()

FUN_Proximo()
FUN_Limpar()
End Sub
Private Sub Cad_funcionario_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
FUN_Padrao()

Rbtn_padrao.Checked = True

lbl_data_cadastro.Text = Date.Today
data_cadastro = lbl_data_cadastro.Text

Textbox_nome.Focus()

'TODO: This line of code loads data into the 'Alpha.cargo' table. You can move,
or remove it, as needed.
Me.CargoTableAdapter.Fill(Me.Alpha.cargo)
conexao()
FUN_Proximo()
End Sub
Private Sub btn_Editar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_Editar.Click
Try
If MsgBox("Deseja alterar o cadastro deste funcionario?", vbYesNo,
"confirmao") = vbYes Then
conexao()
If RBN_Ativo.Checked = True Then
status_var = "ATIVO"
Else
status_var = "INATIVO"
End If
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "select * from funcionario where
codfunc=@codfuncionario"
.Parameters.Add("@codfuncionario", MySqlDbType.VarChar)
.Parameters("@codfuncionario").Value = codfunc_var
End With

reader = cmd.ExecuteReader
If reader.Read() Then
codendereco_var = reader("codendereco")
codtelefone_var = reader("codtelefone")

64
codpfisica_var = reader("codpfisica")
codcargo_var = reader("codcargo")
End If
reader.Close()
con.Close()

con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = "UPDATE endereco SET Logradouro=@Logradouro,
Numero=@Numero, Cep=@Cep, Complemento=@Complemento, Bairro=@Bairro,
Cidade=@Cidade, Estado=@Estado where codendereco=@codendereco"
.Parameters.Add("@codendereco", MySqlDbType.Int32)
.Parameters.Add("@Logradouro", MySqlDbType.VarChar)
.Parameters.Add("@Numero", MySqlDbType.VarChar)
.Parameters.Add("@Complemento", MySqlDbType.VarChar)
.Parameters.Add("@Bairro", MySqlDbType.VarChar)
.Parameters.Add("@Cidade", MySqlDbType.VarChar)
.Parameters.Add("@Estado", MySqlDbType.VarChar)
.Parameters.Add("@Cep", MySqlDbType.VarChar)

.Parameters("@codendereco").Value = codendereco_var
.Parameters("@Logradouro").Value = Textbox_endereco.Text
.Parameters("@Numero").Value = Textbox_num.Text
.Parameters("@Complemento").Value = Textbox_comp.Text
.Parameters("@Bairro").Value = TextBox_bairro.Text
.Parameters("@Cidade").Value = TextBox_cidade.Text
.Parameters("@Estado").Value = Masked_UF.Text
.Parameters("@Cep").Value = Mask_cep.Text
.ExecuteNonQuery()
End With
con.Close()

con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = "UPDATE telefone SET telefone=@telefone,
celular=@celular where codtelefone=@codtelefone"
.Parameters.Add("@codtelefone", MySqlDbType.Int32)
.Parameters.Add("@telefone", MySqlDbType.VarChar)
.Parameters.Add("@celular", MySqlDbType.VarChar)
.Parameters("@codtelefone").Value = codtelefone_var
.Parameters("@telefone").Value = Mask_telefone.Text
.Parameters("@celular").Value = Mask_celular.Text
.ExecuteNonQuery()
End With
con.Close()

With cmd
con.Open()

65
.CommandType = CommandType.Text
.CommandText = "UPDATE pfisica SET rg=@rg, cpf=@cpf where
codpfisica=@codpfisica"
.Parameters.Add("@codpfisica", MySqlDbType.Int32)
.Parameters.Add("@rg", MySqlDbType.VarChar)
.Parameters.Add("@cpf", MySqlDbType.VarChar)
.Parameters("@codpfisica").Value = codpfisica_var
.Parameters("@rg").Value = MBox_rg.Text
.Parameters("@cpf").Value = MBox_cpf.Text
.ExecuteNonQuery()
End With
con.Close()

con.Open()

With cmd
.CommandType = CommandType.Text
.CommandText = "UPDATE funcionario SET Nome=@Nome,
data_cadastro=@data_cadastro, Data_nasc=@data_nasc, email=@email,
Login=@login, Senha=@senha, OBS=@OBS, status=@status,
tipo_usuario=@tipo_usuario where codfunc=@codfuncionario"
.Parameters.Add("@codfunc", MySqlDbType.Int32)
.Parameters.Add("@Nome", MySqlDbType.VarChar)
.Parameters.Add("@data_cadastro", MySqlDbType.VarChar)
.Parameters.Add("@data_nasc", MySqlDbType.VarChar)
.Parameters.Add("@email", MySqlDbType.VarChar)
.Parameters.Add("@login", MySqlDbType.VarChar)
.Parameters.Add("@senha", MySqlDbType.VarChar)
.Parameters.Add("@OBS", MySqlDbType.VarChar)
.Parameters.Add("@status", MySqlDbType.VarChar)
.Parameters.Add("@tipo_usuario", MySqlDbType.VarChar)

.Parameters("@codfunc").Value = codfunc_var
.Parameters("@Nome").Value = Textbox_nome.Text
.Parameters("@data_cadastro").Value = data_cadastro
.Parameters("@data_nasc").Value = Mask_nasc.Text
.Parameters("@email").Value = Textbox_email.Text
.Parameters("@login").Value = TextBox_login.Text
.Parameters("@senha").Value = MaskBox_senha.Text
.Parameters("@OBS").Value = TextBox_obs.Text
.Parameters("@status").Value = status_var
.Parameters("@tipo_usuario").Value = tipo_usuario_var
.ExecuteNonQuery()
End With
con.Close()
Painel_funcionario.atualizar() 'Atualiza o painel com os dados alterado

MsgBox("Cadastro alterado com sucesso!", vbInformation)
FUN_Proximo()
FUN_Limpar()

66
FUN_Padrao()
Else
MsgBox("Alterao cancelada!", vbExclamation)
Textbox_nome.Focus() 'Funo focus, move o cursor para o campo
informado
End If

Catch ex1 As Exception
MsgBox(ex1.Message)
End Try

End Sub
Private Sub btn_Cancelar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_Cancelar.Click
FUN_Proximo()
FUN_Limpar()
FUN_Padrao()
End Sub

Private Sub Rbtn_Admin_CheckedChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Rbtn_Admin.CheckedChanged
tipo_usuario_var = "ADMINISTRADOR"
End Sub

Private Sub Rbtn_padrao_CheckedChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Rbtn_padrao.CheckedChanged
tipo_usuario_var = "PADRAO"
End Sub
End Class

5.2.10.1 Tela de Cadastro de Fornecedor
Voltando a tela de cadastro geral, clicando na opo fornecedro, abrir a tela
de cadastro de fornecedor. Nessa tela, pode voltar a tela anterior, alterar cadastro,
localizar e cancelar.

67

Clicando na opo localizar, abrir um painel de consulta.


68
5.2.10.2 Cdigo na tela de cadastro de fornecedor
Imports MySql.Data.MySqlClient

Public Class Cad_fornecedor
Private Sub FUN_Padrao() 'Criao da funo para ativar ou desativar botes
Btn_salvar.Visible = True
btn_editar.Visible = False
btn_cancelar.Visible = False
End Sub
Private Sub FUN_Limpar() 'Criao da funo para limpar os campos do
formulario
Textbox_razao_social.Clear()
Textbox_endereco.Clear()
Textbox_num.Clear()
Textbox_comp.Clear()
Mask_cep.Clear()
TextBox_bairro.Clear()
TextBox_cidade.Clear()
Masked_UF.Clear()
Mask_telefone.Clear()
Mask_celular.Clear()
Mask_data_cad.Clear()
TextBox_obs.Clear()
Textbox_email.Clear()
TextBox_site.Clear()
TextBox_representante.Clear()
MasKtBox_fax.Clear()
MBox_cnpj.Clear()
MBox_IE.Clear()
Textbox_razao_social.Focus()
End Sub
Private Sub FUN_Proximo() 'Criao da funo de pesquisa para saber o proximo
codigo do BD, neste caso FORNECEDOR
conexao() 'Utilizando uma funo dentro da outra
Try
With cmd
.CommandType = System.Data.CommandType.Text
.Connection = con
.CommandText = "select codfornecedor from fornecedor where
codfornecedor = (select max(codfornecedor) from fornecedor)"
End With
reader = cmd.ExecuteReader
If reader.Read() Then
codfornecedor_var = reader("codfornecedor")
reader.Close()
con.Close()
LBL_codforn.Text = codfornecedor_var + 1 'ADICIONAR O COD E
SOMAR MAIS 1 NO FORM
Else
LBL_codforn.Text = 1

69
End If
Catch a As Exception
End Try
con.Close()
End Sub


Private Sub Btn_salvar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Btn_salvar.Click
'removi daqui as variaveis codendereco, codpfisica e coloquei no modulo
Dim reader As MySqlDataReader
conexao()

With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "select codendereco from endereco where
codendereco=(select max(codendereco) from endereco)"
End With
reader = cmd.ExecuteReader
If reader.Read() Then
codendereco_var = reader("codendereco")
reader.Close()
End If
con.Close()

con.Open()
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "select codtelefone from telefone where
codtelefone=(select max(codtelefone) from telefone)"
End With
reader = cmd.ExecuteReader
If reader.Read() Then
codtelefone_var = reader("codtelefone")
reader.Close()
End If
con.Close()

con.Open()
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "select codpjuridica from pjuridica where
codpjuridica=(select max(codpjuridica) from pjuridica)"
End With

reader = cmd.ExecuteReader
If reader.Read() Then
codpjuridica_var = reader("codpjuridica")
reader.Close()
End If

70
con.Close()

con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = "INSERT INTO endereco(codendereco,Logradouro,
Numero, Cep, Complemento, Bairro, Cidade, Estado) VALUES
(@codendereco,@Logradouro, @Numero, @Cep, @Complemento, @Bairro,
@Cidade, @Estado)"
.Parameters.Add("@codendereco", MySqlDbType.Int32)
.Parameters.Add("@Logradouro", MySqlDbType.VarChar)
.Parameters.Add("@Numero", MySqlDbType.VarChar)
.Parameters.Add("@Complemento", MySqlDbType.VarChar)
.Parameters.Add("@Bairro", MySqlDbType.VarChar)
.Parameters.Add("@Cidade", MySqlDbType.VarChar)
.Parameters.Add("@Estado", MySqlDbType.VarChar)
.Parameters.Add("@Cep", MySqlDbType.VarChar)

.Parameters("@codendereco").Value = codendereco_var + 1
.Parameters("@Logradouro").Value = Textbox_endereco.Text
.Parameters("@Numero").Value = Textbox_num.Text
.Parameters("@Complemento").Value = Textbox_comp.Text
.Parameters("@Bairro").Value = TextBox_bairro.Text
.Parameters("@Cidade").Value = TextBox_cidade.Text
.Parameters("@Estado").Value = Masked_UF.Text
.Parameters("@Cep").Value = Mask_cep.Text
.ExecuteNonQuery()
End With
con.Close()

con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = "INSERT INTO telefone(codtelefone, telefone, celular, fax)
VALUES (@codtelefone, @telefone, @celular, @fax)"
.Parameters.Add("@codtelefone", MySqlDbType.Int32)
.Parameters.Add("@telefone", MySqlDbType.VarChar)
.Parameters.Add("@celular", MySqlDbType.VarChar)
.Parameters.Add("@Fax", MySqlDbType.VarChar)
.Parameters("@codtelefone").Value = codtelefone_var + 1
.Parameters("@telefone").Value = Mask_telefone.Text
.Parameters("@celular").Value = Mask_celular.Text
.Parameters("@Fax").Value = MasKtBox_fax.Text
.ExecuteNonQuery()
con.Close()
End With

With cmd
con.Open()
.CommandType = CommandType.Text

71
.CommandText = "INSERT INTO pjuridica(codpjuridica, razao_social, cnpj,
ie) VALUES (@codpjuridica, @razao_social, @cnpj, @ie)"
.Parameters.Add("@codpjuridica", MySqlDbType.Int32)
.Parameters.Add("@razao_social", MySqlDbType.VarChar)
.Parameters.Add("@cnpj", MySqlDbType.VarChar)
.Parameters.Add("@ie", MySqlDbType.VarChar)
.Parameters("@codpjuridica").Value = codpjuridica_var + 1
.Parameters("@razao_social").Value = Textbox_razao_social.Text
.Parameters("@cnpj").Value = MBox_cnpj.Text
.Parameters("@ie").Value = MBox_IE.Text
.ExecuteNonQuery()
con.Close()
End With

con.Open()
cmd = con.CreateCommand
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "select codendereco from endereco where
codendereco=(select max(codendereco) from endereco)"
End With
reader = cmd.ExecuteReader
If reader.Read() Then
codendereco_var = reader("codendereco")
reader.Close()
End If
con.Close()

con.Open()
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "select codtelefone from telefone where
codtelefone=(select max(codtelefone) from telefone)"
End With
reader = cmd.ExecuteReader
If reader.Read() Then
codtelefone_var = reader("codtelefone")
reader.Close()
End If
con.Close()

con.Open()
With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "select codpjuridica from pjuridica where
codpjuridica=(select max(codpjuridica) from pjuridica)"
End With

reader = cmd.ExecuteReader
If reader.Read() Then

72
codpjuridica_var = reader("codpjuridica")
reader.Close()
End If
con.Close()

con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = "INSERT INTO fornecedor(Nome, Representante,
Data_cadastro, site, email, obs, codtelefone, codendereco, codpjuridica) Values
(@Nome, @Representante, @Data_cadastro, @site, @email, @obs, @codtelefone,
@codendereco, @codpjuridica) "
.Parameters.Add("@nome", MySqlDbType.VarChar)
.Parameters.Add("@Representante", MySqlDbType.VarChar)
.Parameters.Add("@Data_cadastro", MySqlDbType.VarChar)
.Parameters.Add("@site", MySqlDbType.VarChar)
.Parameters.Add("@email", MySqlDbType.VarChar)
.Parameters.Add("@obs", MySqlDbType.VarChar)
.Parameters.Add("@codtelefone", MySqlDbType.Int32)
.Parameters.Add("@codendereco", MySqlDbType.Int32)
.Parameters.Add("@codpjuridica", MySqlDbType.Int32)

.Parameters("@nome").Value = Textbox_razao_social.Text
.Parameters("@Representante").Value = TextBox_representante.Text
.Parameters("@Data_cadastro").Value = data_cadastro
.Parameters("@site").Value = TextBox_site.Text
.Parameters("@email").Value = Textbox_email.Text
.Parameters("@Obs").Value = TextBox_obs.Text
.Parameters("@codtelefone").Value = codtelefone_var
.Parameters("@codendereco").Value = codendereco_var
.Parameters("@codpjuridica").Value = codpjuridica_var
.ExecuteNonQuery()

.CommandText = "SELECT CODFORNECEDOR FROM FORNECEDOR
WHERE NOME =@NOME" 'Pesquisa para saber o ultimo codigo e ,ostra-lo em uma
label
reader = cmd.ExecuteReader()
reader.Read()
codfornecedor_var = reader.GetString("codfornecedor")
LBL_codforn.Text = codfornecedor_var + 1
con.Close()
End With
FUN_Limpar() 'Funo para limpar os campos (textbox, maskedbox) das
tabelas
con.Close()
End Sub
Private Sub Cad_fornecedor_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Mask_data_cad.Text = Date.Today()
data_cadastro = Mask_data_cad.Text

73
FUN_Padrao() 'Funo para habilitar ou desabilitar os botes Salvar,Editar,
Cancelar
conexao() 'Funo e conexo com o BD
FUN_Proximo() 'Funo de pesquisa para saber o proximo codigo do BD, neste
caso FORNECEDOR

End Sub

Private Sub btn_Localizar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_Localizar.Click
Painel_Fornecedor.Show()
Hide()
End Sub

Private Sub btn_editar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_editar.Click
Try
If MsgBox("Deseja alterar o cadastro deste fornecedor?", vbYesNo,
"confirmao") = vbYes Then
conexao()

With cmd
.CommandType = System.Data.CommandType.Text
.CommandText = "select * from fornecedor where
codfornecedor=@codfornecedor"
.Parameters.Add("@codfornecedor", MySqlDbType.VarChar)
.Parameters("@codfornecedor").Value = codfornecedor_var
End With

reader = cmd.ExecuteReader
If reader.Read() Then
codendereco_var = reader("codendereco")
codtelefone_var = reader("codtelefone")
codpjuridica_var = reader("codpjuridica")
End If
reader.Close()
con.Close()

con.Open()
With cmd
.CommandType = CommandType.Text 'Alterao no banco de dados da
tabela endereo
.CommandText = "UPDATE endereco SET Logradouro=@Logradouro,
Numero=@Numero, Cep=@Cep, Complemento=@Complemento, Bairro=@Bairro,
Cidade=@Cidade, Estado=@Estado where codendereco=@codendereco"
.Parameters.Add("@codendereco", MySqlDbType.Int32)
.Parameters.Add("@Logradouro", MySqlDbType.VarChar)
.Parameters.Add("@Numero", MySqlDbType.VarChar)
.Parameters.Add("@Complemento", MySqlDbType.VarChar)
.Parameters.Add("@Bairro", MySqlDbType.VarChar)

74
.Parameters.Add("@Cidade", MySqlDbType.VarChar)
.Parameters.Add("@Estado", MySqlDbType.VarChar)
.Parameters.Add("@Cep", MySqlDbType.VarChar)

.Parameters("@codendereco").Value = codendereco_var
.Parameters("@Logradouro").Value = Textbox_endereco.Text
.Parameters("@Numero").Value = Textbox_num.Text
.Parameters("@Complemento").Value = Textbox_comp.Text
.Parameters("@Bairro").Value = TextBox_bairro.Text
.Parameters("@Cidade").Value = TextBox_cidade.Text
.Parameters("@Estado").Value = Masked_UF.Text
.Parameters("@Cep").Value = Mask_cep.Text
.ExecuteNonQuery()
End With
con.Close()

con.Open()
With cmd
.CommandType = CommandType.Text 'Alterao no banco de dados da
tabela telefone
.CommandText = "UPDATE telefone SET telefone=@telefone,
celular=@celular, fax=@fax where codtelefone=@codtelefone"
.Parameters.Add("@codtelefone", MySqlDbType.Int32)
.Parameters.Add("@telefone", MySqlDbType.VarChar)
.Parameters.Add("@celular", MySqlDbType.VarChar)
.Parameters.Add("@fax", MySqlDbType.VarChar)
.Parameters("@codtelefone").Value = codtelefone_var
.Parameters("@telefone").Value = Mask_telefone.Text
.Parameters("@celular").Value = Mask_celular.Text
.Parameters("@fax").Value = MasKtBox_fax.Text
.ExecuteNonQuery()
End With
con.Close()

With cmd
con.Open()
.CommandType = CommandType.Text 'Fazer alterao no BR da tabela
PJuridica
.CommandText = "UPDATE pjuridica SET razao_social=@razao_social,
cnpj=@cnpj, ie=@ie where codpjuridica=@codpjuridica"
.Parameters.Add("@codpjuridica", MySqlDbType.Int32)
.Parameters.Add("@razao_social", MySqlDbType.VarChar)
.Parameters.Add("@cnpj", MySqlDbType.VarChar)
.Parameters.Add("@ie", MySqlDbType.VarChar)
.Parameters("@codpjuridica").Value = codpjuridica_var
.Parameters("@razao_social").Value = Textbox_razao_social.Text
.Parameters("@cnpj").Value = MBox_cnpj.Text
.Parameters("@ie").Value = MBox_IE.Text
.ExecuteNonQuery()
End With

75
con.Close()

con.Open()
With cmd
.CommandText = "UPDATE fornecedor SET Nome=@Nome,
Representante=@Representante, data_cadastro=@Data_cadastro, site=@site,
email=@email, obs=@obs where codfornecedor=@codfornecedor"
.Parameters.Add("@nome", MySqlDbType.VarChar)
.Parameters.Add("@Representante", MySqlDbType.VarChar)
.Parameters.Add("@Data_cadastro", MySqlDbType.VarChar)
.Parameters.Add("@site", MySqlDbType.VarChar)
.Parameters.Add("@email", MySqlDbType.VarChar)
.Parameters.Add("@obs", MySqlDbType.VarChar)

.Parameters("@nome").Value = Textbox_razao_social.Text
.Parameters("@Representante").Value = TextBox_representante.Text
.Parameters("@Data_cadastro").Value = data_cadastro
.Parameters("@site").Value = TextBox_site.Text
.Parameters("@email").Value = Textbox_email.Text
.Parameters("@Obs").Value = TextBox_obs.Text

.ExecuteNonQuery()
End With
con.Close()
MsgBox("Cadastro alterado com sucesso!", vbInformation)
FUN_Proximo()
FUN_Limpar()
FUN_Padrao()
Else
MsgBox("Alterao cancelada!", vbExclamation)

End If

Catch ex1 As Exception
MsgBox(ex1.Message)

End Try

End Sub
Private Sub btn_voltar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_voltar.Click
Cadastro_Geral.Show()
Me.Hide()
End Sub

Private Sub btn_cancelar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_cancelar.Click
FUN_Proximo()
FUN_Limpar()
FUN_Padrao()

76
End Sub
End Class

Obs: Voltando novamente a tela de cadastro geral, o boto que falta o
alterao de senha, que leva a mesma tela de alterao de senha que tem na tela
de login do programa.
5.2.11.1 Tela Estoque*
Voltando a tela principal, ao clicar na opo estoque, abrir um painel de
consulta de estoque.

* tela em desenvolvimento
5.2.12.1 Tela de OS
Voltando a tela principal, ao clicar na opo OS, abrir um cadastro de OS,
onde o nmero de OS gerado automaticamente. Pode-se imprimir o recibo,
localizar por nmero de OS e gerar uma nova OS.

77

Clicando na opo localizar, abrir um painel para consulta de OS.




78
5.2.12.2 Cdigo da tela de OS*
Public Class OS

Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress
If (e.KeyChar = "+") Then
cad_fis_jur.Show()

End If

End Sub

Private Sub TextBox3_TabStopChanged(ByVal sender As Object, ByVal e As
System.EventArgs) Handles TextBox3.TabStopChanged

End Sub

Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox3.TextChanged

End Sub

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If (e.KeyChar = "+") Then
cad_fis_jur.Show()
End If
End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox1.TextChanged

End Sub

Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Label3.Click


End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click


End Sub

Private Sub Form7_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
lbl_data_cadastro.Text = Date.Today
TextBox1.Focus()

79
data_cadastro = lbl_data_cadastro.Text
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button4.Click
MsgBox(data_cadastro)
Painel_OS.Show()
End Sub
End Class
*tela ainda em desenvolvimento
5.2.13.1 Tela Cadastro de produtos
Voltando ao menu principal, clinando na opo produtos, abrir a tela abaixo,
onde pode-se cadastar novos produtos, localizar e excluir.

Clicando na opo localizar, abrir um painel de consulta.

80


5.2.13.2 Cdigo da tela de produtos
Imports MySql.Data.MySqlClient

Public Class Cad_produtos
Private Sub limpar_campos()
Textbox_nome.Clear()
Textbox_marca.Clear()
Textbox_modelo.Clear()
Textbox_fabricante.Clear()
MaskBox_data_compra.Clear()
TextBox_garantia.Clear()
TextBox_garantia_forn.Clear()
Textbox_fabricante.Clear()
MaskBox_qtde.Clear()
MaskBox_qtde_estoque.Clear()
MaskBox_venda.Clear()
MaskBox_custo.Clear()
textbox_obs.clear()

End Sub
Private Sub FUN_Proximo()
Dim reader As MySqlDataReader
conexao()
Try
With cmd
.CommandType = System.Data.CommandType.Text

81
.Connection = con
.CommandText = "select codproduto from produto where codproduto =
(select max(codproduto) from produto)"
End With
reader = cmd.ExecuteReader
If reader.Read() Then
codproduto_var = reader("codproduto")
reader.Close()
con.Close()
lbl_cod_produto.Text = codproduto_var + 1 'ADICIONAR O COD E
SOMAR MAIS 1 NO FORM
Else
lbl_cod_produto.Text = 1
End If
Catch a As Exception
End Try
con.Close()
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
servicos.Show()
Hide()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
servicos.Show()
Me.Hide()
End Sub
Private Sub btn_Salvar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_Salvar.Click
conexao()
With cmd
.CommandType = CommandType.Text
.CommandText = "INSERT INTO Produto (nomeproduto, Marca, Modelo,
Fabricante, Datacompra, Garantialoja, Garantiaforn, Estoqueatual, Custocompra,
Custovenda, obs, codfornecedor) VALUES (@nomeproduto, @Marca, @Modelo,
@Fabricante, @Datacompra, @Garantialoja, @Garantiaforn, @Estoqueatual,
@Custocompra, @Custovenda, @obs, @codfornecedor)"
.CommandType = CommandType.Text
.Parameters.Add("@Nomeproduto", MySqlDbType.VarChar)
.Parameters.Add("@Marca", MySqlDbType.VarChar)
.Parameters.Add("@Modelo", MySqlDbType.VarChar)
.Parameters.Add("@Fabricante", MySqlDbType.VarChar)
.Parameters.Add("@Datacompra", MySqlDbType.VarChar)
.Parameters.Add("@garantialoja", MySqlDbType.VarChar)
.Parameters.Add("@Garantiaforn", MySqlDbType.VarChar)
.Parameters.Add("@Estoqueatual", MySqlDbType.VarChar)
.Parameters.Add("@custocompra", MySqlDbType.Decimal)
.Parameters.Add("@custovenda", MySqlDbType.Decimal)
.Parameters.Add("@obs", MySqlDbType.VarChar)

82
.Parameters.Add("@codfornecedor", MySqlDbType.Int32)

.Parameters("@Nomeproduto").Value = Textbox_nome.Text
.Parameters("@Marca").Value = Textbox_marca.Text
.Parameters("@Modelo").Value = Textbox_modelo.Text
.Parameters("@Fabricante").Value = Textbox_fabricante.Text
.Parameters("@datacompra").Value = MaskBox_data_compra.Text
.Parameters("@Garantialoja").Value = TextBox_garantia.Text
.Parameters("@Garantiaforn").Value = TextBox_garantia_forn.Text
.Parameters("@Estoqueatual").Value = MaskBox_qtde_estoque.Text
.Parameters("@custocompra").Value = MaskBox_custo.Text
.Parameters("@custovenda").Value = MaskBox_venda.Text
.Parameters("@obs").Value = textbox_obs.Text
.Parameters("@codfornecedor").Value = combobox_forn.SelectedValue
.ExecuteNonQuery()
End With
con.Close()

FUN_Proximo()

limpar_campos()
End Sub

Private Sub Cad_produtos_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'Alpha.fornecedor' table. You can
move, or remove it, as needed.
Me.FornecedorTableAdapter.Fill(Me.Alpha.fornecedor)

FUN_Proximo()

End Sub

Private Sub btn_Localizar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_Localizar.Click
Painel_produto.Show()
Hide()

End Sub

Private Sub btn_Editar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btn_Editar.Click

Try
If MsgBox("Deseja alterar as informaes do produto?", vbYesNo,
"confirmao") = vbYes Then
conexao()
With cmd
.CommandType = System.Data.CommandType.Text

83
.CommandText = "select * from produto where
codproduto=@codproduto"
.Parameters.Add("@codproduto", MySqlDbType.VarChar)
.Parameters("@codproduto").Value = codproduto_var
End With

reader = cmd.ExecuteReader
If reader.Read() Then
codfornecedor_var = reader("codfornecedor")

End If
reader.Close()
con.Close()

con.Open()
With cmd
.CommandType = CommandType.Text
.CommandText = "UPDATE produto SET nomeproduto=@nomeproduto,
marca=@marca, Modelo=@modelo, fabricante=@fabricante,
datacompra=@datacompra, garantialoja=@garantiloja, garantiaforn=@garantiaforn,
estoqueatual=@estoqueatual, custocompra=@custocompra,
custovenda=@custovenda, obs=@obs where codproduto=@codproduto"
.Parameters.Add("@codproduto", MySqlDbType.Int32)
.Parameters.Add("@Nomeproduto", MySqlDbType.VarChar)
.Parameters.Add("@Marca", MySqlDbType.VarChar)
.Parameters.Add("@Modelo", MySqlDbType.VarChar)
.Parameters.Add("@Fabricante", MySqlDbType.VarChar)
.Parameters.Add("@Datacompra", MySqlDbType.VarChar)
.Parameters.Add("@garantialoja", MySqlDbType.VarChar)
.Parameters.Add("@Garantiaforn", MySqlDbType.VarChar)
.Parameters.Add("@Estoqueatual", MySqlDbType.VarChar)
.Parameters.Add("@custocompra", MySqlDbType.Decimal)
.Parameters.Add("@custovenda", MySqlDbType.Decimal)
.Parameters.Add("@obs", MySqlDbType.VarChar)

.Parameters("@codproduto").Value = codproduto_var
.Parameters("@Nomeproduto").Value = Textbox_nome.Text
.Parameters("@Marca").Value = Textbox_marca.Text
.Parameters("@Modelo").Value = Textbox_modelo.Text
.Parameters("@Fabricante").Value = Textbox_fabricante.Text
.Parameters("@datacompra").Value = MaskBox_data_compra.Text
.Parameters("@Garantialoja").Value = TextBox_garantia.Text
.Parameters("@Garantiaforn").Value = TextBox_garantia_forn.Text
.Parameters("@Estoqueatual").Value = MaskBox_qtde_estoque.Text
.Parameters("@custocompra").Value = MaskBox_custo.Text
.Parameters("@custovenda").Value = MaskBox_venda.Text
.Parameters("@obs").Value = textbox_obs.Text
.ExecuteNonQuery()
End With
con.Close()

84
MsgBox("Cadastro alterado com sucesso!", vbInformation)
FUN_Proximo()
limpar_campos()

Else
MsgBox("Alterao cancelada!", vbExclamation)
Textbox_nome.Focus() 'Funo focus, move o cursor para o campo
informado
End If

Catch ex1 As Exception
MsgBox(ex1.Message)

End Try
End Sub
End Class

Obs: Voltando ao menu principal, clicando na opo cliente, abrir a tela de
cadastro de cliente, que j foi mencionada anteriormente.
5.2.14.1 Tela de Vendas*
Voltando a tela principal, escolhendo a opo venda, abrir a opo de
finalizar uma venda.

Obs: Tela em desenvolvimento.

85
6. Requisitos Mnimos
Configurao mnima necessria para funcionamento do sistema.

Resoluo: 1.024 x 768
Plataforma: Windows Xp
Configurao mnima: Celeron 1.6, 512Mb Ram, HD 40GB


















86
Concluso
Trabalho de concluso sobre o controle de estoque, construir um programa
que faa essa funo.
Iniciamos a pesquisa entendendo como funciona o programa que estava na
empresa que est com a dificuldade de controlar o estoque e pesquisando na
internet empresas ou pessoas que disponibilisam programa para essa funo e,
assim, comparar com as nossas ideias e alcanar o objetivo que oferecer um
programa que faz o controle de estoque.
Durante a busca e pesquisa, no tivemos problemas para elaborar o
programa e sua funcionalidade tivemos bastante informao da internet e do dia a
dia, por exemplo, do comrcio em geral, supermercados, drogarias. Tivemos
dificuldade na parte de fazer o programa, sua programao/cdigos, por termos
pouco conhecimento na rea demoramos para encontrar um comeo e vrias
dificuldades para verificao de erros, mas tentamos ao mximo aprender para
acert-los.
Assim, finalizar o programa que foca em controlar o estoque de
microempresas e, de forma simples, oferecer um sistema funcional que ajude a
microempresa no ramo de informtica a desenvolver e ajud-la a crescer.
Cremos que o objetivo principal do grupo foi concludo, apesar do projeto no
estar funcionando em seu total j que h telas que esto em desenvolvimento, a
ideia principal que dar a baixa do estoque est funcionando corretamente.
Disponibilizaremos o projeto na escola em seu total (cdigos, telas) para que se
houver algum outro grupo de estudante interessado, possa continuar.
Terminado o projeto, tentaremos implementar na empresa em questo para
fazer os testes.
Colocamos o aprendizado do curso em prtica e assim, levarmos a questo
do quo grande esse tipo de mercado, e mesmo com as tecnologias cada vez
mais avanadas, ainda h muito o que informatizar em todos os tipos de comrcio.






87
Referncia bibliogrfica

1. Centro Brasileiro de Apoio Pequena e Mdia Empresa (SEBRAE) -
Controle de estoque. Disponvel em: http://www.sebrae.com.br/uf/goias/para-
minha-empresa/controles-gerenciais/controle-de-estoque.
Acesso 12 Setembro 2011
2. Sistema de Controle de Estoque. Disponvel em:
http://www.controleestoque.info/sistema-de-controle-de-estoque/.
Acesso 10 outubro 2011
3. Cury SG. Texto traduzido, MySQL. Disponvel em:
http://www.insite.com.br/cpanel/MySQL.htm.
Acesso em 11 novembro 2011
4. Centro Brasileiro de Apoio Pequena e Mdia Empresa (SEBRAE). A
informatizao nas MPEs paulistas. Disponvel em:
http://201.2.114.147/bds/BDS.nsf/F864F1EEEFFADD30832572B30065BABC/
$File/NT00035132.pdf
Acesso 13 maro 2012
5. Cruz R. O que as Empresas podem fazer pela incluso digital. Disponvel em:
http://portal2.tcu.gov.br/portal/pls/portal/docs/2064400.PDF
Acesso em 19 abril 2012














88
Glossrio

1. WBS (Work breakdown structure) uma ferramenta de decomposio do trabalho
do projeto em partes manejveis. estruturada em rvore exaustiva, hierrquica (de
mais geral para mais especfica) orientada s entregas que precisam ser feitas para
completar um projeto.

2. UML (Unified Modeling Language) permite que desenvolvedores visualizem os
produtos de seus trabalhos em diagramas padronizados.

3. DER (Diagrama entidade relacionamento) um modelo diagramtico que descreve
o modelo de dados de um sistema com alto nvel de abstrao. Ele a principal
representao do Modelo de Entidades e Relacionamentos. usado para representar o
modelo conceitual do negcio.

4. SQL (Structured Query Language) um padro internacional de consulta e retorno
de informaes de bancos de dados.

5. MySQL um software de cdigo aberto e livre para uso. Essencialmente um
servidor de SQL. Utilizamos para o nosso trabalho, como o servidor de banco
de dados.

6. Visual Studio um pacote de programas da Microsoft para desenvolvimento
de software que tem como parte o .NET Framework e Visual Basic (VB), C,
C++, C# (C Sharp) e J# (J Sharp). Utilizamos como nossa plataforma visual
para o nosso programa, interligado com o software MySQL.

Vous aimerez peut-être aussi