ADVPL - Transmissão de nota fiscal. AutoNfeEnv, Sefaz, XML, automático
Autor: Eurai Criado: 24/11/2024 Atualizado: 24/11/2024
ADVPL - Transmissão de nota fiscal. AutoNfe, sem job
Nas últimas atualizações do sistema protheus, houve bloqueio das funçoes de transmissão via fonte.
Antes do bloqueio era utilizado:
AutoNfeEnv(cEmpAnt,SF2->F2_FILIAL,"0","1",SF2->F2_SERIE,SF2->F2_DOC,SF2->F2_DOC)
AutoNfeEnv(cEmpAnt,SF2->F2_FILIAL,"0","1",SF2->F2_SERIE,SF2->F2_DOC,SF2->F2_DOC)
AutoNfeEnv(cEmpAnt,SF2->F2_FILIAL,"0","1",SF2->F2_SERIE,SF2->F2_DOC,SF2->F2_DOC)
Vou compartilhar alguns métodos, validar antes.
#INCLUDE "TOTVS.CH"
User Function autoNfe()
//01
validaAutoNfe("1", cEmpAnt, cFilAnt, cSerNF )
Return( Nil )
#INCLUDE "TOTVS.CH"
User Function autoNfe()
//01
validaAutoNfe("1", cEmpAnt, cFilAnt, cSerNF )
Return( Nil )
#INCLUDE "TOTVS.CH" User Function autoNfe() //01 validaAutoNfe("1", cEmpAnt, cFilAnt, cSerNF ) Return( Nil )
#INCLUDE "TOTVS.CH"
User Function autoNfe()
//02
LjEnviaNFe(cSerie, cNota, cCliente, cLoja)
Return( Nil )
#INCLUDE "TOTVS.CH"
User Function autoNfe()
//02
LjEnviaNFe(cSerie, cNota, cCliente, cLoja)
Return( Nil )
#INCLUDE "TOTVS.CH" User Function autoNfe() //02 LjEnviaNFe(cSerie, cNota, cCliente, cLoja) Return( Nil )
#INCLUDE "TOTVS.CH"
User Function autoNfe()
//03
Local cIdEnt := RetIdEnti()
Local cError := ''
Local cModalidade := ''
Local cVersao := ''
Local cRetorno := ''
Local lEnd := .F.
Local aRet := {.T.,""}
Local lAuto := .T.
Local aF2SERIE := TamSX3('F2_SERIE')
Default cModelo := '55' //55-NF-e, 57-CT-e, 65-NFC-e, 66-NF3-e, 67-CT-e OS
Default lCte := .F.
Begin Sequence
If Empty( cIdEnt )
aRet := {.F.,"Ident inválido: " + cIdEnt }
Break
Endif
cAmbiente := getCfgAmbiente(@cError, cIdEnt, cModelo)
If Empty(cAmbiente)
aRet := {.F.,"Ambiente inválido: " + cError }
Break
Endif
cModalidade := getCfgModalidade(@cError, cIdEnt, cModelo)
If Empty(cModalidade)
aRet := {.F.,"Modalidade inválido: " + cError }
Break
Endif
cVersao := getCfgVersao(@cError, cIdEnt, cModelo)
If Empty(cVersao)
aRet := {.F.,"Versão inválida: " + cError }
Break
Endif
cSerie := Padr(cSerie,aF2SERIE[01])
cRetorno := SpedNFeTrf("SF2",cSerie,cNotaIni,cNotaFim,cIdEnt,cAmbiente,cModalidade,cVersao,@lEnd,lCte,lAuto)
aRet := {.T.,cRetorno }
End Sequence
Return( Nil )
#INCLUDE "TOTVS.CH"
User Function autoNfe()
//03
Local cIdEnt := RetIdEnti()
Local cError := ''
Local cModalidade := ''
Local cVersao := ''
Local cRetorno := ''
Local lEnd := .F.
Local aRet := {.T.,""}
Local lAuto := .T.
Local aF2SERIE := TamSX3('F2_SERIE')
Default cModelo := '55' //55-NF-e, 57-CT-e, 65-NFC-e, 66-NF3-e, 67-CT-e OS
Default lCte := .F.
Begin Sequence
If Empty( cIdEnt )
aRet := {.F.,"Ident inválido: " + cIdEnt }
Break
Endif
cAmbiente := getCfgAmbiente(@cError, cIdEnt, cModelo)
If Empty(cAmbiente)
aRet := {.F.,"Ambiente inválido: " + cError }
Break
Endif
cModalidade := getCfgModalidade(@cError, cIdEnt, cModelo)
If Empty(cModalidade)
aRet := {.F.,"Modalidade inválido: " + cError }
Break
Endif
cVersao := getCfgVersao(@cError, cIdEnt, cModelo)
If Empty(cVersao)
aRet := {.F.,"Versão inválida: " + cError }
Break
Endif
cSerie := Padr(cSerie,aF2SERIE[01])
cRetorno := SpedNFeTrf("SF2",cSerie,cNotaIni,cNotaFim,cIdEnt,cAmbiente,cModalidade,cVersao,@lEnd,lCte,lAuto)
aRet := {.T.,cRetorno }
End Sequence
Return( Nil )
#INCLUDE "TOTVS.CH" User Function autoNfe() //03 Local cIdEnt := RetIdEnti() Local cError := '' Local cModalidade := '' Local cVersao := '' Local cRetorno := '' Local lEnd := .F. Local aRet := {.T.,""} Local lAuto := .T. Local aF2SERIE := TamSX3('F2_SERIE') Default cModelo := '55' //55-NF-e, 57-CT-e, 65-NFC-e, 66-NF3-e, 67-CT-e OS Default lCte := .F. Begin Sequence If Empty( cIdEnt ) aRet := {.F.,"Ident inválido: " + cIdEnt } Break Endif cAmbiente := getCfgAmbiente(@cError, cIdEnt, cModelo) If Empty(cAmbiente) aRet := {.F.,"Ambiente inválido: " + cError } Break Endif cModalidade := getCfgModalidade(@cError, cIdEnt, cModelo) If Empty(cModalidade) aRet := {.F.,"Modalidade inválido: " + cError } Break Endif cVersao := getCfgVersao(@cError, cIdEnt, cModelo) If Empty(cVersao) aRet := {.F.,"Versão inválida: " + cError } Break Endif cSerie := Padr(cSerie,aF2SERIE[01]) cRetorno := SpedNFeTrf("SF2",cSerie,cNotaIni,cNotaFim,cIdEnt,cAmbiente,cModalidade,cVersao,@lEnd,lCte,lAuto) aRet := {.T.,cRetorno } End Sequence Return( Nil )