Sistema de Gestão de Protocolos em YAD
Publicado por Daniel Carvalho (última atualização em 21/12/2016)
[ Hits: 4.955 ]
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
MGME - Mythic Game Master Emulator
Script de instalação do Hamachi
Postfix: Configurando o Gmail como Relay (moleza)
SysInfo 2.1 (Informações do Sistema)
Nenhum coment�rio foi encontrado.
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Como gerar um podcast a partir de um livro em PDF
Organizando seus PDF com o Zotero
Erro no realm join [Resolvido]
Um programa para baixar vídeos: Parabolic
Como Definir o Painel Principal em Múltiplos Monitores no Linux Mint
Sempre que vou baixar algum pacote acontece o erro dpkg (7)
como instalo panfrost-dri e o driver panfrost fork , ou panfrost (12)