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”:
Bloco de código |
---|
language | java |
---|
title | 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 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:
Bloco de código |
---|
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:
- Instanciar em um Handle a BOCX00466.p.
Bloco de código |
---|
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;
Bloco de código |
---|
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:
Bloco de código |
---|
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:
Bloco de código |
---|
/*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:
Bloco de código |
---|
RUN setRecord IN THIS-PROCEDURE (INPUT TABLE tt-due-item-nf-refer).
RUN createRecord IN THIS-PROCEDURE.
DELETE tt-due-item-nf-refer. |