07 - Novos campos da Reforma Tributária

IMPORTANTE

atenção !!!

Pessoal, estou implementando isso, ainda não finalizado, serve apenas de referência.
Conferindo com os schemas do xmls ainda, ok!

AGRADECIMENTOS

agradecimentos

Este DER foi iniciado após conversas com meu concorrente (rs), porém BROTHER de desenvolvimento, amigo verdadeiro (daqueles que se conta numa única mão), cara mais do que parceiro: GLENIO DUARTE.

Estrutura para a Reforma baseada nos schemas de xml

Campos documentados

No item, olhando o grupo IBSCBS (vBCIBSCBS, gIBS, gCBS, gMono, gIBSCredPres, gCBSCredPres, etc.):

Estamos com isso cobrindo o “miolo duro” de base, alíquota, valor e diferimento tanto de IBS quanto CBS, mais classe tributária e monofásico.

Fonte:
Postagem no Forum do ACBR

DER

Banco Mysql

Alinhando campos do DER com os schemas do xml para o banco Mysql:

-- TABELA: nota cabeçalho

-- Natureza da NF quanto a debitos/creditos (uso interno)
  ADD COLUMN tpnfdebito                          TINYINT       NULL COMMENT 'Indicador de NF de debito',
  ADD COLUMN tpnfcredito                         TINYINT       NULL COMMENT 'Indicador de NF de credito',

-- Base combinada IBS/CBS da NF
  ADD COLUMN vbcibscbs                           DECIMAL(15,2) NULL COMMENT 'base de calculo combinada IBS/CBS',

-- Credito Presumido
  ADD COLUMN vcredpres                           DECIMAL(15,2) NULL COMMENT 'valor total de credito presumido (ibs/cbs) da NF',
  ADD COLUMN vcredprescondsus                    DECIMAL(15,2) NULL COMMENT 'credito presumido condicionado a suficiencia',

-- Totais IBS - UF (IBSCBSTot/gIBS/gIBSUFTot)
  ADD COLUMN vibsdifuf                           DECIMAL(15,2) NULL COMMENT 'diferença IBS UF (ajuste/DIFAL)',
  ADD COLUMN vibsdevtribuf                       DECIMAL(15,2) NULL COMMENT 'IBS devido a UF',
  ADD COLUMN vibsuf                              DECIMAL(15,2) NULL COMMENT 'IBS devido total UF de destino',

-- Totais IBS - Município (IBSCBSTot/gIBS/gIBSMunTot)
  ADD COLUMN vibsdifmun                          DECIMAL(15,2) NULL COMMENT 'Diferenca IBS Municipio',
  ADD COLUMN vibsdevtribmun                      DECIMAL(15,2) NULL COMMENT 'IBS devido ao Municipio',
  ADD COLUMN vibsmun                             DECIMAL(15,2) NULL COMMENT 'IBS devido total ao Municipio',

-- Credito presumido consolidado IBS/CBS (IBSCBSTot/gIBS e gCBS)
  ADD COLUMN vcredpres                           DECIMAL(15,2) NULL COMMENT 'Valor total crédito presumido IBS/CBS (vCredPres)',
  ADD COLUMN vcredprescondsus                    DECIMAL(15,2) NULL COMMENT 'Valor total crédito presumido cond. suspensa IBS/CBS (vCredPresCondSus)',

-- Totais CBS (IBSCBSTot/gCBS)
  ADD COLUMN vcbsdif                             DECIMAL(15,2) NULL COMMENT 'Diferenca CBS', 
  ADD COLUMN vcbscredpres                        DECIMAL(15,2) NULL COMMENT 'Credito presumido CBS',
  ADD COLUMN vcbscredprescondsus                 DECIMAL(15,2) NULL COMMENT 'Credito presumido CBS condicionado  suficiencia',
  ADD COLUMN vcbsdevtrib                         DECIMAL(15,2) NULL COMMENT '*CBS devolvido (vDevTrib CBS)';  

-- Totais monofasicos da NF (IBSCBSTot/gMono)
  ADD COLUMN vibsmono                            DECIMAL(15,2) NULL COMMENT 'Valor IBS monofasico',
  ADD COLUMN vcbsmono                            DECIMAL(15,2) NULL COMMENT 'Valor CBS monofasico',
  ADD COLUMN vcbsmonoreten                       DECIMAL(15,2) NULL COMMENT 'IBS monofasico retido (responsabilidade de terceiros)',
  ADD COLUMN vibsmonoreten                       DECIMAL(15,2) NULL COMMENT 'CBS monofásico retido (responsabilidade de terceiros)',
  ADD COLUMN vibsmonoret                         DECIMAL(15,2) NULL COMMENT 'IBS monofasico a reter',
  ADD COLUMN vcbsmonoret                         DECIMAL(15,2) NULL COMMENT 'CBS monofásico a reter',

-- IBS / CBS / IS totais da NF
  ADD COLUMN vibs                                DECIMAL(15,2) NULL COMMENT 'valor total do IBS da NF',
  ADD COLUMN vcbs                                DECIMAL(15,2) NULL COMMENT 'valor total do CBS na NF',
  ADD COLUMN vis                                 DECIMAL(15,2) NULL COMMENT 'valor total do imposto seletivo IS (somente 2027)';

-- vnftot - valor total da NF com IBS/CBS/IS
  ADD COLUMN vnftot                              DECIMAL(15,2) NULL COMMENT 'Valor total da NF no modelo IBS/CBS',
  
-- TABELA: nota_itens

-- Identificacao / classificacao IBS/CBS do item
  ADD COLUMN cst_ibs_cbs                         VARCHAR(3)    NULL COMMENT 'CST unificado IBS/CBS',
  ADD COLUMN cclasstrib                          VARCHAR(6)    NULL COMMENT 'codigo da classificacao tributaria',
  ADD COLUMN origmerc                            TINYINT       NULL COMMENT 'Origem da mercadoria (0=nacional,1=importada,...)',

