...
| Produto: | TOTVS Varejo Franquias e Redes |
|---|---|
| Linha de Produto: | Franquias e Redes |
| Segmento: | Varejo |
| Módulo: | TOTVS PDV Omni |
| Função: | Mapeamento Banco de dados |
| Ticket: | |
| Requisito/Story/Issue (informe o requisito relacionado) : | DVARLIVEPDV-44177 |
O PDV Omni deve permitir o recebimento e armazenamento das informações de tributos IBS Municipal, IBS Federal, IS e CBS, e vinculação dos dados de impostos a entidade Produto e NCM garantindo conformidade com a reforma Reforma tributária e os novos requisitos legais.
...
O sistema armazenará as seguintes informações conforme a documentação de integração: imposto_ Imposto fiscal
tabela imposto_fiscal
id_retaguarda – Identificador único do imposto no ERP.
cst – Código de Situação Tributária
descricao_cst- – Significado do Código de Situação Tributária.
cClassTrib – Classificação Tributária (os três primeiros dígitos devem ser idênticos ao CST-IBS/CBS).
percentual_reducao_aliquota– Percentual de redução de alíquota,
data_inicio_vigencia – Data a partir da qual o imposto entra em vigor na loja.
data_fim_vigencia– Data de término da vigência do imposto.
A tabela imposto_fiscal se relaciona com as tabelas produto e ncm por meio das tabelas de junção imposto_fiscal_produto e imposto_fiscal_ncm. Esses relacionamentos permitem que um imposto fiscal seja vinculado a vários produtos ou códigos NCM.
Após a criação de um registro em imposto_fiscal, o vínculo com a origem (produto ou NCM) deve ser feito através da tabela de junção correspondente, de acordo com a origem da aplicação do imposto.
tabela imposto_fiscal_ncm - Responsável por realizar o relacionamento entre a entidade imposto_fiscal e o ncm,.
...
tabela imposto_fiscal_produto - Responsável por realizar o relacionamento entre a entidade imposto_fiscal e produto.
Também existe o relacionamento do imposto por meio dos campos padrao e local_consumo, que funciona da seguinte forma, caso não haja nenhum relacionamento do imposto diretamente com o produto ou com o NCM, o vínculo poderá ocorrer por meio da coluna Padrão, que o define como padrão para todos os produtos, e do campo Local de Consumo, que deve carregar o código do local e seguirá esta ordem de prioridade município, estado e, por último, país.
Os códigos utilizados para comparação com o Local de Consumo serão obtidos a partir dos dados cadastrais da loja e corresponderão exatamente aos dados utilizados para preenchimento do XML, segue exemplo:
Para habilitar a reforma tributária temos duas validações a primeira é através do parâmetro, acessivel a partir do configurador do PDV: Menu → Configurações do sistema → Parâmetros → Configuração Fiscal → "Habilitar reforma tributária":
A segunda é a partir das informações integradas ao banco de dados, o PDV passará a gerar automaticamente as respectivas tags fiscais. Para isso, serão consideradas as datas de vigência (início e fim) e a situação do imposto, conforme registrado na tabela imposto_fiscal.
...
Exemplo do banco de dados:
Resumo banco de dados:
...
Com pISEspec
| Bloco de código | theme | RDark
|---|
<IS> <CSTIS>000</CSTIS> <cClassTribIS>123456</cClassTribIS> <vBCIS>2500.00</vBCIS> <pIS>18.00</pIS> <pISEspec>4.59</pISEspec> <uTrib>PC</uTrib> <qTrib>1.0000</qTrib> <vIS>4<vIS>450.59<05</vIS> </IS> |
Tag: <vBCIS> Valor: 2500.00 É o valor do produto sobre o qual os tributos serão aplicados.
...
Tag <uTrib>: Unidade tributável = PC
Cálculo: 4 2500.59 00 * 18% + 1.0000 * 4.0000 59% = 4450.5905
Tag <vIS>: Valor do imposto IS = 4.59
...
Sem pISEspec
| Bloco de código | theme | RDark
|---|
<IS>
<CSTIS>000</CSTIS>
<cClassTribIS>123456</cClassTribIS>
<vBCIS>2500.00</vBCIS>
<pIS>18.00</pIS>
<uTrib>PC</uTrib>
<qTrib>1.0000</qTrib>
<vIS>450.00</vIS>
</IS> |
Tag: <vBCIS> Valor: 2500.00 É o valor do produto sobre o qual os tributos serão aplicados.
Tag <pIS>: Alíquota = 18.00%
Tag <qTrib>: Quantidade tributada = 1.0000
Tag <uTrib>: Unidade tributável = PC
Cálculo: 2500.00 * 18% = 450.00
...
| Bloco de código | theme | RDark
|---|
<IBSCBS> <CST>000</CST> <cClassTrib>654321</cClassTrib> <gIBSCBS> <vBC>2500.00</vBC> <gIBSUF> <pIBSUF>18.00</pIBSUF> <vIBSUF>450.00</vIBSUF> </gIBSUF> <gIBSMun> <pIBSMun>18.00</pIBSMun> <gRed> <pRedAliq>50.00</pRedAliq> <pAliqEfet>9.00</pAliqEfet> </gRed> <vIBSMun>225.00</vIBSMun> </gIBSMun> <gCBS> <pCBS>18.00</pCBS> <gRed> <pRedAliq>40.00</pRedAliq> <pAliqEfet>10.80</pAliqEfet> </gRed> <vCBS>270.00</vCBS> </gCBS> </gIBSCBS> </IBSCBS> |
...
Com redução de 40%, a alíquota efetiva aplicada foi 10.80%.
| Bloco de código |
|---|
<det nItem="1">
<prod>
<cProd></cProd>
<cEAN></cEAN>
<xProd>NOTA FISCAL EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL</xProd>
<NCM>33072010</NCM>
<CFOP>5102</CFOP>
<uCom>PC</uCom>
<qCom>1.0000</qCom>
<vUnCom>15.9000000000</vUnCom>
<vProd>15.90</vProd>
<cEANTrib></cEANTrib>
<uTrib>PC</uTrib>
<qTrib>1.0000</qTrib>
<vUnTrib>15.9000000000</vUnTrib>
<indTot>1</indTot>
</prod>
<imposto>
<vTotTrib>0.00</vTotTrib>
<ICMS>
<ICMS20>
<orig>0</orig>
<CST>20</CST>
<modBC>3</modBC>
<pRedBC>33.3300</pRedBC>
<vBC>10.60</vBC>
<pICMS>18.0000</pICMS>
<vICMS>1.91</vICMS>
<vICMSDeson>1.91</vICMSDeson>
<motDesICMS>9</motDesICMS>
<indDeduzDeson>1</indDeduzDeson>
</ICMS20>
</ICMS>
<PIS>
<PISNT>
<CST>04</CST>
</PISNT>
</PIS>
<COFINS>
<COFINSNT>
<CST>04</CST>
</COFINSNT>
</COFINS>
</imposto>
<vItem>13.99</vItem>
</det> |
Tag <vItem>: É a soma e subtração de varias tags , conforme a NT v1.10 de junho/2025:
Para o cenário demostrado acima temos:
Tag: <vProd>: 15.90
Tag: <vICMSDeson>: 1.91
Cálculo 15.90 - 1.91 = 13.99
Tag <vItem>: 13.99
| Informações |
|---|
Obs.: A partir do momento em que for ativado o parâmetro da reforma tributária a tag vItem passará a ser gerada na XML independente tags novas tags da reforma tributária (IS,IBS,CBS). |
Após a geração das tags dos itens, deve-se proceder com a geração das tags de totais. Abaixo segue um exemplo, considerando os XMLs apresentados anteriormente:
| Bloco de código |
|---|
<total>
<ICMSTot>
</ICMSTot>
<ISTot>
<vIS>4.59</vIS>
</ISTot>
<IBSCBSTot>
<vBCIBSCBS>2500.00</vBCIBSCBS>
<gIBS>
<gIBSUF>
<vDif>0.00</vDif>
<vDevTrib>0.00</vDevTrib>
<vIBSUF>450.00</vIBSUF>
</gIBSUF>
<gIBSMun>
<vDif>0.00</vDif>
<vDevTrib>0.00</vDevTrib>
<vIBSMun>225.00</vIBSMun>
</gIBSMun>
<vIBS>675.00</vIBS>
<vCredPres>0</vCredPres>
<vCredPresCondSus>0</vCredPresCondSus>
</gIBS>
<gCBS>
<vDif>0.00</vDif>
<vDevTrib>0.00</vDevTrib>
<vCBS>270.00</vCBS>
<vCredPres>0.00</vCredPres>
<vCredPresCondSus>0.00</vCredPresCondSus>
</gCBS>
</IBSCBSTot>
<vNFTot>3449.59</vNFTot>
</total> |
Tag <ISTot.vIS>: Soma de todos os Impostos Seletivos vIS dos itens.
Tag <IBSCBSTot.vBCIBSCBS>: Soma de todas as bases de cálculo (gIBSCBS.vBC) dos itens.
Tag <IBSCBSTot.gIBS.gIBSUF.vIBSUF>: Soma de todas as tags vIBSUF.
Tag <IBSCBSTot.gIBS.gIBSMun.vIBSMun>: Soma de todas as tags vIBSMun.
Tag <IBSCBSTot.gCBS.vCBS>: Soma de todas as tags vCBS.
Tag <vNFTot>: Soma de todas as tags vItem.
| Informações |
|---|
Obs.: As tags vDif, vDevTrib, vCredPres, vCredPresCondSus devem ser geradas sempre com valor 0, pois a partir do momento que criamos o grupo é obrigatório a geração das mesmas, mesmo que não existam nos itens. |
Como existem diferentes caminhos para a obtenção do imposto, foi criado um log para registrar de onde o imposto foi obtido. Esse log está localizado no nosso repositório padrão C:\TotvsPDV\Logs e possui o nome TOTVS.Omnishop.API.Fiscal.Zeus.Helpers.FiscalHelper.log[aaaaMMdd].clef. O conteúdo seguirá o formato abaixo:
Não se aplica
Não se aplica
...
PRODUTO | VERSÃO |
|---|---|
| TOTVS PDV Omni | 4.2.84.20 |