;** VIS_DANF *******************************************************************
;*  Visualizacao de Danfe                                                      *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido  em: 28/07/2015 por Andrey Fillipe
;Ultima Alteracao: 06/04/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes deletear arquivos temporarios
;Ultima Alteracao: 02/12/2016 por Kamila Gomes
;Motivo Alteracao: Ajustes Consultar Manager
;Ultima Alteracao: 26/09/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes novos calculos da nota
;Ultima Alteracao: 04/11/2017 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes retorno do erro           
;Ultima Alteracao: 06/11/2017 por Bruno Carvalho                           
;Motivo Alteracao: Ajustes na vari vel de controle "s", onde foi add UPPER p/ realizar a verifica‡Æo de versÆo 
;Ultima Alteracao: 15/05/2018 por Anivel Augusto Rodrigues                           
;Motivo Alteracao: Ajustes arquivo pdf tmp nome diferente

;*******************************************************************************
;* Rotina para Visualizar Danfe(NF)                                            *
;*******************************************************************************
Proc VisualizarDanfe()
Private nfeok, pos, pos2,DIRTEMP 

NOTAFISC                 = [Numero da OF]
CODFISC                  = PARAM_DOC_NFEN
SERIEFISC                = PARAM_SER_NFEN
PastaNfeManager          = RTrim(PARAM_CAMINHO_MANAGER)
GrupoeDoc                = RTrim(PARAM_GRUPO_EDOC)
CNPJ_Manager             = Tira_CharNum(CNPJNF_e)
denegada                 = False
cancelada                = False
PastaNfeManagerMonitorar = PastaNfeManager+"Monitorar\\"+GrupoeDoc+"\\NFe\\"+CNPJ_Manager+"\\"

nfeok=False
While True
  
    ;--- Carregando parametros ----------------------------------------------------
    AmbienteNFe    =""
    ModoNFe        =""
    VersaoNFe      =""
    VersaoEsquema  =""
    
    ;--- Carregando parametros atraves do getconfig por CNPJ ----------------------
    Aguarde("Verificando configura‡”es do Manager eDoc CNPJ "+CNPJ_Manager+" !")
    
    conteudodoarquivo=""  
    FileWrite        PrivDir()+"Config.ini"   From  "getconfig" 
    FileWrite        PrivDir()+"funcao1.txt"  From  "DELT|"+PastaNfeManagerMonitorar+"modo\\Retorno\\Config.ini"+"\n"
    FileWrite Append PrivDir()+"funcao1.txt"  From  "COP|"+PrivDir()+"Config.ini"+"|"+PastaNfeManagerMonitorar+"modo\\Config.ini"+"\n"
    FileWrite Append PrivDir()+"funcao1.txt"  From  "DELT|"+PrivDir()+"Config.ini"+"\n" 
    FileWrite Append PrivDir()+"funcao1.txt"  From  "DELT|"+PrivDir()+"manager2.ini"+"\n"
    FileWrite Append PrivDir()+"funcao1.txt"  From  "COPM|"+PastaNfeManagerMonitorar+"modo\\Retorno\\Config.ini"+"|"+PrivDir()+"manager2.ini"+"\n"
    
    ExecVise(PrivDir()+"funcao1.txt")
    
    conteudodoarquivo="" 
  
    If Not LerConteudodoArquivo8(PrivDir()+"manager2.ini") Or
       conteudodoarquivo="" 
       Then MSG="Configura‡äes do Manager eDoc p/ verificar !// //"
        	  MSG=MSG+".ini do CNPJ "+CNPJ_Manager+", nÆo encontrado//" 
         	  MSG=MSG+"// Verifique com suporte vise !"
         		Mensagem(MSG)
            nfeok=False
        		QuitLoop
    EndIf   
    
    Pos=SearchFrom("[NFE]",conteudodoarquivo,1)
    Pos2=SearchFrom("Ambiente=",conteudodoarquivo,pos)
    AmbienteNFe=SubStr(conteudodoarquivo,pos2+9,1)
    
    Pos=SearchFrom("[NFE]",conteudodoarquivo,1)
    Pos2=SearchFrom("VersaoManual=",conteudodoarquivo,pos)
    s=Upper(Tira_CharEspecial(SubStr(conteudodoarquivo,pos2+13,4)))
    If s="5.0A" Then VersaoNFe="3.10"  EndIf
    If s="6.0"  Then VersaoNFe="4.00"  EndIf
    
    ModoNFe="Normal"  
        
    Pos=SearchFrom("[MANAGEREDOC]",conteudodoarquivo,1)
    Pos2=SearchFrom("VersaoEsquema=",conteudodoarquivo,pos)
    VersaoEsquema=Upper(SubStr(conteudodoarquivo,pos2+14,7))
    
    Pos=SearchFrom("[MANAGEREDOC]",conteudodoarquivo,1)
    Pos2=SearchFrom("FusoHorario=",conteudodoarquivo,pos)
    Fuso_Horario=SubStr(conteudodoarquivo,pos2+12,6)

    ArqNFE           ="prview"+StrVal(NOTAFISC)+".TX2"
    ArqNFE_Envia     =PastaNfeManagerMonitorar+"Imprime\\"+ArqNFe

    nfeok=True
    release vars conteudodoarquivo
    
    QuitLoop  