-- Base combinada IBS/CBS
  ADD COLUMN ibscbs_vbc                          DECIMAL(15,2) NULL COMMENT 'Base de calculo IBS/CBS do item',

-- IBS - UF (gIBSUF)
  ADD COLUMN pibs_uf                             DECIMAL(7,4)  NULL COMMENT 'Aliquota IBS UF',
  ADD COLUMN vibs_uf                             DECIMAL(15,2) NULL COMMENT 'Valor IBS UF',
  ADD COLUMN ibs_pdif_uf                         DECIMAL(7,4)  NULL COMMENT 'Percentual diferenca UF (DIFAL IBS)',

  ADD COLUMN vibs_vdif_uf                        DECIMAL(15,2) NULL COMMENT 'Valor diferenca IBS UF',
  ADD COLUMN ibs_predaliq_uf                     DECIMAL(7,4)  NULL COMMENT 'Aliquota de referencia IBS UF',
  ADD COLUMN ibs_paliqefet_uf                    DECIMAL(7,4)  NULL COMMENT 'Aliquota efetiva IBS UF',
  ADD COLUMN ibs_devtrib_uf                      DECIMAL(15,2) NULL COMMENT 'IBS devido UF',

-- IBS - Municipio (gIBSMun)
  ADD COLUMN pibs_mun                            DECIMAL(7,4)  NULL COMMENT 'Aliquota IBS Municipio',
  ADD COLUMN vibs_mun                            DECIMAL(15,2) NULL COMMENT 'Valor IBS Municipio',
  ADD COLUMN ibs_pdif_mun                        DECIMAL(7,4)  NULL COMMENT 'Percentual diferenca Municipio',
  ADD COLUMN vibs_vdif_mun                       DECIMAL(15,2) NULL COMMENT 'Valor difernca IBS Municipio',
  ADD COLUMN ibs_predaliq_mun                    DECIMAL(7,4)  NULL COMMENT 'Aliquota de referencia IBS Municipio',
  ADD COLUMN ibs_paliqefet_mun                   DECIMAL(7,4)  NULL COMMENT 'Aliquota efetiva IBS Municipio' ,
  ADD COLUMN ibs_devtrib_mun                     DECIMAL(15,2) NULL COMMENT 'IBS devido Municipio',

-- IBS - total do item (consolidado)
  ADD COLUMN vibs                                DECIMAL(15,2) NULL COMMENT 'Valor IBS total do item',

-- CBS - total do item (gCBS)
  ADD COLUMN pcbs                                DECIMAL(7,4)  NULL COMMENT 'Alíquota CBS',
  ADD COLUMN vcbs                                DECIMAL(15,2) NULL COMMENT 'Valor CBS',
  ADD COLUMN cbs_pdif                            DECIMAL(7,4)  NULL COMMENT 'Percentual diferença CBS',
  ADD COLUMN vcbs_vdif                           DECIMAL(15,2) NULL COMMENT 'Valor diferença CBS',
  ADD COLUMN cbs_predaliq                        DECIMAL(7,4)  NULL COMMENT 'Alíquota de referencia CBS',
  ADD COLUMN cbs_paliqefet                       DECIMAL(7,4)  NULL COMMENT 'Aliquota efetiva CBS',
  ADD COLUMN cbs_devtrib                         DECIMAL(15,2) NULL COMMENT 'CBS devido';

-- Credito presumido por item (IBS)
  ADD COLUMN ccredpres                           VARCHAR(2)    NULL COMMENT 'Indicador se gera credito presumido',
  ADD COLUMN ibs_pcredpres                       DECIMAL(7,4)  NULL COMMENT 'Percentual credito presumido IBS',
  ADD COLUMN ibs_vcredpres                       DECIMAL(15,2) NULL COMMENT 'Valor credito presumido IBS',
  ADD COLUMN ibs_vcredprescondsus                DECIMAL(15,2) NULL COMMENT 'Credito IBS condicionado a suficiencia',
  ADD COLUMN ibs_vbc_credpres                    DECIMAL(15,2) NULL COMMENT '*Base crédito presumido IBS (vBC gIBSCredPres)';

-- Monofasico por item - IBS
  ADD COLUMN ibs_mono_base                       DECIMAL(15,2) NULL COMMENT 'Base IBS monofasico item',
  ADD COLUMN ibs_mono_aliq                       DECIMAL(7,4)  NULL COMMENT 'Aliquota IBS monofasico item',
  ADD COLUMN ibs_mono_valor                      DECIMAL(15,2) NULL COMMENT 'Valor IBS monofasico item',

-- Monofasico por item - CBS
  ADD COLUMN cbs_mono_base                       DECIMAL(15,2) NULL COMMENT 'Base CBS monofasico item',
  ADD COLUMN cbs_mono_aliq                       DECIMAL(7,4)  NULL COMMENT 'Aliquota CBS monofasico item',
  ADD COLUMN cbs_mono_valor                      DECIMAL(15,2) NULL COMMENT 'Valor CBS monofasico item',

  ADD COLUMN cbs_ccredpres                       VARCHAR(2)    NULL COMMENT '*Código de crédito presumido CBS (cCredPres CBS)',
  ADD COLUMN cbs_vbc_credpres                    DECIMAL(15,2) NULL COMMENT '*Base crédito presumido CBS (vBC gCBSCredPres)',
  ADD COLUMN cbs_pcredpres                       DECIMAL(7,4)  NULL COMMENT '*Percentual crédito presumido CBS (pCredPres CBS)',
  ADD COLUMN cbs_vcredpres                       DECIMAL(15,2) NULL COMMENT '*Valor crédito presumido CBS (vCredPres CBS)',
  ADD COLUMN cbs_vcredprescondsus                DECIMAL(15,2) NULL COMMENT '*Crédito CBS cond. suspensiva (vCredPresCondSus CBS)';


  ADD COLUMN is_cenq                             VARCHAR(3)    NULL COMMENT '*Código de enquadramento IS (cEnqIS)',
  ADD COLUMN is_vbc                              DECIMAL(15,2) NULL COMMENT '*Base de cálculo do IS (vBC IS)',
  ADD COLUMN is_pis                              DECIMAL(7,4)  NULL COMMENT '*Alíquota do IS (pIS)',
  ADD COLUMN is_vis                              DECIMAL(15,2) NULL COMMENT '*Valor do IS no item (vIS)';

-- Lembrando que, pela NT, o IS é "por fora" e entra na composicao do vNF somando ao total.

-- vTribOp = vBC × alíquota vigente (com tolerância de 0,01)
  ADD COLUMN cbs_vtribop                         DECIMAL(15,2) NULL COMMENT 'Tributo bruto CBS da operação (gCBS/vTribOp)';
  ADD COLUMN ibs_vtribop                         DECIMAL(15,2) NULL COMMENT 'Tributo bruto IBS da operação (quando aplicavel)';

  ADD COLUMN ibs_vbc_dif_uf                      DECIMAL(15,2) NULL COMMENT '' ;
  ADD COLUMN ibs_vbc_dif_mun                     DECIMAL(15,2) NULL COMMENT '' ;
  ADD COLUMN cbs_vbc_dif                         DECIMAL(15,2) NULL COMMENT '' ;
  
-- Regimes (opcional)

  ADD COLUMN regime_tributario_ibs               VARCHAR(1)    NULL COMMENT 'Regime IBS (0=Geral, 1=Monofásico, 2=Suspensão, 3=Isento, 4=Alíquota Diferenciada, 5=Especial Simplificado)';

  ADD COLUMN regime_tributario_cbs               VARCHAR(1)    NULL COMMENT 'Regime CBS (0=Geral, 1=Monofásico, 2=Suspensão, 3=Isento, 4=Alíquota Diferenciada, 5=Especial Simplificado)';    
  

Tipos básicos baseado no schema do xml

Mapeamento conceitual (campos → tipos XSD)

Usando os tipos do DFeTiposBasicos_v1.00.xsd:

<!-- natureza da NF quanto a débitos/créditos -->
<xs:element name="tpNFdebito"  type="xs:integer"   minOccurs="0"/>
<xs:element name="tpNFcredito" type="xs:integer"   minOccurs="0"/>

<!-- Base de cálculo IBS/CBS (total da NF) -->
<xs:element name="vBCIBSCBS"   type="TDec1302RTC" minOccurs="0"/>

<!-- Crédito Presumido total da NF -->
<xs:element name="vCredPres"          type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vCredPresCondSus"   type="TDec1302RTC" minOccurs="0"/>

<!-- Relacionados a UF -->
<xs:element name="vIBSDifUF"     type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vIBSDevTribUF" type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vIBSUF"        type="TDec1302RTC" minOccurs="0"/>

<!-- Município -->
<xs:element name="vIBSDifMun"     type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vIBSDevTribMun" type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vIBSMun"        type="TDec1302RTC" minOccurs="0"/>

<!-- CBS -->
<xs:element name="vCBSDif"            type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vCBSCredPres"       type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vCBSCredPresCondSus"type="TDec1302RTC" minOccurs="0"/>

<!-- Monofásico / retenção – totais da NF -->
<xs:element name="vIBSMono"       type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vCBSMono"       type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vCBSMonoReten"  type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vIBSMonoReten"  type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vIBSMonoRet"    type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vCBSMonoRet"    type="TDec1302RTC" minOccurs="0"/>

<!-- Valor total da NF no modelo IBS/CBS -->
<xs:element name="vNFTot" type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vIBS"   type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vCBS"   type="TDec1302RTC" minOccurs="0"/>
<xs:element name="vIS"    type="TDec1302RTC" minOccurs="0"/>

<!-- Regimes (opcional) -->
<xs:element name="regimeTributarioIBS" type="xs:integer" minOccurs="0"/>
<xs:element name="regimeTributarioCBS" type="xs:integer" minOccurs="0"/>

Mapeamento conceitual (campos → tipos XSD)

<!-- CST unificado IBS/CBS -->
<xs:element name="CST_IBS_CBS" type="xs:string" minOccurs="0"/> <!-- 3 dígitos -->

<!-- Classificação tributária -->
<xs:element name="cClassTrib" type="xs:string" minOccurs="0"/> <!-- até 6 dígitos -->

<!-- Origem da mercadoria/serviço -->
<xs:element name="origMerc" type="xs:integer" minOccurs="0"/>

<!-- Base combinada IBS/CBS do item -->
<xs:element name="vBCIBSCBS" type="TDec1104RTC" minOccurs="0"/>

<!-- IBS – UF -->
<xs:element name="pIBSUF"       type="TDec_0302_04RTC" minOccurs="0"/> <!-- alíquota -->
<xs:element name="vIBSUF"       type="TDec1104RTC"      minOccurs="0"/> <!-- valor -->
<xs:element name="pDifUF"       type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vDifUF"       type="TDec1104RTC"      minOccurs="0"/>
<xs:element name="pRedAliqUF"   type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="pAliqEfetUF"  type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vDevTribUF"   type="TDec1104RTC"      minOccurs="0"/>

<!-- IBS – Município -->
<xs:element name="pIBSMun"      type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vIBSMun"      type="TDec1104RTC"      minOccurs="0"/>
<xs:element name="pDifMun"      type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vDifMun"      type="TDec1104RTC"      minOccurs="0"/>
<xs:element name="pRedAliqMun"  type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="pAliqEfetMun" type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vDevTribMun"  type="TDec1104RTC"      minOccurs="0"/>

<!-- IBS – total do item -->
<xs:element name="vIBS" type="TDec1104RTC" minOccurs="0"/>

<!-- CBS – total do item -->
<xs:element name="pCBS"      type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vCBS"      type="TDec1104RTC"      minOccurs="0"/>
<xs:element name="pDifCBS"   type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vDifCBS"   type="TDec1104RTC"      minOccurs="0"/>
<xs:element name="pRedAliq"  type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="pAliqEfet" type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vDevTrib"  type="TDec1104RTC"      minOccurs="0"/>

<!-- Crédito presumido por item -->
<xs:element name="indCredPres"         type="xs:integer"      minOccurs="0"/>
<xs:element name="pCredPresIBS"        type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vCredPresIBS"        type="TDec1104RTC"     minOccurs="0"/>
<xs:element name="vCredPresCondSusIBS" type="TDec1104RTC"     minOccurs="0"/>

<!-- Monofásico por item -->
<xs:element name="vBCIBSMono"   type="TDec1104RTC"     minOccurs="0"/>
<xs:element name="pIBSMono"     type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vIBSMono"     type="TDec1104RTC"     minOccurs="0"/>

<xs:element name="vBCCBSMono"   type="TDec1104RTC"     minOccurs="0"/>
<xs:element name="pCBSMono"     type="TDec_0302_04RTC" minOccurs="0"/>
<xs:element name="vCBSMono"     type="TDec1104RTC"     minOccurs="0"/>


Refactoring 100% após estudos

nota_cabecalho

ALTER TABLE nota_cabecalho
  -- =================================================================
  -- GRUPO TOTAL > ISTot (Imposto Seletivo Total)
  -- =================================================================
  ADD COLUMN total_istot_vis DECIMAL(15, 2) NULL COMMENT 'w03 | w33 | valor total do imposto seletivo',

  -- =================================================================
  -- GRUPO TOTAL > IBSCBSTot (Totalizadores IBS e CBS)
  -- =================================================================
  ADD COLUMN total_ibscbstot_vbcibscbs DECIMAL(15, 2) NULL COMMENT 'w03 | w35 | valor total da base de calculo do ibs e da cbs',

  -- -----------------------------------------------------------------
  -- Subgrupo: gIBS (Total IBS)
  -- -----------------------------------------------------------------
  ADD COLUMN total_ibscbstot_gibs_vibs DECIMAL(15, 2) NULL COMMENT 'w03 | w47 | valor total do ibs',
  ADD COLUMN total_ibscbstot_gibs_vcredpres DECIMAL(15, 2) NULL COMMENT 'w03 | w48 | valor total do credito presumido do ibs',
  ADD COLUMN total_ibscbstot_gibs_vcredprescondsus DECIMAL(15, 2) NULL COMMENT 'w03 | w49 | valor total do credito presumido em condicao suspensiva ibs',

  -- Subgrupo: gIBS -> gIBSUFTot (Total UF)
  ADD COLUMN total_ibscbstot_gibs_gibsuftot_vibsuf DECIMAL(15, 2) NULL COMMENT 'w03 | w41 | valor total do ibs da uf',
  ADD COLUMN total_ibscbstot_gibs_gibsuftot_vdif DECIMAL(15, 2) NULL COMMENT 'w03 | w38 | valor total do diferimento do ibs da uf',
  ADD COLUMN total_ibscbstot_gibs_gibsuftot_vdevtrib DECIMAL(15, 2) NULL COMMENT 'w03 | w39 | valor total de devolucao de tributos ibs uf',

  -- Subgrupo: gIBS -> gIBSMunTot (Total Municipio)
  ADD COLUMN total_ibscbstot_gibs_gibsmuntot_vibsmun DECIMAL(15, 2) NULL COMMENT 'w03 | w46 | valor total do ibs do municipio',
  ADD COLUMN total_ibscbstot_gibs_gibsmuntot_vdif DECIMAL(15, 2) NULL COMMENT 'w03 | w43 | valor total do diferimento do ibs do municipio',
  ADD COLUMN total_ibscbstot_gibs_gibsmuntot_vdevtrib DECIMAL(15, 2) NULL COMMENT 'w03 | w44 | valor total de devolucao de tributos ibs municipio',

  -- -----------------------------------------------------------------
  -- Subgrupo: gCBS (Total CBS)
  -- -----------------------------------------------------------------
  ADD COLUMN total_ibscbstot_gcbs_vcbs DECIMAL(15, 2) NULL COMMENT 'w03 | w56 | valor total da cbs',
  ADD COLUMN total_ibscbstot_gcbs_vdif DECIMAL(15, 2) NULL COMMENT 'w03 | w53 | valor total do diferimento da cbs',
  ADD COLUMN total_ibscbstot_gcbs_vdevtrib DECIMAL(15, 2) NULL COMMENT 'w03 | w54 | valor total de devolucao de tributos da cbs',
  ADD COLUMN total_ibscbstot_gcbs_vcredpres DECIMAL(15, 2) NULL COMMENT 'w03 | w56a | valor total do credito presumido da cbs',
  ADD COLUMN total_ibscbstot_gcbs_vcredprescondsus DECIMAL(15, 2) NULL COMMENT 'w03 | w56b | valor total do credito presumido em condicao suspensiva cbs',

  -- -----------------------------------------------------------------
  -- Subgrupo: gMono (Total Monofasico)
  -- -----------------------------------------------------------------
  ADD COLUMN total_ibscbstot_gmono_vibsmono DECIMAL(15, 2) NULL COMMENT 'w03 | w58 | total do ibs monofasico',
  ADD COLUMN total_ibscbstot_gmono_vcbsmono DECIMAL(15, 2) NULL COMMENT 'w03 | w59 | total da cbs monofasica',
  ADD COLUMN total_ibscbstot_gmono_vibsmonoreten DECIMAL(15, 2) NULL COMMENT 'w03 | w59a | total do ibs monofasico sujeito a retencao',
  ADD COLUMN total_ibscbstot_gmono_vcbsmonoreten DECIMAL(15, 2) NULL COMMENT 'w03 | w59b | total da cbs monofasica sujeita a retencao',
  ADD COLUMN total_ibscbstot_gmono_vibsmonoret DECIMAL(15, 2) NULL COMMENT 'w03 | w59c | total do ibs monofasico retido anteriormente',
  ADD COLUMN total_ibscbstot_gmono_vcbsmonoret DECIMAL(15, 2) NULL COMMENT 'w03 | w59d | total da cbs monofasica retida anteriormente',
  
  -- -----------------------------------------------------------------
  -- Subgrupo: gEstornoCred (Total Estorno)
  -- -----------------------------------------------------------------
  ADD COLUMN total_ibscbstot_gestornocred_vibsestcred DECIMAL(15, 2) NULL COMMENT 'w03 | w59f | valor total do estorno de credito de ibs',
  ADD COLUMN total_ibscbstot_gestornocred_vcbsestcred DECIMAL(15, 2) NULL COMMENT 'w03 | w59g | valor total do estorno de credito de cbs',

  -- =================================================================
  -- GRUPO TOTAL (Raiz)
  -- =================================================================
  -- Este campo soma os totais antigos (ICMS/PIS/COFINS) + novos (IBS/CBS/IS)
  ADD COLUMN total_vnftot DECIMAL(15, 2) NULL COMMENT 'w03 | w60 | valor total da nf-e com ibs cbs e is',

  -- =================================================================
  -- GRUPO IDE (Identificacao) - Novos campos da Reforma
  -- ACBr: Ide.cMunFGIBS, Ide.tpNFDebito, Ide.tpNFCredito
  -- =================================================================
  ADD COLUMN ide_cmunfgibs VARCHAR(7) NULL COMMENT 'b | b25c | codigo do municipio de ocorrencia do fato gerador ibs cbs',
  ADD COLUMN ide_tpnfdebito VARCHAR(2) NULL COMMENT 'b | b25.1 | indicador de nota de debito',
  ADD COLUMN ide_tpnfcredito VARCHAR(2) NULL COMMENT 'b | b25.2 | indicador de nota de credito',

  -- =================================================================
  -- GRUPO G01: Compras Governamentais (gCompraGov)
  -- ACBr: gCompraGov (0-1 Ocorrencia - Cabe no header)
  -- =================================================================
  ADD COLUMN compragov_xnemp VARCHAR(60) NULL COMMENT 'g01 | g02 | nota de empenho',
  ADD COLUMN compragov_xped VARCHAR(60) NULL COMMENT 'g01 | g03 | pedido',
  ADD COLUMN compragov_xcont VARCHAR(60) NULL COMMENT 'g01 | g04 | contrato';

  -- tpnfdebito
