1use serde::{Deserialize, Serialize};
42
43#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Default)]
48pub struct IcmsContainer {
49 #[serde(rename = "ICMS00")]
51 #[serde(skip_serializing_if = "Option::is_none")]
52 pub icms00: Option<Icms00>,
53
54 #[serde(rename = "ICMS10")]
56 #[serde(skip_serializing_if = "Option::is_none")]
57 pub icms10: Option<Icms10>,
58
59 #[serde(rename = "ICMS20")]
61 #[serde(skip_serializing_if = "Option::is_none")]
62 pub icms20: Option<Icms20>,
63
64 #[serde(rename = "ICMS30")]
66 #[serde(skip_serializing_if = "Option::is_none")]
67 pub icms30: Option<Icms30>,
68
69 #[serde(rename = "ICMS40")]
71 #[serde(skip_serializing_if = "Option::is_none")]
72 pub icms40: Option<Icms40>,
73
74 #[serde(rename = "ICMS41")]
76 #[serde(skip_serializing_if = "Option::is_none")]
77 pub icms41: Option<Icms41>,
78
79 #[serde(rename = "ICMS50")]
81 #[serde(skip_serializing_if = "Option::is_none")]
82 pub icms50: Option<Icms50>,
83
84 #[serde(rename = "ICMS51")]
86 #[serde(skip_serializing_if = "Option::is_none")]
87 pub icms51: Option<Icms51>,
88
89 #[serde(rename = "ICMS60")]
91 #[serde(skip_serializing_if = "Option::is_none")]
92 pub icms60: Option<Icms60>,
93
94 #[serde(rename = "ICMS70")]
96 #[serde(skip_serializing_if = "Option::is_none")]
97 pub icms70: Option<Icms70>,
98
99 #[serde(rename = "ICMS90")]
101 #[serde(skip_serializing_if = "Option::is_none")]
102 pub icms90: Option<Icms90>,
103
104 #[serde(rename = "ICMSSN101")]
106 #[serde(skip_serializing_if = "Option::is_none")]
107 pub icms_sn101: Option<IcmsSn101>,
108
109 #[serde(rename = "ICMSSN102")]
111 #[serde(skip_serializing_if = "Option::is_none")]
112 pub icms_sn102: Option<IcmsSn102>,
113
114 #[serde(rename = "ICMSSN201")]
116 #[serde(skip_serializing_if = "Option::is_none")]
117 pub icms_sn201: Option<IcmsSn201>,
118
119 #[serde(rename = "ICMSSN202")]
121 #[serde(skip_serializing_if = "Option::is_none")]
122 pub icms_sn202: Option<IcmsSn202>,
123
124 #[serde(rename = "ICMSSN500")]
126 #[serde(skip_serializing_if = "Option::is_none")]
127 pub icms_sn500: Option<IcmsSn500>,
128
129 #[serde(rename = "ICMSSN900")]
131 #[serde(skip_serializing_if = "Option::is_none")]
132 pub icms_sn900: Option<IcmsSn900>,
133}
134
135#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
140pub struct Icms00 {
141 #[serde(rename = "$unflatten=orig")]
143 pub origem: u8,
144
145 #[serde(rename = "$unflatten=CST")]
147 pub cst: String,
148
149 #[serde(rename = "$unflatten=modBC")]
151 pub modalidade_bc: u8,
152
153 #[serde(rename = "$unflatten=vBC")]
155 pub valor_bc: f32,
156
157 #[serde(rename = "$unflatten=pICMS")]
159 pub aliquota: f32,
160
161 #[serde(rename = "$unflatten=vICMS")]
163 pub valor: f32,
164
165 #[serde(rename = "$unflatten=pFCP")]
167 #[serde(skip_serializing_if = "Option::is_none")]
168 pub percentual_fcp: Option<f32>,
169
170 #[serde(rename = "$unflatten=vFCP")]
172 #[serde(skip_serializing_if = "Option::is_none")]
173 pub valor_fcp: Option<f32>,
174}
175
176#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
181pub struct Icms10 {
182 #[serde(rename = "$unflatten=orig")]
184 pub origem: u8,
185
186 #[serde(rename = "$unflatten=CST")]
188 pub cst: String,
189
190 #[serde(rename = "$unflatten=modBC")]
192 pub modalidade_bc: u8,
193
194 #[serde(rename = "$unflatten=vBC")]
196 pub valor_bc: f32,
197
198 #[serde(rename = "$unflatten=pICMS")]
200 pub aliquota: f32,
201
202 #[serde(rename = "$unflatten=vICMS")]
204 pub valor: f32,
205
206 #[serde(rename = "$unflatten=pFCP")]
208 #[serde(skip_serializing_if = "Option::is_none")]
209 pub percentual_fcp: Option<f32>,
210
211 #[serde(rename = "$unflatten=vFCP")]
213 #[serde(skip_serializing_if = "Option::is_none")]
214 pub valor_fcp: Option<f32>,
215
216 #[serde(rename = "$unflatten=modBCST")]
218 pub modalidade_bc_st: u8,
219
220 #[serde(rename = "$unflatten=pMVAST")]
222 #[serde(skip_serializing_if = "Option::is_none")]
223 pub percentual_mva_st: Option<f32>,
224
225 #[serde(rename = "$unflatten=pRedBCST")]
227 #[serde(skip_serializing_if = "Option::is_none")]
228 pub percentual_reducao_bc_st: Option<f32>,
229
230 #[serde(rename = "$unflatten=vBCST")]
232 pub valor_bc_st: f32,
233
234 #[serde(rename = "$unflatten=pICMSST")]
236 pub aliquota_st: f32,
237
238 #[serde(rename = "$unflatten=vICMSST")]
240 pub valor_st: f32,
241
242 #[serde(rename = "$unflatten=pFCPST")]
244 #[serde(skip_serializing_if = "Option::is_none")]
245 pub percentual_fcp_st: Option<f32>,
246
247 #[serde(rename = "$unflatten=vFCPST")]
249 #[serde(skip_serializing_if = "Option::is_none")]
250 pub valor_fcp_st: Option<f32>,
251}
252
253#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
255pub struct Icms20 {
256 #[serde(rename = "$unflatten=orig")]
258 pub origem: u8,
259
260 #[serde(rename = "$unflatten=CST")]
262 pub cst: String,
263
264 #[serde(rename = "$unflatten=modBC")]
266 pub modalidade_bc: u8,
267
268 #[serde(rename = "$unflatten=pRedBC")]
270 pub percentual_reducao_bc: f32,
271
272 #[serde(rename = "$unflatten=vBC")]
274 pub valor_bc: f32,
275
276 #[serde(rename = "$unflatten=pICMS")]
278 pub aliquota: f32,
279
280 #[serde(rename = "$unflatten=vICMS")]
282 pub valor: f32,
283
284 #[serde(rename = "$unflatten=pFCP")]
286 #[serde(skip_serializing_if = "Option::is_none")]
287 pub percentual_fcp: Option<f32>,
288
289 #[serde(rename = "$unflatten=vFCP")]
291 #[serde(skip_serializing_if = "Option::is_none")]
292 pub valor_fcp: Option<f32>,
293
294 #[serde(rename = "$unflatten=vICMSDeson")]
296 #[serde(skip_serializing_if = "Option::is_none")]
297 pub valor_icms_desonerado: Option<f32>,
298
299 #[serde(rename = "$unflatten=motDesICMS")]
301 #[serde(skip_serializing_if = "Option::is_none")]
302 pub motivo_desoneracao: Option<u8>,
303}
304
305#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
307pub struct Icms30 {
308 #[serde(rename = "$unflatten=orig")]
310 pub origem: u8,
311
312 #[serde(rename = "$unflatten=CST")]
314 pub cst: String,
315
316 #[serde(rename = "$unflatten=modBCST")]
318 pub modalidade_bc_st: u8,
319
320 #[serde(rename = "$unflatten=pMVAST")]
322 #[serde(skip_serializing_if = "Option::is_none")]
323 pub percentual_mva_st: Option<f32>,
324
325 #[serde(rename = "$unflatten=pRedBCST")]
327 #[serde(skip_serializing_if = "Option::is_none")]
328 pub percentual_reducao_bc_st: Option<f32>,
329
330 #[serde(rename = "$unflatten=vBCST")]
332 pub valor_bc_st: f32,
333
334 #[serde(rename = "$unflatten=pICMSST")]
336 pub aliquota_st: f32,
337
338 #[serde(rename = "$unflatten=vICMSST")]
340 pub valor_st: f32,
341
342 #[serde(rename = "$unflatten=pFCPST")]
344 #[serde(skip_serializing_if = "Option::is_none")]
345 pub percentual_fcp_st: Option<f32>,
346
347 #[serde(rename = "$unflatten=vFCPST")]
349 #[serde(skip_serializing_if = "Option::is_none")]
350 pub valor_fcp_st: Option<f32>,
351
352 #[serde(rename = "$unflatten=vICMSDeson")]
354 #[serde(skip_serializing_if = "Option::is_none")]
355 pub valor_icms_desonerado: Option<f32>,
356
357 #[serde(rename = "$unflatten=motDesICMS")]
359 #[serde(skip_serializing_if = "Option::is_none")]
360 pub motivo_desoneracao: Option<u8>,
361}
362
363#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
365pub struct Icms40 {
366 #[serde(rename = "$unflatten=orig")]
368 pub origem: u8,
369
370 #[serde(rename = "$unflatten=CST")]
372 pub cst: String,
373
374 #[serde(rename = "$unflatten=vICMSDeson")]
376 #[serde(skip_serializing_if = "Option::is_none")]
377 pub valor_icms_desonerado: Option<f32>,
378
379 #[serde(rename = "$unflatten=motDesICMS")]
381 #[serde(skip_serializing_if = "Option::is_none")]
382 pub motivo_desoneracao: Option<u8>,
383}
384
385#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
387pub struct Icms41 {
388 #[serde(rename = "$unflatten=orig")]
390 pub origem: u8,
391
392 #[serde(rename = "$unflatten=CST")]
394 pub cst: String,
395
396 #[serde(rename = "$unflatten=vICMSDeson")]
398 #[serde(skip_serializing_if = "Option::is_none")]
399 pub valor_icms_desonerado: Option<f32>,
400
401 #[serde(rename = "$unflatten=motDesICMS")]
403 #[serde(skip_serializing_if = "Option::is_none")]
404 pub motivo_desoneracao: Option<u8>,
405}
406
407#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
409pub struct Icms50 {
410 #[serde(rename = "$unflatten=orig")]
412 pub origem: u8,
413
414 #[serde(rename = "$unflatten=CST")]
416 pub cst: String,
417
418 #[serde(rename = "$unflatten=vICMSDeson")]
420 #[serde(skip_serializing_if = "Option::is_none")]
421 pub valor_icms_desonerado: Option<f32>,
422
423 #[serde(rename = "$unflatten=motDesICMS")]
425 #[serde(skip_serializing_if = "Option::is_none")]
426 pub motivo_desoneracao: Option<u8>,
427}
428
429#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
433pub struct Icms51 {
434 #[serde(rename = "$unflatten=orig")]
436 pub origem: u8,
437
438 #[serde(rename = "$unflatten=CST")]
440 pub cst: String,
441
442 #[serde(rename = "$unflatten=modBC")]
444 #[serde(skip_serializing_if = "Option::is_none")]
445 pub modalidade_bc: Option<u8>,
446
447 #[serde(rename = "$unflatten=pRedBC")]
449 #[serde(skip_serializing_if = "Option::is_none")]
450 pub percentual_reducao_bc: Option<f32>,
451
452 #[serde(rename = "$unflatten=vBC")]
454 #[serde(skip_serializing_if = "Option::is_none")]
455 pub valor_bc: Option<f32>,
456
457 #[serde(rename = "$unflatten=pICMS")]
459 #[serde(skip_serializing_if = "Option::is_none")]
460 pub aliquota: Option<f32>,
461
462 #[serde(rename = "$unflatten=vICMSOp")]
464 #[serde(skip_serializing_if = "Option::is_none")]
465 pub valor_icms_operacao: Option<f32>,
466
467 #[serde(rename = "$unflatten=pDif")]
469 #[serde(skip_serializing_if = "Option::is_none")]
470 pub percentual_diferimento: Option<f32>,
471
472 #[serde(rename = "$unflatten=vICMSDif")]
474 #[serde(skip_serializing_if = "Option::is_none")]
475 pub valor_icms_diferido: Option<f32>,
476
477 #[serde(rename = "$unflatten=vICMS")]
479 #[serde(skip_serializing_if = "Option::is_none")]
480 pub valor: Option<f32>,
481
482 #[serde(rename = "$unflatten=pFCP")]
484 #[serde(skip_serializing_if = "Option::is_none")]
485 pub percentual_fcp: Option<f32>,
486
487 #[serde(rename = "$unflatten=vFCP")]
489 #[serde(skip_serializing_if = "Option::is_none")]
490 pub valor_fcp: Option<f32>,
491}
492
493#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
497pub struct Icms60 {
498 #[serde(rename = "$unflatten=orig")]
500 pub origem: u8,
501
502 #[serde(rename = "$unflatten=CST")]
504 pub cst: String,
505
506 #[serde(rename = "$unflatten=vBCSTRet")]
508 #[serde(skip_serializing_if = "Option::is_none")]
509 pub valor_bc_st_retido: Option<f32>,
510
511 #[serde(rename = "$unflatten=pST")]
513 #[serde(skip_serializing_if = "Option::is_none")]
514 pub aliquota_st_consumidor: Option<f32>,
515
516 #[serde(rename = "$unflatten=vICMSSubstituto")]
518 #[serde(skip_serializing_if = "Option::is_none")]
519 pub valor_icms_substituto: Option<f32>,
520
521 #[serde(rename = "$unflatten=vICMSSTRet")]
523 #[serde(skip_serializing_if = "Option::is_none")]
524 pub valor_st_retido: Option<f32>,
525
526 #[serde(rename = "$unflatten=vBCFCPSTRet")]
528 #[serde(skip_serializing_if = "Option::is_none")]
529 pub valor_bc_fcp_st_retido: Option<f32>,
530
531 #[serde(rename = "$unflatten=pFCPSTRet")]
533 #[serde(skip_serializing_if = "Option::is_none")]
534 pub percentual_fcp_st_retido: Option<f32>,
535
536 #[serde(rename = "$unflatten=vFCPSTRet")]
538 #[serde(skip_serializing_if = "Option::is_none")]
539 pub valor_fcp_st_retido: Option<f32>,
540
541 #[serde(rename = "$unflatten=pRedBCEfet")]
543 #[serde(skip_serializing_if = "Option::is_none")]
544 pub percentual_reducao_bc_efetiva: Option<f32>,
545
546 #[serde(rename = "$unflatten=vBCEfet")]
548 #[serde(skip_serializing_if = "Option::is_none")]
549 pub valor_bc_efetiva: Option<f32>,
550
551 #[serde(rename = "$unflatten=pICMSEfet")]
553 #[serde(skip_serializing_if = "Option::is_none")]
554 pub aliquota_efetiva: Option<f32>,
555
556 #[serde(rename = "$unflatten=vICMSEfet")]
558 #[serde(skip_serializing_if = "Option::is_none")]
559 pub valor_efetivo: Option<f32>,
560}
561
562#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
564pub struct Icms70 {
565 #[serde(rename = "$unflatten=orig")]
567 pub origem: u8,
568
569 #[serde(rename = "$unflatten=CST")]
571 pub cst: String,
572
573 #[serde(rename = "$unflatten=modBC")]
575 pub modalidade_bc: u8,
576
577 #[serde(rename = "$unflatten=pRedBC")]
579 pub percentual_reducao_bc: f32,
580
581 #[serde(rename = "$unflatten=vBC")]
583 pub valor_bc: f32,
584
585 #[serde(rename = "$unflatten=pICMS")]
587 pub aliquota: f32,
588
589 #[serde(rename = "$unflatten=vICMS")]
591 pub valor: f32,
592
593 #[serde(rename = "$unflatten=pFCP")]
595 #[serde(skip_serializing_if = "Option::is_none")]
596 pub percentual_fcp: Option<f32>,
597
598 #[serde(rename = "$unflatten=vFCP")]
600 #[serde(skip_serializing_if = "Option::is_none")]
601 pub valor_fcp: Option<f32>,
602
603 #[serde(rename = "$unflatten=modBCST")]
605 pub modalidade_bc_st: u8,
606
607 #[serde(rename = "$unflatten=pMVAST")]
609 #[serde(skip_serializing_if = "Option::is_none")]
610 pub percentual_mva_st: Option<f32>,
611
612 #[serde(rename = "$unflatten=pRedBCST")]
614 #[serde(skip_serializing_if = "Option::is_none")]
615 pub percentual_reducao_bc_st: Option<f32>,
616
617 #[serde(rename = "$unflatten=vBCST")]
619 pub valor_bc_st: f32,
620
621 #[serde(rename = "$unflatten=pICMSST")]
623 pub aliquota_st: f32,
624
625 #[serde(rename = "$unflatten=vICMSST")]
627 pub valor_st: f32,
628
629 #[serde(rename = "$unflatten=pFCPST")]
631 #[serde(skip_serializing_if = "Option::is_none")]
632 pub percentual_fcp_st: Option<f32>,
633
634 #[serde(rename = "$unflatten=vFCPST")]
636 #[serde(skip_serializing_if = "Option::is_none")]
637 pub valor_fcp_st: Option<f32>,
638
639 #[serde(rename = "$unflatten=vICMSDeson")]
641 #[serde(skip_serializing_if = "Option::is_none")]
642 pub valor_icms_desonerado: Option<f32>,
643
644 #[serde(rename = "$unflatten=motDesICMS")]
646 #[serde(skip_serializing_if = "Option::is_none")]
647 pub motivo_desoneracao: Option<u8>,
648}
649
650#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
654pub struct Icms90 {
655 #[serde(rename = "$unflatten=orig")]
657 pub origem: u8,
658
659 #[serde(rename = "$unflatten=CST")]
661 pub cst: String,
662
663 #[serde(rename = "$unflatten=modBC")]
665 #[serde(skip_serializing_if = "Option::is_none")]
666 pub modalidade_bc: Option<u8>,
667
668 #[serde(rename = "$unflatten=pRedBC")]
670 #[serde(skip_serializing_if = "Option::is_none")]
671 pub percentual_reducao_bc: Option<f32>,
672
673 #[serde(rename = "$unflatten=vBC")]
675 #[serde(skip_serializing_if = "Option::is_none")]
676 pub valor_bc: Option<f32>,
677
678 #[serde(rename = "$unflatten=pICMS")]
680 #[serde(skip_serializing_if = "Option::is_none")]
681 pub aliquota: Option<f32>,
682
683 #[serde(rename = "$unflatten=vICMS")]
685 #[serde(skip_serializing_if = "Option::is_none")]
686 pub valor: Option<f32>,
687
688 #[serde(rename = "$unflatten=pFCP")]
690 #[serde(skip_serializing_if = "Option::is_none")]
691 pub percentual_fcp: Option<f32>,
692
693 #[serde(rename = "$unflatten=vFCP")]
695 #[serde(skip_serializing_if = "Option::is_none")]
696 pub valor_fcp: Option<f32>,
697
698 #[serde(rename = "$unflatten=modBCST")]
700 #[serde(skip_serializing_if = "Option::is_none")]
701 pub modalidade_bc_st: Option<u8>,
702
703 #[serde(rename = "$unflatten=pMVAST")]
705 #[serde(skip_serializing_if = "Option::is_none")]
706 pub percentual_mva_st: Option<f32>,
707
708 #[serde(rename = "$unflatten=pRedBCST")]
710 #[serde(skip_serializing_if = "Option::is_none")]
711 pub percentual_reducao_bc_st: Option<f32>,
712
713 #[serde(rename = "$unflatten=vBCST")]
715 #[serde(skip_serializing_if = "Option::is_none")]
716 pub valor_bc_st: Option<f32>,
717
718 #[serde(rename = "$unflatten=pICMSST")]
720 #[serde(skip_serializing_if = "Option::is_none")]
721 pub aliquota_st: Option<f32>,
722
723 #[serde(rename = "$unflatten=vICMSST")]
725 #[serde(skip_serializing_if = "Option::is_none")]
726 pub valor_st: Option<f32>,
727
728 #[serde(rename = "$unflatten=pFCPST")]
730 #[serde(skip_serializing_if = "Option::is_none")]
731 pub percentual_fcp_st: Option<f32>,
732
733 #[serde(rename = "$unflatten=vFCPST")]
735 #[serde(skip_serializing_if = "Option::is_none")]
736 pub valor_fcp_st: Option<f32>,
737
738 #[serde(rename = "$unflatten=vICMSDeson")]
740 #[serde(skip_serializing_if = "Option::is_none")]
741 pub valor_icms_desonerado: Option<f32>,
742
743 #[serde(rename = "$unflatten=motDesICMS")]
745 #[serde(skip_serializing_if = "Option::is_none")]
746 pub motivo_desoneracao: Option<u8>,
747}
748
749#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
753pub struct IcmsSn101 {
754 #[serde(rename = "$unflatten=orig")]
756 pub origem: u8,
757
758 #[serde(rename = "$unflatten=CSOSN")]
760 pub csosn: String,
761
762 #[serde(rename = "$unflatten=pCredSN")]
764 pub aliquota_credito_sn: f32,
765
766 #[serde(rename = "$unflatten=vCredICMSSN")]
768 pub valor_credito_icms_sn: f32,
769}
770
771#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
773pub struct IcmsSn102 {
774 #[serde(rename = "$unflatten=orig")]
776 pub origem: u8,
777
778 #[serde(rename = "$unflatten=CSOSN")]
780 pub csosn: String,
781}
782
783#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
787pub struct IcmsSn201 {
788 #[serde(rename = "$unflatten=orig")]
790 pub origem: u8,
791
792 #[serde(rename = "$unflatten=CSOSN")]
794 pub csosn: String,
795
796 #[serde(rename = "$unflatten=modBCST")]
798 pub modalidade_bc_st: u8,
799
800 #[serde(rename = "$unflatten=pMVAST")]
802 #[serde(skip_serializing_if = "Option::is_none")]
803 pub percentual_mva_st: Option<f32>,
804
805 #[serde(rename = "$unflatten=pRedBCST")]
807 #[serde(skip_serializing_if = "Option::is_none")]
808 pub percentual_reducao_bc_st: Option<f32>,
809
810 #[serde(rename = "$unflatten=vBCST")]
812 pub valor_bc_st: f32,
813
814 #[serde(rename = "$unflatten=pICMSST")]
816 pub aliquota_st: f32,
817
818 #[serde(rename = "$unflatten=vICMSST")]
820 pub valor_st: f32,
821
822 #[serde(rename = "$unflatten=pFCPST")]
824 #[serde(skip_serializing_if = "Option::is_none")]
825 pub percentual_fcp_st: Option<f32>,
826
827 #[serde(rename = "$unflatten=vFCPST")]
829 #[serde(skip_serializing_if = "Option::is_none")]
830 pub valor_fcp_st: Option<f32>,
831
832 #[serde(rename = "$unflatten=pCredSN")]
834 pub aliquota_credito_sn: f32,
835
836 #[serde(rename = "$unflatten=vCredICMSSN")]
838 pub valor_credito_icms_sn: f32,
839}
840
841#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
845pub struct IcmsSn202 {
846 #[serde(rename = "$unflatten=orig")]
848 pub origem: u8,
849
850 #[serde(rename = "$unflatten=CSOSN")]
852 pub csosn: String,
853
854 #[serde(rename = "$unflatten=modBCST")]
856 pub modalidade_bc_st: u8,
857
858 #[serde(rename = "$unflatten=pMVAST")]
860 #[serde(skip_serializing_if = "Option::is_none")]
861 pub percentual_mva_st: Option<f32>,
862
863 #[serde(rename = "$unflatten=pRedBCST")]
865 #[serde(skip_serializing_if = "Option::is_none")]
866 pub percentual_reducao_bc_st: Option<f32>,
867
868 #[serde(rename = "$unflatten=vBCST")]
870 pub valor_bc_st: f32,
871
872 #[serde(rename = "$unflatten=pICMSST")]
874 pub aliquota_st: f32,
875
876 #[serde(rename = "$unflatten=vICMSST")]
878 pub valor_st: f32,
879
880 #[serde(rename = "$unflatten=pFCPST")]
882 #[serde(skip_serializing_if = "Option::is_none")]
883 pub percentual_fcp_st: Option<f32>,
884
885 #[serde(rename = "$unflatten=vFCPST")]
887 #[serde(skip_serializing_if = "Option::is_none")]
888 pub valor_fcp_st: Option<f32>,
889}
890
891#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
895pub struct IcmsSn500 {
896 #[serde(rename = "$unflatten=orig")]
898 pub origem: u8,
899
900 #[serde(rename = "$unflatten=CSOSN")]
902 pub csosn: String,
903
904 #[serde(rename = "$unflatten=vBCSTRet")]
906 #[serde(skip_serializing_if = "Option::is_none")]
907 pub valor_bc_st_retido: Option<f32>,
908
909 #[serde(rename = "$unflatten=pST")]
911 #[serde(skip_serializing_if = "Option::is_none")]
912 pub aliquota_st_consumidor: Option<f32>,
913
914 #[serde(rename = "$unflatten=vICMSSubstituto")]
916 #[serde(skip_serializing_if = "Option::is_none")]
917 pub valor_icms_substituto: Option<f32>,
918
919 #[serde(rename = "$unflatten=vICMSSTRet")]
921 #[serde(skip_serializing_if = "Option::is_none")]
922 pub valor_st_retido: Option<f32>,
923
924 #[serde(rename = "$unflatten=vBCFCPSTRet")]
926 #[serde(skip_serializing_if = "Option::is_none")]
927 pub valor_bc_fcp_st_retido: Option<f32>,
928
929 #[serde(rename = "$unflatten=pFCPSTRet")]
931 #[serde(skip_serializing_if = "Option::is_none")]
932 pub percentual_fcp_st_retido: Option<f32>,
933
934 #[serde(rename = "$unflatten=vFCPSTRet")]
936 #[serde(skip_serializing_if = "Option::is_none")]
937 pub valor_fcp_st_retido: Option<f32>,
938
939 #[serde(rename = "$unflatten=pRedBCEfet")]
941 #[serde(skip_serializing_if = "Option::is_none")]
942 pub percentual_reducao_bc_efetiva: Option<f32>,
943
944 #[serde(rename = "$unflatten=vBCEfet")]
946 #[serde(skip_serializing_if = "Option::is_none")]
947 pub valor_bc_efetiva: Option<f32>,
948
949 #[serde(rename = "$unflatten=pICMSEfet")]
951 #[serde(skip_serializing_if = "Option::is_none")]
952 pub aliquota_efetiva: Option<f32>,
953
954 #[serde(rename = "$unflatten=vICMSEfet")]
956 #[serde(skip_serializing_if = "Option::is_none")]
957 pub valor_efetivo: Option<f32>,
958}
959
960#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
964pub struct IcmsSn900 {
965 #[serde(rename = "$unflatten=orig")]
967 pub origem: u8,
968
969 #[serde(rename = "$unflatten=CSOSN")]
971 pub csosn: String,
972
973 #[serde(rename = "$unflatten=modBC")]
975 #[serde(skip_serializing_if = "Option::is_none")]
976 pub modalidade_bc: Option<u8>,
977
978 #[serde(rename = "$unflatten=pRedBC")]
980 #[serde(skip_serializing_if = "Option::is_none")]
981 pub percentual_reducao_bc: Option<f32>,
982
983 #[serde(rename = "$unflatten=vBC")]
985 #[serde(skip_serializing_if = "Option::is_none")]
986 pub valor_bc: Option<f32>,
987
988 #[serde(rename = "$unflatten=pICMS")]
990 #[serde(skip_serializing_if = "Option::is_none")]
991 pub aliquota: Option<f32>,
992
993 #[serde(rename = "$unflatten=vICMS")]
995 #[serde(skip_serializing_if = "Option::is_none")]
996 pub valor: Option<f32>,
997
998 #[serde(rename = "$unflatten=modBCST")]
1000 #[serde(skip_serializing_if = "Option::is_none")]
1001 pub modalidade_bc_st: Option<u8>,
1002
1003 #[serde(rename = "$unflatten=pMVAST")]
1005 #[serde(skip_serializing_if = "Option::is_none")]
1006 pub percentual_mva_st: Option<f32>,
1007
1008 #[serde(rename = "$unflatten=pRedBCST")]
1010 #[serde(skip_serializing_if = "Option::is_none")]
1011 pub percentual_reducao_bc_st: Option<f32>,
1012
1013 #[serde(rename = "$unflatten=vBCST")]
1015 #[serde(skip_serializing_if = "Option::is_none")]
1016 pub valor_bc_st: Option<f32>,
1017
1018 #[serde(rename = "$unflatten=pICMSST")]
1020 #[serde(skip_serializing_if = "Option::is_none")]
1021 pub aliquota_st: Option<f32>,
1022
1023 #[serde(rename = "$unflatten=vICMSST")]
1025 #[serde(skip_serializing_if = "Option::is_none")]
1026 pub valor_st: Option<f32>,
1027
1028 #[serde(rename = "$unflatten=pFCPST")]
1030 #[serde(skip_serializing_if = "Option::is_none")]
1031 pub percentual_fcp_st: Option<f32>,
1032
1033 #[serde(rename = "$unflatten=vFCPST")]
1035 #[serde(skip_serializing_if = "Option::is_none")]
1036 pub valor_fcp_st: Option<f32>,
1037
1038 #[serde(rename = "$unflatten=pCredSN")]
1040 #[serde(skip_serializing_if = "Option::is_none")]
1041 pub aliquota_credito_sn: Option<f32>,
1042
1043 #[serde(rename = "$unflatten=vCredICMSSN")]
1045 #[serde(skip_serializing_if = "Option::is_none")]
1046 pub valor_credito_icms_sn: Option<f32>,
1047}