Sie sind auf Seite 1von 20

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@empresasnaintern
et.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','comando
susa@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.


Como Criar Sistema De O.S. /
Orçamentos Parte2
Na matéria anterior falamos um pouco sobre o Sistema de O.S. e demonstramos seu
funcionamento em telas printadas:

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

Na matéria de hoje estaremos postando parte do script para que você possa
posteriormente dar manutenção e até mesmo melhorar a qualidade do que foi
desenvolvido.

Conhecendo Os Ficheiros

Como disse anteriormente, os ficheiros que postamos não são dificeis de serem
customizados.

Abaixo falaremos um pouco sobre alguns deles. ok?

Diretório: action

config.php:
Ele tem a finalidade de efetuar o acesso à base de dados e trazer em tela as principais
variáveis que descrevem a empresa (ex.: Nome da empresa, URL, Telefones, Emails).

Veja o código a seguir:

<?php

// servidor

$database = "SERVIDOR"; // Nome do Servidor

$dbname = "BASEDEDADOS"; // Nome da Base de Dados

$usuario = "USUARIO"; // Usuário do MySQL

$dbsenha = "SENHA"; // Senha do Usuário MySQL

$conexao=mysql_connect ($database, $usuario, $dbsenha);

if($conexao){

if (mysql_select_db($dbname, $conexao)){

print "";

}else{

print "Não foi possível selecionar o Banco de Dados";

}else{

print "Erro ao conectar o MySQL";

$query_email_admin = "SELECT * FROM dados_empresa WHERE id_empresa =


'1'";

$rs_query_email_admin = mysql_query ($query_email_admin);

$rs_row_email_admin = mysql_fetch_array($rs_query_email_admin);

$email_comercial_cliente = $rs_row_email_admin["email_comercial"];
$email_suporte_cliente = $rs_row_email_admin["email_suporte"];

$nome_empresa = $rs_row_email_admin['nome_empresa'];

$descricao_empresa = $rs_row_email_admin['nome_fantasia'];

$endereco_site_cliente = $rs_row_email_admin['url'];

$ddd_fone_empresa = $rs_row_email_admin['ddd_fone'];

$fone_empresa = $rs_row_email_admin['fone'];

$ddd_fone_filial_empresa = $rs_row_email_admin['ddd_fone_filial'];

$fone_filial_empresa = $rs_row_email_admin['fone_filial'];

$cidade_empresa = $rs_row_email_admin['cidade'];

$data=date("d/m/Y"); // DATA HJ

$hora=date("H:i"); // HORA AGORA

//================================

//DEFININDO OS CABEÇALHOS DE EMAIL

//================================

$admail = $email_comercial_cliente; // EMAIL DE ADMINISTRADOR

$ass_mail= "ORDEM DE SERVIÇO"; // ASSUNTO DO EMAIL ( AO EFETUAREM


CADASTRO )

// HEADER PARA ENVIO DO EMAIL

$headers = "MIME-Version: 1.0\r\n";

$headers .= "Content-Type:text/html; charset=iso-8859-1\r\n";

$headers .= "From:[$nome_empresa]<$email_comercial_cliente>\r\n";

# ===============================================================

# Função para formatar o valor do preço.

# ===============================================================
function formata($valor){

$negativo = false;

$preco = "";

$valor = intval(trim($valor));

if ($valor < 0) {

$negativo = true;

$valor = abs($valor);

$valor = strrev($valor);

while (strlen($valor) < 3) {

$valor .= "0";

for ($i = 0; $i < strlen($valor); $i++)

if ($i == 2)

$preco .= ",";

if (($i <> 2) AND (($i+1)%3 == 0))

$preco .= ".";

$preco .= substr($valor, $i , 1);

$preco = strrev($preco);

return ($negativo ? "-" : "") . $preco;

?>

validar.php

A página em questão como o nome já diz, tem a finalidade de efetuar validação.


A validação dela e simples e durante o SELECT ele busca o login (email) e senha na
base de dados, finalizando com a criação de sessão (conforme o código a seguir).

<?php

include("config.php");

$login = $_POST['login'];

$senha = $_POST['senha'];

$query_validar = "select * from tbl_usuarios where usuarios_email


='$login' and usuarios_password = '$senha'";

$rs_validar = mysql_query($query_validar);

if ($rs_validar){

$campo_validar = mysql_fetch_array($rs_validar);

$usuarios_id = $campo_validar['usuarios_id'];

$nome_usuario = $campo_validar['nome'];

session_start();

$_SESSION[id] = $usuarios_id;

$_SESSION[nome] = $nome_usuario;

$_SESSION[login] = $login;

$_SESSION[cod] = $senha;

header("location:../principal.php");

}else{

echo"<script>alert('Dados de acesso inválidos!')</script>";


echo"<script>location.href='javascript:history.back(1)'</script>";

?>

Diretório: session

logout.php

Como o nome já diz, este ficheiro tem a finalidade de efetuar o logout (saída) do
sistema após destruir a sessão do Usuário conectado (conforme código a seguir).

<?php session_start();

unset($_SESSION[login]);

unset($_SESSION[cod]);

session_unregister("login");

session_unregister("cod");

session_destroy();

header("location:../index.php");

?>

prot.php

O código disponível nesta página deve ser inserido em cada página interna do sistema,
de forma que nenhum usuário sem acesso possa acessá-la (conforme código a seguir).

<?php session_start();

if (!(isset($_SESSION[login]) AND (isset($_SESSION[cod])))){


header("location:index.php");

?>

Diretório: tpls

os.php

O diretório “tpls” tem a finalidade de gravar os templates, ou seja: arquivos em html


que serão usados como padrão em nossas atividades.

O ficheiro os.php tem a finalidade de ser usado durante o envio da ordem de serviço
através de email (sendo disparado através da página “os_listar.php”).

ass.html

Este ficheiro tem por finalidade confirmar o recebimento do orçamento e início das
atividades.

OBS.: Como estes arquivos são padrão, porém, podem ser alterados conforme sua
necessidade.

Agradecimentos

Quero agradecer ao Sr André Sam que há anos atrás disponibilizou gratuitamente na


internet um sistema de Ordem de Serviços que me ajudou bastante.

Através dele aprendi a criar tal aplicação e hoje tenho condições de criar soluções
infinitamente maiores.

Bem… ficamos por aqui com esta matéria. Espero que esta solução lhe seja útil.

Em caso de dúvidas ou sugestões para novas matérias, entre em contato conosco e


teremos prazer em lhes ajudar.

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.


Download dos arquivos usados neste tutorial: Como Criar Sistema De O.S. /
Orçamentos

Das könnte Ihnen auch gefallen