Identificador de Regra
Módulo: IMP - Impostos.
Finalidade: Este identificador permite inserir ajustes na apuração do ICMS, sem excluir os ajustes já adicionados na apuração de ICMS.
Observação
Este identificador de regras não trabalha em conjunto com o identificador de regras IMP-661CALIM02, pois o identificador de regras IMP-661CALIM02 pode excluir todos os ajustes cadastrados anteriormente. Por isso, é apresentada a seguinte mensagem de aviso ao calcular o imposto do tipo 2 – ICMS: "O identificador de regras IMP-661AJUICMS não será executado. Para executá-lo, é necessário que o identificador de regras IMP-661CALIM02 esteja inativo".
Tela: Resumo de Apuração do Imposto (F661I18)
Transação: Não se aplica.
Variáveis Disponibilizadas:
| Nome | Tipo | Observações | Retorna Valor |
|---|---|---|---|
| IMPNCodEmp | Número | Empresa | N |
| IMPNCodFil | Número | Filial | N |
| IMPACodImp | Alfa | Imposto | N |
| IMPDDatIni | Data | Data inicial | N |
| IMPDDatFim | Data | Data final | N |
| IMPATipAju | Alfa | OC - Outro créditos, OD - Outros débitos, EC - Estorno crédito, ED - Estorno débito e DE - Deduções | S |
| IMPNSeqAju | Número | Sequencial iniciado em 1 e que deve alterado em regra para facilitar lógica | S |
| IMPNCodDfs | Número | Dispositivo fiscal | S |
| IMPDDesAju | Alfa | Descrição do ajuste | S |
| IMPNVlrAJu | Número | Valor do ajuste | S |
| IMPADorOri | Alfa | Número documento | S |
| IMPARetorna | Alfa | Indicativo se existem mais ajustes a serem lançados | S |
Regra:
Exemplo de regra a ser vinculada ao identificador de regras:
Definir Numero IMPNCodEmp;
Definir Numero IMPNCodFil;
Definir Alfa IMPACodImp;
Definir Data IMPDDatIni;
Definir Data IMPDDatFim;
Definir Numero IMPNSeqAju;
Definir Alfa IMPARetorna;
Definir Alfa IMPATipAju;
Definir Numero IMPNCodDfs;
Definir Alfa IMPADesAju;
Definir Numero IMPNVlrAju;
Definir Alfa IMPACodOri;
Definir Alfa xNumDoi;
Definir Numero xValor;
Definir Numero xSequencia;
Definir Alfa xSQL;
Definir Alfa xCursor;
xSQL = "SELECT e660nfc.numdoi, sum(e660rde.vlrajs) AS vlrajs, row_number () OVER (ORDER BY numdoi) AS seqaju "+
"FROM e660nfc LEFT JOIN e660rde ON e660rde.codemp = e660nfc.codemp AND "+
"e660rde.codfil = e660nfc.codfil AND "+
"e660rde.codfor = e660nfc.codfor AND "+
"e660rde.numnfi = e660nfc.numnfi AND "+
"e660rde.numnff = e660nfc.numnff AND "+
"e660rde.codsnf = e660nfc.codsnf AND "+
"e660rde.codtns = e660nfc.codtns "+
"WHERE e660nfc.CodEmp = :codemp AND "+
"e660nfc.codfil = :codfil AND "+
"e660nfc.datdoi >= :datini AND "+
"e660nfc.datdoi <= :datfim "+
"GROUP BY e660nfc.numdoi";
SQL_Criar(xCursor);
SQL_UsarAbrangencia(xCursor, 0);
SQL_UsarSQLSenior2(xCursor,0);
SQL_DefinirComando(xCursor, xSQL);
SQL_DefinirInteiro(xCursor, "CODEMP", IMPNCodEmp);
SQL_DefinirInteiro(xCursor, "codfil", IMPNCodFil);
SQL_DefinirData(xCursor, "datini", IMPDDatIni);
SQL_DefinirData(xCursor, "datfim", IMPDDatFim);
SQL_AbrirCursor(xCursor);
Enquanto (SQL_EOF(xCursor) = 0)
Inicio
SQL_RetornarAlfa(xCursor, "NUMDOI", xNumDoi);
SQL_RetornarFlutuante(xCursor, "vlrajs", xValor);
SQL_RetornarInteiro(xCursor, "seqaju", xSequencia);
se (IMPNSeqAju = xSequencia)
inicio
IMPATipAju = "OC";
IMPNCodDfs = 12;
IMPADesAju = "Credito do imposto recolhido por ocasiao da importacao com emissao da DI - " + xNumDoi;
IMPACodOri = xNumDoi;
IMPNVlrAju = xValor;
IMPNSeqAju++;
Se (SQL_EOF(xCursor) = 0)
IMPARetorna = "S";
Senao
IMPARetorna = "N";
Pare;
fim;
SQL_Proximo(xCursor);
Fim;
SQL_FecharCursor(xCursor);
SQL_Destruir(xCursor);
|
English
Español
English
Español


