Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,10 @@ public class DFeReferenciado
/// P31 - Informa a chave da nota (NFe ou NFCe) emitida para o fornecimento nos casos em que a legislação obriga a emissão de documento fiscal.
/// </summary>
public string chaveAcesso { get; set; }

/// <summary>
/// P32 - Corresponde ao nItem do DFeReferenciado
/// P32 - Corresponde ao "nItem" do DFeReferenciado.
/// </summary>
public int nItemDFeRef { get; set; }
public int nItem { get; set; }
}
}
}
74 changes: 8 additions & 66 deletions NFe.Classes/Servicos/Evento/Informacoes/ItemConsumo/gConsumo.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/********************************************************************************/
/********************************************************************************/
/* Projeto: Biblioteca ZeusNFe */
/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */
/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */
Expand Down Expand Up @@ -31,10 +31,7 @@
/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */
/********************************************************************************/

using System;
using System.Linq;
using System.Xml.Serialization;
using NFe.Classes.Servicos.Tipos;

namespace NFe.Classes.Servicos.Evento.Informacoes.ItemConsumo
{
Expand All @@ -43,96 +40,41 @@ public class gConsumo
private decimal _vIbs;
private decimal _vCbs;

public gConsumo(NFeTipoEvento nFeTipoEvento)
{
var eventosPermitidos = new[]
{
NFeTipoEvento.TeNfeDestinacaoDeItemParaConsumoPessoal,
NFeTipoEvento.TeNfeImportacaoEmAlcZfmNaoConvertidaEmIsencao
};

if (!eventosPermitidos.Contains(nFeTipoEvento))
throw new ArgumentException($"Não é permitido instanciar gConsumo com o evento {nFeTipoEvento}.", nameof(nFeTipoEvento));

if (nFeTipoEvento == NFeTipoEvento.TeNfeDestinacaoDeItemParaConsumoPessoal)
_serializarValorIbsECbsComoAtributo = true;
}

private gConsumo() { } // Construtor sem parâmetros necessário apenas para o XmlSerializer

/// <summary>
/// P24 - Corresponde ao atributo nItem do elemento det da NF-e de aquisição
/// P24 - Corresponde ao atributo "nItem" do elemento "det" da NF-e de aquisição
/// </summary>
[XmlAttribute("nItem")]
public int nItem { get; set; }

/// <summary>
/// P25 - Valor do IBS na nota de aquisição correspondente à quantidade destinada a uso e consumo pessoal
/// </summary>
[XmlIgnore]
public decimal vIBS
{
get => _vIbs.Arredondar(2);
set => _vIbs = value.Arredondar(2);
}

[XmlAttribute("vIBS")]
public decimal vIBS_AsAttribute
{
get => vIBS;
set => vIBS = value;
}

[XmlElement("vIBS")]
public decimal vIBS_AsElement
{
get => vIBS;
set => vIBS = value;
}

/// <summary>
/// P26 - Valor da CBS na nota de aquisição correspondente à quantidade destinada a uso e consumo pessoal
/// </summary>
[XmlIgnore]
public decimal vCBS
{
get => _vCbs.Arredondar(2);
set => _vCbs = value.Arredondar(2);
}

[XmlAttribute("vCBS")]
public decimal vCBS_AsAttribute
{
get => vCBS;
set => vCBS = value;
}

[XmlElement("vCBS")]
public decimal vCBS_AsElement
{
get => vCBS;
set => vCBS = value;
}

/// <summary>
/// P27 - Informações de quantidade de estoque influenciadas pelo evento
/// </summary>
[XmlElement(ElementName = "gControleEstoque")]
public gControleEstoque gControleEstoque { get; set; }

/// <summary>
/// P30 - Informações por item da NF-e de Uso e Consumo Pessoal
/// P30 - Informações por item da NF-e de Uso e Consumo Pessoal.
/// Usado apenas pelo evento e211120 (Destinação de item para consumo pessoal).
/// XSD do e112120 (AlcZfm) não declara este elemento — propriedade fica null nesse caso.
/// </summary>
public DFeReferenciado DFeReferenciado { get; set; }

private bool _serializarValorIbsECbsComoAtributo { get; }

public bool ShouldSerializevCBS_AsAttribute() => _serializarValorIbsECbsComoAtributo;

public bool ShouldSerializevCBS_AsElement() => !_serializarValorIbsECbsComoAtributo;

public bool ShouldSerializevIBS_AsAttribute() => _serializarValorIbsECbsComoAtributo;

public bool ShouldSerializevIBS_AsElement() => !_serializarValorIbsECbsComoAtributo;
}
}
}
Loading
Loading