Skip to content

Commit 4980da0

Browse files
authored
Merge pull request #1656 from ZeusAutomacao/Branch_25564
feat(NFe/NFCe): implementa alterações da NT 2025.002 v1.30 da Reforma Tributária para NF-e/NFC-e
2 parents c327724 + acd76a7 commit 4980da0

File tree

34 files changed

+1174
-244
lines changed

34 files changed

+1174
-244
lines changed

DFe.Utils/DataHora.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,18 @@ public static string ParaDataString(this DateTime? data)
5858

5959
return data == DateTime.MinValue ? null : data.Value.ToString("yyyy-MM-dd");
6060
}
61+
62+
/// <summary>
63+
/// Retorna uma string no formato AAAA-MM
64+
/// </summary>
65+
/// <param name="data"></param>
66+
/// <returns></returns>
67+
public static string ParaDataAnoEMesString(this DateTime? data)
68+
{
69+
if (data == null) return null;
70+
71+
return data == DateTime.MinValue ? null : data.Value.ToString("yyyy-MM");
72+
}
6173

6274
/// <summary>
6375
/// Retorna uma string no formato AAAA-MM-DDThh:mm:ssTZD (UTC - Universal Coordinated Time)

NFe.AppTeste/ConfiguracaoApp.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
using NFe.Danfe.Base.NFCe;
4343
using NFe.Utils;
4444
using NFe.Utils.Email;
45-
using Shared.NFe.Utils.Enderecos.NovasUrlsCeara;
4645

4746
namespace NFe.AppTeste
4847
{
@@ -84,6 +83,8 @@ public ConfiguracaoServico CfgServico
8483
public ConfiguracaoCsc ConfiguracaoCsc { get; set; }
8584
public ConfiguracaoDanfeNfce ConfiguracaoDanfeNfce { get; set; }
8685

86+
public bool EnviarTributacaoIbsCbsIs { get; set; }
87+
8788
/// <summary>
8889
/// Salva os dados de CfgServico em um arquivo XML
8990
/// </summary>

NFe.AppTeste/MainWindow.xaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,14 @@
302302
VerticalAlignment="Top" Width="178"
303303
IsChecked="{Binding CfgServico.RemoverAcentos}"/>
304304
</StackPanel>
305+
306+
<StackPanel Margin="10,10,0,0">
307+
<CheckBox Name="CbxEnviarTributacaoDaReforma" Content="Enviar tributação IBS/CBS e IS"
308+
HorizontalAlignment="Left"
309+
VerticalAlignment="Top" Width="178"
310+
Click="CbxEnviarTributacaoDaReforma_OnClick"
311+
/>
312+
</StackPanel>
305313
</StackPanel>
306314
</Grid>
307315
</TabItem>

NFe.AppTeste/MainWindow.xaml.cs

Lines changed: 250 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,17 @@
7575
using NFe.Utils.Excecoes;
7676
using NFe.Utils.Tributacao.Federal;
7777
using Image = System.Drawing.Image;
78-
using static System.Net.Mime.MediaTypeNames;
7978
using System.Text;
8079
using System.Security.Cryptography;
80+
using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado;
81+
using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs;
82+
using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs.InformacoesCbs;
83+
using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.InformacoesIbsCbs.InformacoesIbs;
84+
using NFe.Classes.Informacoes.Detalhe.Tributacao.Compartilhado.Tipos;
85+
using NFe.Classes.Informacoes.Total.IbsCbs;
86+
using NFe.Classes.Informacoes.Total.IbsCbs.Cbs;
87+
using NFe.Classes.Informacoes.Total.IbsCbs.Ibs;
88+
using NFe.Classes.Informacoes.Total.IbsCbs.Monofasica;
8189

8290
namespace NFe.AppTeste
8391
{
@@ -193,6 +201,8 @@ private void CarregarConfiguracao()
193201
}
194202

195203
#endregion
204+
205+
CbxEnviarTributacaoDaReforma.IsChecked = _configuracoes.EnviarTributacaoIbsCbsIs;
196206
}
197207
catch (Exception ex)
198208
{
@@ -1377,7 +1387,8 @@ protected virtual ide GetIdentificacao(int numero, ModeloDocumento modelo, Versa
13771387
tpAmb = _configuracoes.CfgServico.tpAmb,
13781388
finNFe = FinalidadeNFe.fnNormal,
13791389
verProc = "3.000",
1380-
indIntermed = IndicadorIntermediador.iiSemIntermediador
1390+
indIntermed = IndicadorIntermediador.iiSemIntermediador,
1391+
// dPrevEntrega = modelo == ModeloDocumento.NFe ? DateTime.Now : null
13811392
};
13821393

13831394
if (ide.tpEmis != TipoEmissao.teNormal)
@@ -1541,7 +1552,184 @@ protected virtual det GetDetalhe(int i, CRT crt, ModeloDocumento modelo)
15411552

15421553
//Caso você resolva utilizar método ObterPisBasico(), comente esta proxima linha
15431554
TipoPIS = new PISOutr { CST = CSTPIS.pis99, pPIS = 0, vBC = 0, vPIS = 0 }
1544-
}
1555+
},
1556+
1557+
// Estrutura de IBS/CBS para testes durante processo de homologação
1558+
IBSCBS = _configuracoes.EnviarTributacaoIbsCbsIs ? new IBSCBS
1559+
{
1560+
CST = CST.Cst000,
1561+
cClassTrib = "000001",
1562+
// indDoacao = "1", //Somente a partir do dia 29/10
1563+
gIBSCBS = new gIBSCBS
1564+
{
1565+
vBC = 0,
1566+
gIBSUF = new gIBSUF
1567+
{
1568+
pIBSUF = 0.10m,
1569+
vIBSUF = 0,
1570+
gDif = new gDif
1571+
{
1572+
vDif = 0,
1573+
pDif = 0
1574+
},
1575+
gRed = new gRed
1576+
{
1577+
pAliqEfet = 0,
1578+
pRedAliq = 0
1579+
},
1580+
gDevTrib = new gDevTrib
1581+
{
1582+
vDevTrib = 0
1583+
}
1584+
},
1585+
gIBSMun = new gIBSMun
1586+
{
1587+
pIBSMun = 0,
1588+
vIBSMun = 0,
1589+
gDif = new gDif
1590+
{
1591+
vDif = 0,
1592+
pDif = 0
1593+
},
1594+
gRed = new gRed
1595+
{
1596+
pAliqEfet = 0,
1597+
pRedAliq = 0
1598+
},
1599+
gDevTrib = new gDevTrib
1600+
{
1601+
vDevTrib = 0
1602+
}
1603+
},
1604+
gCBS = new gCBS
1605+
{
1606+
pCBS = 0.90m,
1607+
vCBS = 0,
1608+
gDif = new gDif
1609+
{
1610+
vDif = 0,
1611+
pDif = 0
1612+
},
1613+
gRed = new gRed
1614+
{
1615+
pAliqEfet = 0,
1616+
pRedAliq = 0
1617+
},
1618+
gDevTrib = new gDevTrib
1619+
{
1620+
vDevTrib = 0
1621+
}
1622+
},
1623+
vIBS = 0,
1624+
gTribCompraGov = new gTribCompraGov
1625+
{
1626+
pAliqCBS = 0,
1627+
vTribCBS = 0,
1628+
pAliqIBSMun = 0,
1629+
vTribIBSMun = 0,
1630+
pAliqIBSUF = 0,
1631+
vTribIBSUF = 0
1632+
},
1633+
gTribRegular = new gTribRegular
1634+
{
1635+
cClassTribReg = "000001",
1636+
CSTReg = CST.Cst000,
1637+
vTribRegCBS = 0,
1638+
pAliqEfetRegCBS = 0,
1639+
vTribRegIBSMun = 0,
1640+
pAliqEfetRegIBSMun = 0,
1641+
vTribRegIBSUF = 0,
1642+
pAliqEfetRegIBSUF = 0
1643+
}
1644+
},
1645+
// gIBSCBSMono = new gIBSCBSMono
1646+
// {
1647+
// gMonoDif = new gMonoDif
1648+
// {
1649+
// pDifCBS = 0,
1650+
// pDifIBS = 0,
1651+
// vCBSMonoDif = 0,
1652+
// vIBSMonoDif = 0
1653+
// },
1654+
// gMonoPadrao = new gMonoPadrao
1655+
// {
1656+
// qBCMono = 0,
1657+
// adRemCBS = 0,
1658+
// adRemIBS = 0,
1659+
// vCBSMono = 0,
1660+
// vIBSMono = 0
1661+
// },
1662+
// gMonoRet = new gMonoRet
1663+
// {
1664+
// qBCMonoRet = 0,
1665+
// adRemCBSRet = 0,
1666+
// adRemIBSRet = 0,
1667+
// vCBSMonoRet = 0,
1668+
// vIBSMonoRet = 0
1669+
// },
1670+
// gMonoReten = new gMonoReten
1671+
// {
1672+
// qBCMonoReten = 0,
1673+
// adRemCBSReten = 0,
1674+
// adRemIBSReten = 0,
1675+
// vCBSMonoReten = 0,
1676+
// vIBSMonoReten = 0
1677+
// },
1678+
// vTotCBSMonoItem = 0,
1679+
// vTotIBSMonoItem = 0
1680+
// },
1681+
// gTransfCred = new gTransfCred
1682+
// {
1683+
// vCBS = 0,
1684+
// vIBS = 0
1685+
// },
1686+
// gAjusteCompet = new gAjusteCompet
1687+
// {
1688+
// competApur = DateTime.Now,
1689+
// vCBS = 0,
1690+
// vIBS = 0
1691+
// },
1692+
// gEstornoCred = new gEstornoCred
1693+
// {
1694+
// vCBSEstCred = 0,
1695+
// vIBSEstCred = 0
1696+
// },
1697+
// gCredPresOper = new gCredPresOper
1698+
// {
1699+
// cCredPres = "01",
1700+
// vBCCredPres = 0,
1701+
// gIBSCredPres = new gIBSCredPres
1702+
// {
1703+
// pCredPres = 0,
1704+
// vCredPres = 0,
1705+
// // vCredPresCondSus = 0 // Informar somente após 2033
1706+
// },
1707+
// gCBSCredPres = new gCBSCredPres
1708+
// {
1709+
// pCredPres = 0,
1710+
// vCredPres = 0,
1711+
// // vCredPresCondSus = 0 // Informar somente após 2027
1712+
// }
1713+
// },
1714+
// gCredPresIBSZFM = new gCredPresIBSZFM
1715+
// {
1716+
// competApur = DateTime.Now,
1717+
// tpCredPresIBSZFM = ClassificacaoCreditoPresumidoIbsZfmTipos.tpCredPresIbsZfm0,
1718+
// vCredPresIBSZFM = 0
1719+
// }
1720+
} : null,
1721+
1722+
IS = _configuracoes.EnviarTributacaoIbsCbsIs ?new IS
1723+
{
1724+
qTrib = 1,
1725+
uTrib = "PC",
1726+
pISEspec = 0,
1727+
pIS = 0,
1728+
vIS = 0,
1729+
cClassTribIS = "000001",
1730+
CSTIS = CSTIS.Is000,
1731+
vBCIS = 0
1732+
} : null
15451733
}
15461734
};
15471735

