Gerenciador Simples de Empresa

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

[ Hits: 13.769 ]

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

Script para fazer download de vídeos do YouTube

Captura ip estatico !!

Script de Backup

Firewall com proxy transparente completo

Configurando Adaptador USBSerial no Ubuntu usando udev


  

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