Gerenciador Simples de Empresa

Publicado por Iago Lira (última atualização em 01/06/2016)

[ Hits: 13.808 ]

Homepage: https://notabug.org/iagolira/

Download gTrue.sh




Olá pessoal, por gostar de shell script, resolvi criar um sistema simples de empresa. A função do script é fazer o controle de pequenas tarefas, tais como: cadastrar empresa, cliente, pagar por produtos etc.

Na opção de pagamento incluí uma página em HTML com códigos do PayPal (isto é, no script original). Nesta postagem estou mostrando somente o script "seco", sem minhas páginas HTML.

Espero que gostem.

Atenção: o script ficou muito legal.

  



Esconder código-fonte

#!/bin/bash

#+-----------------------------------+
#| Program: gTrue 1.0                |
#| Autor: Francisco Iago Lira Passos |
#| Data: 08-03-2016                  |
#+-----------------------------------+

#Variáveis globais
export senha
export compara

#Versão
version="1.0"

#Diretório padrão
dirp=`pwd`

#Código de cores:
corPadrao="\033[0m"
preto="\033[0;30m"
vermelho="\033[0;31m"
verde="\033[0;32m"
marrom="\033[0;33m"
azul="\033[0;34m"
purple="\033[0;35m"
cyan="\033[0;36m"
cinzaClaro="\033[0;37m"
pretoCinza="\033[1;30m"
vermelhoClaro="\033[1;31m"
verdeClaro="\033[1;32m"
amarelo="\033[1;33m"
azulClaro="\033[1;34m"
purpleClaro="\033[1;35m"
cyanClaro="\033[1;36m"
branco="\033[1;37m"

#coluna
coluna=$(echo "$(tput cols)/3" | bc)

#Encriptação:
#Criando chave de segurança:

if [ -f encript ] && [ -f decript ]; then
  clear
    tput cup 8 $coluna
    echo    "+-------------------------------------------------------------+"
    tput cup 9 $coluna
    echo -e "|                                                             |"  
    tput cup 10 $coluna
    echo    "|                                                             |"
    tput cup 11 $coluna
    echo    "+-------------------------------------------------------------+"
    tput cup 9 $(($coluna+2))
    echo "Digite sua senha root: "
    tput cup 10 $(($coluna+2))
    #---------------------------------------
    su -c 'mv encript /bin/ && mv decript /bin/ && chmod +x /bin/encript && chmod +x /bin/decript'
elif [ -f /bin/encript ] && [ -f /bin/decript ]; then
    tput cup 8 $(($coluna+2))
    echo "Bem-vindo ao sistema!"
else
    echo "Erro: falta os arquivos de encriptação e decriptação!"
    exit
fi

#Segurança:
function avanca ()
{
#Verificando diretórios e arquivos:
[ -d cript ] || mkdir cript
[ -d cadastro ] || mkdir cadastro
[ -d cliente ] || mkdir cliente
#---------------------------------
clear
tput cup 8 $coluna
echo    "+-------------------------------------------------------------+"
tput cup 9 $coluna
echo -e "|$vermelho Digite uma senha para acessar seu sistema $corPadrao                  |"  
tput cup 10 $coluna
echo    "|                                                             |"
tput cup 11 $coluna
echo    "+-------------------------------------------------------------+"

while :
do
if [ -f cript/pass.cript ]; then
  compara=$(decript "$(cat cript/pass.cript)")
  tput cup 10 $(($coluna+2))
  read -s -p "Digite sua senha: " senha
    if [ "$senha" = "$compara" ]; then
    break
  else
    tput cup 9 $coluna
    echo -e "|$vermelho Digite uma senha valida para acessar seu sistema $corPadrao           |"  
    tput cup 10 $(($coluna+2))
    read -s -p "Digite sua senha: " senha
    [ "$senha" = "$compara" ] && break
  fi
else

clear
tput cup 8 $coluna
echo    "+-------------------------------------------------------------+"
tput cup 9 $coluna
echo -e "|$vermelho Digite uma senha para acessar seu sistema $corPadrao                  |"  
tput cup 10 $coluna
echo    "|                                                             |"
tput cup 11 $coluna
echo    "+-------------------------------------------------------------+"
tput cup 10 $(($coluna+2))
#Verificando se existe o arquivo pass.cript
  read -s -p "Digite uma senha com mínimo 8 dígitos: " oitop
  encript "$(echo $oitop)" > cript/pass.cript
  tput cup 10 $(($coluna+2))
  su -c 'chown root:$USER cript; chmod 1755 cript; 
    chown root:$USER cript/pass.cript; chmod 1755 cript/pass.cript'
fi
done
}

