#!/bin/bash

# Linux
#wget=/usr/bin/wget
wget=wget
tar=/bin/tar

WORKING_DIR="/home/usuario/notas-cofre/"
MODO_EMPRESA="1"  #1=contabilidade, 2=empresa
CNPJ_CONTABILIDADE="111111111111"
CHAVE_DOWNLOAD="XXXXXXXX"
FILTRO_CNPJ_EMPRESA=""  #preencha se quiser
FILTRO_BAIXAR_JA_BAIXADOS="1" #0=só baixa os arquivos ainda não baixados, 1=baixa novamente os arquivos já baixados
FILTRO_EMISSAO_INICIAL="01/01/2018" #pode deixar em branco caso FILTRO_BAIXAR_JA_BAIXADOS seja 0
FILTRO_EMISSAO_FINAL="05/01/2018"

#Filtro opcional para restringir notas conforme o CNPJ
FILTRO_NOTAS_CNPJ_TIPO1="" #valores possíveis: emitente, destinatario, transportador, tomador, receb, exped
FILTRO_NOTAS_CNPJ_OPERADOR1=""  #valores possíveis: igual ou diferente
FILTRO_NOTAS_CNPJ_VALOR1="" #CPF/CNPJ, com ou sem formatacao

#Segundo filtro opcional para restringir notas conforme o CNPJ 
FILTRO_NOTAS_CNPJ_TIPO2="" #valores possíveis: emitente, destinatario, transportador, tomador, receb, exped
FILTRO_NOTAS_CNPJ_OPERADOR2=""  #valores possíveis: igual ou diferente
FILTRO_NOTAS_CNPJ_VALOR2="" #CPF/CNPJ, com ou sem formatacao

#1 = Ano Mês 
#2 = Ano Mês / CNPJ-Empresa contraria a nota (emitente/destinatario)
#3 = CNPJ-Empresa contraria a nota (emitente/destinatario) / Ano Mês
#4 = CNPJ-Empresa contraria a nota (emitente/destinatario) / Ano / Mês
#5 = Ano / CNPJ-Empresa contraria a nota (emitente/destinatario)
#6 = Ano / CNPJ-Empresa contraria a nota (emitente/destinatario) / Mês
#7 = Ano Mês
#8 = Nome-Empresa contraria a nota (emitente/destinatario) (apenas nome) / Ano Mês
#9 = CNPJ-Empresa contraria a nota (emitente/destinatario) / Ano / Mês / Tipo
#10 = Todos na mesma pasta
#11 = CNPJ-Emitente / Ano / Mês / Tipo
#12 = CNPJ-Destinatario / Ano / Mês / Tipo
#13 = Tipo / Ano / Mês
#14 = Tipo / Ano / Mês / CNPJ-Emitente
#15 = Tipo / CNPJ Destinatário / Ano / Mês
ORGANIZACAO="1"


echo "Comecou em $(date)"

mkdir -p $WORKING_DIR
cd $WORKING_DIR

## wget1 to download  LISTA ARQUIVOS
wget "http://painel.cofrenfe.com.br/api-software/lista-contas-com-arquivos?modo=$MODO_EMPRESA&origem=ALL&cnpj=$CNPJ_CONTABILIDADE&chaveD=$CHAVE_DOWNLOAD&filtroCNPJ=$FILTRO_CNPJ_EMPRESA&filtroObterArquivosJaObtidos=$FILTRO_BAIXAR_JA_BAIXADOS&filtroPeriodoEmissaoInicio=$FILTRO_EMISSAO_INICIAL&filtroPeriodoEmissaoTermino=$FILTRO_EMISSAO_FINAL" -O "d_contas.tmp" -q;
sed 's/<br>/\n/g' d_contas.tmp > d_contas.html
#sed 's/LISTA_DE_CONTAS<br>//g' d_contas.html > d_contas.html