@@ -1593,7 +1781,10 @@ protected virtual prod GetProduto(int i)
15931781
// nCano = "123456",
15941782
// descr = "TESTE DE ARMA"
15951783
//}
1784+
1785+
// tpCredPresIBSZFM = tpCredPresIBSZFM.SemCreditoPresumido // Informado somente para testes com gCredPresIBSZFM
15961786
};
1787+
15971788
return p;
15981789
}
15991790

@@ -1768,7 +1959,58 @@ protected virtual total GetTotal(VersaoServico versao, List<det> produtos)
17681959
+ icmsTot.vIPI
17691960
+ icmsTot.vIPIDevol.GetValueOrDefault();
17701961

1771-
var t = new total { ICMSTot = icmsTot };
1962+
var t = new total
1963+
{
1964+
ICMSTot = icmsTot,
1965+
IBSCBSTot = _configuracoes.EnviarTributacaoIbsCbsIs ? new IBSCBSTot
1966+
{
1967+
vBCIBSCBS = 0,
1968+
gIBS = new gIBS
1969+
{
1970+
gIBSUF = new gIBSUFTotal
1971+
{
1972+
vDif = 0,
1973+
vDevTrib = 0,
1974+
vIBSUF = 0
1975+
},
1976+
gIBSMun = new gIBSMunTotal
1977+
{
1978+
vDif = 0,
1979+
vDevTrib = 0,
1980+
vIBSMun = 0
1981+
},
1982+
vIBS = 0,
1983+
vCredPres = 0,
1984+
vCredPresCondSus = 0,
1985+
},
1986+
gCBS = new gCBSTotal
1987+
{
1988+
vDif = 0,
1989+
vDevTrib = 0,
1990+
vCBS = 0,
1991+
vCredPres = 0,
1992+
vCredPresCondSus = 0
1993+
},
1994+
gMono = new gMono
1995+
{
1996+
vCBSMono = 0,
1997+
vIBSMono = 0,
1998+
vCBSMonoRet = 0,
1999+
vCBSMonoReten = 0,
2000+
vIBSMonoRet = 0,
2001+
vIBSMonoReten = 0
2002+
},
2003+
gEstornoCred = new gEstornoCredTotal
2004+
{
2005+
vCBSEstCred = 0,
2006+
vIBSEstCred = 0
2007+
}
2008+
} : null,
2009+
ISTot = _configuracoes.EnviarTributacaoIbsCbsIs ? new ISTot
2010+
{
2011+
vIS = 0,
2012+
} : null
2013+
};
17722014
return t;
17732015
}
17742016

@@ -2319,5 +2561,9 @@ private void BtnAtorInteressado_Click(object sender, RoutedEventArgs e)
23192561
}
23202562
}
23212563

2564+
private void CbxEnviarTributacaoDaReforma_OnClick(object sender, RoutedEventArgs e)
2565+
{
2566+
_configuracoes.EnviarTributacaoIbsCbsIs = CbxEnviarTributacaoDaReforma.IsChecked ?? false;
2567+
}
23222568
}
23232569
}

0 commit comments

Comments
 (0)