Histórico da Página
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
/*****************************************************************************************************
** OBJETIVO..: Retornar o conteúdo do arquivo XML de uma NF-e
**
** IMPORTANTE: o conteúdo deste programa não poderá ser alterado para manter
** seu correto funcionamento.
** O único ponto que deverá ser alterado pelo cliente é no que diz respeito à busca do
** arquivo XML da nota fiscal recebida através do buffer da temp-table tt-nota-fiscal
**
*****************************************************************************************************/
{include/i-epc200.i1 nota-fiscal_data}
DEFINE INPUT PARAMETER p-ind-event AS CHAR NO-UNDO.
DEFINE INPUT-OUTPUT PARAMETER TABLE FOR tt-epc.
DEFINE TEMP-TABLE tt-nota-fiscal NO-UNDO
FIELD nr-nota-fis AS CHARACTER
FIELD serie AS CHARACTER
FIELD cod-esp AS CHARACTER
FIELD nr-parcelas AS INTEGER
FIELD nr-fatura AS CHARACTER
FIELD dt-emis-nota AS DATE
FIELD cod-estabel AS CHARACTER
FIELD cod-empresa AS CHARACTER
FIELD ind-tip-nota AS CHARACTER
FIELD cod-chave-aces-nf-eletro AS CHARACTER
FIELD cod-emitente AS INTEGER
FIELD xml-nota-fiscal AS CLOB
FIELD dt-atualiza AS DATE
FIELD hr-atualiza AS CHARACTER
FIELD idi-sit-nf-eletro AS INTEGER.
DEFINE VARIABLE h-bf-tt-nota-fiscal AS HANDLE NO-UNDO.
DEFINE VARIABLE lXmlNfe AS LONGCHAR NO-UNDO.
DEFINE VARIABLE cArquivoXML AS CHARACTER NO-UNDO.
DEFINE VARIABLE c-cod-estabel LIKE nota-fiscal.cod-estabel NO-UNDO.
DEFINE VARIABLE c-serie LIKE nota-fiscal.serie NO-UNDO.
DEFINE VARIABLE c-nr-nota-fis LIKE nota-fiscal.nr-nota-fis NO-UNDO.
DEFINE VARIABLE c-cod-dir-histor-xml AS CHARACTER NO-UNDO.
IF p-ind-event = "Retorna_Conteudo_XML" THEN DO:
FIND FIRST tt-epc
WHERE tt-epc.cod-event = p-ind-event
AND tt-epc.cod-parameter = "tt-nota-fiscal":U NO-LOCK NO-ERROR.
IF AVAIL tt-epc THEN DO:
ASSIGN h-bf-tt-nota-fiscal = WIDGET-HANDLE(tt-epc.val-parameter) NO-ERROR.
IF ERROR-STATUS:ERROR THEN
RETURN "OK":U.
IF VALID-HANDLE(h-bf-tt-nota-fiscal) THEN DO:
ASSIGN c-cod-estabel = h-bf-tt-nota-fiscal:BUFFER-FIELD("cod-estabel"):BUFFER-VALUE
c-serie = h-bf-tt-nota-fiscal:BUFFER-FIELD("serie"):BUFFER-VALUE
c-nr-nota-fis = h-bf-tt-nota-fiscal:BUFFER-FIELD("nr-nota-fis"):BUFFER-VALUE.
FOR FIRST nota-fiscal
WHERE nota-fiscal.cod-estabel = c-cod-estabel
AND nota-fiscal.serie = c-serie
AND nota-fiscal.nr-nota-fis = c-nr-nota-fis NO-LOCK:
/***************************************************************************************************************************
** BUSCA DO DIRETÓRIO + ARQUIVO XML REFERENTE À NOTA FISCAL
** ALTERAR SOMENTE NESTE BLOCO ENTRE OS COMENTÁRIOS
** Colocar aqui a lógica para localizar o XML da nota fiscal posicionada
** IMPORTANTE! A variável "cArquivoXML" deverá ser atualizada com o diretório + arquivo XML referente à nota fiscal
**
** Ex.: ASSIGN cArquivoXML = "\\servidor\diretorio\XML_NFe\311815320201214172138.xml".
**
** Exemplo de busca efetuada pelo TSS no produto padrão:
FOR FIRST param-nf-estab
WHERE param-nf-estab.cod-estabel = nota-fiscal.cod-estabel NO-LOCK:
ASSIGN c-cod-dir-histor-xml = param-nf-estab.cod-caminho-xml.
END.
ASSIGN c-nr-nota-xml = TRIM(nota-fiscal.cod-estabel) +
SUBSTR(nota-fiscal.cod-chave-aces-nf-eletro,23,3) +
TRIM(STRING(INTEGER(SUBSTR(nota-fiscal.cod-chave-aces-nf-eletro,26,9)),">>9999999")) + ".XML"
c-chave-xml = TRIM(nota-fiscal.cod-chave-aces-nf-eletro) + ".XML".
IF SEARCH(c-cod-dir-histor-xml + "/" + c-nr-nota-xml) <> ? THEN
ASSIGN cArquivoXML = c-cod-dir-histor-xml + "/" + c-nr-nota-xml.
IF SEARCH(c-cod-dir-histor-xml + "/" + c-chave-xml) <> ? THEN
ASSIGN cArquivoXML = c-cod-dir-histor-xml + "/" + c-chave-xml.
**
** NÃO ALTERAR A PARTIR DESTE PONTO PARA BAIXO!
****************************************************************************************************************************/
IF cArquivoXML <> ""
AND search(cArquivoXML) <> ? THEN DO:
COPY-LOB FROM FILE cArquivoXML TO lXmlNfe.
END.
IF lXmlNfe <> "" THEN
ASSIGN h-bf-tt-nota-fiscal:BUFFER-FIELD("xml-nota-fiscal"):BUFFER-VALUE = lXmlNfe.
END.
END.
END.
END.
|
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas