Como Criar Sistema De O.S. / Orçamentos Parte1

Toda programador seja ele iniciante ou experiente certamente já teve a intenção de desenvolver (ou já desenvolveu) algum sistema para cadastro de clientes, envio de orçamento, controle de estoque, controle financeiro, entre outros.

Se seguirmos a lógica do que encontramos em um sistema feito em delphi ou em java, certamente o faremos com perfeição!

O problema é que por encontrar algumas dificuldades no desenvolvimento, alguns deixam de lado suas metas e não concluem tais atividades.

Hoje estaremos lhe mostrando como elaborar um sistema de orçamento online prático e fácil de usar.

Até para que você possa entender passo a passo o que elaboramos, vamos detalhar seu funcionamento nesta e na matéria seguinte, postando também o código fonte no final da segunda edição:

Como Criar Sistema De O.S. / Orçamentos Parte2

O Diferencial De Nosso Sistema

O sistema de orçamento online é destinado à emissão de ordens de serviço para empresas de todos os portes, sejam elas de pequeno, médio ou grande porte.

O diferencial de usar este ao invés de outros sistemas encontrados no mercado é que ele facilita seus serviços e não há muita dificuldade na hora de se alterar os dados da empresa.

Estrutura Do Sistema

Antes de criarmos as tabelas, explicar como funciona a configuração do arquivo que fará a conexão à base de dados, veja abaixo como funciona nossa estrutura:

Explicando:

  • action: Será o diretório onde estarão guardados os arquivos de configuração e validação.
  • imagens: Será o diretório onde guardaremos todas as imagens do sistema.
  • scripts: Guardaremos neste diretório os ficheiros em “.css”.
  • session: guardaremos neste diretório os arquivos de logout validação (se a estrutura está logada).
  • tpls: Guardaremos neste diretório os templates padrão (que poderão ser melhorados de acordo com sua necessidade).

Criando As Tabelas Na Base De Dados:

Antes de qualquer coisa, vamos criar as tabelas na base de dados!

Para configurar a base de dados através do script, abra o ficheiro script-sql.txt e cole seu conteúdo no Programa utilizado para gerenciamento da base de dados (conforme informações a seguir).



CREATE TABLE `dados_empresa` (
  `id_empresa` int(11) NOT NULL auto_increment,
  `nome_empresa` varchar(255) NOT NULL default '',
  `nome_fantasia` varchar(255) NOT NULL default '',
  `cnpj` varchar(25) NOT NULL default '',
  `insc_estadual` varchar(20) default NULL,
  `endereco` varchar(255) NOT NULL default '',
  `numero` varchar(10) default NULL,
  `complemento` varchar(50) default NULL,
  `bairro` varchar(150) NOT NULL default '',
  `cidade` varchar(150) NOT NULL default '',
  `estado` varchar(150) NOT NULL default '',
  `pais` varchar(150) NOT NULL default '',
  `cep` varchar(15) default NULL,
  `ddd_fone` varchar(5) default NULL,
  `fone` varchar(15) default NULL,
  `ddd_fone_filial` varchar(5) default NULL,
  `fone_filial` varchar(15) default NULL,
  `ddd_cel` varchar(5) default NULL,
  `fone_celular` varchar(15) default NULL,
  `url` varchar(255) default NULL,
  `email_comercial` varchar(150) default NULL,
  `email_suporte` varchar(150) default NULL,
  `email_financeiro` varchar(150) default NULL,
  `email_desenvolvimento` varchar(150) default NULL,
  `email_vendas` varchar(80) default NULL,
  `email_rh` varchar(150) default NULL,
  `endereco_skype` varchar(15) default NULL,
  `endereco_msn` varchar(150) default NULL,
  `palavraschave` varchar(255) default NULL,
  PRIMARY KEY  (`id_empresa`)
);

INSERT INTO `dados_empresa` VALUES (1,'WebMaster.PT','S.O. Orçamento Online','','','','','','','Campinas','São Paulo','Brasil','','19','3387-5956','19','3037-1648','','','http://webmasterphp.org/OS/','','suporte@empresasnainternet.com.br','','','','','','','OS, Servico, ordem servico');

