ST_GERAA170 - Gera Registro A170 com PIS/COFINS Retidos
Tela de configuração: MFI003 — Parâmetros Fiscais Localização: aba SPED PIS/COFINS Tabela:
PARMFISCAL.ST_GERAA170Valor padrão:N(Não)
Descrição
Controla se o registro A170 (Complemento do Documento – Itens) do Bloco A do SPED PIS/COFINS deve incluir os valores de PIS e COFINS retidos nas notas fiscais de serviço (modelo 90 / NFS-e).
Quando ativado (S), a procedure que gera o registro A170 deixa de filtrar apenas impostos não retidos, passando a trazer tanto PIS/COFINS retidos quanto não retidos por item de nota.
Campos envolvidos
| Campo | Tabela | Descrição |
|---|---|---|
ST_GERAA170 | PARMFISCAL | Habilita geração do A170 com retidos |
ST_RETIDO | IMPOSTONOTACTB | Indica se o imposto foi retido (S/N) |
TP_IMPOSTO | IMPOSTONOTACTB | Tipo do imposto (S=PIS, F=COFINS, Q=ISS) |
ST_DEDUZIRISS | PARMFISCAL | Deduz ISS da base de PIS/COFINS no A170 |
Opções disponíveis
S - Sim (Inclui PIS/COFINS retidos no registro A170)
| O que faz | Detalhe |
|---|---|
| Inclui retidos | O registro A170 trazer valores de PIS e COFINS retidos (ST_RETIDO = 'S') junto com os não retidos |
| Comportamento do filtro | O LEFT JOIN com IMPOSTONOTACTB não restringe ST_RETIDO, permitindo ambas as situações |
| Requisito | As notas devem estar com ST_FISCAL = 'S' e ST_SPEDCONTRIBUICAO = 'S', modelo 90 |
Simulação passo a passo
- Acesse MFI003 — Parâmetros Fiscais.
- Selecione a aba SPED PIS/COFINS.
- No campo Gera A170, selecione Sim.
- Salve o parâmetro (
<F9>ou botão Salvar). - Gere o arquivo SPED PIS/COFINS pelo módulo fiscal.
- No arquivo gerado, verifique o registro A170 — ele conterá, para cada item de nota de serviço, os valores de PIS e COFINS retidos e não retidos.
Resultado esperado: O registro A170 do Bloco A trazer os valores de PIS/COFINS retidos (campo VL_BC_PIS, VL_PIS, VL_BC_COFINS, VL_COFINS) somados aos não retidos.
N - Não (Apenas PIS/COFINS não retidos) — Padrão
| O que faz | Detalhe |
|---|---|
| Exclui retidos | O registro A170 traz apenas os valores de PIS e COFINS não retidos (ST_RETIDO = 'N') |
| Comportamento do filtro | O LEFT JOIN com IMPOSTONOTACTB aplica ST_RETIDO = 'N', ignorando registros retidos |
| Valor padrão | N — ao inserir novo registro em PARMFISCAL, o campo é inicializado automaticamente |
Simulação passo a passo
- Acesse MFI003 — Parâmetros Fiscais.
- Selecione a aba SPED PIS/COFINS.
- No campo Gera A170, selecione Não (padrão).
- Salve o parâmetro.
- Gere o arquivo SPED PIS/COFINS pelo módulo fiscal.
- No arquivo gerado, o registro A170 conterá apenas valores de PIS/COFINS de impostos não retidos.
Resultado esperado: Os valores de PIS/COFINS retidos não aparecem no registro A170 — apenas bases e valores de impostos com ST_RETIDO = 'N'.
Exceção / Importante: O parâmetro
ST_DEDUZIRISS(configurado na mesma aba de SPED PIS/COFINS em MFI003) atua em conjunto: quandoST_DEDUZIRISS = 'S'e a nota é de saída (TP_NOTA = 'S'), o valor do ISS é deduzido da base de cálculo de PIS e COFINS antes da gravação no A170, independentemente deST_GERAA170.
Regra de funcionamento no código
A lógica central está na procedure RETORNA_SPEDBLOCOA170 (linha 91 e 98):
-- Para PIS:
AND PIS.ST_RETIDO = IIF(:V_ST_GERAA170 = 'N', 'N', PIS.ST_RETIDO)
-- Para COFINS:
AND COFINS.ST_RETIDO = IIF(:V_ST_GERAA170 = 'N', 'N', COFINS.ST_RETIDO)
- Quando
ST_GERAA170 = 'N'→ a condição viraST_RETIDO = 'N'(só não retidos). - Quando
ST_GERAA170 = 'S'→ a condição viraST_RETIDO = ST_RETIDO(sempre verdadeiro, inclui todos).
Telas impactadas
| Tela | Impacto |
|---|---|
| MFI003 — Parâmetros Fiscais | Tela onde o parâmetro é configurado |
| Geração do SPED PIS/COFINS | O parâmetro é lido durante a geração do Bloco A |
Procedures impactadas
Rotinas Delphi com referência direta
| Rotina | Arquivo | Evidência |
|---|---|---|
TdmMFI003.tabPARMFISCALAfterInsert | source/MFI003/UdmMFI003.pas:331 | Inicializa ST_GERAA170 := 'N' ao inserir novo registro |
Procedures SQL com referência direta ao campo
| Procedure | Arquivo | Evidência |
|---|---|---|
RETORNA_SPEDBLOCOA | Scripts/RETORNA_SPEDBLOCOA.sql:57 | Lê PF.ST_GERAA170 de PARMFISCAL e repassa para RETORNA_SPEDBLOCOA170 |
RETORNA_SPEDBLOCOA170 | Scripts/RETORNA_SPEDBLOCOA170.sql:53,91,98 | Usa V_ST_GERAA170 para filtrar ST_RETIDO de PIS e COFINS |
Cadeia de chamadas:
GERA_SPEDPISCOFINS→RETORNA_SPEDBLOCOA→RETORNA_SPEDBLOCOA170— o parâmetro é consumido exclusivamente nesta cadeia.