Causa:
Como é utilizado o Engine de Regras, nas integrações do ERP Datasul com o SIGAGFE (Frete Embarcador) ?
Solução:
Quando é feita a integração do ERP Datasul com o SIGAGFE (Frete Embarcador) ou vice-versa, os seguintes pontos tem chamada para o Engine de Regras (CD0024).
- Notas Fiscais de saída (ERP Datasul para o SIGAGFE).
- Documentos de entrada (ERP Datasul para o SIGAGFE).
- Integração do Documento de Frete (SIGAGFE com o Fiscal do ERP Datasul).
- Integração do Documento de Frete (SIGAGFE com o Recebimento do ERP Datasul - "Apropriar Despesa").
Para utilizar o Engine de Regras, devemos primeiro cadastrar os tipos de operações pelo programa CD0025. Segue abaixo os 4 pontos de integração utilizados pelo SIGAGFE.
- “gfe-nfs” (Nota Fiscal Saída - Engine GFE)
- “gfe-nfe” (Nota Fiscal Entrada - Engine GFE)
- “gfe-fiscal” (Documento Fiscal - Engine GFE - De-Para Natureza Operação)
- “gfe-re” (Apropriar Despesa Documento de Entrada - Engine GFE - De-Para Natureza Operação)
Em seguida cadastramos as regras no CD0024. Abaixo as variáveis usadas em cada ponto de integração.
1. Bloquear/Liberar Nota Fiscal de Saída/Recebimento
“GFE-NFS” - Faturamento:
"cod-estabel"
"serie"
"nome-ab-cli"
"cod-emitente"
"ind-sit-nota" - Situação da Nota Fiscal (1-Calculada, 2-Impressa, 3-Confirmada, 4-Cancelada, 5-Atual CR, 6-Atual OF, 7-Atual Etat.)
"cod-cond-pag"
"esp-docto" - Informar a espécie do documento conforme é gravado na nota fiscal do faturamento: NFD - grava 20, NFE - grava 21, NFS - grava 22 e NFT - grava 23)
"ind-tp-frete" - Indicador do Tipo de Frete (1-CIF, 2-FOB, 3-CIF REDESP.)
"cidade-cif"
"nome-transp"
(itens)
"it-codigo"
"cod-ean"
"nat-operacaoitem"
Obs: o retorno desta regra de engine deverá sempre ser realizado a partir de uma variável com o mesmo nome do tipo de operação “GFE-NFS” com o retorno igual a “no” quando não for para integrar ou “yes” quando for para integrar.
“GFE-NFE” - Recebimento:
"cod-emitente"
"tipo-frete" - Tipo de Frete (1-CIF, 2-FOB, 3-CIF REDESP.)
"ind-tip-nota" - Tipo da Nota Fiscal (1-Compra, 2-Devolução, 3-Transferência, 4-Entrada Benef, 5-Retorno Benef, 6-Entrada Consig, 7-Fatura Consig, 8-Devolução Consig, 9-Nota de Rateio, 10-Rem. Entrega Futura, 11-Rem. Fat. Antecipado)
"nat-oper"
Obs: o retorno desta regra de engine deverá sempre ser realizado a partir de uma variável com o mesmo nome do tipo de operação “GFE-NFE” com o retorno igual a “no” quando não for para integrar ou “yes” quando for para integrar.
2. Realizar o De-Para do CFOP do Documento de Frete para a Natureza de Operação e Item Fiscal do Datasul
“GFE-FISCAL” - Integração Fiscal:
Variável | Tipo de Dado | Significado / Origem Informação |
---|---|---|
cod-estabel | Caracter | Código da Filial no GFE (GW3_FILIAL) – Documento de Frete |
cod-emitente | Inteiro | Código da Transportadora (GW3_EMISDF) – Documento de Frete |
cidade | Caracter | Código da Cidade no EMS relacionado à Transportadora "cod-emitente" |
estado | Caracter | Código da UF no EMS relacionado à Transportadora "cod-emitente" |
nat-operacao | Caracter | Código do CFOP no GFe (GW3_CFOP) – Documento de Frete |
cod-acesso-cte | Caracter | Chave do CTe no GFe (GW3_CTE) – Documento de Frete |
l-cte | YES/NO | Indicador se a Chave do CTe no GFE está ou não preenchida “cod-acesso-cte” |
it-cd-trib-iss | Inteiro | Tipo de Tributação no GFE quando o imposto for do tipo ICMS (GW3_TRBIMP) – Documento de Frete Se GFE = "1-Tributado" no EMS "1-Tributado" Se GFE = "2-Isento/Não-trib." no EMS "2-Isento/Não-tributado" Se GFE = "3-Subst. Tribut." no EMS "3-Outros" Se GFE = "4-Diferido" no EMS "3-Outros" Se GFE = "5-Reduzido" no EMS "1-Tributado" Se GFE = "6-Outros" no EMS "3-Outros" Se GFE = "7-Presumido" no EMS "3-Outros" |
it-aliquota-iss | Decimal | Alíquota de Imposto no GFE quando o imposto for do tipo ISS (GW3_PCIMP) – Documento de Frete |
it-cd-trib-icm | Inteiro | Tipo de Tributação no GFE quando o imposto for do tipo ICMS (GW3_TRBIMP) – Documento de Frete Se GFE = "1-Tributado" no EMS "1-Tributado" Se GFE = "2-Isento/Não-trib." no EMS "2-Isento/Não-tributado" Se GFE = "3-Subst. Tribut." no EMS "3-Outros" Se GFE = "4-Diferido" no EMS "3-Outros" Se GFE = "5-Reduzido" no EMS "1-Tributado" Se GFE = "6-Outros" no EMS "3-Outros" Se GFE = "7-Presumido" no EMS "3-Outros" |
it-aliquota-icm | Decimal | Alíquota de Imposto no GFE quando o imposto for do tipo ICMS (GW3_PCIMP) – Documento de Frete |
vl-cofins | Decimal | Valor do Imposto de PIS no GFE (GW3_VLPIS) – Documento de Frete |
vl-pis | Decimal | Valor do Imposto de COFINS no GFE (GW3_VLCOF) – Documento de Frete |
tipo | Inteiro | Tipo do Imposto relacionado à Espécie do Documento de Frete (GVT_TPIMP) – Documento de Frete – Espécie Doc. Frete Se GFE = “1-ICMS” no EMS “1-Entrada” Se GFE = “2-ISS” no EMS “3-Serviço” |
trib-imp-gfe | Inteiro | Tipo de Tributação no GFE quando sem tradução para o EMS 1-Tributado; 2-Isento/Não Tributado 3-Subs Tributária 4-Diferido 5-Reduzido 6-Outros 7-Presumido |
item | Caracter | Item do Documento parametrizado pelo Parâmetros do Módulo, Aba “Integrações Datasul”, Campo “Código Item Documento Fiscal” (MV_DSOFIT). Apenas variável de retorno não sendo possível utilizar como condição. |
“GFE-RE” - Nota Fiscal de Rateio (Apropriação de Despesa):
Variável | Tipo de dado | Significado/origem informação |
---|---|---|
nat-operacao | Caracter | Código do CFOP no GFE (GW3_CFOP) – Documento de Frete |
cod-servico | Inteiro | Código tributação de ICMS GFE |
cd-trib-icm | Inteiro | Código tributação de ICMS GFE |
aliquota-icm | Decimal | Alíquota de ICMS do documento de frete no GFE |
nf-nat-oper | Caracter | Natureza de operação da nota de entrada |
l-iss | YES/NO | Indica se o conhecimento tem ISS |
l-ativo | YES/NO | Indica se a NF Entrada é uma nota de ativo imobilizado |
l-cons-final | YES/NO | Indica se a NF Entrada é uma nota para uso e consumo |
l-crdicms | YES/NO | Indica se a NF Entrada se creditou de ICMS |
l-difaliq | YES/NO | Indica se a NF Entrada teve cálculo de ICMS Compl. |
l-nat-entrada | YES/NO | Indicar que as NF rateio serão geradas com a natureza da NF entrada |
uforigem | Caracter | Estado de origem do fornecedor da nota de entrada |
ufdestino | Caracter | Estado do estabelecimento que recebeu a mercadoria |
l-trib-pc | YES/NO | Indicador se Tributa ou não PIS/COFINS no Documento de Frete do GFE. |
Variáveis de Retorno
Retorno | Tipo de dado | Ação |
---|---|---|
nat-operacao ou natur-oper ou natureza | Caracter | Natureza de operação resultante, com a qual será gerada a nota de rateio. |
cod-servico | Inteiro | Código do serviço da nota de rateio |
l-nat-entrada | YES/NO | Indica se utiliza a natureza da NF entrada para a natureza de rateio |
Segue abaixo um exemplo de uma regra que deverá Bloquear a integração de Nota Fiscal de Saída com frete do tipo FOB
Segue abaixo um exemplo de uma regra que deverá alterar a CFOP 2353 para a Natureza de Operação 235305 quando o tipo de imposto for Tributado e a alíquota de ICMS igual a 12%
Dica 01: Simulador de Configurador de Regras(CD0026)
Podemos utilizar o CD0026 para simular as regras cadastradas.
Neste exemplo abaixo estamos testando a regra da Natureza de Operação 2353, alíquota de 12% e Tipo de ICMS Tributado
Neste exemplo abaixo estamos testando a regra de Nota Fiscal de Saída com frete do tipo FOB
Dica 02: Uso do Clientlog durante a investigação de algum incidente
Durante a execução das integrações do SIGAGFE que utilizam-se de conceito de engine de regras, há a execução da API cdp/cdapi034 responsável em executar o cadastro da regra, sendo possível consultar alguns parâmetros no clientlog:
RUN cdp/cdapi034.p (<empresa do usuário, visível>,
<temp-table, não é visível>,
<código da operação, visível>,
<temp-table, não e visível>,
<código da regra encontrada e que foi aplicada, visível. Quando não for encontrada a regra, o conteúdo será zero(0)>,
<temp-table, não e visível>,
<temp-table, não e visível>,
<temp-table, não e visível>).
Dica 03: Arquivo de log da API cdp/cdapi034
Durante a execução das integrações do SIGAGFE que utilizam-se de conceito de engine de regras, há a execução da API cdp/cdapi034 responsável em executar o cadastro da regra. Esta API, gera no diretório temporário da sessão Progress (comando session:temp-directory), um arquivo de log onde é possível comparar o cadastro das variáveis da condição(cdp/cd0024) com os valores recebidos.
Segue exemplo de como interpretar o conteúdo apresentado neste arquivo. No arquivo cdapi034.txt consta as seguintes linhas:
Regra: 20
if ('2352'='2352')AND (LOGICAL('yes')=LOGICAL('yes'))AND (INTEGER('1')=INTEGER('1'))AND (LOGICAL('no')=LOGICAL('yes')) then YES else NO
Para a interpretação recomenda-se que seja também executado o programa de Cadastro de Engine de Regras(CD0024), consultando-se a regra (no exemplo é a regra 20) onde se tem a sequencia das variaveis utilizadas com o respectivo cadastro. Para cada condição existente, no log é apresentado primeiramente o conteúdo recebido e depois o conteúdo cadastrado na condição onde então, pode-se conferir se a condição é verdadeira ou não.
Ilustrando:
nat-operacao: 2352(RECEBIDO) = 2352(CONDIÇAÕ) AND * satisfaz a condição
l-trib-pc...: yes(RECEBIDO) = yes(CONDIÇÃO) AND * satisfaz a condição
cb-trib-icm.: 1(RECEBIDO) = 1(CONDIÇÃO) AND * satisfaz a condição
l-crdicms...: no(RECEBIDO) = YES(CONDIÇÃO) * como está sendo enviado NO e esta condição espera YES, fará com que esta regra não seja aplicada.