CREATE TABLE `tbl_os` (
  `os_id` int(11) NOT NULL auto_increment,
  `cliente` varchar(255) NOT NULL default '',
  `email` varchar(120) NOT NULL default '',
  `servico` varchar(255) NOT NULL default '',
  `detalhes` text NOT NULL,
  `custo` int(11) NOT NULL default '0',
  `forma` text,
  `metodo` varchar(255) default NULL,
  `venc` varchar(60) NOT NULL default '',
  `prazo` varchar(80) NOT NULL default '',
  `garantia` varchar(60) NOT NULL default '',
  `data` date NOT NULL default '0000-00-00',
  `status` int(11) NOT NULL default '0',
  `hash` varchar(80) default NULL,
  `dtass` varchar(12) default NULL,
  `hrass` varchar(12) default NULL,
  PRIMARY KEY  (`os_id`)
);

INSERT INTO `tbl_os` VALUES (2,'Quemuel - Teste','comandosusa@gmail.com','Consultoria Especializada','lorem ipsum dolor',5000,'A vista','Boleto Bancário','15/05/2011','30 DIAS','60 DIAS','2010-08-29',0,NULL,NULL,NULL);

CREATE TABLE `tbl_usuarios` (
  `usuarios_id` int(11) NOT NULL auto_increment,
  `usuarios_nome` varchar(255) default NULL,
  `usuarios_username` varchar(80) default NULL,
  `cod` varchar(80) default NULL,
  `usuarios_email` varchar(80) default NULL,
  `usuarios_email2` varchar(80) default NULL,
  `usuarios_endereco` varchar(255) default NULL,
  `usuarios_numero` varchar(10) default NULL,
  `usuarios_complemento` varchar(80) default NULL,
  `usuarios_bairro` varchar(80) default NULL,
  `usuarios_cidade` varchar(150) default NULL,
  `usuarios_estado` varchar(150) default NULL,
  `usuarios_pais` varchar(255) default NULL,
  `usuarios_cep` varchar(15) default NULL,
  `usuarios_ddd` varchar(5) default NULL,
  `usuarios_fone` varchar(10) default NULL,
  `usuarios_dddfoneres` varchar(5) default NULL,
  `usuarios_foneres` varchar(10) default NULL,
  `usuarios_dddcel` varchar(5) default NULL,
  `usuarios_fonecel` varchar(10) default NULL,
  `usuarios_data_nasc` varchar(5) default NULL,
  `usuarios_mes_nasc` varchar(5) default NULL,
  `usuarios_ano_nasc` varchar(5) default NULL,
  `usuarios_sexo` varchar(15) default NULL,
  `usuarios_tipo` varchar(5) default NULL,
  PRIMARY KEY  (`usuarios_id`)
);

INSERT INTO `tbl_usuarios` VALUES (3,'ADMINISTRADOR','admin','21232f297a57a5a743894a0e4a801fc3','comandosusa@gmail.com','comandosusa@yahoo.com.br','Rua Albertino Ridrigues','50','Fundos','Jd. Santa Lúcia','Campinas','São Paulo','Brasil','13060541','19','3233-3917','','','19','9683-5956','04','07','1977','0','a');
<code>

OBS.: Os dados de acesso à central de gerenciamento são:

Login: comandosusa@gmail.com
Senha: admin

Após configurar as tabelas na base de dados, acesse o diretório "action" e altere o ficheiro config.php (conforme instruções abaixo).

<code>
$database = "SERVIDOR";
$dbname   = "BASEDEDADOS";
$usuario  = "USUARIO";
$dbsenha  = "SENHA";

Após alterar as linhas contendo as informações a seguir, feche o ficheiro e faça um teste de acesso.

Telas Do Sistema

Vamos conhecer um pouco mais cada tela?

Tela 01: Tela de Login

Tela 02: Página Principal

Tela 03: Dados da Empresa

Tela 04: Informações do Administrador

Tela 05: Cadastro de Ordem de Serviço

Tela 06: Apresentação das Ordens de Serviço

Tela 07: Cadastro de Administrador

Tela 08: Apresentação dos Administradores

Bem… na matéria a seguir, estaremos postando outros ficheiros e explicando um pouco mais sobre a funcionalidade deste sistema.