-- 01=Transferencia de creditos para Cooperativas; 
-- 02=Anulacao de Credito por Saidas Imunes/Isentas; 
-- 03=Debitos de notas fiscais nao processadas na apuracao; 
-- 04=Multa e juros; 
-- 05=Transferencia de credito na sucessao; 
-- 06=Pagamento antecipado; 
-- 07=Perda em estoque; 
-- 08=Desenquadramento do SN;

-- tpnfcredito
-- 01=Multa e juros; 
-- 02=Apropriacao de credito presumido de IBS sobre o saldo devedor na ZFM (art. 450, par. 1, LC 214/25);
-- 03=Retorno por recusa na entrega ou por nao localizacao do destinatario na tentativa de entrega;
-- 04=Reducao de valores;
-- 05=Transferencia de credito na sucessao;

nota_itens

ALTER TABLE nota_itens

  -- =================================================================
  -- 1. GRUPO: ISel (Imposto Seletivo)
  -- Classe ACBr: TISel
  -- =================================================================
  ADD COLUMN isel_cstis VARCHAR(3) NULL COMMENT 'ub01 | ub02 | codigo de situacao tributaria do imposto seletivo',
  ADD COLUMN isel_cclasstribis VARCHAR(6) NULL COMMENT 'ub01 | ub03 | codigo de classificacao tributaria do imposto seletivo',
  ADD COLUMN isel_vbcis DECIMAL(15, 2) NULL COMMENT 'ub01 | ub04 | valor da base de calculo do imposto seletivo',
  ADD COLUMN isel_pis DECIMAL(7, 4) NULL COMMENT 'ub01 | ub06 | aliquota do imposto seletivo em percentual',
  ADD COLUMN isel_pisespec DECIMAL(15, 4) NULL COMMENT 'ub01 | ub07 | aliquota especifica ad rem por unidade',
  ADD COLUMN isel_utrib VARCHAR(6) NULL COMMENT 'ub01 | ub09 | unidade de medida tributavel',
  ADD COLUMN isel_qtrib DECIMAL(15, 4) NULL COMMENT 'ub01 | ub10 | quantidade tributavel',
  ADD COLUMN isel_vis DECIMAL(15, 2) NULL COMMENT 'ub01 | ub11 | valor do imposto seletivo',

  -- =================================================================
  -- 2. GRUPO: IBSCBS (Raiz)
  -- Classe ACBr: TIBSCBS
  -- =================================================================
  ADD COLUMN ibscbs_cst VARCHAR(3) NULL COMMENT 'ub12 | ub13 | codigo de situacao tributaria do ibs e cbs',
  ADD COLUMN ibscbs_cclasstrib VARCHAR(6) NULL COMMENT 'ub12 | ub14 | codigo de classificacao tributaria do ibs e cbs',
  ADD COLUMN ibscbs_inddoacao VARCHAR(1) NULL COMMENT 'ub12 | ub15 | indicador de doacao',

  -- =================================================================
  -- 3. SUB-GRUPO: gIBSCBS (Operacao Tributavel Padrao)
  -- Classe ACBr: TgIBSCBS
  -- =================================================================
  ADD COLUMN ibscbs_gibscbs_vbc DECIMAL(15, 2) NULL COMMENT 'ub12 | ub16 | valor da base de calculo do ibs e cbs',
  ADD COLUMN ibscbs_gibscbs_vibs DECIMAL(15, 2) NULL COMMENT 'ub12 | ub54a | valor total do ibs soma uf e mun',
  
  -- 3.1. IBS UF (gIBSUF)
  ADD COLUMN ibscbs_gibscbs_gibsuf_pibsuf DECIMAL(7, 4) NULL COMMENT 'ub17 | ub18 | aliquota do ibs de competencia da uf',
  ADD COLUMN ibscbs_gibscbs_gibsuf_vibsuf DECIMAL(15, 2) NULL COMMENT 'ub17 | ub35 | valor do ibs de competencia da uf',
  -- gIBSUF -> gDif
  ADD COLUMN ibscbs_gibscbs_gibsuf_gdif_pdif DECIMAL(7, 4) NULL COMMENT 'ub21 | ub22 | percentual do diferimento uf',
  ADD COLUMN ibscbs_gibscbs_gibsuf_gdif_vdif DECIMAL(15, 2) NULL COMMENT 'ub21 | ub23 | valor do diferimento uf',
  -- gIBSUF -> gDevTrib
  ADD COLUMN ibscbs_gibscbs_gibsuf_gdevtrib_vdevtrib DECIMAL(15, 2) NULL COMMENT 'ub24 | ub25 | valor do tributo devolvido uf',
  -- gIBSUF -> gRed
  ADD COLUMN ibscbs_gibscbs_gibsuf_gred_predaliq DECIMAL(7, 4) NULL COMMENT 'ub26 | ub27 | percentual da reducao de aliquota uf',
  ADD COLUMN ibscbs_gibscbs_gibsuf_gred_paliqefet DECIMAL(7, 4) NULL COMMENT 'ub26 | ub28 | aliquota efetiva do ibs uf',

  -- 3.2. IBS Municipio (gIBSMun)
  ADD COLUMN ibscbs_gibscbs_gibsmun_pibsmun DECIMAL(7, 4) NULL COMMENT 'ub36 | ub37 | aliquota do ibs de competencia do municipio',
  ADD COLUMN ibscbs_gibscbs_gibsmun_vibsmun DECIMAL(15, 2) NULL COMMENT 'ub36 | ub54 | valor do ibs de competencia do municipio',
  -- gIBSMun -> gDif
  ADD COLUMN ibscbs_gibscbs_gibsmun_gdif_pdif DECIMAL(7, 4) NULL COMMENT 'ub40 | ub41 | percentual do diferimento municipio',
  ADD COLUMN ibscbs_gibscbs_gibsmun_gdif_vdif DECIMAL(15, 2) NULL COMMENT 'ub40 | ub42 | valor do diferimento municipio',
  -- gIBSMun -> gDevTrib
  ADD COLUMN ibscbs_gibscbs_gibsmun_gdevtrib_vdevtrib DECIMAL(15, 2) NULL COMMENT 'ub43 | ub44 | valor do tributo devolvido municipio',
  -- gIBSMun -> gRed
  ADD COLUMN ibscbs_gibscbs_gibsmun_gred_predaliq DECIMAL(7, 4) NULL COMMENT 'ub45 | ub46 | percentual da reducao de aliquota municipio',
  ADD COLUMN ibscbs_gibscbs_gibsmun_gred_paliqefet DECIMAL(7, 4) NULL COMMENT 'ub45 | ub47 | aliquota efetiva do ibs municipio',

  -- 3.3. CBS (gCBS)
  ADD COLUMN ibscbs_gibscbs_gcbs_pcbs DECIMAL(7, 4) NULL COMMENT 'ub55 | ub56 | aliquota da cbs',
  ADD COLUMN ibscbs_gibscbs_gcbs_vcbs DECIMAL(15, 2) NULL COMMENT 'ub55 | ub67 | valor da cbs',
  -- gCBS -> gDif
  ADD COLUMN ibscbs_gibscbs_gcbs_gdif_pdif DECIMAL(7, 4) NULL COMMENT 'ub59 | ub60 | percentual do diferimento cbs',
  ADD COLUMN ibscbs_gibscbs_gcbs_gdif_vdif DECIMAL(15, 2) NULL COMMENT 'ub59 | ub61 | valor do diferimento cbs',
  -- gCBS -> gDevTrib
  ADD COLUMN ibscbs_gibscbs_gcbs_gdevtrib_vdevtrib DECIMAL(15, 2) NULL COMMENT 'ub62 | ub63 | valor do tributo devolvido cbs',
  -- gCBS -> gRed
  ADD COLUMN ibscbs_gibscbs_gcbs_gred_predaliq DECIMAL(7, 4) NULL COMMENT 'ub64 | ub65 | percentual da reducao de aliquota cbs',
  ADD COLUMN ibscbs_gibscbs_gcbs_gred_paliqefet DECIMAL(7, 4) NULL COMMENT 'ub64 | ub66 | aliquota efetiva da cbs',

  -- 3.4. Tributacao Regular - ZFM/ALC (gTribRegular)
  ADD COLUMN ibscbs_gibscbs_gtribregular_cstreg VARCHAR(3) NULL COMMENT 'ub68 | ub69 | cst padrao sem o beneficio',
  ADD COLUMN ibscbs_gibscbs_gtribregular_cclasstribreg VARCHAR(6) NULL COMMENT 'ub68 | ub70 | classificacao tributaria sem o beneficio',
  ADD COLUMN ibscbs_gibscbs_gtribregular_paliqefetregibsuf DECIMAL(7, 4) NULL COMMENT 'ub68 | ub71a | aliquota efetiva regular ibs uf',
  ADD COLUMN ibscbs_gibscbs_gtribregular_vtribregibsuf DECIMAL(15, 2) NULL COMMENT 'ub68 | ub71b | valor regular ibs uf',
  ADD COLUMN ibscbs_gibscbs_gtribregular_paliqefetregibsmun DECIMAL(7, 4) NULL COMMENT 'ub68 | ub72a | aliquota efetiva regular ibs mun',
  ADD COLUMN ibscbs_gibscbs_gtribregular_vtribregibsmun DECIMAL(15, 2) NULL COMMENT 'ub68 | ub72b | valor regular ibs mun',
  ADD COLUMN ibscbs_gibscbs_gtribregular_paliqefetregcbs DECIMAL(7, 4) NULL COMMENT 'ub68 | ub72c | aliquota efetiva regular cbs',
  ADD COLUMN ibscbs_gibscbs_gtribregular_vtribregcbs DECIMAL(15, 2) NULL COMMENT 'ub68 | ub72d | valor regular cbs',

  -- 3.5. Compras Governamentais (gTribCompraGov)
  ADD COLUMN ibscbs_gibscbs_gtribcompragov_paliqibsuf DECIMAL(7, 4) NULL COMMENT 'ub73 | ub74 | aliquota ibs uf compra gov',
  ADD COLUMN ibscbs_gibscbs_gtribcompragov_vtribibsuf DECIMAL(15, 2) NULL COMMENT 'ub73 | ub75 | valor ibs uf compra gov',
  ADD COLUMN ibscbs_gibscbs_gtribcompragov_paliqibsmun DECIMAL(7, 4) NULL COMMENT 'ub73 | ub76 | aliquota ibs mun compra gov',
  ADD COLUMN ibscbs_gibscbs_gtribcompragov_vtribibsmun DECIMAL(15, 2) NULL COMMENT 'ub73 | ub77 | valor ibs mun compra gov',
  ADD COLUMN ibscbs_gibscbs_gtribcompragov_paliqcbs DECIMAL(7, 4) NULL COMMENT 'ub73 | ub78 | aliquota cbs compra gov',
  ADD COLUMN ibscbs_gibscbs_gtribcompragov_vtribcbs DECIMAL(15, 2) NULL COMMENT 'ub73 | ub79 | valor cbs compra gov',

  -- =================================================================
  -- 4. SUB-GRUPO: gIBSCBSMono (Monofasico)
  -- Classe ACBr: TgIBSCBSMono
  -- =================================================================
  -- Totais Monofasico Item
  ADD COLUMN ibscbs_gibscbsmono_vtotibsmonoitem DECIMAL(15, 2) NULL COMMENT 'ub84 | ub107 | valor total ibs monofasico item',
  ADD COLUMN ibscbs_gibscbsmono_vtotcbsmonoitem DECIMAL(15, 2) NULL COMMENT 'ub84 | ub108 | valor total cbs monofasico item',

  -- 4.1. Mono Padrao (gMonoPadrao)
  ADD COLUMN ibscbs_gibscbsmono_gmonopadrao_qbcmono DECIMAL(15, 4) NULL COMMENT 'ub85 | ub85 | quantidade tributada na monofasia',
  ADD COLUMN ibscbs_gibscbsmono_gmonopadrao_adremibs DECIMAL(7, 4) NULL COMMENT 'ub85 | ub86 | aliquota ad rem do ibs',
  ADD COLUMN ibscbs_gibscbsmono_gmonopadrao_adremcbs DECIMAL(7, 4) NULL COMMENT 'ub85 | ub87 | aliquota ad rem da cbs',
  ADD COLUMN ibscbs_gibscbsmono_gmonopadrao_vibsmono DECIMAL(15, 2) NULL COMMENT 'ub85 | ub88 | valor do ibs monofasico',
  ADD COLUMN ibscbs_gibscbsmono_gmonopadrao_vcbsmono DECIMAL(15, 2) NULL COMMENT 'ub85 | ub89 | valor da cbs monofasica',

  -- 4.2. Mono Retencao (gMonoReten)
  ADD COLUMN ibscbs_gibscbsmono_gmonoreten_qbcmonoreten DECIMAL(15, 4) NULL COMMENT 'ub90 | ub91 | quantidade tributada sujeita a retencao',
  ADD COLUMN ibscbs_gibscbsmono_gmonoreten_adremibsreten DECIMAL(7, 4) NULL COMMENT 'ub90 | ub92 | aliquota ad rem do ibs retencao',
  ADD COLUMN ibscbs_gibscbsmono_gmonoreten_adremcbsreten DECIMAL(7, 4) NULL COMMENT 'ub90 | ub93 | aliquota ad rem da cbs retencao',
  ADD COLUMN ibscbs_gibscbsmono_gmonoreten_vibsmonoreten DECIMAL(15, 2) NULL COMMENT 'ub90 | ub94 | valor do ibs monofasico retencao',
  ADD COLUMN ibscbs_gibscbsmono_gmonoreten_vcbsmonoreten DECIMAL(15, 2) NULL COMMENT 'ub90 | ub95 | valor da cbs monofasica retencao',

  -- 4.3. Mono Retido Anteriormente (gMonoRet)
  ADD COLUMN ibscbs_gibscbsmono_gmonoret_qbcmonoret DECIMAL(15, 4) NULL COMMENT 'ub96 | ub97 | quantidade tributada retida anteriormente',
  ADD COLUMN ibscbs_gibscbsmono_gmonoret_adremibsret DECIMAL(7, 4) NULL COMMENT 'ub96 | ub98 | aliquota ad rem do ibs retido anteriormente',
  ADD COLUMN ibscbs_gibscbsmono_gmonoret_adremcbsret DECIMAL(7, 4) NULL COMMENT 'ub96 | ub99 | aliquota ad rem da cbs retido anteriormente',
  ADD COLUMN ibscbs_gibscbsmono_gmonoret_vibsmonoret DECIMAL(15, 2) NULL COMMENT 'ub96 | ub100 | valor do ibs monofasico retido anteriormente',
  ADD COLUMN ibscbs_gibscbsmono_gmonoret_vcbsmonoret DECIMAL(15, 2) NULL COMMENT 'ub96 | ub101 | valor da cbs monofasica retida anteriormente',

  -- 4.4. Mono Diferimento (gMonoDif)
  ADD COLUMN ibscbs_gibscbsmono_gmonodif_pdifibs DECIMAL(7, 4) NULL COMMENT 'ub102 | ub103 | percentual diferimento ibs monofasico',
  ADD COLUMN ibscbs_gibscbsmono_gmonodif_vibsmonodif DECIMAL(15, 2) NULL COMMENT 'ub102 | ub104 | valor diferimento ibs monofasico',
  ADD COLUMN ibscbs_gibscbsmono_gmonodif_pdifcbs DECIMAL(7, 4) NULL COMMENT 'ub102 | ub105 | percentual diferimento cbs monofasico',
  ADD COLUMN ibscbs_gibscbsmono_gmonodif_vcbsmonodif DECIMAL(15, 2) NULL COMMENT 'ub102 | ub106 | valor diferimento cbs monofasico',

  -- =================================================================
  -- 5. SUB-GRUPOS ESPECIAIS
  -- =================================================================
  
  -- 5.1. Transferencia de Credito (gTransfCred)
  ADD COLUMN ibscbs_gtransfcred_vibs DECIMAL(15, 2) NULL COMMENT 'ub109 | ub110 | valor ibs transferencia',
  ADD COLUMN ibscbs_gtransfcred_vcbs DECIMAL(15, 2) NULL COMMENT 'ub109 | ub111 | valor cbs transferencia',

  -- 5.2. Ajuste de Competencia (gAjusteCompet)
  ADD COLUMN ibscbs_gajustecompet_competapur DATE NULL COMMENT 'ub112 | ub113 | data competencia apuracao',
  ADD COLUMN ibscbs_gajustecompet_vibs DECIMAL(15, 2) NULL COMMENT 'ub112 | ub114 | valor ibs ajuste',
  ADD COLUMN ibscbs_gajustecompet_vcbs DECIMAL(15, 2) NULL COMMENT 'ub112 | ub115 | valor cbs ajuste',

  -- 5.3. Estorno de Credito (gEstornoCred)
  ADD COLUMN ibscbs_gestornocred_vibsestcred DECIMAL(15, 2) NULL COMMENT 'ub116 | ub118 | valor estorno credito ibs',
  ADD COLUMN ibscbs_gestornocred_vcbsestcred DECIMAL(15, 2) NULL COMMENT 'ub116 | ub119 | valor estorno credito cbs',

  -- 5.4. Credito Presumido Operacional (gCredPresOper)
  ADD COLUMN ibscbs_gcredpresoper_ccredpres VARCHAR(2) NULL COMMENT 'ub120 | ub122 | codigo de classificacao do credito presumido',
  ADD COLUMN ibscbs_gcredpresoper_vbccredpres DECIMAL(15, 2) NULL COMMENT 'ub120 | ub123 | valor da base de calculo do credito presumido',
  -- gCredPresOper -> gIBSCredPres
  ADD COLUMN ibscbs_gcredpresoper_gibscredpres_pcredpres DECIMAL(7, 4) NULL COMMENT 'ub123 | ub124 | percentual credito presumido ibs',
  ADD COLUMN ibscbs_gcredpresoper_gibscredpres_vcredpres DECIMAL(15, 2) NULL COMMENT 'ub123 | ub125 | valor credito presumido ibs',
  ADD COLUMN ibscbs_gcredpresoper_gibscredpres_vcredprescondsus DECIMAL(15, 2) NULL COMMENT 'ub123 | ub126 | valor credito presumido condicao suspensiva ibs',
  -- gCredPresOper -> gCBSCredPres
  ADD COLUMN ibscbs_gcredpresoper_gcbscredpres_pcredpres DECIMAL(7, 4) NULL COMMENT 'ub127 | ub128 | percentual credito presumido cbs',
  ADD COLUMN ibscbs_gcredpresoper_gcbscredpres_vcredpres DECIMAL(15, 2) NULL COMMENT 'ub127 | ub129 | valor credito presumido cbs',
  ADD COLUMN ibscbs_gcredpresoper_gcbscredpres_vcredprescondsus DECIMAL(15, 2) NULL COMMENT 'ub127 | ub130 | valor credito presumido condicao suspensiva cbs',

  -- 5.5. Credito Presumido ZFM (gCredPresIBSZFM)
  ADD COLUMN ibscbs_gcredpresibszfm_competapur DATE NULL COMMENT 'ub131 | ub132 | data competencia apuracao zfm',
  ADD COLUMN ibscbs_gcredpresibszfm_tpcredpresibszfm VARCHAR(2) NULL COMMENT 'ub131 | ub133 | tipo de credito presumido ibs zfm',
  ADD COLUMN ibscbs_gcredpresibszfm_vcredpresibszfm DECIMAL(15, 2) NULL COMMENT 'ub131 | ub134 | valor credito presumido ibs zfm',

  -- 5.6. Indicador de Bem Movel Usado
  ADD COLUMN ind_bem_movel_usado VARCHAR(1) NULL COMMENT 'i17c | E | indicador de bem movel usado';