Jump to content


Nfe txt Clipper ACBrNFeMonitor INICIANTE










8 respostas a este tópico

#1 Paulo Pereira

    Membro - Novato

  • Membros
  • Pip
  • 4 posts
  • Estado:Santa Catarina

Adicionado 16 junho 2009 - 02:19

OI :unsure:
Desculpem, se as perguntas parecem obvias..
Trabalho com clipper e pretendo gerar um arquivo TXT da NF para mandar/imprimir
Baixei o ACBrNFeMonitor, mas nao tem um manual.. nao esta acessando..

1-A ideia é gerar um TXT que o monitor faz o trabalho de comunicacao certo ? , mas onde encontro o lay out deste txt qual a ultima versao..??

2-Porque o certificado só pode ser o A1 ??

3-Preciso ter necessariamente esse certificado e aquele CNPJ eletronico para fazer testes ??

4-A NF do meu cliente tem Produtos e Servicos, serve este mesmo monitor(aplicativo) ou precida da NFSe (Nota fiscal de Servicos eletronica ?

Obrigado.
PS: Meus clientes sao de SC

Editado por Paulo Pereira, 16 junho 2009 - 02:22 .


#2 Daniel Simões

    Membro - Top

  • Membros
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 7171 posts
  • Você é Humano?:Sim
  • Sexo:Masculino
  • Estado:São Paulo

Adicionado 26 junho 2009 - 08:32

Paulo, veja o FAQ do ACBrNFeMonitor:
http://acbr.sourcefo...upal/?q=node/40

O ACBrNFeMonitor só funciona com certificados do tipo A1, devido aos componentes utilizados na sua construção.

Sim, vc precisa ter um certificado válido (solicite a compra de um A1 para o seu cliente)

Se não me engano Nota Fiscal eletrônica de serviços é outra estória... Cada cidade está desenvolvendo a sua...

#3 wagner aragao

    Membro - Junior 3

  • Membros
  • PipPipPip
  • 109 posts
  • Estado:Rondônia

Adicionado 27 junho 2009 - 10:13

View PostPaulo Pereira, on 16 junho 2009 - 02:19 , said:

OI <img src="http://www.forumweb.com.br/foruns/public/style_emoticons/<#EMO_DIR#>/unsure.gif" style="vertical-align:middle" emoid=" :unsure: " border="0" alt="unsure.gif" />
Desculpem, se as perguntas parecem obvias..
Trabalho com clipper e pretendo gerar um arquivo TXT da NF para mandar/imprimir
Baixei o ACBrNFeMonitor, mas nao tem um manual.. nao esta acessando..

1-A ideia é gerar um TXT que o monitor faz o trabalho de comunicacao certo ? , mas onde encontro o lay out deste txt qual a ultima versao..??

2-Porque o certificado só pode ser o A1 ??

3-Preciso ter necessariamente esse certificado e aquele CNPJ eletronico para fazer testes ??

4-A NF do meu cliente tem Produtos e Servicos, serve este mesmo monitor(aplicativo) ou precida da NFSe (Nota fiscal de Servicos eletronica ?

Obrigado.
PS: Meus clientes sao de SC


Olá,
Viva finalmente alguém que fala minha lingua.
Meu jovem também to nessa e to testando as funções do monitor, já consulto status, assino XML e to gerando o INI para gerar o XML (testando hoje), e outras coisas, to um pouco adiantado e ao mesmo tempo falta muito. Para você começar a entender como funciona, e ter um rumo busca no site do pctoledo.com.br os posts do rochinha sobre o projeto ACBR que ele inclusive colocou la umas funções para chamada do monitor. Mais de imediato recomendo você começar a pensar em migrar para xHarbour pois vai precisar dos recursos dele que o clipper não tem, eu já migrei e to muito satisfeito. Já criei funções para interagir com o monitor e tratar o retorno. Mais para você gerar o arquivo da NFe o teu sistema tem que ter muita coisa fiscal, o meu já gera SINTEGRA e tive que criar algun campos nas tabelas e to com um contador sempre fazendo consultas. O monitor ainda não gera NFe de produtos e serviços pelo que sei, mas parece que em julho o André estará concluindo algumas funções e criando algumas TAG que não tem. Por enquanto é isso ai. Se eu puder ajudar e quiser ajuda da um grito...
t+

#4 Daniel Simões

    Membro - Top

  • Membros
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 7171 posts
  • Você é Humano?:Sim
  • Sexo:Masculino
  • Estado:São Paulo

Adicionado 27 junho 2009 - 10:58

Na instalação do ACBrMonitor (irmão do ACBrNFeMonitor) existe uma pasta de exemplos, e entre eles, um exemplo em Clipper/xHarbour usando arquivos TXT ou Socktes (TCP/IP)

#5 clovisfrantz

    Membro - Novato

  • Membros
  • Pip
  • 7 posts
  • Sexo:Masculino
  • Estado:Rio Grande do Sul

Adicionado 24 agosto 2009 - 12:00

Olá Pessoal!

Também desenvolvo em clipper/harbour e compartilho com vocês os mesmos sentimentos. Cabe ressaltar a grandiosidade do projeto ACBrMonitor, que é uma mão na roda. O tempo é curto e há muita informação a respeito da NFe, porém, é nos fóruns que podemos sanar nossas dúvidas e trocar conhecimento. Estou a duas semanas trabalhando diretamente na integração dos meus sistemas com a NFe. Até agora consegui realizar os principais procedimentos: assinar, validar, enviar, cancelar, inutilizar e imprimir o Danfe das NFe's, isso com a ajuda do ACBrNFeMonitor. A rotina que estou usando está aí, usem e alterem de acordo com as necessidades de vocês. Vamos trocar informações.
Um grande abraço!

PS.: Este exemplo é usado para empresa optante do Simples Nacional, logo, não há cálculo de imposto.

* --...................................................................................-- *
Function GeraArqACBr()
Local cBase      := BaseDeDados()
#define _SHOW_PERCENT 5
#define _SMALL_BLOCK 4096
#define _DEFAULT_BLOCK 8192
#define _LARGE_BLOCK 16384

         Local1:= Chr(13) + Chr(10)
         Local2:= 0
 
         if Nota->gerada = "S"
          Msginfo( "A Nota Fiscal Eletônica ID Número"+ QUEBRA + idDaNFe + QUEBRA + "JÁ FOI GERADA","NFe")
          Return
         endif

         nfeEmpresa:=RemoverAcentos(Decripta(Alltrim(Config->Nome)))
         xEndereco:=Decripta(Alltrim(Config->END1)) 
         EmpEndereco:=""
         EmpoNumero:="" 
         for k=1 to Len(xEndereco)
           xVar:=Substr(xEndereco,k,1)
           if xVar = ","
            EmpNumero:=Substr(xEndereco,k+1,Len(xEndereco)-k)
            exit
           else
            EmpEndereco:=EmpEndereco+xVar
           endif
         next
         codMunEmpresa:="4318705"    // SAO LEOPOLDO - RS
         nfeEmpresa:=RemoverAcentos(Decripta(Alltrim(Config->Nome)))
         MunEmpresa:=RemoverAcentos(Decripta(Alltrim(Config->Mun1))) 
         endEmepresa:=RemoverAcentos(alltrim(EmpEndereco))  
         cepEmpresa:=StrTiraPictureXml (  Decripta(Alltrim(Config->Cep1)), "-" )
         FoneEmpresa:=Decripta(Alltrim(Config->Fone)) 
         numLogradoro:=Alltrim(EmpNumero) 
         BairroEmpresa:=Decripta(Alltrim(Config->Bairro))
         UfEmpresa:= Decripta(Alltrim(Config->Est1)) 
         InscEmpresa:=Decripta(Alltrim(Config->Insc))  
        
        
         // Arquivo que gerencia a numeração de Lotes da NFe
         // 08/08/2009
         lotenfe=cBase+"lotenfe"
         if !File((cBase)+"lotenfe.dbf")
           m:= {{"NUMERO", "N", 10, 0}}
            dbcreate((cBase)+"lotenfe.dbf",m)                                                                              
           Use (lotenfe) Alias lotenfe New Shared Via DRIVER
           lotenfe->(DBAppend())
         endif
         if Select("lotenfe") = 0
          Use (lotenfe) Alias lotenfe New Shared Via DRIVER
         endif 
         do while .t.
          if Flock()
           oLoteNFE  := Alltrim(Transform(lotenfe->numero+1,"@ 999999"))
           lotenfe->numero:=lotenfe->numero+1
           lotenfe->(DBCommit())
           lotenfe->(dbUnlock())
           lotenfe->(DBCloseArea())
           exit
          else
           msgInfo("Aguarde a liberação do arquivo gestor da numeração de Lotes das NFe's!","A t e n ç ã o")
          endif
         enddo
         
         
         Local3:="C:\ACBrNFeMonitor\ENTNFE.TXT" 
  
         nhandle:= fcreate(Local3, Local2)
         
         //fwrite(nhandle, ;
         //'NFE.CriarNFe("' + Local1)
         
         fwrite(nhandle, ;
         'NFE.CriarEnviarNFe("' + Local1)
     
         fwrite(nhandle, ;
         "[Identificacao]" + Local1)
        
         fwrite(nhandle, ;
         "NaturezaOperacao="+Alltrim(Sefcod->Nome) + Local1)
        
         fwrite(nhandle, ;
         "Modelo="+ModeloNFE + Local1)
       
         fwrite(nhandle, ;
         "Serie=0" + Local1)
       
         fwrite(nhandle, ;
         "Codigo="+Alltrim(str(nota->num_nfe)) + Local1)
       
         fwrite(nhandle, ;
         "Numero="+Alltrim(str(nota->num_nfe)) + Local1)
       
         fwrite(nhandle, ;
         "Emissao="+dtoc(nota->dtEmis) + Local1)
       
         fwrite(nhandle, ;
         "Saida="+dtoc(nota->dtEmis) + Local1)
       
         fwrite(nhandle, ;
         "Tipo=1" + Local1)
       
         fwrite(nhandle, ;
         "FormaPag="+idPgto + Local1)
       
         fwrite(nhandle, ;
         "Finalidade=1" + Local1)
       
         
         // Dados do Emitente
          fwrite(nhandle, ;
         "[Emitente]" + Local1)
         
         fwrite(nhandle, ;
         "CNPJ="+CNPJNFE + Local1)
       
         fwrite(nhandle, ;
         "IE="+InscEmpresa + Local1)
       
         fwrite(nhandle, ;
         "Razao="+nfeEmpresa+ Local1)
         
         fwrite(nhandle, ;
         "Fantasia=" + Local1)
         
         fwrite(nhandle, ;
         "Fone=" +FoneEmpresa+ Local1)
       
         fwrite(nhandle, ;
         "CEP=" +cepEmpresa+ Local1)
      
         fwrite(nhandle, ;
         "Logradouro=" +EmpEndereco+ Local1)
      
          fwrite(nhandle, ;
         "Numero="+numLogradoro+ Local1)
      
          fwrite(nhandle, ;
         "Complemento=" + Local1)
     
            fwrite(nhandle, ;
         "Bairro=" +BairroEmpresa+ Local1)
         
          fwrite(nhandle, ;
         "CidadeCod="+codMunEmpresa + Local1)
     
          fwrite(nhandle, ;
         "Cidade="+MunEmpresa + Local1)
     
          fwrite(nhandle, ;
         "UF="+UfEmpresa + Local1)
         
        
         // Dados do destinatário
       
         fwrite(nhandle, ;
         "[Destinatario]" + Local1)
         
         fwrite(nhandle, ;
         "CNPJ="+ClienteTxtCGC + Local1)
       
         fwrite(nhandle, ;
         "IE="+Alltrim(Clientes->Insc)+ Local1)
       
         fwrite(nhandle, ;
         "NomeRazao="+StrTiraPictureXml ( Alltrim(Clientes->Nome), "&" ) + Local1)
         
         fwrite(nhandle, ;
         "Fantasia=" + Local1)
         
         fwrite(nhandle, ;
         "Fone=" +Alltrim(Clientes->Fone)+ Local1)
       
         fwrite(nhandle, ;
         "CEP=" +Substr(Clientes->cep1,1,5)+Substr(Clientes->cep1,7,3)+ Local1)
      
         fwrite(nhandle, ;
         "Logradouro=" +Alltrim(Clientes->End1)+ Local1)
      
          fwrite(nhandle, ;
         "Numero="+Transform(Strzero(Val(Alltrim(Clientes->numero)),6),"@!")+Local1)
      
          fwrite(nhandle, ;
         "Complemento=" + Local1)
     
          if !Empty(Clientes->Bairro)
           fwrite(nhandle, ;
           "Bairro=" +Alltrim(Clientes->Bairro)+ Local1)
          else
           fwrite(nhandle, ;
           "Bairro=BAIRRO" + Local1)
          endif
          fwrite(nhandle, ;
          "CidadeCod="+Clientes->codIBGE + Local1)
     
          fwrite(nhandle, ;
         "Cidade="+Alltrim(Clientes->Mun1) + Local1)
     
          fwrite(nhandle, ;
         "UF="+Alltrim(Clientes->Est1) + Local1)

         sele Nota
         wcont:= 1
         clo:=1
         clas:=1
         basei:=0.0
         baseitotal:=0.0
         ttlimposto:=0.0
         base_subst:=0.0
         isento:=0.0
         vlicms:=0.0
         vltticms=0.0
         totger:= 0.0
         totger2:= 0.0
         desconto:= wdesco:= 0.0
         pr:=.t.
         ultClasse:="00"
         CLA_FISCAL:="Clas.Fiscal "
         aBaseICMS:=oValorBASE:=oValorDoICMS:=0.00
        
         do while (wcont < 18)
            if (wcont > 9)
               wcar:= Str(wcont, 2, 0)
            else
               wcar:= Str(wcont, 1, 0)
            endif
            xInfe:=Transform(strzero(wCont,2),"@!")
            wc:= "codpro" + wcar
            wq:= "quanti" + wcar
            wp:= "precou" + wcar
            wd:= "descon" + wcar
            wi:= "prod" + wcar
            wl:= "lote" + wcar
           
            sele Nota
            c:= SubStr(&wc, 1, 2) + SubStr(&wc, 3, 3) + ;
               SubStr(&wc, 6, 1)
            cod:= &wc
            if (Val(cod) = 0)
             if !pr
                ali:=Transform(al_anterior, "@! 99%")
                baseitotal:=(baseitotal+basei)
                ttlimposto:=(ttlimposto+vlicms)
                bcalculo:=Transform(basei, "@! 999,999.99")
                wv_impo:=Transform(vlicms, "@! 99,999.99")
                c12:=strzero(clo,2)
                bs:="BS"+C12
                &BS:="BASE ICMS "+ALI+" "+bcalculo+" Vlr.Imposto R$ "+wv_impo
                basei:=vlicms:=0.0
                store .t. to pr
             endif
             wcont:=20  && wcont+1
             //lin:=lin+1
             //@ lin, 70 SAY "   "
             loop
            endif
            wdesc:= &wi
            sele Produtos
            seek cod
            if cod = "999999"
             cClaFiscal := ultClasse
             if Substr(wcodope,1,1) = "6"
               if Estado = "SC" .or. Estado = "PR" .or. Estado = "SP";
                  .or. Estado = "RJ" .or. Estado = "MG"
                store 12 to wicms
               else
                Store 7 to wicms
               endif
             else
               store 17 to wicms
             endif
             store "01" to wtributo
             store "S" to base_reduzida
             store "UN" to unidade
            else
             if Substr(wcodope,1,1) = "6"
              if Estado = "SC" .or. Estado = "PR" .or. Estado = "SP";
                  .or. Estado = "RJ" .or. Estado = "MG"
                store 12 to wicms
              else
                Store 7 to wicms
              endif
             else
              store icms to wicms
             endif
             store s_tribut to wtributo
             store bcreduz to base_reduzida
             store unid to unidade
             cClaFiscal:=classefis
             if cClaFiscal <> ultClasse
              sele Clasfis
              locate for codigo = cClaFiscal
              if Found()
               CLA_FISCAL:=CLA_FISCAL+cClaFiscal+"-"+Alltrim(Clasfis->DESCRICAO)+" "
              endif
              ultClasse:=cClaFiscal
              sele Produtos
             endif
            endif
            if wcodope = "5.915" .or. wcodope = "5.916" ;
             .or. wcodope = "6.915" .or. wcodope = "6.916"  && remessa p/conserto
             store 0 to wicms
             baseitotal:=0.00
             ttlimposto:=0.00
            endif
            sele Nota
            if !pr
             if al_anterior <> wicms
                ali:=Transform(al_anterior, "@! 99%")
                bcalculo:=Transform(basei, "@! 999,999.99")
                wv_impo:=Transform(vlicms, "@! 99,999.99")
                clo:=clo+1                                                                                                                           
                basei:=vlicms:=0.0
             endif
            endif
            
            sele Nota
           
            if &wp > 0
             unicdesc:=  &wp * ((100 - &wd) / 100)
             pretot2:= &wq * &wp
             pretot:= unicdesc * &wq
             totger:= totger + pretot
             totger2:= totger2 + pretot2
             if wtributo <> "FF" .and. wtributo <> "II"   && Tributaveis
              if Substr(wcodope,1,1) = "6" && Fora do Estado
                basei:=(basei+(pretot))
                vlbase:=(pretot)
              else    && "5.102" Dentro do Estado -> redu‡„o p/12% (Tabela)
               if base_reduzida = "S"
                basei:=Round(basei+(pretot*70.589/100),2)   &&(Tabela)
                vlbase:=Round(pretot*70.589/100,2)
                Tabela:="S"
               else
                basei:=(basei+(pretot))  && -> s/ Redu‡„o (Fora da Tabela)
                vlbase:=(pretot)
                Tabela:="N"
               endif
              endif
               vlicms:=Round(vlicms+(vlBASE*wicms/100),2)
               vltticms:=(vltticms+vlicms)
             else
              if wtributo = "FF"                         && Substituicao Tributaria
                 base_subst:=(base_subst + pretot)      
              elseif wtributo = "II"                     && Isentos
                 isento:=(isento + pretot)
              endif
             endif
             descItem:=(pretot2 - pretot)
             vCod:=Alltrim(Str(Val(cod)))
             if Empty(unidade)
              unidade:="MIL"
             endif
             if !Empty(&wl)
               LoteItem := "   Lote: "+&wl
             else
               LoteItem := " "
             endif   
            
             // Dados do ítem[xxx]
            
              fwrite(nhandle, ;
                "[Produto0"+xInfe+"]"  + Local1)
       
              fwrite(nhandle, ;
                "CFOP=" +Substr(Nota->codope,1,1)+Substr(Nota->codope,3,3) + Local1)
       
              fwrite(nhandle, ;
                "Codigo=" +cod+"-"+wCar + Local1)
       
              fwrite(nhandle, ;
                "Descricao=" +Alltrim(wDesc)+LoteItem + Local1)
       
              fwrite(nhandle, ;
                "Unidade=" +unidade + Local1)
       
              fwrite(nhandle, ;
                "Quantidade=" +TRANSFORM(&wq,"@! 99999999.9999") + Local1)
       
              fwrite(nhandle, ;
                "ValorUnitario=" +ALLTRIM(TRANSFORM(&wp,"@ 999999999999.99")) + Local1)
       
              fwrite(nhandle, ;
                "ValorTotal=" +ALLTRIM(TRANSFORM(pretot,"@ 999999999999.99")) + Local1)
       
              fwrite(nhandle, ;
               "ValorDesconto=" +ALLTRIM(TRANSFORM(descItem,"@ 99999999999999.99")) + Local1)
             
             // Dados do icms[xxx]
             ValorIcmsItem := 0.00  //ALLTRIM(TRANSFORM((pretot*wicms)/100,"@! 9999999999")) 
             
             fwrite(nhandle, ;
                "[ICMS0"+xInfe+"]"  + Local1)
       
              fwrite(nhandle, ;
                "CST=41" + Local1)
       
              fwrite(nhandle, ;
                "Aliquota=0" + Local1)
       
              fwrite(nhandle, ;
                "ValorBase=0" + Local1)
             
             /*
              // Dados PIS EPP - Simples Nacional
              fwrite(nhandle, ;
                "[PIS0"+xInfe+"]"  + Local1)
       
              fwrite(nhandle, ;
                "CST=99" + Local1)
              fwrite(nhandle, ;
                "ValorBase=0" + Local1)
      
               fwrite(nhandle, ;
                 "Aliquota=0" + Local1)
           
               fwrite(nhandle, ;
                 "Valor=0" + Local1)
            
              fwrite(nhandle, ;
                "Quantidade=0" + Local1)
            
            
              // Dados COFINS EPP - Simples Nacional
              fwrite(nhandle, ;
                "[COFINS0"+xInfe+"]"  + Local1)
             
              fwrite(nhandle, ;
                "CST=99" + Local1)
           
              fwrite(nhandle, ;
                "ValorBase=0" + Local1)
      
              fwrite(nhandle, ;
                "Aliquota=0" + Local1)
           
              fwrite(nhandle, ;
                "Valor=0" + Local1)
             
              fwrite(nhandle, ;
                "Quantidade=0" + Local1)
             */
             
              
             baseitotal:=(baseitotal+basei)
             ttlimposto:=(ttlimposto+vlicms)

             al_anterior:=wicms
             store .f. to pr
            endif
            
            wcont:= wcont + 1
            coluna:=7
            
            sele Nota
            if wcont > 17
                if !pr
                  ali:=Transform(al_anterior, "@! 99%")
                  baseitotal:=(baseitotal+basei)
                  ttlimposto:=(ttlimposto+vlicms)
                  bcalculo:=Transform(basei, "@! 999,999.99")
                  wv_impo:=Transform(vlicms, "@! 99,999.99")
                  basei:=vlicms:=0.0
                endif
                wcont:=20  && wcont+1
                loop
            endif
         enddo
         
         oValorBase:=aBaseICMS:=oValorDoICMS:=0
         
         fwrite(nhandle, ;
         "[Total]" + Local1)
         
         fwrite(nhandle, ;
         "ValorBase="+ALLTRIM(TRANSFORM((oValorBase),"@! 999999999999.99"))  + Local1)
       
         fwrite(nhandle, ;
         "BaseICMS="+ALLTRIM(TRANSFORM((aBaseICMS),"@! 999999999999.99"))  + Local1)
       
         fwrite(nhandle, ;
         "ValorICMS="+ALLTRIM(TRANSFORM((oValorDoICMS),"@! 999999999999.99"))  + Local1)
        
         fwrite(nhandle, ;
         "ValorProduto="+ALLTRIM(TRANSFORM((totger+Nota->descont),"@! 999999999999.99")) + Local1)
        
         fwrite(nhandle, ;
         "ValorNota="+ALLTRIM(TRANSFORM((totger+Nota->Frete),"@! 999999999999.99")) + Local1)
         
         if Nota->descont > 0
          fwrite(nhandle, ;
          "ValorDesconto="+ALLTRIM(TRANSFORM((Nota->descont),"@! 999999999999.99")) + Local1)
         endif
         
         if Nota->frete > 0
          fwrite(nhandle, ;
          "ValorFrete="+ALLTRIM(TRANSFORM((Nota->Frete),"@! 999999999999.99")) + Local1)
         endif
         
         Sele Transp 
         // Dados da Transportadora
       
         fwrite(nhandle, ;
         "[Transportador]" + Local1)
         
         fwrite(nhandle, ;
         "FretePorConta=1" + Local1)
       
         fwrite(nhandle, ;
         "CnpjCpf="+Transp->cgc+ Local1)
       
         fwrite(nhandle, ;
         "NomeRazao="+ Alltrim(Transp->Nombres)+ Local1)
      
         fwrite(nhandle, ;
         "IE=" + Local1)
      
         fwrite(nhandle, ;
         "Endereco="+ Alltrim(transp->Calle)+ Local1)
      
         fwrite(nhandle, ;
         "Cidade="+ Alltrim(transp->Cidade)+ Local1)
   
         fwrite(nhandle, ;
         "UF="+ Alltrim(transp->Est1)+ Local1)
         
         if !Empty(nota->placa)
          fwrite(nhandle, ;
          "Placa="+ Alltrim(nota->placa)+ Local1)
          fwrite(nhandle, ;
          "UFPlaca="+ Alltrim(nota->Ufplaca) + Local1)
         endif
         
         // Dados do Volume
         fwrite(nhandle, ;
         "[Volume001]" + Local1)
         if Nota->qtd > 0
          fwrite(nhandle, ;
          "Quantidade="+ALLTRIM(TRANSFORM((Nota->qtd),"@!999999"))  + Local1)
         else
           fwrite(nhandle, ;
          "Quantidade=" + Local1)
         endif
        
         fwrite(nhandle, ;
         "Especie="+Alltrim(Nota->Especie_v) + Local1)
       
         if Nota->pLiquido > 0
          fwrite(nhandle, ;
         "PesoLiquido="+ALLTRIM(TRANSFORM((Nota->pLiquido),"@! 999999.999")) + Local1)
         else
          fwrite(nhandle, ;
         "PesoLiquido=" + Local1)
         endif
         
         if Nota->pBruto > 0
          fwrite(nhandle, ;
         "PesoBruto="+ALLTRIM(TRANSFORM((Nota->pBruto),"@! 999999.999")) + Local1)
         else
            fwrite(nhandle, ;
         "PesoBruto=" + Local1)
         endif
         
         sele Receber
         set filter to Nota = Nota->numnota
         go top
         ttlDpl:=0
         wpri:=.t.
         cTitulos:=0
         
         do while .not. eof()
            if Receber->nota <> Nota->numnota  .or. Deleted()
             dbskip()
             loop
            endif
            // Dados da Fatura
            fwrite(nhandle, ;
            "[Duplicata0"+Transform(strzero(Receber->parcela,2),"@!")+"]" + Local1)
         
            fwrite(nhandle, ;
            "Numero=" +Transform(strzero(Receber->nota),"@!")+Transform(strzero(Receber->parcela,2),"@!")+ Local1)
       
            fwrite(nhandle, ;
            "DataVencimento=" +dtoc(Receber->dtVen)+ Local1)
       
            fwrite(nhandle, ;
            "Valor=" +ALLTRIM(TRANSFORM((Receber->valor),"@! 999999999999.99"))+ Local1)
       
            dbskip()
         enddo
        
         if Clientes->EPP = "S"
          dadosNfe1:= "Documento emitido por Empresa optante do Simples Nacional"
          dadosNfe2:= "Nao gera direito a CREDITO de ISS e IPI."
         else
          dadosNfe1:= "Permite o aproveitamento do CREDITO de ICMS no Valor de R$ "+Alltrim(Transform( ( (totger+Nota->frete)*cAli_Icms )/100,"@E 99,999,999.99"))
          dadosNfe2:= "correspondente a aliquota de "+Transform(cAli_Icms,"99.99%")+" Cfme. ART.23 DA LC 123/2006."
         endif
         
         fwrite(nhandle, ;
         "[DadosAdicionais]" + Local1)
         
         fwrite(nhandle, ;
         'Complemento='+dadosNfe1+'. '+dadosNfe2+if(!Empty(nota->dd1),';'+alltrim(nota->dd1),"")+if(!Empty(nota->dd2),';'+alltrim(nota->dd2),"")+if(!Empty(nota->dd3),';'+alltrim(nota->dd3),"")+'",'+oLoteNFE+',0)'+ Local1 )
        fclose(nhandle)                                

        *-----------------------
        Sele Nota
        Nota->(Rlock())
        Nota->gerada := "S"
        Nota->(dbUnlock())
        Nota->(dbCommit())
        *-----------------------

        NContador:= 1
        nPb1     := 1
                                 
        DEFINE WINDOW OSIT AT 140 , 235 WIDTH 580 HEIGHT 80  title "ENVIANDO DADOS PARA SEFAZ, AGUARDE..."   ICON 'ICONE01' ;
          NOMAXIMIZE NOSYSMENU ON INIT Contador()
         
         DEFINE PROGRESSBAR PB1
          ROW 15  ;COL   10 ;WIDTH  550 ;HEIGHT 20 ;RANGEMIN 1 ;RANGEMAX 100
          VALUE 0 ;VISIBLE .F. ;FORECOLOR {255,0,0}
         END PROGRESSBAR
  
        END WINDOW
        Osit.center
        Osit.activate
       
        if File("C:\ACBrNFeMonitor\"+Nota->id_nfe+"-nfe.xml")
         CopiarArquivo("C:\ACBrNFeMonitor\"+Nota->id_nfe+"-nfe.xml" , subPastaNFe( Substr(dtoc(Date()),7,4)+Substr(dtoc(Date()),4,2) )+"\"+Nota->id_nfe+"-nfe.xml")
         IMPRIMEDANFE ( "C:\ACBrNFeMonitor\"+Nota->id_nfe+"-nfe.xml", 1 )
         GRAVARETORNONFE()
        endif
       
Return
*---------------------------------------------------------------------------------------------------------------------*
FUNCTION SubPastaNFe(oMes)
*---------------------------------------------------------------------------------------------------------------------*
Local Local1:= Chr(13) + Chr(10)
Local Local2:= 0
   Private cfile :="nfe\"+(oMes)+"\Pasta.ok"
   Private aPasta:="nfe\"+(oMes)
   if !File(cfile)
     createfolder("nfe\" + oMes)
     nhandle:= fcreate(cfile , Local2)
     fwrite(nhandle, ;
     Encripta("Pasta criada em "+ dtoc(date())) + Local1)
     fclose(nhandle)                                
   endif
return(aPasta)
 


#6 Daniel Simões

    Membro - Top

  • Membros
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 7171 posts
  • Você é Humano?:Sim
  • Sexo:Masculino
  • Estado:São Paulo

Adicionado 24 agosto 2009 - 07:19

Clovis,

Obrigado por postar sua rotina... Será de grande auxilio para os que estão iniciando...

Modifiquei o seu post, inserindo a TAG CODE, para uma melhor visualização...

#7 Arlei Eduardo Johann

    Membro - Novato

  • Membros
  • Pip
  • 1 posts
  • Sexo:Masculino
  • Estado:Rio Grande do Sul

Adicionado 16 dezembro 2010 - 09:46

tenho minha rotina muito parecida com a do exemplo acima, mas sempre esta retornando este na geracao do arquivo

ERRO: Falha na validação dos dados da nota 0
TAG:<ide> ID:B04/natOp(Descrição da Natureza da Operação) - Nenhum valor informado.
TAG:<ide> ID:B09/dEmi(Data de emissão) - Nenhum valor informado.
TAG:<dest><enderDest> ID:E09/xBairro(Bairro) - Nenhum valor informado.
1824 - Element '{http://www.portalfiscal.inf.br/nfe}IE': 'ISENTO' is not a valid value of the atomic type '{http://www.portalfiscal.inf.br/nfe}TIeDest'.


se alguem poder me dar uma luz

Arlei

#8 Jaime - Byte Informatica

    Membro - Junior 2

  • Membros
  • PipPipPipPip
  • 164 posts
  • Sexo:Masculino
  • Estado:Tocantins

Adicionado 16 dezembro 2010 - 05:04

View PostArlei Eduardo Johann, on 16 dezembro 2010 - 09:46 , said:

tenho minha rotina muito parecida com a do exemplo acima, mas sempre esta retornando este na geracao do arquivo

ERRO: Falha na validação dos dados da nota 0
TAG:<ide> ID:B04/natOp(Descrição da Natureza da Operação) - Nenhum valor informado.
TAG:<ide> ID:B09/dEmi(Data de emissão) - Nenhum valor informado.
TAG:<dest><enderDest> ID:E09/xBairro(Bairro) - Nenhum valor informado.
1824 - Element '{http://www.portalfiscal.inf.br/nfe}IE': 'ISENTO' is not a valid value of the atomic type '{http://www.portalfiscal.inf.br/nfe}TIeDest'.


se alguem poder me dar uma luz

Arlei

A principio falto colocar a descricao da natureza de operacao, data de emissao da nota e o bairro

#9 AleGaeta

    Membro - Novato

  • Membros
  • Pip
  • 14 posts
  • Sexo:Masculino
  • Estado:São Paulo

Adicionado 03 janeiro 2011 - 06:05

View PostArlei Eduardo Johann, on 16 dezembro 2010 - 09:46 , said:

tenho minha rotina muito parecida com a do exemplo acima, mas sempre esta retornando este na geracao do arquivo

ERRO: Falha na validação dos dados da nota 0
TAG:<ide> ID:B04/natOp(Descrição da Natureza da Operação) - Nenhum valor informado.
TAG:<ide> ID:B09/dEmi(Data de emissão) - Nenhum valor informado.
TAG:<dest><enderDest> ID:E09/xBairro(Bairro) - Nenhum valor informado.
1824 - Element '{http://www.portalfiscal.inf.br/nfe}IE': 'ISENTO' is not a valid value of the atomic type '{http://www.portalfiscal.inf.br/nfe}TIeDest'.


se alguem poder me dar uma luz

Arlei


Olá Arlei,

Não fala que trabalha em Clipper que acaba entregando nossa idade... rs

tenho minha rotina muito parecida com a do exemplo acima, mas sempre esta retornando este na geracao do arquivo

Vamos aos erros:

>TAG:<ide> ID:B04/natOp(Descrição da Natureza da Operação) - Nenhum valor informado.
Faltou informar a natureza de operação. Não é CFOP! É a natureza, tal como VENDA DENTRO DO ESTADO, etc... o texto não precisa ser rígido, mas precisa ter um texto.


>TAG:<ide> ID:B09/dEmi(Data de emissão) - Nenhum valor informado.

Cadê a data? Tem que ser hoje ou posterior no formato DD/MM/AAAA

>TAG:<dest><enderDest> ID:E09/xBairro(Bairro) - Nenhum valor informado.

Tem que colocar um bairro... se não tiver, coloque NAO ESPECIFICADO ou CENTRO, pra generalizar. Também não é conferido.

>1824 - Element '{http://www.portalfiscal.inf.br/nfe}IE': 'ISENTO' is not a valid value of the atomic type '{http://www.portalfiscal.inf.br/nfe}TIeDest'.

Caso o destinatário não tenha IE, deixe em branco. Mas consulte o www.Sintegra.gov.br a partir do CNPJ para ter certeza. Se perguntar pro cliente tá arriscado ele passar a IE errada...


Abs


Alexandre





1 usuário(s) esta(ão) lendo este tópico

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)