Skip to main content

fattureincloud_rs/models/
issued_document_ei_data.rs

1/*
2 * Fatture in Cloud API v2 - API Reference
3 *
4 * Connect your software with Fatture in Cloud, the invoicing platform chosen by more than 500.000 businesses in Italy.   The Fatture in Cloud API is based on REST, and makes possible to interact with the user related data prior authorization via OAuth2 protocol.
5 *
6 * The version of the OpenAPI document: 2.0.32
7 * Contact: info@fattureincloud.it
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12
13/// IssuedDocumentEiData : Issued document e-invoice data [Only if e_invoice=true]
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct IssuedDocumentEiData {
16    /// Vat kind [esigibilità IVA]
17    #[serde(rename = "vat_kind", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
18    pub vat_kind: Option<Option<VatKind>>,
19    /// Issued document original document type
20    #[serde(rename = "original_document_type", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
21    pub original_document_type: Option<Option<OriginalDocumentType>>,
22    /// E-invoice original document number
23    #[serde(rename = "od_number", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
24    pub od_number: Option<Option<String>>,
25    /// E-invoice original document date
26    #[serde(rename = "od_date", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
27    pub od_date: Option<Option<String>>,
28    /// E-invoice CIG
29    #[serde(rename = "cig", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
30    pub cig: Option<Option<String>>,
31    /// E-invoice CUP
32    #[serde(rename = "cup", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
33    pub cup: Option<Option<String>>,
34    /// E-invoice payment method [required for e-invoices] (see [here](https://www.fatturapa.gov.it/export/documenti/fatturapa/v1.2.2/Rappresentazione_Tabellare_FattOrdinaria_V1.2.2.pdf) for the accepted values of ModalitaPagamento)
35    #[serde(rename = "payment_method", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
36    pub payment_method: Option<Option<String>>,
37    /// E-invoice bank name
38    #[serde(rename = "bank_name", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
39    pub bank_name: Option<Option<String>>,
40    /// E-invoice bank IBAN
41    #[serde(rename = "bank_iban", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
42    pub bank_iban: Option<Option<String>>,
43    /// E-invoice bank beneficiary
44    #[serde(rename = "bank_beneficiary", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
45    pub bank_beneficiary: Option<Option<String>>,
46    /// E-invoice invoice number
47    #[serde(rename = "invoice_number", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
48    pub invoice_number: Option<Option<String>>,
49    /// E-invoice invoice date
50    #[serde(rename = "invoice_date", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
51    pub invoice_date: Option<Option<String>>,
52}
53
54impl IssuedDocumentEiData {
55    /// Issued document e-invoice data [Only if e_invoice=true]
56    pub fn new() -> IssuedDocumentEiData {
57        IssuedDocumentEiData {
58            vat_kind: None,
59            original_document_type: None,
60            od_number: None,
61            od_date: None,
62            cig: None,
63            cup: None,
64            payment_method: None,
65            bank_name: None,
66            bank_iban: None,
67            bank_beneficiary: None,
68            invoice_number: None,
69            invoice_date: None,
70        }
71    }
72}
73/// Vat kind [esigibilità IVA]
74#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
75pub enum VatKind {
76    #[serde(rename = "null")]
77    Null,
78    #[serde(rename = "I")]
79    I,
80    #[serde(rename = "D")]
81    D,
82    #[serde(rename = "S")]
83    S,
84}
85
86impl Default for VatKind {
87    fn default() -> VatKind {
88        Self::Null
89    }
90}
91/// Issued document original document type
92#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
93pub enum OriginalDocumentType {
94    #[serde(rename = "ordine")]
95    Ordine,
96    #[serde(rename = "contratto")]
97    Contratto,
98    #[serde(rename = "convenzione")]
99    Convenzione,
100}
101
102impl Default for OriginalDocumentType {
103    fn default() -> OriginalDocumentType {
104        Self::Ordine
105    }
106}
107