Skip to main content

nfe_parser/base/item/
mod.rs

1//! Detalhamento de produtos e serviços da NF-e
2//!
3//! Este módulo contém as estruturas para representar os itens
4//! (produtos e serviços) da Nota Fiscal Eletrônica.
5
6use super::Error;
7use serde::{Deserialize, Serialize};
8use std::str::FromStr;
9
10mod imposto;
11mod produto;
12
13pub use imposto::*;
14pub use produto::*;
15
16/// Item da Nota Fiscal Eletrônica
17///
18/// Representa um produto ou serviço vendido na nota fiscal,
19/// incluindo dados do produto, quantidade, valores e impostos.
20#[derive(Debug, PartialEq, Deserialize, Serialize, Clone)]
21#[serde(rename = "det")]
22pub struct Item {
23    /// Número sequencial do item na NF-e
24    #[serde(rename = "nItem")]
25    pub numero: u8,
26    /// Dados do produto ou serviço
27    #[serde(rename = "prod")]
28    pub produto: Produto,
29    /// Impostos incidentes sobre o produto
30    #[serde(rename = "imposto")]
31    pub imposto: Imposto,
32}
33
34impl FromStr for Item {
35    type Err = Error;
36
37    fn from_str(s: &str) -> Result<Self, Self::Err> {
38        quick_xml::de::from_str(s).map_err(|e| e.into())
39    }
40}
41
42impl ToString for Item {
43    fn to_string(&self) -> String {
44        quick_xml::se::to_string(self).expect("Falha ao serializar o item")
45    }
46}