× Linguagem de Programação ADVPL

Perguntas Consulta de NFe no Sefaz

Mais
10 anos 2 meses atrás #24840 por Eduardo TI
Abaixo um código que juntei com os exemplos dos foruns e afins que consulta a chave da NFe no sefaz.


#INCLUDE "rwmake.ch"
#INCLUDE "Protheus.ch"
#Include "Ap5Mail.Ch"
#Include "Topconn.ch"
#Include "Tbiconn.ch"
#Include "Xmlxfun.ch"
#INCLUDE "SPEDNFE.ch"
#INCLUDE "APWIZARD.CH"
#INCLUDE "FILEIO.CH"
#INCLUDE "RPTDEF.CH"
#INCLUDE "FWPrintSetup.ch"
#INCLUDE "TOTVS.CH"
#INCLUDE "PARMTYPE.CH"

/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³CSTXMLSF ºAutor ? Eduardo Clemente ?Data ? 15/07/14 º±?
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ?Verificação do status da NFe º±?
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ?AP º±?
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
User Function PesqChv()

Local oButton1
Local oButton2
Local oSay1
Local nOpcChe := 0
Private aCordW := MsAdvSize(.T.)
Private oChave
Private cChave := Space(44)
Private oDlg
Private cLineOk := "AllwaysTrue()"
Private cAllOk := "AllwaysTrue()"
Private nCOunt := 0
Private cIdEnt := GetIdEnt()
Private nOpcx := 3
Private aCGD := {}
Private lDelGetD := .T.
Private aButtons := {}

DEFINE MSDIALOG oDlg TITLE "Verificação do Status da NF-e no Sefaz" FROM 000, 000 TO 100, 640 COLORS 0, 16777215 PIXEL

@ 010, 003 SAY oSay1 PROMPT "Chave de Acesso:" SIZE 050, 007 OF oDlg COLORS 0, 16777215 PIXEL
@ 009, 059 MSGET oChave VAR cChave SIZE 256, 010 OF oDlg COLORS 0, 16777215 PIXEL
@ 028, 275 BUTTON oButton1 PROMPT ">>> Avançar" SIZE 037, 012 OF oDlg PIXEL ACTION ( oDlg:End(), nOpcChe := 1 ) // SH143NXT(cChave)
@ 028, 225 BUTTON oButton2 PROMPT "Cancelar" SIZE 037, 012 OF oDlg ACTION oDlg:End() PIXEL

ACTIVATE MSDIALOG oDlg CENTERED

If nOpcChe == 1

VldNfe(cChave,cIdEnt)

EndIF

Return



//******************************
Static Function VldNfe(cChaveNFe,cIndChv)

Local cURL := PadR(GetNewPar("MV_SPEDURL","http://"),250)
Local cMensagem := ""
Local oWS
Local cCodRet := ""
Local cVersao := ""
Local cMensagem := ""
Local cTpRet := ""
Local cDescRet := ""

oWs:= WsNFeSBra():New()
oWs:cUserToken := "TOTVS"
oWs:cID_ENT := cIndChv
ows:cCHVNFE := cChaveNFe
oWs:_URL := AllTrim(cURL)+"/NFeSBRA.apw"

If oWs:ConsultaChaveNFE()

cCodRet := oWs:oWSCONSULTACHAVENFERESULT:cCODRETNFE
cVersao := oWs:oWSCONSULTACHAVENFERESULT:cVERSAO
cMensagem := oWs:oWSCONSULTACHAVENFERESULT:cMSGRETNFE
cProtocolo := oWs:oWSCONSULTACHAVENFERESULT:cPROTOCOLO

Aviso("SPED", cMensagem,{"OK"},3)

Else

Aviso("SPED",IIf(Empty(GetWscError(3)),GetWscError(1),GetWscError(3)),{"OK"},3)

EndIf

Return()


/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Programa ³GetIdEnt ³ Autor ³Eduardo Riera ³ Data ³18.06.2007³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri‡…o ³Obtem o codigo da entidade apos enviar o post para o Totvs ³±±
±±³ ³Service ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Retorno ³ExpC1: Codigo da entidade no Totvs Services ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Parametros³Nenhum ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³ DATA ³ Programador ³Manutencao efetuada ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³ ³ ³ ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
/*/
Static Function GetIdEnt()

Local aArea := GetArea()
Local cIdEnt := ""
Local cURL := PadR(GetNewPar("MV_SPEDURL","http://"),250)
Local lMethodOk := .F.
Local oWsSPEDAdm

BEGIN SEQUENCE

IF !( CTIsReady(cURL) )
BREAK
EndIF

cURL := AllTrim(cURL)+"/SPEDADM.apw"

IF !( CTIsReady(cURL) )
BREAK
EndIF

oWsSPEDAdm := WsSPEDAdm():New()

oWsSPEDAdm:cUSERTOKEN := "TOTVS"
oWsSPEDAdm:oWsEmpresa:cCNPJ := SM0->( IF(M0_TPINSC==2 .Or. Empty(M0_TPINSC),M0_CGC,"") )
oWsSPEDAdm:oWsEmpresa:cCPF := SM0->( IF(M0_TPINSC==3,M0_CGC,"") )
oWsSPEDAdm:oWsEmpresa:cIE := SM0->M0_INSC
oWsSPEDAdm:oWsEmpresa:cIM := SM0->M0_INSCM
oWsSPEDAdm:oWsEmpresa:cNOME := SM0->M0_NOMECOM
oWsSPEDAdm:oWsEmpresa:cFANTASIA := SM0->M0_NOME
oWsSPEDAdm:oWsEmpresa:cENDERECO := FisGetEnd(SM0->M0_ENDENT)[1]
oWsSPEDAdm:oWsEmpresa:cNUM := FisGetEnd(SM0->M0_ENDENT)[3]
oWsSPEDAdm:oWsEmpresa:cCOMPL := FisGetEnd(SM0->M0_ENDENT)[4]
oWsSPEDAdm:oWsEmpresa:cUF := SM0->M0_ESTENT
oWsSPEDAdm:oWsEmpresa:cCEP := SM0->M0_CEPENT
oWsSPEDAdm:oWsEmpresa:cCOD_MUN := SM0->M0_CODMUN
oWsSPEDAdm:oWsEmpresa:cCOD_PAIS := "1058"
oWsSPEDAdm:oWsEmpresa:cBAIRRO := SM0->M0_BAIRENT
oWsSPEDAdm:oWsEmpresa:cMUN := SM0->M0_CIDENT
oWsSPEDAdm:oWsEmpresa:cCEP_CP := NIL
oWsSPEDAdm:oWsEmpresa:cCP := NIL
oWsSPEDAdm:oWsEmpresa:cDDD := Str(FisGetTel(SM0->M0_TEL)[2],3)
oWsSPEDAdm:oWsEmpresa:cFONE := AllTrim(Str(FisGetTel(SM0->M0_TEL)[3],15))
oWsSPEDAdm:oWsEmpresa:cFAX := AllTrim(Str(FisGetTel(SM0->M0_FAX)[3],15))
oWsSPEDAdm:oWsEmpresa:cEMAIL := UsrRetMail(RetCodUsr())
oWsSPEDAdm:oWsEmpresa:cNIRE := SM0->M0_NIRE
oWsSPEDAdm:oWsEmpresa:dDTRE := SM0->M0_DTRE
oWsSPEDAdm:oWsEmpresa:cNIT := SM0->( IF(M0_TPINSC==1,M0_CGC,"") )
oWsSPEDAdm:oWsEmpresa:cINDSITESP := ""
oWsSPEDAdm:oWsEmpresa:cID_MATRIZ := ""
oWsSPEDAdm:oWsOutrasInscricoes:oWsInscricao := SPEDADM_ARRAYOFSPED_GENERICSTRUCT():New()
oWsSPEDAdm:_URL := cURL

lMethodOk := oWsSPEDAdm:AdmEmpresas()

DEFAULT lMethodOk := .F.

IF !( lMethodOk )
cError := IF( Empty( GetWscError(3) ) , GetWscError(1) , GetWscError(3) )
BREAK
EndIF

cIdEnt := oWsSPEDAdm:cAdmEmpresasResult

END SEQUENCE

RestArea(aArea)

Return( cIdEnt )

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 2 meses atrás #24849 por admin
Respondido por admin no tópico Consulta de NFe no Sefaz
Eduardo boa noite, muito obrigado pelo compartilhamento, faz um favor compacta o seu fonte e sobe ele na área de downloads, assim fica registrado seu email como contribuinte.

Abraços e continue assim :) B)

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 2 meses atrás #24857 por forjabahia
Respondido por forjabahia no tópico Consulta de NFe no Sefaz
Eduardo, parabéns pela contribuição e pelo esforço.



Preciso dessa include SPEDNFE.ch



OBRIGADO!

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 2 meses atrás #24994 por Eduardo TI
Respondido por Eduardo TI no tópico Consulta de NFe no Sefaz
segue spednfe.ch :)

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 2 meses atrás #24996 por admin
Respondido por admin no tópico Consulta de NFe no Sefaz
Segue.


Arquivo Anexo:

Nome do Arquivo: spednfe.rar
Tamanho do Arquivo:18 KB
Anexos:

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.118 segundos
Joomla templates by a4joomla