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_ALTERAICMSValor padrão:N(Não) — atribuído emUdmMFA001.pasAfterInsert, chamado 245613 (Thiago Cousseau)
Telas impactadas
| Módulo | Código | Descrição |
|---|---|---|
| NF Entrada | MNF001 | Importaçã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
| Campo | Descrição |
|---|---|
PARMFATUR.ST_ALTERAICMS | Flag global ('S'/'N') que habilita a alteração do CST/CSOSN de ICMS na importação de XML |
ITEMFORNECIMP.CD_CST | CST importado do XML para o item do fornecedor |
ITEMFORNECIMP.CD_CSOSN | CSOSN importado do XML para o item do fornecedor |
ITEMFORNECIMP.DS_CST | Descrição do CST vinculada |
ITEMFORNECIMP.DS_CSOSN | Descrição do CSOSN vinculada |
ITEMFORNECIMP.TP_IMPOSTO | Tipo de imposto do item do fornecedor (I = ICMS) — o parâmetro só atua quando TP_IMPOSTO = 'I' |
ITEMFORNEC.CD_CST | CST do item do fornecedor (replicado a partir de ITEMFORNECIMP quando o parâmetro é 'S') |
ITEMFORNEC.CD_CSOSN | CSOSN do item do fornecedor (replicado a partir de ITEMFORNECIMP quando o parâmetro é 'S') |
EMPRESA.ST_FEDERAL | Regime 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 faz | Detalhe |
|---|---|
| Cadastro de novo CST quando não encontrado | Liberado 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 Nacional | Mesmo 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
- MFA001 → Parâmetros → Notas → Parâmetros de Notas Fiscais →
ST_ALTERAICMS= "Sim" - Salve os parâmetros (F6)
- Abra MNF001 e importe um XML de entrada
- Na tela Dados do XML (
frmMNF001DadosXml), selecione um item de ICMS (TP_IMPOSTO = 'I') - 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
btnNovoCSTe o campoedtDS_CSTEditpara 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
- Se a empresa for Lucro Real/Presumido → aparecem o botão
- Cenário B — Alterar CST/CSOSN: edite o
CD_CST(ouCD_CSOSN) de um item importado - Confirme o valor → o sistema replica a alteração para o mesmo item em
ITEMFORNEC(campoCD_CSTouCD_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 faz | Detalhe |
|---|---|
| Cadastro de novo CST | Bloqueado — btnNovoCST e edtDS_CSTEdit permanecem ocultos quando o CST não é encontrado |
Replicação de CST/CSOSN para ITEMFORNEC | Não ocorre — o bloco que copia cdsITEMFORNECIMPCD_CST / cdsITEMFORNECIMPCD_CSOSN para cdsITEMFORNEC não executa |
Edição do CST/CSOSN em ITEMFORNECIMP | O 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
- MFA001 →
ST_ALTERAICMS= "Não" - Salve os parâmetros (F6)
- Importe um XML em MNF001
- Abra a tela Dados do XML e selecione um item de ICMS
- Informe um CST que não exista → os campos para cadastrar um novo CST não aparecem, independentemente do regime da empresa
- Altere o
CD_CSTouCD_CSOSNde um item importado → a alteração não é replicada para o item emITEMFORNEC
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ção | Descrição | Permite cadastrar novo CST no XML? | Replica alteração de CST/CSOSN para ITEMFORNEC? |
|---|---|---|---|
| S | Sim | Sim (apenas empresas Lucro Real/Presumido) | Sim (quando TP_IMPOSTO = 'I' e estado dsEdit) |
| N | Não | Não | Nã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— valoresM(Simples MEI),E(Simples ME/EPP) eS(Simples) fazemRetornaTipoEmpresadevolver'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.dfmlinhas 6474-6488 — labelLabel101com CaptionAltera CST/CSOSN ICMS Importação XML [MNF001](FocusControlcmbST_ALTERAICMS)source/MFA001/UMFA001.dfmlinhas 7521-7548 — comboboxcmbST_ALTERAICMS(DataFieldST_ALTERAICMS) na aba Parâmetros → Notas → Parâmetros de Notas Fiscais, com opçõesSim→SeNão→Nsource/MFA001/UMFA001.paslinha 558 — declaraçãocmbST_ALTERAICMS: TwwDBComboBoxsource/MFA001/UdmMFA001.paslinha 284 — declaraçãotabPARMFATURST_ALTERAICMS: TStringFieldsource/MFA001/UdmMFA001.paslinha 573 —AfterInsertatribui o valor padrão'N'(chamado 245613, Thiago Cousseau)source/MFA001/UdmMFA001.dfmlinhas 1979-1981 — persistent fieldtabPARMFATURST_ALTERAICMS(FieldName / Origin"PARMFATUR"."ST_ALTERAICMS")source/MFA001/UdmMFA001.dfmlinhas 295, 2445, 2877, 3175 — SQLs gerados de SELECT/UPDATE sobrePARMFATUR.ST_ALTERAICMSsource/MNF001/UMNF001DadosXML.paslinhas 1636-1641 — na validação do CST importado, quando o CST não existe na tabelaCST, exibebtnNovoCSTeedtDS_CSTEditsomente seST_ALTERAICMS = 'S'eRetornaTipoEmpresa = 'R'(Lucro Real/Presumido)source/MNF001/UMNF001DadosXML.paslinhas 2252-2268 — funçãoRetornaTipoEmpresaconsultaEMPRESA.ST_FEDERALe devolve'S'para Simples (M/E/S) ou'R'para Real/Presumidosource/MNF001/UdmMNF001.paslinhas 9248-9271 — ao alterarITEMFORNECIMP.CD_CSTem modo edição comTP_IMPOSTO = 'I', replica o novo CST para o item correspondente emcdsITEMFORNEC(chamado 255133)source/MNF001/UdmMNF001.paslinhas 10621-10660 — ao alterarITEMFORNECIMP.CD_CSOSNem modo edição comTP_IMPOSTO = 'I', replica o novo CSOSN para o item correspondente emcdsITEMFORNEC(chamado 255133)
SQL (Firebird)
Nenhuma referência encontrada em Scripts/. O parâmetro é utilizado apenas pela camada Delphi do MNF001.