EndWhile

LimpAguarde()
Return nfeok

EndProc ;(VisualizarDanfe)

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************

If VisualizarDanfe()
   Then PARAM_VISUALIZAR_DANFE = True

        ArqNFE_Imprime    = "prview"+StrVal(NOTAFISC)
        ArqNFE_ImprimeRet = PastaNfeManagerMonitorar+"Imprime\\Retorno\\prview"+StrVal(NOTAFISC)
        ArqNFE_Valida     = PastaNfeManagerMonitorar+"Valida\\prview"+StrVal(NOTAFISC)+".TX2"
        ArqNFE_ValidaRet  = PastaNfeManagerMonitorar+"Valida\\Retorno\\prview"+StrVal(NOTAFISC)+".TX2"
   
        ArqNFE_ImprimeTmp =PrivDir()+"tmp"+ArqNFE_Imprime+"_"+Tira_CharNum(strval(time()))   
   
        FileWrite        PrivDir()+"funcao10.txt"  From "DELT|"+ArqNFE_Imprime   +".pdf"+"\n"
        FileWrite Append PrivDir()+"funcao10.txt"  From "DELT|"+ArqNFE_ImprimeRet+".pdf"+"\n" 
        FileWrite Append PrivDir()+"funcao10.txt"  From "DELT|"+ArqNFE_ImprimeRet+".tx2"+"\n" 
        FileWrite Append PrivDir()+"funcao10.txt"  From "DELT|"+ArqNFE_ValidaRet +"\n" 
        ExecVisecf(PrivDir()+"funcao10.txt","")

        switch
          case VersaoNFe="3.10" : Play "NF_NFE31"
          case VersaoNFe="4.00" : Play "NF_NFE40"
          otherwise             : mensagem("VersÆo NF-e "+VersaoNFe+", nÆo disponivel !// //Verificar com Suporte !") 
        endswitch
      
        If ExisteArquivo(ArqNFE_ImprimeRet+".pdf",0)
           Then FileWrite        PrivDir()+"preview.txt"  From  "COP|"+ArqNFE_ImprimeRet+".pdf"+"|"+ArqNFE_ImprimeTmp+".pdf"+"\n"
                FileWrite Append PrivDir()+"preview.txt"  From "DELT|"+ArqNFE_ImprimeRet+".pdf"+"\n" 
                ExecVisecf(PrivDir()+"preview.txt","")
                If ExisteArquivo(ArqNFE_ImprimeTmp+".pdf",0)
                   Then Abrir_Arquivo(ArqNFE_ImprimeTmp+".pdf")
                   Else Mensagem("Arquivo n„o encontrado !//Verificar !")
                EndIf 
           Else Mensagem("A NFE est  com erro de valida‡„o !//Verificar !")
                If ExisteArquivo(ArqNFE_ImprimeRet+".TX2",0)
                   Then Abrir_Arquivo(ArqNFE_ImprimeRet+".TX2")
                EndIf
        EndIf
        LimpAguarde()
        
EndIf

Release vars PARAM_VISUALIZAR_DANFE,ArqNFE_Imprime,ArqNFE_ImprimeRet,ArqNFE_Valida,ArqNFE_ValidaRet,ArqNFE_ImprimeTmp
Release Procs VisualizarDanfe
