From 45d97a1ea267fc778095c6ec7f890fc8afa57ff2 Mon Sep 17 00:00:00 2001 From: "Walisson Pires R. Miranda" Date: Mon, 30 Oct 2023 21:04:19 -0300 Subject: [PATCH] =?UTF-8?q?Add=20campos=20notas=20t=C3=A9cnicas=20(#1455)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Detalhe/Tributacao/Estadual/ICMS10.cs | 29 +++++++++++ .../Detalhe/Tributacao/Estadual/ICMS51.cs | 51 +++++++++++++++++++ .../Detalhe/Tributacao/Estadual/ICMS70.cs | 29 +++++++++++ .../Detalhe/Tributacao/Estadual/ICMS90.cs | 29 +++++++++++ .../Tributacao/Estadual/Tipos/ICMSTipos.cs | 29 +++++++++++ .../Detalhe/Tributacao/Federal/COFINSST.cs | 11 ++++ .../Detalhe/Tributacao/Federal/PISST.cs | 11 ++++ .../Tributacao/Federal/Tipos/COFINSTipos.cs | 17 +++++++ .../Tributacao/Federal/Tipos/PISTipos.cs | 17 +++++++ NFe.Classes/Informacoes/Detalhe/prod.cs | 10 ++++ .../Informacoes/Identificacao/NFref.cs | 5 ++ 11 files changed, 238 insertions(+) diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Estadual/ICMS10.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Estadual/ICMS10.cs index 24cfc2c3e..8a4773a72 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Estadual/ICMS10.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Estadual/ICMS10.cs @@ -51,6 +51,7 @@ public class ICMS10 : ICMSBasico private decimal? _vBcfcpst; private decimal? _pFcpst; private decimal? _vFcpst; + private decimal? _vICMSSTDeson; /// /// N11 - Origem da Mercadoria @@ -252,6 +253,34 @@ public bool vFCPSTSpecified get { return vFCPST.HasValue; } } + /// + /// N33a - Valor do ICMS- ST desonerado + /// Versão 4.00 + /// + [XmlElement(Order = 19)] + public decimal? vICMSSTDeson + { + get { return _vICMSSTDeson.Arredondar(2); } + set { _vICMSSTDeson = value.Arredondar(2); } + } + + public bool ShouldSerializevICMSSTDeson() + { + return vICMSSTDeson.HasValue; + } + + /// + /// N33b - Motivo da desoneração do ICMS- ST + /// Versão 4.00 + /// + [XmlElement(Order = 20)] + public MotivoDesoneracaoIcmsSt? motDesICMSST { get; set; } + + public bool ShouldSerializemotDesICMSST() + { + return motDesICMSST.HasValue; + } + public bool ShouldSerializepMVAST() { return pMVAST.HasValue; diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Estadual/ICMS51.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Estadual/ICMS51.cs index 478661a50..96c711626 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Estadual/ICMS51.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Estadual/ICMS51.cs @@ -47,6 +47,9 @@ public class ICMS51 : ICMSBasico private decimal? _vBcfcp; private decimal? _pFcp; private decimal? _vFcp; + private decimal? _pFCPDif; + private decimal? _vFCPDif; + private decimal? _vFCPEfet; /// /// N11 - Origem da Mercadoria @@ -184,6 +187,54 @@ public bool vFCPSpecified get { return vFCP.HasValue; } } + /// + /// N17d - Percentual do diferimento do ICMS relativo ao Fundo de Combate à Pobreza(FCP) + /// Versão 4.00 + /// + [XmlElement(Order = 14)] + public decimal? pFCPDif + { + get { return _pFCPDif.Arredondar(4); } + set { _pFCPDif = value.Arredondar(4); } + } + + public bool ShouldSerializepFCPDif() + { + return pFCPDif.HasValue; + } + + /// + /// N17e - Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP) diferido + /// Versão 4.00 + /// + [XmlElement(Order = 15)] + public decimal? vFCPDif + { + get { return _vFCPDif.Arredondar(2); } + set { _vFCPDif = value.Arredondar(2); } + } + + public bool ShouldSerializevFCPDif() + { + return vFCPDif.HasValue; + } + + /// + /// N17f - Valor efetivo do ICMS relativo ao Fundo de Combate à Pobreza(FCP) + /// Versão 4.00 + /// + [XmlElement(Order = 16)] + public decimal? vFCPEfet + { + get { return _vFCPEfet.Arredondar(2); } + set { _vFCPEfet = value.Arredondar(2); } + } + + public bool ShouldSerializevFCPEfet() + { + return vFCPEfet.HasValue; + } + public bool ShouldSerializemodBC() { return modBC.HasValue; diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Estadual/ICMS70.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Estadual/ICMS70.cs index 03cacaa13..2654530f7 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Estadual/ICMS70.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Estadual/ICMS70.cs @@ -53,6 +53,7 @@ public class ICMS70 : ICMSBasico private decimal? _vBcfcpst; private decimal? _pFcpst; private decimal? _vFcpst; + private decimal? _vICMSSTDeson; /// /// N11 - Origem da Mercadoria @@ -280,6 +281,34 @@ public decimal? vICMSDeson [XmlElement(Order = 21)] public MotivoDesoneracaoIcms? motDesICMS { get; set; } + /// + /// N33a - Valor do ICMS- ST desonerado + /// Versão 4.00 + /// + [XmlElement(Order = 22)] + public decimal? vICMSSTDeson + { + get { return _vICMSSTDeson.Arredondar(2); } + set { _vICMSSTDeson = value.Arredondar(2); } + } + + public bool ShouldSerializevICMSSTDeson() + { + return vICMSSTDeson.HasValue; + } + + /// + /// N33b - Motivo da desoneração do ICMS- ST + /// Versão 4.00 + /// + [XmlElement(Order = 23)] + public MotivoDesoneracaoIcmsSt? motDesICMSST { get; set; } + + public bool ShouldSerializemotDesICMSST() + { + return motDesICMSST.HasValue; + } + public bool ShouldSerializepMVAST() { return pMVAST.HasValue; diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Estadual/ICMS90.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Estadual/ICMS90.cs index 69b3cea2b..c365c70b8 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Estadual/ICMS90.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Estadual/ICMS90.cs @@ -53,6 +53,7 @@ public class ICMS90 : ICMSBasico private decimal? _vBcfcpst; private decimal? _pFcpst; private decimal? _vFcpst; + private decimal? _vICMSSTDeson; /// /// N11 - Origem da Mercadoria @@ -280,6 +281,34 @@ public decimal? vICMSDeson [XmlElement(Order = 21)] public MotivoDesoneracaoIcms? motDesICMS { get; set; } + /// + /// N33a - Valor do ICMS- ST desonerado + /// Versão 4.00 + /// + [XmlElement(Order = 22)] + public decimal? vICMSSTDeson + { + get { return _vICMSSTDeson.Arredondar(2); } + set { _vICMSSTDeson = value.Arredondar(2); } + } + + public bool ShouldSerializevICMSSTDeson() + { + return vICMSSTDeson.HasValue; + } + + /// + /// N33b - Motivo da desoneração do ICMS- ST + /// Versão 4.00 + /// + [XmlElement(Order = 23)] + public MotivoDesoneracaoIcmsSt? motDesICMSST { get; set; } + + public bool ShouldSerializemotDesICMSST() + { + return motDesICMSST.HasValue; + } + public bool ShouldSerializemodBC() { return modBC.HasValue; diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Estadual/Tipos/ICMSTipos.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Estadual/Tipos/ICMSTipos.cs index db904e885..b0a402ee9 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Estadual/Tipos/ICMSTipos.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Estadual/Tipos/ICMSTipos.cs @@ -587,4 +587,33 @@ public enum MotivoDesoneracaoIcms } #endregion + + /// + /// 3 – Uso na agropecuária; + /// 9 – Outros. (v2.0) + /// 12 – Órgão de fomento e desenvolvimento agropecuário + /// + public enum MotivoDesoneracaoIcmsSt + { + /// + /// 3 – Uso na agropecuária + /// + [Description("Uso na agropecuária")] + [XmlEnum("3")] + MdiProdutorAgropecuario = 3, + + /// + /// 9 – Outros. (v2.0) + /// + [Description("Outros")] + [XmlEnum("9")] + MdiOutros = 9, + + /// + /// 12 – Fomento agropecuário + /// + [Description("Órgão de fomento e desenvolvimento agropecuário")] + [XmlEnum("12")] + MdiFomentoAgropecuario = 12, + } } diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/COFINSST.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/COFINSST.cs index f92cf6372..a4e725927 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/COFINSST.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/COFINSST.cs @@ -98,6 +98,17 @@ public decimal? vCOFINS set { _vCofins = value.Arredondar(2); } } + /// + /// T07 - Indica se o valor da COFINSST compõe o valor total da NF-e + /// + [XmlElement(Order = 6)] + public IndSomaCOFINSST? indSomaCOFINSST { get; set; } + + public bool ShouldSerializeindSomaCOFINSST() + { + return indSomaCOFINSST.HasValue; + } + public bool ShouldSerializevBC() { return vBC.HasValue; diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/PISST.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/PISST.cs index 882a0a9bd..509b6648f 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/PISST.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/PISST.cs @@ -98,6 +98,17 @@ public decimal? vPIS get { return _vPis.Arredondar(2); } set { _vPis = value.Arredondar(2); } } + + /// + /// R07 - Indica se o valor do PISST compõe o valor total da NF-e + /// + [XmlElement(Order = 6)] + public IndSomaPISST? indSomaPISST { get; set; } + + public bool ShouldSerializeindSomaPISST() + { + return indSomaPISST.HasValue; + } public bool ShouldSerializevBC() { diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/Tipos/COFINSTipos.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/Tipos/COFINSTipos.cs index 614b4a33d..9b45a75cf 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/Tipos/COFINSTipos.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/Tipos/COFINSTipos.cs @@ -303,4 +303,21 @@ public enum CSTCOFINS [XmlEnum("99")] cofins99 = 99 } + + public enum IndSomaCOFINSST + { + /// + /// Valor do COFINSST não compõe o valor total da NF-e + /// + [Description("Valor do COFINSST não compõe o valor total da NF-e")] + [XmlEnum("0")] + NaoCompoe = 0, + + /// + /// N – Produzido em Escala NÃO Relevante + /// + [Description("Valor do COFINSST compõe o valor total da NF-e")] + [XmlEnum("1")] + Compoe = 1 + } } \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/Tipos/PISTipos.cs b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/Tipos/PISTipos.cs index 1a0a4bbce..9c6552ef4 100644 --- a/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/Tipos/PISTipos.cs +++ b/NFe.Classes/Informacoes/Detalhe/Tributacao/Federal/Tipos/PISTipos.cs @@ -304,4 +304,21 @@ public enum CSTPIS [XmlEnum("99")] pis99 = 99 } + + public enum IndSomaPISST + { + /// + /// Valor do PISST não compõe o valor total da NF-e + /// + [Description("Valor do PISST não compõe o valor total da NF-e")] + [XmlEnum("0")] + NaoCompoe = 0, + + /// + /// N – Produzido em Escala NÃO Relevante + /// + [Description("Valor do PISST compõe o valor total da NF-e")] + [XmlEnum("1")] + Compoe = 1 + } } \ No newline at end of file diff --git a/NFe.Classes/Informacoes/Detalhe/prod.cs b/NFe.Classes/Informacoes/Detalhe/prod.cs index ed89065a1..e53bfada3 100644 --- a/NFe.Classes/Informacoes/Detalhe/prod.cs +++ b/NFe.Classes/Informacoes/Detalhe/prod.cs @@ -74,6 +74,11 @@ public string cEAN set { _cEan = value ?? string.Empty; } } + /// + /// I03a - Código de barras diferente do padrão GTIN + /// + public string cBarra { get; set; } + /// /// I04 - Descrição do produto ou serviço /// @@ -174,6 +179,11 @@ public string cEANTrib set { _cEanTrib = value ?? string.Empty; } } + /// + /// I12a - Código de Barras da unidade tributável que seja diferente do padrão GTIN + /// + public string cBarraTrib { get; set; } + /// /// I13 - Unidade Tributável /// diff --git a/NFe.Classes/Informacoes/Identificacao/NFref.cs b/NFe.Classes/Informacoes/Identificacao/NFref.cs index 6461595fa..0a6b1328f 100644 --- a/NFe.Classes/Informacoes/Identificacao/NFref.cs +++ b/NFe.Classes/Informacoes/Identificacao/NFref.cs @@ -39,6 +39,11 @@ public class NFref /// public string refNFe { get; set; } + /// + /// BA02a - Chave da NF-e com o código numérico zerado + /// + public string refNFeSig { get; set; } + /// /// BA03 - Informação da NF modelo 1/1A referenciada ///