#Cadastro da empresa
function cadastro_empresa ()
{
avanca

if [ "$senha" = "$compara" ]; then
if [ -f cadastro/empresa.cad ]; then
  tput cup 10 $(($coluna+2))
  echo "Atenção! Empresa já cadastrada!"
else
  clear
  tput cup 8 $coluna
  echo "+----------------------------------------------------------------+"
  tput cup 9 $coluna
  echo "|                                                                |"
  tput cup 10 $coluna
  echo "|                                                                |"
  tput cup 11 $coluna
  echo "|                                                                |"
  tput cup 12 $coluna
  echo "|                                                                |"
  tput cup 13 $coluna
  echo "|                                                                |"
  tput cup 14 $coluna
  echo "|                                                                |"
  tput cup 15 $coluna
  echo "|                                                                |"
  tput cup 16 $coluna
  echo "|                                                                |"
  tput cup 17 $coluna
  echo "+----------------------------------------------------------------+"

  tput cup 9 $(($coluna+1))
  read -p "Digite o nome da sua empresa:" nome_empresa
  tput cup 10 $(($coluna+1))
  read -p "Digite o CNPJ:" cnpj
  tput cup 11 $(($coluna+1))
  read -p "Digite o nome do proprietário:" propietario_empresa
  tput cup 12 $(($coluna+1))
  read -p "Digite a afiliação:" afiliacao_empresa
  tput cup 13 $(($coluna+1))
  read -p "Digite a logomarca:" logomarca_empresa
  tput cup 14 $(($coluna+1))
  read -p "Digite o e-mail da empresa:" email_empresa
  tput cup 15 $(($coluna+1))
  echo -n "Digite seu Cel.:";read -n 2 -p "(" c1; read -n 1 -p ")" c3; read -n 4 -p "" c4 ;read -n 4 -p "-" c5
  tput cup 16 $(($coluna+1))
  echo -n "Digite seu Tel.:";read -n 2 -p "(" t1; read -n 1 -p ")" t3; read -n 3 -p "" t4 ;read -n 4 -p "-" t5

  encript "$(echo Telefone: $t1$t3$t4$t5)" > cadastro/empresa.cad
  encript "$(echo Celular: $c1$c3$c4$c5)" >> cadastro/empresa.cad
  encript "$(echo E-mail: $email_empresa)" >> cadastro/empresa.cad
  encript "$(echo Logomarca: $logomarca_empresa)" >> cadastro/empresa.cad
  encript "$(echo Afiliação: $afiliacao_empresa)" >> cadastro/empresa.cad
  encript "$(echo Proprietário: $propietario_empresa)" >> cadastro/empresa.cad
  encript "$(echo CNPJ: $cnpj)" >> cadastro/empresa.cad
  encript "$(echo Empresa: $nome_empresa)"  >> cadastro/empresa.cad
  

#Modificando permissões de acesso:
  if [ $? -eq 0 ]; then
    clear
    tput cup 8 $coluna
    echo    "+-------------------------------------------------------------+"
    tput cup 9 $coluna
    echo -e "|                                                             |"  
    tput cup 10 $coluna
    echo    "|                                                             |"
    tput cup 11 $coluna
    echo    "+-------------------------------------------------------------+"
    tput cup 9 $(($coluna+2))
    echo "Digite sua senha root: "
    tput cup 10 $(($coluna+2))
    #---------------------------------------
    su -c 'chown root:$USER cadastro; chmod 1755 cadastro;
    chown root:$USER cadastro/*; chmod 1755 cadastro/*'
    #---------------------------------------
  fi
fi
else
  echo "Alerta! Há algum problema com sua senha!"
fi
}

#Cadastro dos clientes

#Cadastro da empresa
function cadastro_clientes () {
if [ "$senha" = "$compara" ]; then

  clear
  tput cup 8 $coluna
  echo "+----------------------------------------------------------------+"
  tput cup 9 $coluna
  echo "|                                                                |"
  tput cup 10 $coluna
  echo "|                                                                |"
  tput cup 11 $coluna
  echo "|                                                                |"
  tput cup 12 $coluna
  echo "|                                                                |"
  tput cup 13 $coluna
  echo "|                                                                |"
  tput cup 14 $coluna
  echo "|                                                                |"
  tput cup 15 $coluna
  echo "|                                                                |"
  tput cup 16 $coluna
  echo "|                                                                |"
  tput cup 17 $coluna
  echo "+----------------------------------------------------------------+"

  tput cup 9 $(($coluna+1))
  read -p "Digite o nome do cliente:" nome_cliente
  tput cup 10 $(($coluna+1))
  echo -n "Digite seu cpf:"; read -n 3 -p "" cp1; read -n 3 -p "." cp2; read -n 3 -p "." cp3; read -n 2 -p "-" cp4
  tput cup 11 $(($coluna+1))
  read -p "Digite o nome do produto:" nome_compra
  tput cup 12 $(($coluna+1))
  read -p "Digite o valor da compra:" valor_compra
  tput cup 13 $(($coluna+1))
  echo -n "Digite a data da compra:"; read -n 2 dt0; read -n 2 -p '/' dt1; read -n 2 -p '/' dt2; read -n 2 dt3
  tput cup 14 $(($coluna+1))
  read -p "Digite o e-mail do cliente:" email_cliente
  tput cup 15 $(($coluna+1))
  echo -n "Digite seu Cel.:";read -n 2 -p "(" c1; read -n 1 -p ")" c3; read -n 4 -p "" c4 ;read -n 4 -p "-" c5
  tput cup 16 $(($coluna+1))
  echo -n "Digite seu Tel.:";read -n 2 -p "(" t1; read -n 1 -p ")" t3; read -n 3 -p "" t4 ;read -n 4 -p "-" t5


  #Este será usado para verificar os cpfs
  cpfs="$cp1.$cp2.$cp3-$cp4"
  
  #Diretório padrão da pasta cliente
  number=$(echo $(ls $dirp/cliente | grep 'cad' | wc -l))
  padraoc=$dirp/cliente/$(echo "cliente$number.cad")

  #Enviando o nome do cliente para um arquivo  
  echo "$(echo "cliente$number.cad") $nome_cliente $cpfs" >> $dirp/cliente/client_name.txt
  
  #Verificar se nome não foi inserido duas vezes
  if [ -f cliente/client_name.txt ] ; then
    num1=$(cat $dirp/cliente/client_name.txt | wc -l | bc)
    if [ "$num1" != "1" ]; then
       grep "$cpfs" cliente/client_name.txt; flag0=$? 
    fi
  fi
  
  #Se o cpf já existir, então o processo é parado, caso contrário prosegue
  if [ "$flag0" = "0" ]; then
    
      echo "O cliente já existe!"
      sed "/$cpfs/d" $dirp/cliente/client_name.txt
  
   else
      #Salvando os dados num arquivo criptografado
      encript "$(echo "Telefone: $t1$t3$t4$t5")" > $padraoc
      encript "$(echo "Celular: $c1$c3$c4$c5")" >> $padraoc
      encript "$(echo "E-mail: $email_cliente")" >> $padraoc
      encript "$(echo "Data da compra: $dt0/$dt1/$dt2$dt3")" >> $padraoc
      encript "$(echo "Valor da compra: $valor_compra")" >> $padraoc
      encript "$(echo "Nome do produto: $nome_compra")" >> $padraoc
      encript "$(echo "Cpf: $cp1.$cp2.$cp3-$cp4")" >> $padraoc
      encript "$(echo "Nome: $nome_cliente")" >> $padraoc
   fi   
else
      echo "Alerta! Há algum problema com sua senha!"
fi
}

#Função para excluir clientes
function deleta_cliente ()
{
  tput cup 8 $coluna
  echo -e  "+--------------------------------------------------------------+";
   tput cup 9 $coluna
  echo "|             Digite o CPF para deletar o cliente                |"
  tput cup 10 $coluna
  echo "|                                                                |"
  tput cup 8 $coluna
  echo -e  "+--------------------------------------------------------------+";
   tput cup 10 $(($coluna+1))
  echo -n "Digite seu cpf:"; read -n 3 -p "" pf1; read -n 3 -p "." pf2; read -n 3 -p "." pf3; read -n 2 -p "-" pf4
  
    cpf1=$(echo "$pf1.$pf2.$pf3-$pf4")
  while read id
  do 
    cpf2=$(echo $id | sed 's/.*.cad//g;s/[^0123456789.-]//g')
    if [ "$cpf2" = "$cpf1" ]; then
      rm $dirp/cliente/$(echo $id | awk '{print $1}')
      sed -i "/$cpf2/d" $dirp/cliente/client_name.txt
    fi
  done < cliente/client_name.txt
}

#Função que mostra os preços dos produtos
function preco () {

    tput cup 8 $coluna;
    echo -e  "+--------------------------------------------------------------+";
    tput cup 9 $coluna;
    echo -e "|          ($vermelho 1 $corPadrao)  Preço $azul R$ 10,00 $corPadrao                             |";
    tput cup 10 $coluna;                           
    echo -e "|          ($vermelho 2 $corPadrao)  Preço $azul R$ 11,00 $corPadrao                             |";
    tput cup 11 $coluna;                           
    echo -e "|          ($vermelho 3 $corPadrao)  Preço $azul R$ 12,00 $corPadrao                             |";
    tput cup 12 $coluna;                           
    echo -e "|          ($vermelho 4 $corPadrao)  Preço $azul R$ 13,00 $corPadrao                             |";
    tput cup 13 $coluna;                           
    echo -e "|          ($vermelho 5 $corPadrao)  Preço $azul R$ 14,00 $corPadrao                             |";
    tput cup 14 $coluna;                           
    echo -e "|          ($vermelho 6 $corPadrao)  Preço $azul R$ 15,00 $corPadrao                             |";
    tput cup 15 $coluna;                           
    echo -e "|          ($vermelho 7 $corPadrao)  Preço $azul R$ 16,00 $corPadrao                             |";
    tput cup 16 $coluna;                           
    echo -e "|          ($vermelho 8 $corPadrao)  Preço $azul R$ 17,00 $corPadrao                             |";
    tput cup 17 $coluna;                           
    echo -e "|          ($vermelho 9 $corPadrao)  Preço $azul R$ 18,00 $corPadrao                             |";
    tput cup 18 $coluna;  
    echo -e "|          ($vermelho 10 $corPadrao) Preço $azul R$ 19,00 $corPadrao                             |";
    tput cup 19 $coluna;  
    echo -e "|          ($vermelho 11 $corPadrao) Preço $azul R$ 20,00 $corPadrao                             |";
    tput cup 20 $coluna;       
    echo -e "|          ($vermelho 12 $corPadrao) Preço $azul entre R$ 21,00 e R$ 40,00 $corPadrao            |";
    tput cup 21 $coluna;
    echo -e "|                                                              |";
    tput cup 22 $coluna;
    echo -e "|                                                              |";
    tput cup 23 $coluna;
    echo -e  "+--------------------------------------------------------------+";
    tput cup 22 $(($coluna+11));
    read -n 1 -p "Digite o número da opção desejada: " preco;
    return preco;
}

#Em teste
function reset_system ()
{
  tput cup 8 $coluna
  echo -e  "+--------------------------------------------------------------+";
   tput cup 9 $coluna
  echo "|             Digite o CPF para deletar o cliente                |"
  tput cup 10 $coluna
  echo "|                                                                |"
  tput cup 8 $coluna
  echo -e  "+--------------------------------------------------------------+";
   tput cup 10 $(($coluna+1))
  echo -n "Digite seu cpf:"; read -n 1 -p "Deseja realmente resetar o sistema (s/n)?" sn
  
  if [ "$sn" = "s" ]; then
    tput cup 9 $coluna
    echo "|         Digite a senha do usuário root para deletar o cliente            |"
    tput cup 10 $(($coluna+1))
    su -c 'rm -rf cript/ cadastro/ cliente/'
  fi
}

#Menu
function menu ()
{
clear
tput cup 8 $coluna
echo -e "$corPadrao+---------------------------------------+"
tput cup 9 $coluna
echo -e "| $vermelho             gTrue \033[0;31m $version $corPadrao              |"
tput cup 10 $coluna
echo -e "|                                       |"
tput cup 11 $coluna
echo -e "|       (1) $azulClaro Cadastrar Empresa $corPadrao         |"
tput cup 12 $coluna
echo -e "|       (2) $azulClaro Cadastrar Cliente $corPadrao         |"
tput cup 13 $coluna
echo -e "|    (3) $azulClaro Remover Cliente $corPadrao           |"
tput cup 14 $coluna
echo -e "|    (4) $azulClaro Pagar Produto   $corPadrao           |"
tput cup 15 $coluna
echo -e "|    (5) $azulClaro Resetar sistema $corPadrao           |"
tput cup 16 $coluna
echo -e "|    (6) $azulClaro Sair      $corPadrao                 |"
tput cup 17 $coluna
echo -e "|                                       |"
tput cup 18 $coluna
echo -e "|                                       |"
tput cup 19 $coluna
echo -e "+---------------------------------------+"
tput cup 18 $(($coluna+8))
read -n 1 -p 'Digite sua opção: ' opcao
echo ''
echo ''
}

#Chamar o menu
menu

#Ao pressionar uma tecla executar: 051.525.899-02
while :
do
 case "$opcao" in

1) avanca;
   if [ "$senha" = "$compara" ]; then cadastro_empresa; menu; else echo "Senha incorreta!"; menu; fi;
    ;;
2) avanca;
   if [ "$senha" = "$compara" ]; then cadastro_clientes; menu; else echo "Senha incorreta!"; menu; fi; 
   ;;
3) avanca;
   if [ "$senha" = "$compara" ]; then deleta_cliente; menu; else echo "Senha incorreta!"; menu; fi; 
   ;;
4) avanca;
   if [ "$senha" = "$compara" ]; then preco; menu; else echo "Senha incorreta!"; menu; fi;
   ;;

5) avanca;
   if [ "$senha" = "$compara" ]; then reset_system; menu; else echo "Senha incorreta!"; menu; fi;
   ;;   

6) echo "Você saiu!";
   exit;
   ;;
*) menu
   ;;
esac
done

Scripts recomendados

Cluster beowulf

Atualizar repositório no Linux desabilitando a hibernação do sistema

Visual para tcpdump com dialog

Configuração do VNC Server no Display 0 (terminal que estiver na tela)

Make Knoppix


  

Comentários
[1] Comentário enviado por gambiarraweb1 em 06/06/2016 - 22:46h

Opa, poderia disponibilizar o arquivo com as páginas html ?
email: diegohot14@gmail.com

[2] Comentário enviado por iagolira em 07/06/2016 - 20:06h


[1] Comentário enviado por gambiarraweb1 em 06/06/2016 - 22:46h

Opa, poderia disponibilizar o arquivo com as páginas html ?
email: diegohot14@gmail.com


Enviei pro seu e-mail.

[3] Comentário enviado por wandersonbc em 21/06/2016 - 14:33h

Muito interessante, se possível tbem gostaria de ver as paginas html para dar uma estudada: wanderson.barcelos@gmail.com
Muito obrigado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts