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

ordem servico

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

Related posts:

  1. Como Criar Sistema De O.S. / Orçamentos Parte1
  2. Sistema De Notícias Em PHP E MySQL Parte2
  3. Como Criar Formulário no WordPress – Contact Form 7 Parte2
  4. Com Criar Um Sistema De Comentários Em PHP E MYSQL
  5. Sistema De Newsletter Em PHP e MySQL

23 Comentários

  1. Paulo Kampus

    Muito bom, muito bom mesmo, gostaria que fosse postado um tutorial passo a passo de como fazer um sistema de contracheque online…

    • Olá Paulo,

      Agradeço o comentário. Fico feliz que este sistema esteja sendo útil!

      Bem… nosso trabalho é atender suas necessidades… Sua sugestão já está em nossa lista de atividades e deverá ser publicada até o fim do mês de Setembro.

      Continue acompanhando nossas matérias, tirando suas dúvidas e indicando a seus amigos programadores…

      Estamos a disposição para postar o melhor conteúdo com qualidade e gerar um maior conhecimento.

      Abraço,

      Quemuel Aquino

      • Paulo

        Ok…Quemuel…agora que vi sua resposta…mas agradeço…tenho chance de um passo a passo com um sistema de contracheque online?

  2. Rodrigo

    Cara vocês são demais adoro esse site é meu favorito.

  3. Luis Felipe

    Estou testando o sistema, mas quando vou cadastrar o serviço, clico em confirmar, parece que os dados foram enviados mas nao cadastram no banco nem aparece a msg de dados enviados com sucesso, o que pode ser ??

  4. Olá,

    Já coloquei o sistema pra funcionar, porém está dando alguns erros, quando vou cadasrtrar uma OS na hora de cadastrar vai para uma página toda em branco. Não consigo cadastrar também novos administradores dá a seguinte mesagem: "Erro ao alterar os dados do Administrador". Nos dados pessoais também dá erro. O sistema parece ser muito bom, me seria muito útil, se vocês ou alguém poder me ajudar ficaria muito grato.

    Abs,

    • Jose Augusto

      Olá Raphael, está acontecendo a mesma coisa comigo na hora de cadastrar uma OS. Você conseguiu resolver esse problema? pode me ajudar?

  5. gustavo santanna

    Estava eu na net a procurar um sistema de OS, e vi o seu.
    Bom comecei a testa-lo, mas estou com problema:
    1: mesmo colocando o codigo do prot.php nas paginas continuo com acesso no sistema sem colocar usuário e senha.
    2. Ao enviar a OS, pagina em branco e sem erros ou mensagens, e o cadastro não vai, ou seja perde o que foi digitado e nao grava na base de dados.
    dei umas olhadas e infelizmente não achei nada, como a cabeça já não é tão boa. preciso de sua ajuda ok
    abraços e obrigado

    • José Augusto

      Olá Gustavo! Gostaria de saber se conseguiu resolver esse problema, pois o meu também apresenta o mesmo problema do item 2, ou seja: Ao enviar a OS, pagina em branco e sem erros ou mensagens, e o cadastro não vai, ou seja perde o que foi digitado e nao grava na base de dados

      Desde Já obrigado.

  6. Paulo Giovani

    Fora os dugs acima falta a Library/menu3.lbi Favor responda nossas duvidas e se possivel up o sistema com correção fora isso muito obrigado o O.S está excelente parabens.

  7. Olá Sera que pode me ajudar, o script está dando erro

    "Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/Sao_Paulo' for '-3.0/no DST' instead in C:Arquivos de programasVertrigoServwwwOSactionconfig.php on line 42"

    o que será que é ?

    estou usando o phpmyadmin versão 3.3.9.2

    Obrigado

  8. Olá, excelente este sistema, gostaria de um tutorial sobre o sistema de painel de controle para sites, adicionar máteiras, noticias e muito mais.
    Obrigado
    parabéns Web MAsters.pt perfect este site!

  9. alessandro

    Bom dia Excelente material muito bom mesmo … Gostaria de sua ajuda para aprender a desenvolver um portal de contabilidade todo administrado pelo contador , cadastrado de clientes completo e quando o cliente estive fazendo aniversário destacar na pagina home , download e upload , o próprio postar os seus links com as informações que ele acha interessante …

    Se poder me ajudar fico muito agradecido 

    maicrotec@hotmail.com

  10. rodrigo

    Quemuel Aquino boa noite gostei muito desse programa de voces mas tou com um pequeno problema o data base nao ta reconhecendo as tabelas tipo listar o dreamweaver mas ainda assim concigo conectar o sistema….
    o que devo fazer

  11. Fabricio

    O que pode ser esse erro? Notice: Use of undefined constant login – assumed 'login' in C:wampwwwOSsessionprot.php on line 2.

  12. Gostei mas está dando erro para cadastrar OS com página em branco, já conseguiram resolver esse problema?

  13. Ederson costa

    Não foi possível selecionar o Banco de Dados
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:Program FilesEasyPHP-5.3.8.0wwwactionconfig.php on line 26

  14. Marcelo

    Olá, o meu sistema esta dando a seguinte mensagem: 
    Notice: Use of undefined constant login – assumed 'login' in sessionprot.php on line 2
    Notice: Use of undefined constant cod – assumed 'cod' in sessionprot.php on line 2
    O que poderia ser ???

    Obrigado e parabéns.

Participa! Comenta...