Gerenciador Simples de Empresa
Publicado por Iago Lira (última atualização em 01/06/2016)
[ Hits: 13.780 ]
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
Script para adicionar usuarios ftp
Configurando um Domínio no BIND9 com Debian 3.1
Árvore de Natal do Julio Neves
Implementando Statement e RecordSet em bash script
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
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Criar um servidor caseiro para hospedar sites proprios (4)
Ubuntu 24.04 e problemas de acesso à rede VPN [RESOLVIDO] (9)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta