https://youtu.be/qGekJAkef_A
Bom Dia Boa Tarde Boa Noite
Mande um email pedido para receber todas notificaçoes dos videos
email : amarildo.matos@gmail.com
==============================================================
Seja Membro do Canal e tenha direito a consultorias com precos diferenciados
https://www.youtube.com/channel/UCQGPHrppG5XKoRbeOIgLJEA/join
Beneficios Membros:
Skype Privado
Sugerir ou pedir Videos
Valroes de consultorias com precos acesiveis
Pedir para eu refazer uma exemplo versao inferior
Quero Refazer meu sistema no windev, onde comecar?
Como fazer uma proteção on-line do seu sistema ?
Meu projeto será grande, como devo fazer?
==============================================================
Esse Video vai estrear as 10:00 do dia 23/07/2021
DICAS 3372 - WINDEV WEBDEV MOBILE - NFeDistribuicaoDFe - Parte 3 - Criando Tabela Resumo Notas em Windev - Curso Webservice - 39
Relaçao dos Webservices - Producao
Sefaz Rio Grande do Sul - (RS)
Relacao dos webservices - Homologação
Sefaz Rio Grande do Sul - (RS)
ASSUNTOS
NFeDistribuicaoDFe - Parte 3 - Criando Tabela Resumo Notas em Windev
00:00 Introducao
00:48 Criando a tabela manifestacao_Resumo
01:19 Adicionado os campos da tabela
02:28 Vamos adicionar campos extras que vamos precisar
03:55 Vamos sicronizar a analise
04:21 Voltando para Janela status servicos e vamos clicar tab
04:27 Criar guia - Relacao manifestacao resumo
04:48 Vamos Criar a relacao da Tabela resumo
05:22 Vamos alterar a tabela, colocando a chNFe como Chave
05:57 Vamos voltar para o codigo da busca
06:31 Explicanco descompacta_xml
06:52 Vamos pegar a chave da nota e ver se existe no resumo
07:58 Adicionado numero do nsu no resumo
08:10 Adicionando os outros dados
09:49 vamos criar uma internal procedure move_Dados para ficar mais claro
10:39 executando e mostrando
---------------- CODIGO
// Status Nfe // btnNfeDistribuicaoDfe
s_recebe_thumprint_certificado is string = "" // vamos criar duas variaveis -
s_web_service is string = ""
IF RADIO_ambiente=1 THEN // se o ambiente for igual 1- Producao ou se for igual 2 - Homologaão
s_web_service="https://www1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx"
ELSE
s_web_service="https://hom.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx"
END
// vamos fazer sEnvelopE_soap
sUltnsu_15 is string=NumToString(EDT_UltNSU,"015d")
sEnvelope_soap is string=[
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<nfeDistDFeInteresse xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NFeDistribuicaoDFe">
<nfeDadosMsg>
<distDFeInt xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.01">
<tpAmb>[%RADIO_ambiente%]</tpAmb>
<CNPJ>[%EDT_Cnpj_cpf_dfe%]</CNPJ>
<distNSU>
<ultNSU>[%sUltnsu_15%]</ultNSU>
</distNSU>
</distDFeInt>
</nfeDadosMsg>
</nfeDistDFeInteresse>
</soap12:Body>
</soap12:Envelope>
]
sEnvelope_soap=Replace(sEnvelope_soap,CR,"") // vamos tirar os cr da variavel senvelope_soap
EDT_ENVELOPE_SOAP_ENVIADO=sEnvelope_soap // vamos agora colocar o envelope soap no edt
// vamos ler o cadastro de empresas e pegar o certificado ja selecionado
HReadSeekFirst(empresa,empresaID,1)
IF HFound(empresa) THEN
s_recebe_thumprint_certificado=NoSpace(empresa.certificado_thumprint,sscAll)
Message("Procurando HttpCertificate ...")
ELSE
s_recebe_thumprint_certificado=""
END
HTTPCertificate(s_recebe_thumprint_certificado) // vamos ler o certificado com HTTPCertificate - e caso ele nao encontre nada, ele vai pedir para escolehr
HTTP.IgnoreError = httpIgnoreRevocation
HTTP.IgnoreError = httpErrorInvalidCertificate
HTTP.IgnoreError = httpErrorInvalidCertificateName
bMensagem is boolean=HTTPRequest(s_web_service,"","",sEnvelope_soap,"text/xml;charset=UTF-8","","")
HTTPCertificate("") //Vamos limpar da memoria o certificado
IF bMensagem=False THEN
Error(ErrorInfo(errFullDetails))
ELSE
EDT_RETORNO_SOAP = HTTPGetResult(httpResult)
EDT_Retorno_xml = XMLExtractString(EDT_RETORNO_SOAP,"nfeDistDFeInteresseResult")
EDT_TpAmb = XMLExtractString(EDT_Retorno_xml,"tpAmb")
EDT_Cstat = XMLExtractString(EDT_Retorno_xml,"cStat")
EDT_Xmotivo = XMLExtractString(EDT_Retorno_xml,"xMotivo")
EDT_dhResp = XMLExtractString(EDT_Retorno_xml,"dhResp")
EDT_UltNSU_retorno = XMLExtractString(EDT_Retorno_xml,"ultNSU")
EDT_maxNSU = XMLExtractString(EDT_Retorno_xml,"maxNSU")
// nesse momento ja temos o xml de retorno
sNome_tag is string="" // nome_tag string - nUmero_nsu int - Vamos criar duas variaveis
nUmero_nsu is int=0
bAchouxml is boolean=XMLDocument("xml_dfe",EDT_Retorno_xml) // vamos abrir o documento xml
XMLFind("xml_dfe",Null,XMLContinue+XMLChildItem)
WHILE XMLFound("xml_dfe") // vamos percorrer esse xml // WHILE XMLFound("XML_dfe")
sNome_tag = XMLElementName("xml_dfe") //vamos pegar o nome da tag -
IF sNome_tag="docZip" THEN // vamos verificar se a tag encontrada é doczip
bufFer_resumo is Buffer = XMLData("xml_dfe") // Vamos pegar o dado do resumo
bufFer_descompactar is Buffer = Decrypt(bufFer_resumo,"",compressNone,encodeBASE64) // Vamos comecar a descompatar
sDescompacta_xml is string=Uncompress(bufFer_descompactar) // vamos jogar numa string a descompactacao
XMLNext("xml_dfe") // agora vou para proxima tag pegar o numero do nsu
nUmero_nsu=XMLData("xml_dfe") // como eu sei que a proxima tag é o numero do nsu , vou pegar ele
fSaveText("C:\temp\resumo_nota_"+nUmero_nsu+".xml",sDescompacta_xml) // vamos agora salvar em disco o resumo da nota
sChnfe is string=XMLExtractString(sDescompacta_xml,"chNFe") // Vamos pegar a chave da nota no resumo
HReadSeekFirst(manifestacao_resumo,chNfe,sChnfe) // vamos verificar se essa chave existe no resumo
IF HFound(manifestacao_resumo) THEN
// se encontrou
ELSE // nao encontrou - ou nao existe
manifestacao_resumo.nsu = nUmero_nsu
manifestacao_resumo.chNfe = sChnfe
move_dados()
HAdd(manifestacao_resumo)
END
INTERNAL PROCEDURE move_dados()
manifestacao_resumo.xnome = XMLExtractString(sDescompacta_xml,"xNome")
manifestacao_resumo.ie = XMLExtractString(sDescompacta_xml,"IE")
manifestacao_resumo.tpNf = XMLExtractString(sDescompacta_xml,"tpNF")
manifestacao_resumo.digval = XMLExtractString(sDescompacta_xml,"digVal")
manifestacao_resumo.nProt = XMLExtractString(sDescompacta_xml,"nProt")
manifestacao_resumo.vnf = XMLExtractString(sDescompacta_xml,"vNF")
manifestacao_resumo.csitNfe = XMLExtractString(sDescompacta_xml,"cSitNFe")
manifestacao_resumo.cnpj = XMLExtractString(sDescompacta_xml,"CNPJ")
//<dhEmi>2021-07-14T12:43:48-03:00</dhEmi>
dAta is Date = ""
dhemissao_hora is string = XMLExtractString(sDescompacta_xml,"dhEmi")
dAta.Day = dhemissao_hora[[9 TO 10]]
dAta.Month = dhemissao_hora[[6 TO 7]]
dAta.Year = dhemissao_hora[[1 TO 4]]
hora is Time=""
hora.Hour = dhemissao_hora[[12 TO 13]]
hora.Minute = dhemissao_hora[[15 TO 16]]
hora.Second = dhemissao_hora[[18 TO 19]]
manifestacao_resumo.dhemi = dAta
manifestacao_resumo.hr_emissao = hora
dAta = ""
dhemissao_hora = XMLExtractString(sDescompacta_xml,"dhRecbto")
dAta.Day = dhemissao_hora[[9 TO 10]]
dAta.Month = dhemissao_hora[[6 TO 7]]
dAta.Year = dhemissao_hora[[1 TO 4]]
hora = ""
hora.Hour = dhemissao_hora[[12 TO 13]]
hora.Minute = dhemissao_hora[[15 TO 16]]
hora.Second = dhemissao_hora[[18 TO 19]]
manifestacao_resumo.dhrecbto = dAta
manifestacao_resumo.hora_recibo = hora
manifestacao_resumo.ciencia_cstat = ""
manifestacao_resumo.ciencia_motivo = ""
manifestacao_resumo.confirmado_cstat = ""
manifestacao_resumo.confirmado_motivo = ""
manifestacao_resumo.desconhecimento_Csat = ""
manifestacao_resumo.desconhecimento_motivo = ""
manifestacao_resumo.xml_baixado_documento = ""
manifestacao_resumo.soap_enviado = EDT_ENVELOPE_SOAP_ENVIADO
manifestacao_resumo.soap_retorno = EDT_RETORNO_SOAP
manifestacao_resumo.xml_retorno = EDT_Retorno_xml
END
END
// vamos ao final da pergunta, ir para outra tag
XMLNext("xml_dfe")
END
fSaveText("c:\temp\EDT_ENVELOPE_SOAP_ENVIADO.txt",EDT_ENVELOPE_SOAP_ENVIADO)
fSaveText("c:\temp\EDT_RETORNO_SOAP.txt",EDT_RETORNO_SOAP)
fSaveText("c:\temp\EDT_Retorno_xml.txt",EDT_Retorno_xml)
Info("Buscado Notas")
//xml_erro
//xml_dist_dfe --> proprio xml
// S_xml_nfe
// S_xml_evento
// Doczip
// Xml_arquivo
// Local_arquivo
// Xml_baixado boolean
END
--------------------- Indice WebService
Criar Projeto WebService - Lista Site - - WebService - 001/...
Deploy - Gerando WebService/Levando Servidor/Instalar/Mostrar - WebService - 002/...
Instalando SoapUI - Testar WebService - Aula 1040 - WebService - 003/...
Ajustando Xml Lista Site WebService - WebService - 004/...
Consumir WebService - WebService - 005
Xml - Consumir Ler Xml e colocar Tabela - WebService - 006
Dolar - Consumir WebService - Cotação Dolar - 007
Cnpj Receita - Consumir WebService - 008/...
Cep Buscar WebService Correio - WebService - 009/...
CONSULTA CADASTRO SEFAZ P-1 - DICAS 1871 - WINDEV_23 - WEBSERVICE 010 -
CONSULTA CADASTRO SEFAZ P-2 - 1872 - PUBLICA - WINDEV_23 - WEBSERVICE 011 -
CONSULTA CADASTRO SEFAZ P-3 - 1873 - PUBLICA - WINDEV_23 - WEBSERVICE 012 -
DICAS 1877 - WINDEV_23 - WEBSERVICE 014 - CNPJ BUSCA CADASTRO ACBR
DICAS 2019 - WINDEV - WEBSERVICE - 015 - APRENDER A FAZER REST WEBSERVICE
DICAS 2020 - WINDEV - WEBSERVICE - 016 - CRIANDO TABELAS
DICAS 2021 - WINDEV - WEBSERVICE - 017 - WDTESTREST
DICAS 2022 - WINDEV MOBILE - WEBSERVICE - 018 - LER WEBSERVICE RESTSend
DICAS 2023 - WINDEV MOBILE - WEBSERVICE - 019 - LER WEBSERVICE RESTSend SOMENTE 1 REGISTRO
DICAS 2024 - WINDEV MOBILE - WEBSERVICE - 020 - WEBSERVICE RESTSend CRIA NOVO REGISTRO - httpPost
DICAS 2025 - WINDEV MOBILE - WEBSERVICE - 021 - WEBSERVICE RESTSend ALTERA REGISTRO - httpPut
DICAS 2026 - WINDEV MOBILE - WEBSERVICE - 022 - WEBSERVICE httpRequest httpDelete
DICAS 2033 - WINDEV - WEBSERVICE 23 - HTTPRequest - HTTPGetResult - fSaveBuffer - BAIXAR ARQUIVO
AO VIVO-SOAP-DICA 2095-WINDEV MOBILE WEBDEV-WEBSERVICE COM MOBILE -
DICAS 2096-2095 - WINDEV WEBDEV MOBILE - WEBSERVICE 25 - SOAP
DICAS 2097 - WINDEV MOBILE - WEBSERVICE 26 - MOSTRAR CLIENTES - SOAP
DICAS 2132 - HANGOUT AO VIVO 20 HORAS 30/05 - WEBSERVICE SOAP COM MOBILE
DICAS 2163 WINDEV WEBDEV MOBILE WEBSERVICE 28 SOAP
DICAS 2226 WINDEV WEBDEV MOBILE 24 NOVIDADES 26 WEBSERVICE 29 HTTPREQUEST - BUSCA CNPJ
DICA 2687 - WINDEV WEBDEV MOBILE - WEBSERVICE 32 - EXPLICANDO WEBSERVICE SOAP E CONSUMIDO MOBILE E DESKTOP
-------------------
Nenhum comentário:
Postar um comentário