diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/IBSCBS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/IBSCBS.cs index a03809cd0..17170dfd7 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/IBSCBS.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/IBSCBS.cs @@ -12,20 +12,41 @@ public class IBSCBS [XmlElement(Order = 2)] public cClassTrib cClassTrib { get; set; } - // UB15 + // UB14a [XmlElement(Order = 3)] + public string? indDoacao { get; set; } + + // UB15 + [XmlElement(Order = 4)] public gIBSCBS gIBSCBS { get; set; } // UB84 - [XmlElement(Order = 4)] + [XmlElement(Order = 5)] public gIBSCBSMono gIBSCBSMono { get; set; } // UB106 - [XmlElement(Order = 5)] + [XmlElement(Order = 6)] public gTransfCred gTransfCred { get; set; } - // UB109 - [XmlElement(Order = 6)] + // UB112 + [XmlElement(Order = 7)] + public gAjusteCompet? gAjusteCompet { get; set; } + + // UB116 + [XmlElement(Order = 8)] + public gEstornoCred? gEstornoCred { get; set; } + + // UB120 + [XmlElement(Order = 9)] + public gCredPresOper gCredPresOper { get; set; } + + // UB131 + [XmlElement(Order = 10)] public gCredPresIBSZFM gCredPresIBSZFM { get; set; } + + public bool ShouldSerializeindDoacao() + { + return indDoacao != null; + } } } \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/gAjusteCompet.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/gAjusteCompet.cs new file mode 100644 index 000000000..0686436ee --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/gAjusteCompet.cs @@ -0,0 +1,30 @@ +using System.Xml.Serialization; + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao +{ + public class gAjusteCompet + { + private decimal _vIBS; + private decimal _vCBS; + + //UB113 + [XmlElement(Order = 1)] + public string competApur { get; set; } + + //UB114 + [XmlElement(Order = 2)] + public decimal vIBS + { + get => _vIBS.Arredondar(2); + set => _vIBS = value.Arredondar(2); + } + + //UB115 + [XmlElement(Order = 3)] + public decimal vCBS + { + get => _vCBS.Arredondar(2); + set => _vCBS = value.Arredondar(2); + } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/gCredPresIBSZFM.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/gCredPresIBSZFM.cs index 69f90d806..cc57aa7a0 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/gCredPresIBSZFM.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/gCredPresIBSZFM.cs @@ -5,13 +5,17 @@ namespace NFe.Classes.Informacoes.Detalhe.Tributacao public class gCredPresIBSZFM { private decimal? _vCredPresIbsZfm; - - // UB110 + [XmlElement(Order = 1)] - public tpCredPresIBSZFM tpCredPresIBSZFM { get; set; } + // UB132 + public string competApur { get; set; } - // UB111 + // UB133 [XmlElement(Order = 2)] + public tpCredPresIBSZFM tpCredPresIBSZFM { get; set; } + + // UB134 + [XmlElement(Order = 3)] public decimal? vCredPresIBSZFM { get => _vCredPresIbsZfm.Arredondar(2); diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/gCredPresOper.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/gCredPresOper.cs new file mode 100644 index 000000000..2b459d261 --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/gCredPresOper.cs @@ -0,0 +1,29 @@ +using System.Xml.Serialization; + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao +{ + public class gCredPresOper + { + private decimal _vBCCredPres; + + //UB121 + [XmlElement(Order = 1)] + public decimal vBCCredPres + { + get => _vBCCredPres.Arredondar(2); + set => _vBCCredPres = value.Arredondar(2); + } + + //UB122 + [XmlElement(Order = 2)] + public TipocCredPres cCredPres { get; set; } + + // UB123 + [XmlElement(Order = 3)] + public gIBSCredPres? gIBSCredPres { get; set; } + + // UB127 + [XmlElement(Order = 4)] + public gIBSCredPres? gCBSCredPres { get; set; } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/gEstornoCred.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/gEstornoCred.cs new file mode 100644 index 000000000..76ac6fb82 --- /dev/null +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/gEstornoCred.cs @@ -0,0 +1,26 @@ +using System.Xml.Serialization; + +namespace NFe.Classes.Informacoes.Detalhe.Tributacao +{ + public class gEstornoCred + { + private decimal _vIBSEstCred; + private decimal _vCBSEstCred; + + // UB117 + [XmlElement(Order = 1)] + public decimal vIBSEstCred + { + get => _vIBSEstCred.Arredondar(2); + set => _vIBSEstCred = value.Arredondar(2); + } + + // UB118 + [XmlElement(Order = 2)] + public decimal vCBSEstCred + { + get => _vCBSEstCred.Arredondar(2); + set => _vCBSEstCred = value.Arredondar(2); + } + } +} \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/gIBSCBS.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/gIBSCBS.cs index af87fc818..4613a8ac7 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/gIBSCBS.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/gIBSCBS.cs @@ -44,14 +44,6 @@ public bool vIBSSpecified [XmlElement(Order = 6)] public gTribRegular gTribRegular { get; set; } - // UB73 - [XmlElement(Order = 7)] - public gIBSCredPres gIBSCredPres { get; set; } - - // UB78 - [XmlElement(Order = 8)] - public gIBSCredPres gCBSCredPres { get; set; } - // UB82a [XmlElement(Order = 9)] public gTribCompraGov gTribCompraGov { get; set; } diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/gIBSCredPres.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/gIBSCredPres.cs index 92e02d93e..f7999a9b5 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/gIBSCredPres.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/gIBSCredPres.cs @@ -6,34 +6,32 @@ public class gIBSCredPres { private decimal _pCredPres; private decimal _vCredPres; - private decimal _vCredPresCondSus; + private decimal? _vCredPresCondSus; - // UB74 + // UB124 [XmlElement(Order = 1)] - public TipocCredPres cCredPres { get; set; } - - // UB75 - [XmlElement(Order = 2)] public decimal pCredPres { get => _pCredPres.Arredondar(4); set => _pCredPres = value.Arredondar(4); } - // UB76 - [XmlElement(Order = 3)] + // UB125 + [XmlElement(Order = 2)] public decimal vCredPres { get => _vCredPres.Arredondar(2); set => _vCredPres = value.Arredondar(2); } - // UB77 - [XmlElement(Order = 4)] - public decimal vCredPresCondSus + // UB126 + [XmlElement(Order = 3)] + public decimal? vCredPresCondSus { get => _vCredPresCondSus.Arredondar(2); - set => _vCredPresCondSus = value.Arredondar(2); + set => _vCredPresCondSus = value?.Arredondar(2); } + + public bool ShouldSerializevCredPresCondSus() => vCredPresCondSus.HasValue; } } \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/prod.cs b/NFe.Classes/Informacoes/Detalhe/prod.cs index 17f14bf89..56b8e1ce1 100644 --- a/NFe.Classes/Informacoes/Detalhe/prod.cs +++ b/NFe.Classes/Informacoes/Detalhe/prod.cs @@ -3,6 +3,7 @@ using NFe.Classes.Informacoes.Detalhe.DeclaracaoImportacao; using NFe.Classes.Informacoes.Detalhe.Exportacao; using NFe.Classes.Informacoes.Detalhe.ProdEspecifico; +using NFe.Classes.Informacoes.Detalhe.Tributacao; using NFe.Classes.Informacoes.Identificacao.Tipos; namespace NFe.Classes.Informacoes.Detalhe @@ -103,6 +104,12 @@ public bool indEscalaSpecified [XmlElement("gCred")] public List gCred { get; set; } + /// + /// I05k -Classificação para subapuração do IBS na ZFM + /// Versão 4.00 - NT 2025.002 v1.30 + /// + public tpCredPresIBSZFM? tpCredPresIBSZFM { get; set; } + /// /// I06 - Código EX TIPI (3 posições) /// @@ -324,5 +331,19 @@ public bool ShouldSerializeindBemMovelUsado() return indBemMovelUsado.HasValue; } + public bool ShouldSerializetpCredPresIBSZFM() + { + return tpCredPresIBSZFM.HasValue; + } + + public bool ShouldSerializetpCredPresIBSZFM() + { + return tpCredPresIBSZFM.HasValue; + } + + public bool ShouldSerializeindBemMovelUsado() + { + return indBemMovelUsado.HasValue; + } } } \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Total/IBSCBSTot.cs b/NFe.Classes/Informacoes/Total/IBSCBSTot.cs index 5cdf7e2cb..21753ea2f 100644 --- a/NFe.Classes/Informacoes/Total/IBSCBSTot.cs +++ b/NFe.Classes/Informacoes/Total/IBSCBSTot.cs @@ -1,4 +1,5 @@ using System.Xml.Serialization; +using NFe.Classes.Informacoes.Detalhe.Tributacao; namespace NFe.Classes.Informacoes.Total { @@ -25,5 +26,9 @@ public decimal vBCIBSCBS // W57 [XmlElement(Order = 4)] public gMono gMono { get; set; } + + // W59e + [XmlElement(Order = 5)] + public gEstornoCred? gEstornoCred { get; set; } } } \ No newline at end of file