CONTAS=()
re='^[0-9]+$'
while read p; do
    #echo "Linha = $p" 
    valor1=`echo "$p" | awk -F'|' '{print $1}'`
    #echo "	Valor importante = $valor1"
    check=${#valor1}
    if [[ $valor1 =~ $re ]] ; then
       CONTAS+=($valor1);
    fi
done <d_contas.html
tLen=${#CONTAS[@]}

echo "Total de empresas: $tLen"
#echo " terminou 1";
rm -f d_contas.html
rm -f d_contas.tmp

#percorre a lista de contas e obtem a lista de arquivos
LOTES=()
for c in "${CONTAS[@]}"
do
   echo "Procurando arquivos da empresa $c"
   check=${#c}
   if [ $check -ge 6 ]; then
     #echo "CONTA = $c"
     ARQUIVOCONTA="`wget -qO- "http://painel.cofrenfe.com.br/api-software/lista-arquivos?modo=$MODO_EMPRESA&cnpj=$CNPJ_CONTABILIDADE&origem=ALL&chaveD=$CHAVE_DOWNLOAD&conta_id=$c&myVersion=2.0BETA&filtroCNPJ=$FILTRO_CNPJ_EMPRESA&filtroObterArquivosJaObtidos=$FILTRO_BAIXAR_JA_BAIXADOS&filtroPeriodoEmissaoInicio=$FILTRO_EMISSAO_INICIAL&filtroPeriodoEmissaoTermino=$FILTRO_EMISSAO_FINAL&cnpj_tipo=$FILTRO_NOTAS_CNPJ_TIPO1&cnpj_operador=$FILTRO_NOTAS_CNPJ_OPERADOR1&cnpj_valor=$FILTRO_NOTAS_CNPJ_VALOR1&cnpj_tipo2=$FILTRO_NOTAS_CNPJ_TIPO2&cnpj_operador2=$FILTRO_NOTAS_CNPJ_OPERADOR2&cnpj_valor2=$FILTRO_NOTAS_CNPJ_VALOR2"`"
     #echo "CONTEUDO EH $ARQUIVOCONTA"
     `echo "$ARQUIVOCONTA" > arquivos.tmp`
     sed 's/<br>/\n/g' arquivos.tmp > arquivos.html
     rm -f arquivos.tmp

     while read l; do
	   valor2=`echo "$l" | awk -F'|' '{print $3}'`
	   valor3=`echo "$l" | awk -F'|' '{print $4}'`
	   #echo "	Valor importante = $valor2 e $valor3"
	   if [ -n "$valor2" ]; then
     	   if [ -n "$valor3" ]; then
	         a=`echo "$valor3&arquivo_id=$valor2";`
		      #echo "linha $a"
	         LOTES+=($a)

            echo "   Baixando lote $a"
            `wget -t 1 -q -O arquivobaixado.zip "http://painel.cofrenfe.com.br/api-software/download?descompactado=0&organizacao=$ORGANIZACAO&formato=MULTIPLO&modo=$MODO_EMPRESA&cnpj=$CNPJ_CONTABILIDADE&origem=ALL&chaveD=$CHAVE_DOWNLOAD&chave_arquivo=$a&configVariasEmpresas=&filtroObterArquivosJaObtidos=$FILTRO_BAIXAR_JA_BAIXADOS"`
            #echo "Baixou $a"
            if zipinfo arquivobaixado.zip > /dev/null; then
               echo "   Descompactando"
               unzip -q arquivobaixado.zip
               rm -f arquivobaixado.zip
               echo "   Confirmando download"
               CONFIRMACAO="`wget -qO- "http://painel.cofrenfe.com.br/api-software/download-confirma?formato=MULTIPLO&modo=$MODO_EMPRESA&cnpj=$CNPJ_CONTABILIDADE&chaveD=$CHAVE_DOWNLOAD&chave_arquivo=$a"`"
            fi
            
	      fi
 	   fi
     done <arquivos.html
  fi
  tLen=${#LOTES[@]}
  echo "Total de lotes de arquivos: $tLen"
done
rm -f arquivos.html


echo "Termino em $(date)"
