Gerenciador Simples de Empresa
Publicado por Iago Lira (última atualização em 01/06/2016)
[ Hits: 14.084 ]
Homepage: https://notabug.org/iagolira/
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.
#!/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
Converter Arquivo RMVB para AVI
Atualização Automática do Uvscan (Antivirus for linux)
Como ser proteger de site que é alvo de sequestro do DNS
Barra de progresso em shell script com cores roxa e verde
Gerar senhas aleatórias de qualquer tamanho
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como fazer a conversão binária e aplicar as restrições no Linux
Como quebrar a senha de um servidor Linux Debian
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático
Formas seguras de instalar Debian Sid (12)
Malware encontrado em extensões do Firefox. (0)
Fiz uma pergunta no fórum mas não consigo localizar [RESOLVIDO] (21)









