Sistema de Gestão de Protocolos em YAD

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

[ Hits: 4.617 ]

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

Listas em shell

Backup dos arquivos e diretórios de um servidor com XMAIL e Iptables para um servidor central de Bac

Script que converte maiúsculas em minúsculas e retira branco do nome.

Make ISO OpenBSD

Download do LXQT Slackware Current


  

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