nfe_parser/base/item/imposto/ii.rs
1//! II - Imposto de Importação
2//!
3//! Este módulo implementa a estrutura para representar o Imposto de Importação na NF-e.
4//!
5//! ## Quando Utilizar
6//!
7//! O grupo II deve ser informado quando a operação for de importação,
8//! independente se há ou não incidência do imposto.
9//!
10//! ## Cálculo
11//!
12//! ```text
13//! vII = vBC × (alíquota II / 100)
14//! ```
15//!
16//! O valor da base de cálculo é geralmente composto por:
17//! - Valor aduaneiro (CIF: custo + seguro + frete internacional)
18//! - Despesas aduaneiras
19
20use serde::{Deserialize, Serialize};
21
22/// Imposto de Importação (tag `<II>`)
23///
24/// Obrigatório para operações de importação.
25#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
26pub struct ImpostoImportacao {
27 /// Valor da Base de Cálculo do II (tag `<vBC>`)
28 /// Normalmente: valor aduaneiro + despesas aduaneiras
29 #[serde(rename = "$unflatten=vBC")]
30 pub valor_bc: f32,
31
32 /// Valor das despesas aduaneiras (tag `<vDespAdu>`)
33 #[serde(rename = "$unflatten=vDespAdu")]
34 pub valor_despesas_aduaneiras: f32,
35
36 /// Valor do Imposto de Importação (tag `<vII>`)
37 #[serde(rename = "$unflatten=vII")]
38 pub valor: f32,
39
40 /// Valor do Imposto sobre Operações Financeiras (tag `<vIOF>`)
41 #[serde(rename = "$unflatten=vIOF")]
42 pub valor_iof: f32,
43}
44
45impl Default for ImpostoImportacao {
46 fn default() -> Self {
47 Self {
48 valor_bc: 0.0,
49 valor_despesas_aduaneiras: 0.0,
50 valor: 0.0,
51 valor_iof: 0.0,
52 }
53 }
54}