Sistema de Gestão de Protocolos em YAD
Publicado por Daniel Carvalho (última atualização em 21/12/2016)
[ Hits: 4.857 ]
Este é meu primeiro Shell Script. Meu primeiro código em programação aliás. Foi meu primeiro estudo.
O script na verdade é um programinha para ajudar a organizar os protocolos de atendimento em SAC's e serviços de telemarketings que cotidianamente a gente tem que lidar.
REQUISITOS
- o script foi todo desenvolvido com o YAD, uma interface gráfica para shell. Ela deve estar instalada.
DESCRIÇÃO
- cadastra novos protocolos através de formulário
- busca protocolos cadastrados através de palavra-chave
- mostra os resultados e os imprime, se quiser
- gera um arquivo .csv que pode ser utilizado em EXCEL ou CALC
Fiquem a vontade para mandar sugestões. Adoraria recebê-las para aprender mais.
Abraços.
#!/bin/bash # Script para captar informações sobre atendimentos telefônicos em centrais de atendimento # e direcionar para um arquivo .csv # Versão 2.1 | Autor: Daniel Carvalho # CRIANDO OS ARQUIVOS NECESSÁRIOS touch prot_reg.csv if [ -s prot_reg.csv ] then touch prot_reg.csv else echo "CENTRAL|DATA|ATENDENTE|PROTOCOLO|DESCRIÇÃO|" >> prot_reg.csv fi # DECLARANDO VARIÁVEIS VERSAO="2.1" HOJE=`date +%d/%m/%Y` # DECLARANDO ALIASES (ver sintaxe) alias msg_erro='yad --button=OK --title="Ops!" --text="Algo deu errado. Tente novamente." --text-align=center --width=200 --height=120 --window-icon=error --image=dialog-error' # DECLARANDO FUNÇÕES organizando_procura(){ GREP_VAR=`grep "$SEARCH" -i prot_reg.csv` TITULOS=(CENTRAL DATA ATENDENTE PROTOCOLO DESCRIÇÃO) OLDIFS="$IFS" echo -e "PROTOCOLOS $VERSAO - Organize seus direitos" >> result.inf echo >> result.inf echo "====================================" >> result.inf echo >> result.inf while IFS=$'\n' read -r LINE do IFS="|" read -a CAMPOS <<< "$LINE" IFS="$OLDIFS" for ((x=0;x<5;x++)) do echo -e "${TITULOS[$x]}: ${CAMPOS[$x]}" >> result.inf done echo >> result.inf done <<< "$GREP_VAR" echo "------------------------------------" >> result.inf echo "Pesquisado em $HOJE" >> result.inf } inserindo_dados(){ yad --form --width=450 --height=340 --title="Cadastrar" --image=gtk-add --text="<b>Insira os dados pedidos</b>\n"\ --field="Central":CBE ^NET!Oi!TIM!Vivo\ --field="Data":DT\ --field="Atendente"\ --field="Protocolo"\ --field="Descrição do atendimento":TXT >> prot_reg.csv unset DE_NOVO DE_NOVO=`yad --title="Prosseguir?" --button="Sim"!gtk-ok --button="Não"!gtk-cancel --text="Deseja <b>adicionar</b> outra entrada?" --image=gtk-execute` if [ "$?" = 0 ] then inserindo_dados elif [ "$?" = 1 ] then tela_inicio else msg_erro fi } procurando_dados(){ SEARCH=`yad --form --width=350 --title="Procurar" --window-icon=gtk-search --image=gtk-find --text="Você pode procurar por qualquer campo que quiser. É só digitar o <b>termo de pesquisa</b> no formulário abaixo.\n \n <i> * Central\n * Data [dd/mm/aaaa]\n * Atendente\n * Protocolo\n * Palavra-chave</i> \n" --field="Digite o termo"` if [ "$?" = 0 ] then organizando_procura # cat result.inf | yad --text-info --title="Resultado da Pesquisa" --image=gtk-info\ --text="Abaixo seguem os resultados encontrados" --width=500 --height=650\ --button=gtk-ok:0 --button=gtk-print:300 --filename=result.inf # IF dentro de IF para testar se quer imprimir ou não if [ "$?" = 300 ] then yad --print --type=text --filename=result.inf fi rm -f result.inf # Remover o arquivo de resultados elif [ "$?" = 1 ] then tela_inicio else msg_erro fi unset DE_NOVO DE_NOVO=`yad --title="Prosseguir?" --button="Sim"!gtk-ok --button="Não"!gtk-cancel --text="Deseja <b>procurar</b> outra entrada?" --image=gtk-execute` if [ "$?" = 0 ] then procurando_dados elif [ "$?" = 1 ] then tela_inicio else msg_erro fi } tela_inicio(){ ESCOLHA=`yad --list --width=350 --height=220 --button=gtk-ok:0 --no-headers --dialo-sep --image=gtk-dialog-question --text="Escolha a operação que você deseja fazer" --title="Escolha a opção - PROTOCOLOS $VERSAO" --separator='' --column="unica" "Cadastrar uma entrada" "Procurar uma entrada" "Sobre o script" "Sair"` if [ -z "$ESCOLHA" ] then exit elif [ "$ESCOLHA" = "Cadastrar uma entrada" ] then inserindo_dados elif [ "$ESCOLHA" = "Procurar uma entrada" ] then procurando_dados elif [ "$ESCOLHA" = "Sobre o script" ] then sobre_about else exit fi } sobre_about(){ yad --width=450 --height=400 --title="Sobre PROTOCOLOS $VERSAO" --text-align=center --image=gtk-about --text="<b>PROTOCOLOS $VERSAO</b>\n \n Este é um script desenvolvido em linguagem de <b> Shell Script</b> por <b><i>Daniel Carvalho</i></b> para fins de estudo e hobbie. É gratuito e <i>open source</i>. Pode e deve ser mexido e remexido por qualquer pessoa que queria contribuir com sua melhoria.\n \n Por favor, visite 'http://https://github.com/dacarpe/' para mais informações sobre como contribuir com o código." --button=gtk-ok:0 --buttons-layout=center tela_inicio } # PARTINDO PRO PROGRAMA # TELA DE ABERTURA yad --undecorated --title="PROTOCOLOS $VERSAO" --image-on-top --image=logo60.png --text-align=center --text="<b>PROTOCOLOS - Organize seus direitos</b>\n \n<b>Versão $VERSAO</b> - Autor: <i>Daniel Carvalho</i>" --timeout=2 --no-buttons --center --on-top tela_inicio
Cálculo da Aplicação Financeira
Script de backup em um case USB
Script de instalação para Firefox e Thunderbird - new release
Nenhum comentário foi encontrado.
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
## Instalado Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Quais arquivos vc salvaria num backup se vc soubesse que seu hd/ssd ia... (0)
Slackware não reconhece teclado e mouse após reboot (0)
Problemas na Atualização do Ubuntu 20.04 para 22.04 (3)
Nao consigo atualizar o Ubuntu para 22.04 (uso Ubuntu 20.04 (3)