Sistema de Gestão de Protocolos em YAD

Publicado por Daniel Carvalho (última atualização em 21/12/2016)

[ Hits: 4.638 ]

Download protocolos_2.0.sh




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.

  



Esconder código-fonte

#!/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

Scripts recomendados

Scanner de portas abertas

Script para apagar CD-RW com barra de progresso em Xdialog

Limpa o diretório atual, excluindo arquivos temporários

rename

Criar-iso


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts