Pular para o conteúdo principal

ST_ALTERAICMS - Altera CST/CSOSN ICMS na Importação de XML

Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Notas → Parâmetros de Notas Fiscais → campo "Altera CST/CSOSN ICMS Importação XML [MNF001]" Tabela: PARMFATUR.ST_ALTERAICMS Valor padrão: N (Não) — atribuído em UdmMFA001.pas AfterInsert, chamado 245613 (Thiago Cousseau)

Telas impactadas​

MóduloCódigoDescrição
NF EntradaMNF001Importação de XML de entrada; controla se o usuário pode cadastrar novo CST quando não encontrado, e se a alteração de CST/CSOSN do item fornecedor replica no item da nota

Procedures impactadas​

Nenhuma stored procedure de Firebird lê ST_ALTERAICMS. O parâmetro é utilizado exclusivamente no código Delphi do MNF001.

Campos envolvidos​

CampoDescrição
PARMFATUR.ST_ALTERAICMSFlag global ('S'/'N') que habilita a alteração do CST/CSOSN de ICMS na importação de XML
ITEMFORNECIMP.CD_CSTCST importado do XML para o item do fornecedor
ITEMFORNECIMP.CD_CSOSNCSOSN importado do XML para o item do fornecedor
ITEMFORNECIMP.DS_CSTDescrição do CST vinculada
ITEMFORNECIMP.DS_CSOSNDescrição do CSOSN vinculada
ITEMFORNECIMP.TP_IMPOSTOTipo de imposto do item do fornecedor (I = ICMS) — o parâmetro só atua quando TP_IMPOSTO = 'I'
ITEMFORNEC.CD_CSTCST do item do fornecedor (replicado a partir de ITEMFORNECIMP quando o parâmetro é 'S')
ITEMFORNEC.CD_CSOSNCSOSN do item do fornecedor (replicado a partir de ITEMFORNECIMP quando o parâmetro é 'S')
EMPRESA.ST_FEDERALRegime federal da empresa; quando M/E/S o sistema trata como Simples e desabilita o cadastro de novo CST mesmo com o parâmetro ativo

Opções disponíveis​

S - Sim (Permite alterar CST/CSOSN na importação do XML)​

O que fazDetalhe
Cadastro de novo CST quando não encontradoLiberado na tela de dados do XML (MNF001 — frmMNF001DadosXml), exibindo o botão btnNovoCST e o campo edtDS_CSTEdit — apenas para empresas do Lucro Real/Presumido (EMPRESA.ST_FEDERAL ≠ M/E/S)
Empresas do Simples NacionalMesmo com o parâmetro em 'S', a inclusão de novo CST não aparece (a função RetornaTipoEmpresa retorna 'S' quando ST_FEDERAL é M, E ou S)
Alteração do CST no item importado (ITEMFORNECIMP.CD_CST)Ao alterar o CST em um item com TP_IMPOSTO = 'I' no estado dsEdit, o sistema propaga a alteração automaticamente para o CST do item correspondente em ITEMFORNEC (chamado 255133)
Alteração do CSOSN no item importado (ITEMFORNECIMP.CD_CSOSN)Mesmo comportamento de replicação: ao editar o CSOSN de um item com TP_IMPOSTO = 'I', o sistema atualiza o CD_CSOSN do item correspondente em ITEMFORNEC (chamado 255133)

Simulação passo a passo​

  1. MFA001 → Parâmetros → Notas → Parâmetros de Notas Fiscais → ST_ALTERAICMS = "Sim"
  2. Salve os parâmetros (F6)
  3. Abra MNF001 e importe um XML de entrada
  4. Na tela Dados do XML (frmMNF001DadosXml), selecione um item de ICMS (TP_IMPOSTO = 'I')
  5. Cenário A — CST não cadastrado: informe um CST que não exista na tabela CST
    • Se a empresa for Lucro Real/Presumido → aparecem o botão btnNovoCST e o campo edtDS_CSTEdit para cadastrar o novo CST
    • Se a empresa for Simples Nacional (ST_FEDERAL = M/E/S) → a opção de cadastrar não aparece, mesmo com o parâmetro ativo
  6. Cenário B — Alterar CST/CSOSN: edite o CD_CST (ou CD_CSOSN) de um item importado
  7. Confirme o valor → o sistema replica a alteração para o mesmo item em ITEMFORNEC (campo CD_CST ou CD_CSOSN é atualizado automaticamente)

Resultado esperado: O usuário pode ajustar CST/CSOSN do ICMS direto na tela de dados do XML, e as alterações refletem no cadastro de item do fornecedor.


N - Não (Bloqueia alteração de CST/CSOSN na importação do XML)​

O que fazDetalhe
Cadastro de novo CSTBloqueado — btnNovoCST e edtDS_CSTEdit permanecem ocultos quando o CST não é encontrado
Replicação de CST/CSOSN para ITEMFORNECNão ocorre — o bloco que copia cdsITEMFORNECIMPCD_CST / cdsITEMFORNECIMPCD_CSOSN para cdsITEMFORNEC não executa
Edição do CST/CSOSN em ITEMFORNECIMPO campo pode até ser editado no grid, mas a mudança não propaga para o cadastro do item do fornecedor

Simulação passo a passo​

  1. MFA001 → ST_ALTERAICMS = "Não"
  2. Salve os parâmetros (F6)
  3. Importe um XML em MNF001
  4. Abra a tela Dados do XML e selecione um item de ICMS
  5. Informe um CST que não exista → os campos para cadastrar um novo CST não aparecem, independentemente do regime da empresa
  6. Altere o CD_CST ou CD_CSOSN de um item importado → a alteração não é replicada para o item em ITEMFORNEC

Resultado esperado: A tela de importação do XML apenas consulta CST/CSOSN existentes e não permite criar novos nem propagar ajustes para o item do fornecedor.


Tabela Comparativa Resumida​

OpçãoDescriçãoPermite cadastrar novo CST no XML?Replica alteração de CST/CSOSN para ITEMFORNEC?
SSimSim (apenas empresas Lucro Real/Presumido)Sim (quando TP_IMPOSTO = 'I' e estado dsEdit)
NNãoNãoNão

Observações​

  • A replicação CST/CSOSN só ocorre quando ITEMFORNECIMP.TP_IMPOSTO = 'I' (ICMS). Itens com outros tipos de imposto não são afetados pelo parâmetro.
  • A verificação de regime fiscal usa EMPRESA.ST_FEDERAL — valores M (Simples MEI), E (Simples ME/EPP) e S (Simples) fazem RetornaTipoEmpresa devolver 'S', impedindo o cadastro de novo CST mesmo quando o parâmetro estiver 'S'.
  • O parâmetro foi introduzido pelo chamado 245613 (Thiago Cousseau) e o mecanismo de replicação de CST/CSOSN é regido pelo chamado 255133 (Thiago Cousseau).

Referências no Código Fonte​

Delphi​

  • source/MFA001/UMFA001.dfm linhas 6474-6488 — label Label101 com Caption Altera CST/CSOSN ICMS Importação XML [MNF001] (FocusControl cmbST_ALTERAICMS)
  • source/MFA001/UMFA001.dfm linhas 7521-7548 — combobox cmbST_ALTERAICMS (DataField ST_ALTERAICMS) na aba Parâmetros → Notas → Parâmetros de Notas Fiscais, com opções Sim → S e Não → N
  • source/MFA001/UMFA001.pas linha 558 — declaração cmbST_ALTERAICMS: TwwDBComboBox
  • source/MFA001/UdmMFA001.pas linha 284 — declaração tabPARMFATURST_ALTERAICMS: TStringField
  • source/MFA001/UdmMFA001.pas linha 573 — AfterInsert atribui o valor padrão 'N' (chamado 245613, Thiago Cousseau)
  • source/MFA001/UdmMFA001.dfm linhas 1979-1981 — persistent field tabPARMFATURST_ALTERAICMS (FieldName / Origin "PARMFATUR"."ST_ALTERAICMS")
  • source/MFA001/UdmMFA001.dfm linhas 295, 2445, 2877, 3175 — SQLs gerados de SELECT/UPDATE sobre PARMFATUR.ST_ALTERAICMS
  • source/MNF001/UMNF001DadosXML.pas linhas 1636-1641 — na validação do CST importado, quando o CST não existe na tabela CST, exibe btnNovoCST e edtDS_CSTEdit somente se ST_ALTERAICMS = 'S' e RetornaTipoEmpresa = 'R' (Lucro Real/Presumido)
  • source/MNF001/UMNF001DadosXML.pas linhas 2252-2268 — função RetornaTipoEmpresa consulta EMPRESA.ST_FEDERAL e devolve 'S' para Simples (M/E/S) ou 'R' para Real/Presumido
  • source/MNF001/UdmMNF001.pas linhas 9248-9271 — ao alterar ITEMFORNECIMP.CD_CST em modo edição com TP_IMPOSTO = 'I', replica o novo CST para o item correspondente em cdsITEMFORNEC (chamado 255133)
  • source/MNF001/UdmMNF001.pas linhas 10621-10660 — ao alterar ITEMFORNECIMP.CD_CSOSN em modo edição com TP_IMPOSTO = 'I', replica o novo CSOSN para o item correspondente em cdsITEMFORNEC (chamado 255133)

SQL (Firebird)​

Nenhuma referência encontrada em Scripts/. O parâmetro é utilizado apenas pela camada Delphi do MNF001.