Aguarde nossa próxima edição e ao final da matéria, faça download dos ficheiros para teste.

A Parte2 do tutorial inclui o código para download e será publicada esta semana.

Antes de efectuar o download do código, preste atenção para o seguinte:

O código da base de dados está no ficheiro script-sql.txt. O login é comandosusa@gmail.com. A password é admin. Para alterar a password, abra o ficheiro script-sql.txt e procure:


INSERT INTO `tbl_usuarios` VALUES (3,'ADMINISTRADOR','admin','admin','comandosusa@gmail.com'

Altere esse email e os restantes para o seu email.

Be Sociable, Share!

49 Comentários

  1. Thiago

    Ansioso pela continuação! Parabéns

  2. Paulo Kampus

    Olá Quemuel Aquino !

    Não consigo acessar…quais os dados para entrar no sistema…?

  3. O login e password são Login: admin – Senha: admin. Um Abraço! Rui Soares

  4. Romeu Louro

    O problema reside no ficheiro validar.php onde na linha :
    $query_validar = "select * from tbl_usuarios where usuarios_email ='$login' and usuarios_password = '$senha'";

    não existe o campo usuarios_password!

  5. Olá Pessoal,

    Para acessar, utilize os dados a seguir:

    Login: comandosusa@gmail.com (se você quiser, altere na base de dados para seu email);

    Senha: admin

    OBS.: Os critérios de acesso podem ser alterados no ficheiro validar.php (conforme o Romeu comentou acima), mas fica a critério de cada Internauta.

    No ficheiro enviado (na segunda parte da matéria), está com o Login (comandosusa@gmail.com) e a senha (admin).

    Qualquer coisa estou a disposição.

    Abraço,

    Quemuel Aquino

  6. walmor

    Olá Quemuel Aquino !
    Não consigo acessar…quais os dados para entrar no sistema…? o que tem que alterar no código ou no banco ???

  7. Parece-me que na tabela tbl_usuarios, como referiu o Romeu, o campo correto é usuarios_password em vez de cod. Nem entendo porque razão o Quemuel colocou cod, quando estava a usar usuarios_*** para todos os restantes campos. Você tem acesso a uma ferramenta de gestão do MySQL? Altere o campo cod para usuarios_password.  E no ficheiro validar.php, neste trecho de códig: $query_validar = “select * from tbl_usuarios where usuarios_email =’$login’ and usuarios_password = ‘$senha’”; altere where usuarios_email para where usuarios_username. O username é admin e a password é admin. Não consigo corrigir e testar agora. Mas, daqui a algumas horas atualizo o tutorial. Rui Soares

    • Walmor - Brasil

      Caro amigo Rui fiz as alterações que você falou e funcionou o sistema…. … muitas alegrias, paz, tranquilidade e sucesso … muito obrigado e que Deus te abençõe … porque você já é uma pessoa iluminada….

    • O ficheiro para download foi atualizado. Agora os dados de acesso são: O login é comandosusa@gmail.com. A password é admin.. O código da base de dados está no ficheiro script-sql.txt. O Para alterar a password, abra o ficheiro script-sql.txt e procure: INSERT INTO `tbl_usuarios` VALUES (3,'ADMINISTRADOR','admin','admin','comandosusa@gmail.com'. Altere esse email e os restantes para o seu email. Um Abraço Rui Soares

    • alterei, mas não consigo entrar mais. usuário ou senha invalidos

  8. walmor

    Oi Rui Soares

    Não consigo acessar…quais os dados para entrar no sistema…? o que tem que alterar no código ou no banco ??? estes usuario e senhas que você colocou como resposta ai em cima estão errados … não acessa dá erro de usuário e senha ….

    • Olá Walmor. Eu tenho o script instalado e funcional. Deixa-me ver isso amanhã e depois respondo. Na conta que eu testei, a entrada acho que era admin admin. Mas, eu respondo amanhã com os dados certos. E depois atualizo o tutorial e coloca essa informação em destaque. Um Abraço! Rui Soares

  9. walmor

    Caro amigo Rui ontem eu te disse que o sistema estava funcionando porque eu consegui acessar com o login e a senha admin – admin porém fiquei decepcionado quando tentei cadastrar uma ordem de serviço e quando cliquei para cadastrar ficou numa tela branca e não cadastrou nada de ordem de serviço….. ai tem que voltar para a tela anterior e se vê que não gravou a ordem de serviço… dá uma olhadinha e faz um teste… obrigadão…

    • Olá Walmor! Aquilo que pedimos especificamente ao Quemuel foi um script que funcionasse em LAMP. Foi testado num servidor Linux, com PHP5 e MySQL5. Vou verificar. Rui Soares

    • Ulisses

      Comigo aconteceu o mesmo… aparentemente está tudo funcionando, somente o cadastro de uma nova ordem, ao clicar no botão para confirmar o cadastro exibe uma tela em branco e o cadastro não é realizado. Já há uma solução para isso? Obrigado. E parabéns pelo sistema… gostei muito!

    • Ezaul

      Alguem consegiu resolver?  este problema de nao gravar o Orçamento?

  10. Não teria como colocar junto um login de clientes para que eles pudessem ver como anda a os?

  11. junior

    tem algum arquivo que mostra pra pessoa fazer orçamento?

  12. junior

    precisava de um parecido com issso sabe onde posso achar pois nao sei nada de php,apenas fuçoç umas coisas e um amigo meu me pediu pra montar um sistema pra ele ms como nao sei ,recorri aqui no site,ep parabens pelo site, o sistema é esse aqui http://camarlocacao.com.br/locacao.php vi que e parecido com esse de cima mas nao achei a pagina onde a pessoa faz pedido

  13. Alessandro Carlos

    Bom dia … Perfeito poderia postar todo o codigo fonte por favor ficou muito bom mesmo

  14. sensacional script
    muito bom parabens
    Eu preciso de uma ajuda para tipo quando fazer a os ele imprimir a os gerar um pdf algo assim tem como?

  15. Sam

    Olá pessoal tentei de varias formas mas não deu certo
    e aparece um erro assim

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/divicity/public_html/os/ficheiros/OS/action/config.php on line 26

  16. Sam

    ops, consegui vlw… era só importar o o arquivo "script-sql.txt" no banco de dados heheheee

    Estou começando php essas atividades ainda é bem avançadas pra mim

    mas vcs estão de parabens…

    vlw Quemuel

  17. pcmaluco

    gostaria de saber como faço primeiro acesso so novo em sistema

  18. Olá pessoal, estou tendo mesmo problema com o cadastro de OS, todo o mais funciona perfeitamente, realmente uma iniciativa muito boa, bem explicado e bem trabalhado, tentei corrigir o problema com o cadastro, mas não tive susseço até agora se alguém puder nos ajudar seria formidável, mais uma vez, parabéns.

  19. Parabens pelo sistema, muito bonito e muito bom tbem..

    alguns errinhos mais tudo que possa ser resolvido..

    obg

  20. Olá pessoal, gostaria de saber se corrigiram os bugs por exemplo parece que o sistema não reconhece as varáveis/strings do php e escreve tudo diretamente nos campos do form como quando vou em alterar uma os os campos já estão assim<?echo= "os_id"?> entende? e quando tento cadastrar uma nova OS o sistema não salva nada como posso resolver? alguem já conseguiu?

  21. Jonathas

    Como faço para criar um Sistema de Orçamento Online. estou iniciando agora…

    Por favor, me ajude…grato.

  22. olá gostaria de criar um banco de dados para meu site, onde o cliente entra com seu numero de (os)e encontra o seu orçamento, mas não entendo nada de php,estou disposto a pagar,alguem pode me ajudar.

  23. willian zancanelli

    Si tiver como me orientar, creio que esteje com problema de conexao de banco de dados!

  24. MAGRO

    Olá pessoal, gostaria de saber se corrigiram os bugs por exemplo parece que o sistema não reconhece as varáveis/strings do php e escreve tudo diretamente nos campos do form como quando vou em alterar uma os os campos já estão assim<?echo= "os_id"?> entende? e quando tento cadastrar uma nova OS o sistema não salva nada como posso resolver? alguem já conseguiu?

  25. Yago

    Olá gostaria de receber os arquivos, corrigidos! tem como alguem me mandar. ? yago almeida@outlook.com.br

  26. gusmborges

    Cara, gostei muito desse seu layout. Como estou tentando fazer um sistema parecido com este, seria possível encaminhar os código fonte do das paginas? 

  27. byteprogress

    Alo Aquino foi com muito prazer que encontrei o teu blog. Tou muito imprecionado com temas que tens postado cada vez mais. Sou pricipiante na area de webdesign, tou atentar criar meu blog, usando Wepacappella, so que acho que e muito limitado, ainda mais nao da-me opcao de inserir formulario em php. Podes me aconselhar a usar um outro qual? Gostaria que me enviasses um link para download. Obrigado

  28. byteprogress

    Alo pessoal gostaria que me enviassem o link para download de codico para "Como Criar Sistema De O.S. / Orçamentos Parte1" que voces publicaram.

    Obrigado

  29. Charles

    Quemuel Aquino

    Boa Noite

    Gsotaria de saber voce poderia me ajudar a resolver este problemas abaixo.

    ( ! ) Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:wampwwwOSactionconfig.php on line 10
    Call Stack
    #TimeMemoryFunctionLocation
    10.0010247304{main}( )..validar.php:0
    20.0010264280include( 'C:wampwwwOSactionconfig.php' )..validar.php:3
    30.0010265008mysql_connect ( )..config.php:10

    ( ! ) Notice: Use of undefined constant id – assumed 'id' in C:wampwwwOSactionvalidar.php on line 17
    Call Stack
    #TimeMemoryFunctionLocation
    10.0010247304{main}( )..validar.php:0

    ( ! ) Notice: Use of undefined constant nome – assumed 'nome' in C:wampwwwOSactionvalidar.php on line 18
    Call Stack
    #TimeMemoryFunctionLocation
    10.0010247304{main}( )..validar.php:0

    Quemuel Aquino

    ( ! ) Notice: Use of undefined constant login – assumed 'login' in C:wampwwwOSactionvalidar.php on line 19
    Call Stack
    #TimeMemoryFunctionLocation
    10.0010247304{main}( )..validar.php:0

    ( ! ) Notice: Use of undefined constant cod – assumed 'cod' in C:wampwwwOSactionvalidar.php on line 20
    Call Stack
    #TimeMemoryFunctionLocation
    10.0010247304{main}( )..validar.php:0

    ( ! ) Warning: Cannot modify header information – headers already sent by (output started at C:wampwwwOSactionvalidar.php:19) in C:wampwwwOSactionvalidar.php on line 22
    Call Stack
    #TimeMemoryFunctionLocation
    10.0010247304{main}( )..validar.php:0
    20.0220292984header ( )..validar.php:22

  30. Iris P. N

    Oi amigo. Gostei muito desse mini-site. Agora só queria uma coisa, colocar uma logo e adicionar um botão pra enviar orçamento pra minha impressora? tem como? Está de parabéns por seu tutorial. Me ajudou muito.

  31. MGW

    Primeiramente , muito obrigado pela colaboração, me ajudou muito.
    Amigão, corrigi todo teu código e deixei ele já adaptado pro php novo. Fiquei bastante decepcionado pela falta de imagens e arquivos js, css, htmlarea dentre outros. Queria te passar o projeto certinho, e também gostaria de receber as imagens que estão faltando. Me manda um e-mail pra mantermos contato. Abraço!

  32. Ronney Belmont

     mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

    Esta apresentando este erro para mim.

  33. Muito bom o artigo. Paraéns pela didática.

  34. Anderson

    Boa tarde!
    Estou tendo um problema onde ao tentar logar com o usuário e senha (admin, admin) o mesmo me retorna uma mensagem dizendo Dados de acesso inválidos. Já fiz as alterações que foram solicitadas nos arquivos config e validar dentro da pasta action e o problema persiste. Fico no aguardo.
    Atenciosamente,

  35. Fernando

    Ola, como faço para montar esse programa? que ferramenta devo usar?

  36. Adelmo_Rocha

    Olá Rui Soares, funciona em localhost?
    Ainda temos mais algo sobre o sistema?

Participa! Comenta...