nfe_parser/base/item/imposto/
issqn.rs1use serde::{Deserialize, Serialize};
22
23#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
27pub struct Issqn {
28 #[serde(rename = "$unflatten=vBC")]
30 pub valor_bc: f32,
31
32 #[serde(rename = "$unflatten=vAliq")]
34 pub aliquota: f32,
35
36 #[serde(rename = "$unflatten=vISSQN")]
38 pub valor: f32,
39
40 #[serde(rename = "$unflatten=cMunFG")]
43 pub codigo_municipio_fato_gerador: String,
44
45 #[serde(rename = "$unflatten=cListServ")]
48 pub codigo_lista_servico: String,
49
50 #[serde(rename = "$unflatten=vDeducao")]
52 #[serde(skip_serializing_if = "Option::is_none")]
53 pub valor_deducao: Option<f32>,
54
55 #[serde(rename = "$unflatten=vOutro")]
57 #[serde(skip_serializing_if = "Option::is_none")]
58 pub valor_outras_retencoes: Option<f32>,
59
60 #[serde(rename = "$unflatten=vDescIncond")]
62 #[serde(skip_serializing_if = "Option::is_none")]
63 pub valor_desconto_incondicionado: Option<f32>,
64
65 #[serde(rename = "$unflatten=vDescCond")]
67 #[serde(skip_serializing_if = "Option::is_none")]
68 pub valor_desconto_condicionado: Option<f32>,
69
70 #[serde(rename = "$unflatten=vISSRet")]
72 #[serde(skip_serializing_if = "Option::is_none")]
73 pub valor_retencao_iss: Option<f32>,
74
75 #[serde(rename = "$unflatten=indISS")]
80 pub indicador_exigibilidade: u8,
81
82 #[serde(rename = "$unflatten=cServico")]
84 #[serde(skip_serializing_if = "Option::is_none")]
85 pub codigo_servico_municipio: Option<String>,
86
87 #[serde(rename = "$unflatten=cMun")]
89 #[serde(skip_serializing_if = "Option::is_none")]
90 pub codigo_municipio_incidencia: Option<String>,
91
92 #[serde(rename = "$unflatten=cPais")]
94 #[serde(skip_serializing_if = "Option::is_none")]
95 pub codigo_pais: Option<String>,
96
97 #[serde(rename = "$unflatten=nProcesso")]
100 #[serde(skip_serializing_if = "Option::is_none")]
101 pub numero_processo: Option<String>,
102
103 #[serde(rename = "$unflatten=indIncentivo")]
106 pub indicador_incentivo_fiscal: u8,
107}
108
109impl Default for Issqn {
110 fn default() -> Self {
111 Self {
112 valor_bc: 0.0,
113 aliquota: 0.0,
114 valor: 0.0,
115 codigo_municipio_fato_gerador: String::new(),
116 codigo_lista_servico: String::new(),
117 valor_deducao: None,
118 valor_outras_retencoes: None,
119 valor_desconto_incondicionado: None,
120 valor_desconto_condicionado: None,
121 valor_retencao_iss: None,
122 indicador_exigibilidade: 1,
123 codigo_servico_municipio: None,
124 codigo_municipio_incidencia: None,
125 codigo_pais: None,
126 numero_processo: None,
127 indicador_incentivo_fiscal: 2,
128 }
129 }
130}