Page tree
Skip to end of metadata
Go to start of metadata

Produto:

Datasul 

Ocorrência:

Criar notas referenciadas na DU-E utilizando ponto UPC disponibilizado

Passo a passo:

  • Existe um ponto UPC logo após a criação dos Itens da DU-E para que seja possível criar as Notas Fiscais referenciadas quando utilizada Tabela Específica para controle dessas informações;
  • Programa a ser incluso a UPC: bocx00460, informação a ser inclusa ao programa mencionado acima, via Manutenção de Programa (menu Foundation) men/men012aa.r conforme imagem abaixo:



Evento: “afterCreateDueItem”

Parâmetro: “Rowid_DueItem”

Valor do parâmetro: STRING(ROWID(due-item)).



Exemplo de comando a ser utilizado na EPC para criação da tabela “due-item-nf-refer”:


Exemplo de EPC
{include/i-epc200.i}

DEF INPUT PARAM p-ind-event AS CHAR NO-UNDO.
DEF INPUT-OUTPUT PARAM TABLE FOR tt-epc. 

IF p-ind-event = "afterCreateDueItem" THEN DO:

    FIND FIRST tt-epc WHERE tt-epc.cod-event = "afterCreateDueItem"
          AND tt-epc.cod-parameter = "Rowid_DueItem" NO-LOCK NO-ERROR.

    IF AVAIL tt-epc THEN DO:
        FIND FIRST due-item WHERE ROWID(due-item) = TO-ROWID(tt-epc.val-parameter) NO-LOCK NO-ERROR.

        IF AVAIL due-item  THEN DO:

            /* Localizar através da tabela específica o número da Nota Fiscal, utilizar a chave “dueitem_ix2” 
                da tabela “due-item” – consultar através do dicionário de dados*/
            /* criação do registro tabela due-item-nf-refer */

        END.
    END.
END.

RETURN "OK":U.
  • Definir a temp-table “tt-due-item-nf-refer”:

DEFINE TEMP-TABLE tt-due-item-nf-refer no-undo LIKE due-item-nf-refer field r-rowid AS ROWID.


  • Dados a serem atualizados na temp-table tt-due-item-nf-refer:

Campos da Temp-Table

Atualizar com:

Observação

cdd-due-ems              

due-item.cdd-due-sem

Código Interno da DU-E 

num-versao-due           

due-item.num-versao-due

Versão da DU-E

num-seq-it-due           

due-item.num-seq-it-due

Sequencia do Item da DU-e

num-seq-nf-refer         

Sequencial de 1 em 1

Tabela Específica

cod-estab-nf-refer       

Estabelecimento da NF Refer                  

Tabela Específica

cod-serie-nf-refer       

Série da NF Refer                                           

Tabela Específica

cod-nota-fisc-refer      

Número da NF Refer                                    

Tabela Específica

num-livre-1              

Emitente da NF Refer                    

Tabela Específica

cod-livre-1,1,6

Natureza de Operação da NF Refer

Tabela Específica

num-seq-faturam-refer    

Sequencia do item da NF Refer

Sequencia do Item da Nota

cod-item-refer           

Código do item                             

Tabela Específica

idi-tip-nf               

1 - Remessas
2 - Complementar (Controle de Exportação por Item)


qtd-assoc

Quantidade referente à Remessa efetuada

Convertida contra a Unidade de Medida Tributável/Estatística

cod-chave-aces-nf-refer  

Chave de Acesso da NF Refer            

Tabela Específica

cod-estab-proces-exp-refer

Estabelecimento do Processo de Exportação

Atualizar caso a nota estiver vinculada a Processo de Exportação

cod-proces-exp-refer     

Processo de Exportação

Atualizar caso a nota estiver vinculada a Processo de Exportação


  • Campos de relacionamento com a tabela pai (due-item):

Campos da Temp-Table

Atualizar com:

Observação

cod-chave-aces-nf-due  

due-nf.cod-chave-aces-nf-eletro 

Acessar com FOR FIRST due-nf NO-LOCK WHERE due-nf.cdd-due-ems    = due-item.cdd-due-ems       AND due-nf.num-versao-due = due-item.num-versao-due: END.

cod-estab-nf-due       

due-item.cod-estabel-nf         


cod-serie-nf-due       

due-item.cod-serie-nf           


cod-nota-fisc-due      

due-item.cod-nota-fisc          


cod-estab-proces-exp-due

due-item.cod-estab-proces-export


cod-proces-exp-due     

due-item.cod-proces-export      


num-seq-faturam-due    

due-item.num-seq-faturam        


num-seq-it-due         

due-item.num-seq-it-due         


cod-item-due           

due-item.cod-item



  • Atualização da Informação de Tipo de Nota Fiscal de acordo com a Natureza de Operação da Nota Fiscal Referenciada:


FOR FIRST natur-oper FIELDS(tipo)
    WHERE natur-oper.nat-operacao = TRIM(SUBSTRING(tt-due-item-nf-refer.cod-livre-1,1,6)) NO-LOCK:
    IF natur-oper.tipo = 2 THEN /*Nota de saída*/
        ASSIGN tt-due-item-nf-refer.idi-tip-nf = 1. /*REMESSA*/
END.


  • Caso na tabela específica, a quantidade armazenada não estiver na Unidade Tributável/Estatística, poderá ser executado o método “piConverteQtdeEstatistica”. Para isso:
  1. Instanciar em um Handle a BOCX00466.p.

IF NOT VALID-HANDLE(h-bocx00466) THEN
        RUN cxbo/bocx00466.p PERSISTENT SET h-bocx00466.


2. Atualizar em uma variável do tipo “decimal” a Quantidade Associada referente à remessa;

ASSIGN de-qtd-assoc = tt-due-item-nf-refer.qtd-assoc.


3. Executar o método abaixo passando como parâmetros as seguintes informações:

RUN piConverteQtdeEstatistica IN h-bocx00466 (INPUT tt-due-item-nf-refer.cod-estab-nf-refer,
															INPUT tt-due-item-nf-refer.cod-serie-nf-refer,
															INPUT tt-due-item-nf-refer.cod-nota-fisc-refer,
															INPUT TRIM(SUBSTRING(tt-due-item-nf-refer.cod-livre-1,1,6)), 
															INPUT tt-due-item-nf-refer.num-livre-1,  /*Emitente*/
															INPUT-OUTPUT de-qtd-assoc).


4. Atualizar na tabela tt-due-item-nf-refer a quantidade retornada já convertida:

/*quantidade associada: convertida contra a unidade de medida Estatística*/
ASSIGN tt-due-item-nf-refer.qtd-assoc = de-qtd-assoc. 


Após criação da temp-table “tt-due-item-nf-refer” ser finalizada, utilizar os métodos padrões de criação/modificação de Registros da BOCX00466:

RUN setRecord    IN THIS-PROCEDURE (INPUT TABLE tt-due-item-nf-refer).
RUN createRecord IN THIS-PROCEDURE.
DELETE tt-due-item-nf-refer.

Observações: