;** A_CNPJ *********************************************************************
;*  Rotina para verificar duplicidade de CPF ou CNPJ existente no cadastro     *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 13/01/2015 por Bruno Carvalho
;Ultima Alteracao:   /  /     por 
;Motivo Alteracao:                   

;*******************************************************************************
;* Rotina para montar a impressao                                              *
;*******************************************************************************
Proc Impressao()

DynArray CODIGO[]
DynArray CNPJ[]

CONTADOR     = 0
CONT_CNPJ    = 0

{Ask} {Destinat}                             
Moveto [CGC   ] Check
Do_It!
ClearAll

NR=NRecords("Answer")

View "Destinat"
View "Answer" 
Scan
  Barra(NR, RecNo())
  Aguarde("Aguarde, Verificando CNPJ "+BARRA_STRING)
   
  CONTADOR     = 0
  CNPJ_CLIENTE = [CGC]
  Moveto "Destinat"
  Moveto [CGC]
  Locate CNPJ_CLIENTE
  If RetVal
     Then While True
            CONTADOR = CONTADOR + 1
            Skip
            If EOT() Then Quitloop EndIf
            Locate Next CNPJ_CLIENTE
            If Not RetVal
               Then QuitLoop
               Else CONTADOR = CONTADOR + 1
            EndIf
          EndWhile
  EndIf 
    
  If CONTADOR > 1
     Then COD = "***"
          CONTADOR = 0
          Moveto "Destinat"
          Moveto [CGC]
          Locate CNPJ_CLIENTE
          If RetVal
             Then CONT_CNPJ = CONT_CNPJ + 1
                  While True
                    If COD <> [Codigo]
                       Then If COD = "***"
                               Then COD = [Codigo]
                                    CODIGO[CONT_CNPJ] = COD
                               Else COD = [Codigo]
                                    CODIGO[CONT_CNPJ] = CODIGO[CONT_CNPJ] + ", " + COD    
                            EndIf        
                    EndIf              
                    CONTADOR = CONTADOR + 1
                    Skip
                    If EOT() Then Quitloop EndIf
                    Locate Next CNPJ_CLIENTE
                    If Not RetVal
                       Then QuitLoop
                       Else CONTADOR = CONTADOR + 1
                    EndIf
                  EndWhile
          EndIf   
          CNPJ[CONT_CNPJ] = CNPJ_CLIENTE
          If Not Imprime()
            Then ClearAll
                 Mensagem("Processo Abortado !")
                 Return
          EndIf       
  EndIf  
  Moveto "Answer"
EndScan
CleaRall

If IsFile(ARQIMP)
  Then ImpriArq(ARQIMP)
       Deleta_Arquivo(ARQIMP)
EndIf

EndProc ;Impressao()

;*******************************************************************************
;* Cabe‡alho                                                                   *
;*******************************************************************************
Proc Cabecalho()

Print File ARQIMP CI_15CPP
Print File ARQIMP "\n\n\n"
Print File ARQIMP Spaces(2)+Fill("-",135) + "\n"
Print File ARQIMP Spaces(2)+Format("W135,AC","CPF ou CNPJ Duplicados")+ "\n"
Print File ARQIMP Spaces(2)+Fill("-",135)+ "\n"
Print File ARQIMP "\n"

NLINHA = 7

EndProc ;Cabecalho()

;*******************************************************************************
;* Rotina de Impressao                                                         *
;*******************************************************************************
Proc Imprime()
If Not IsAssigned(NLINHA) Then NLINHA = 0 EndIf

If Not IsFile(ARQIMP) Or NLINHA >= 66
   Then If Not IsFile(ARQIMP)
           Then ConfGeral("Deseja imprimir em PDF a rela‡„o de CPF ou CNPJ duplicados ?")
                If OK<>"S"
                   Then Return False     
                   Else DISPOSITIVO_OPCAO = "V"
                        PDFZEBRA = False
                EndIf
       EndIf              
       If NLINHA >= 66
           Then Print File ARQIMP "\f"
       EndIf
       Cabecalho()
EndIf   

Print File ARQIMP Spaces(2) + Completa(CODIGO[CONT_CNPJ]+" ",116,".") + " " + CNPJ[CONT_CNPJ]+"\n"    
NLINHA = NLINHA + 1

Return True

EndProc ;Imprime()

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bibliot"
  
Mensagem("Rotina para verificar se h  CPF ou CNPJ duplicados!")
ArqImp=PrivDir()+"CNPJ.Txt"
If IsFile(ArqImp)
   Then Deleta_Arquivo(ARQIMP)
EndIf     

CI_15CPP="\15"

Impressao()   