Gerenciador Simples de Empresa
Publicado por Iago Lira (última atualização em 01/06/2016)
[ Hits: 13.814 ]
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
Baixando e instalando o Asterisk
bash: função para validação de IP (IPv4)
Configurando Adaptador USBSerial no Ubuntu usando udev
Busca de arquivos nas ports FreeBSD
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Enzo quer programar mas não faz código pra não bugar (4)
Comandos no NixOS não funcionam (5)