1use crate::models;
12
13#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
14pub struct IssuedDocument {
15 #[serde(rename = "id", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
17 pub id: Option<Option<i32>>,
18 #[serde(rename = "entity", skip_serializing_if = "Option::is_none")]
19 pub entity: Option<Box<models::Entity>>,
20 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
22 pub r#type: Option<Type>,
23 #[serde(rename = "number", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
25 pub number: Option<Option<i32>>,
26 #[serde(rename = "numeration", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
28 pub numeration: Option<Option<String>>,
29 #[serde(rename = "date", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
31 pub date: Option<Option<String>>,
32 #[serde(rename = "year", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
34 pub year: Option<Option<i32>>,
35 #[serde(rename = "currency", skip_serializing_if = "Option::is_none")]
36 pub currency: Option<Box<models::Currency>>,
37 #[serde(rename = "language", skip_serializing_if = "Option::is_none")]
38 pub language: Option<Box<models::Language>>,
39 #[serde(rename = "subject", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
41 pub subject: Option<Option<String>>,
42 #[serde(rename = "visible_subject", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
44 pub visible_subject: Option<Option<String>>,
45 #[serde(rename = "rc_center", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
47 pub rc_center: Option<Option<String>>,
48 #[serde(rename = "notes", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
50 pub notes: Option<Option<String>>,
51 #[serde(rename = "rivalsa", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
53 pub rivalsa: Option<Option<f64>>,
54 #[serde(rename = "cassa", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
56 pub cassa: Option<Option<f64>>,
57 #[serde(rename = "amount_cassa", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
59 pub amount_cassa: Option<Option<f64>>,
60 #[serde(rename = "cassa_taxable", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
62 pub cassa_taxable: Option<Option<f64>>,
63 #[serde(rename = "amount_cassa_taxable", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
65 pub amount_cassa_taxable: Option<Option<f64>>,
66 #[serde(rename = "cassa2", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
68 pub cassa2: Option<Option<f64>>,
69 #[serde(rename = "amount_cassa2", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
71 pub amount_cassa2: Option<Option<f64>>,
72 #[serde(rename = "cassa2_taxable", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
74 pub cassa2_taxable: Option<Option<f64>>,
75 #[serde(rename = "amount_cassa2_taxable", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
77 pub amount_cassa2_taxable: Option<Option<f64>>,
78 #[serde(rename = "global_cassa_taxable", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
80 pub global_cassa_taxable: Option<Option<f64>>,
81 #[serde(rename = "amount_global_cassa_taxable", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
83 pub amount_global_cassa_taxable: Option<Option<f64>>,
84 #[serde(rename = "withholding_tax", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
86 pub withholding_tax: Option<Option<f64>>,
87 #[serde(rename = "withholding_tax_taxable", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
89 pub withholding_tax_taxable: Option<Option<f64>>,
90 #[serde(rename = "other_withholding_tax", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
92 pub other_withholding_tax: Option<Option<f64>>,
93 #[serde(rename = "stamp_duty", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
95 pub stamp_duty: Option<Option<f64>>,
96 #[serde(rename = "payment_method", skip_serializing_if = "Option::is_none")]
97 pub payment_method: Option<Box<models::PaymentMethod>>,
98 #[serde(rename = "use_split_payment", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
100 pub use_split_payment: Option<Option<bool>>,
101 #[serde(rename = "use_gross_prices", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
103 pub use_gross_prices: Option<Option<bool>>,
104 #[serde(rename = "e_invoice", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
106 pub e_invoice: Option<Option<bool>>,
107 #[serde(rename = "ei_data", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
108 pub ei_data: Option<Option<Box<models::IssuedDocumentEiData>>>,
109 #[serde(rename = "ei_cassa_type", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
111 pub ei_cassa_type: Option<Option<String>>,
112 #[serde(rename = "ei_cassa2_type", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
114 pub ei_cassa2_type: Option<Option<String>>,
115 #[serde(rename = "ei_withholding_tax_causal", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
117 pub ei_withholding_tax_causal: Option<Option<String>>,
118 #[serde(rename = "ei_other_withholding_tax_type", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
120 pub ei_other_withholding_tax_type: Option<Option<String>>,
121 #[serde(rename = "ei_other_withholding_tax_causal", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
123 pub ei_other_withholding_tax_causal: Option<Option<String>>,
124 #[serde(rename = "items_list", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
125 pub items_list: Option<Option<Vec<models::IssuedDocumentItemsListItem>>>,
126 #[serde(rename = "payments_list", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
127 pub payments_list: Option<Option<Vec<models::IssuedDocumentPaymentsListItem>>>,
128 #[serde(rename = "template", skip_serializing_if = "Option::is_none")]
129 pub template: Option<Box<models::DocumentTemplate>>,
130 #[serde(rename = "delivery_note_template", skip_serializing_if = "Option::is_none")]
131 pub delivery_note_template: Option<Box<models::DocumentTemplate>>,
132 #[serde(rename = "acc_inv_template", skip_serializing_if = "Option::is_none")]
133 pub acc_inv_template: Option<Box<models::DocumentTemplate>>,
134 #[serde(rename = "h_margins", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
136 pub h_margins: Option<Option<i32>>,
137 #[serde(rename = "v_margins", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
139 pub v_margins: Option<Option<i32>>,
140 #[serde(rename = "show_payments", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
142 pub show_payments: Option<Option<bool>>,
143 #[serde(rename = "show_payment_method", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
145 pub show_payment_method: Option<Option<bool>>,
146 #[serde(rename = "show_totals", skip_serializing_if = "Option::is_none")]
148 pub show_totals: Option<ShowTotals>,
149 #[serde(rename = "show_notification_button", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
151 pub show_notification_button: Option<Option<bool>>,
152 #[serde(rename = "show_tspay_button", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
154 pub show_tspay_button: Option<Option<bool>>,
155 #[serde(rename = "delivery_note", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
157 pub delivery_note: Option<Option<bool>>,
158 #[serde(rename = "accompanying_invoice", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
160 pub accompanying_invoice: Option<Option<bool>>,
161 #[serde(rename = "dn_number", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
163 pub dn_number: Option<Option<i32>>,
164 #[serde(rename = "dn_date", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
166 pub dn_date: Option<Option<String>>,
167 #[serde(rename = "dn_ai_packages_number", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
169 pub dn_ai_packages_number: Option<Option<String>>,
170 #[serde(rename = "dn_ai_weight", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
172 pub dn_ai_weight: Option<Option<String>>,
173 #[serde(rename = "dn_ai_causal", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
175 pub dn_ai_causal: Option<Option<String>>,
176 #[serde(rename = "dn_ai_destination", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
178 pub dn_ai_destination: Option<Option<String>>,
179 #[serde(rename = "dn_ai_transporter", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
181 pub dn_ai_transporter: Option<Option<String>>,
182 #[serde(rename = "dn_ai_notes", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
184 pub dn_ai_notes: Option<Option<String>>,
185 #[serde(rename = "is_marked", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
187 pub is_marked: Option<Option<bool>>,
188 #[serde(rename = "amount_net", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
190 pub amount_net: Option<Option<f64>>,
191 #[serde(rename = "amount_vat", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
193 pub amount_vat: Option<Option<f64>>,
194 #[serde(rename = "amount_gross", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
196 pub amount_gross: Option<Option<f64>>,
197 #[serde(rename = "amount_due_discount", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
199 pub amount_due_discount: Option<Option<f64>>,
200 #[serde(rename = "amount_rivalsa", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
202 pub amount_rivalsa: Option<Option<f64>>,
203 #[serde(rename = "amount_rivalsa_taxable", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
205 pub amount_rivalsa_taxable: Option<Option<f64>>,
206 #[serde(rename = "amount_withholding_tax", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
208 pub amount_withholding_tax: Option<Option<f64>>,
209 #[serde(rename = "amount_withholding_tax_taxable", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
211 pub amount_withholding_tax_taxable: Option<Option<f64>>,
212 #[serde(rename = "amount_other_withholding_tax", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
214 pub amount_other_withholding_tax: Option<Option<f64>>,
215 #[serde(rename = "amount_other_withholding_tax_taxable", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
217 pub amount_other_withholding_tax_taxable: Option<Option<f64>>,
218 #[serde(rename = "amount_enasarco_taxable", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
220 pub amount_enasarco_taxable: Option<Option<f64>>,
221 #[serde(rename = "extra_data", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
222 pub extra_data: Option<Option<Box<models::IssuedDocumentExtraData>>>,
223 #[serde(rename = "seen_date", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
225 pub seen_date: Option<Option<String>>,
226 #[serde(rename = "next_due_date", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
228 pub next_due_date: Option<Option<String>>,
229 #[serde(rename = "url", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
231 pub url: Option<Option<String>>,
232 #[serde(rename = "dn_url", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
234 pub dn_url: Option<Option<String>>,
235 #[serde(rename = "ai_url", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
237 pub ai_url: Option<Option<String>>,
238 #[serde(rename = "attachment_url", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
240 pub attachment_url: Option<Option<String>>,
241 #[serde(rename = "attachment_token", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
243 pub attachment_token: Option<Option<String>>,
244 #[serde(rename = "ei_raw", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
246 pub ei_raw: Option<Option<serde_json::Value>>,
247 #[serde(rename = "ei_status", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
249 pub ei_status: Option<Option<EiStatus>>,
250 #[serde(rename = "locked", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
252 pub locked: Option<Option<bool>>,
253 #[serde(rename = "created_at", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
255 pub created_at: Option<Option<String>>,
256 #[serde(rename = "updated_at", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
258 pub updated_at: Option<Option<String>>,
259}
260
261impl IssuedDocument {
262 pub fn new() -> IssuedDocument {
263 IssuedDocument {
264 id: None,
265 entity: None,
266 r#type: None,
267 number: None,
268 numeration: None,
269 date: None,
270 year: None,
271 currency: None,
272 language: None,
273 subject: None,
274 visible_subject: None,
275 rc_center: None,
276 notes: None,
277 rivalsa: None,
278 cassa: None,
279 amount_cassa: None,
280 cassa_taxable: None,
281 amount_cassa_taxable: None,
282 cassa2: None,
283 amount_cassa2: None,
284 cassa2_taxable: None,
285 amount_cassa2_taxable: None,
286 global_cassa_taxable: None,
287 amount_global_cassa_taxable: None,
288 withholding_tax: None,
289 withholding_tax_taxable: None,
290 other_withholding_tax: None,
291 stamp_duty: None,
292 payment_method: None,
293 use_split_payment: None,
294 use_gross_prices: None,
295 e_invoice: None,
296 ei_data: None,
297 ei_cassa_type: None,
298 ei_cassa2_type: None,
299 ei_withholding_tax_causal: None,
300 ei_other_withholding_tax_type: None,
301 ei_other_withholding_tax_causal: None,
302 items_list: None,
303 payments_list: None,
304 template: None,
305 delivery_note_template: None,
306 acc_inv_template: None,
307 h_margins: None,
308 v_margins: None,
309 show_payments: None,
310 show_payment_method: None,
311 show_totals: None,
312 show_notification_button: None,
313 show_tspay_button: None,
314 delivery_note: None,
315 accompanying_invoice: None,
316 dn_number: None,
317 dn_date: None,
318 dn_ai_packages_number: None,
319 dn_ai_weight: None,
320 dn_ai_causal: None,
321 dn_ai_destination: None,
322 dn_ai_transporter: None,
323 dn_ai_notes: None,
324 is_marked: None,
325 amount_net: None,
326 amount_vat: None,
327 amount_gross: None,
328 amount_due_discount: None,
329 amount_rivalsa: None,
330 amount_rivalsa_taxable: None,
331 amount_withholding_tax: None,
332 amount_withholding_tax_taxable: None,
333 amount_other_withholding_tax: None,
334 amount_other_withholding_tax_taxable: None,
335 amount_enasarco_taxable: None,
336 extra_data: None,
337 seen_date: None,
338 next_due_date: None,
339 url: None,
340 dn_url: None,
341 ai_url: None,
342 attachment_url: None,
343 attachment_token: None,
344 ei_raw: None,
345 ei_status: None,
346 locked: None,
347 created_at: None,
348 updated_at: None,
349 }
350 }
351}
352#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
354pub enum Type {
355 #[serde(rename = "invoice")]
356 Invoice,
357 #[serde(rename = "quote")]
358 Quote,
359 #[serde(rename = "proforma")]
360 Proforma,
361 #[serde(rename = "receipt")]
362 Receipt,
363 #[serde(rename = "delivery_note")]
364 DeliveryNote,
365 #[serde(rename = "credit_note")]
366 CreditNote,
367 #[serde(rename = "order")]
368 Order,
369 #[serde(rename = "work_report")]
370 WorkReport,
371 #[serde(rename = "supplier_order")]
372 SupplierOrder,
373 #[serde(rename = "self_own_invoice")]
374 SelfOwnInvoice,
375 #[serde(rename = "self_supplier_invoice")]
376 SelfSupplierInvoice,
377}
378
379impl Default for Type {
380 fn default() -> Type {
381 Self::Invoice
382 }
383}
384#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
386pub enum ShowTotals {
387 #[serde(rename = "none")]
388 None,
389 #[serde(rename = "nets")]
390 Nets,
391 #[serde(rename = "all")]
392 All,
393}
394
395impl Default for ShowTotals {
396 fn default() -> ShowTotals {
397 Self::None
398 }
399}
400#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
402pub enum EiStatus {
403 #[serde(rename = "attempt")]
404 Attempt,
405 #[serde(rename = "missing")]
406 Missing,
407 #[serde(rename = "not_sent")]
408 NotSent,
409 #[serde(rename = "sent")]
410 Sent,
411 #[serde(rename = "pending")]
412 Pending,
413 #[serde(rename = "processing")]
414 Processing,
415 #[serde(rename = "error")]
416 Error,
417 #[serde(rename = "discarded")]
418 Discarded,
419 #[serde(rename = "not_delivered")]
420 NotDelivered,
421 #[serde(rename = "accepted")]
422 Accepted,
423 #[serde(rename = "rejected")]
424 Rejected,
425 #[serde(rename = "no_response")]
426 NoResponse,
427 #[serde(rename = "manual_accepted")]
428 ManualAccepted,
429 #[serde(rename = "manual_rejected")]
430 ManualRejected,
431}
432
433impl Default for EiStatus {
434 fn default() -> EiStatus {
435 Self::Attempt
436 }
437}
438