nfe_parser/base/item/imposto/
pis.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
7pub struct PisContainer {
8 #[serde(rename = "PISAliq")]
10 #[serde(skip_serializing_if = "Option::is_none")]
11 pub pis_aliq: Option<PisAliq>,
12 #[serde(rename = "PISNT")]
14 #[serde(skip_serializing_if = "Option::is_none")]
15 pub pis_nt: Option<PisNt>,
16 #[serde(rename = "PISOutr")]
18 #[serde(skip_serializing_if = "Option::is_none")]
19 pub pis_outr: Option<PisOutr>,
20}
21
22#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
24pub struct PisAliq {
25 #[serde(rename = "$unflatten=CST")]
27 pub cst: String,
28 #[serde(rename = "$unflatten=vBC")]
30 pub valor_bc: f32,
31 #[serde(rename = "$unflatten=pPIS")]
33 pub aliquota: f32,
34 #[serde(rename = "$unflatten=vPIS")]
36 pub valor: f32,
37}
38
39#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
41pub struct PisNt {
42 #[serde(rename = "$unflatten=CST")]
44 pub cst: String,
45}
46
47#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
49pub struct PisOutr {
50 #[serde(rename = "$unflatten=CST")]
52 pub cst: String,
53 #[serde(rename = "$unflatten=vBC")]
55 #[serde(skip_serializing_if = "Option::is_none")]
56 pub valor_bc: Option<f32>,
57 #[serde(rename = "$unflatten=pPIS")]
59 #[serde(skip_serializing_if = "Option::is_none")]
60 pub aliquota: Option<f32>,
61 #[serde(rename = "$unflatten=vPIS")]
63 #[serde(skip_serializing_if = "Option::is_none")]
64 pub valor: Option<f32>,
65}