nfe_parser/base/ide/emissao.rs
1//! Dados da emissão da NF-e
2
3use chrono::prelude::*;
4use serde_repr::{Deserialize_repr, Serialize_repr};
5
6/// Dados referentes a emissão da nota
7#[derive(Debug, PartialEq, Clone)]
8pub struct Emissao {
9 pub horario: DateTime<Utc>,
10 pub tipo: TipoEmissao,
11 pub finalidade: FinalidadeEmissao,
12 pub processo: TipoProcessoEmissao,
13 pub versao_processo: String,
14}
15
16/// Tipo da emissão da nota
17#[derive(Debug, Eq, PartialEq, Copy, Clone, Deserialize_repr, Serialize_repr)]
18#[repr(u8)]
19pub enum TipoEmissao {
20 /// Emissão normal (não em contingência)
21 Normal = 1,
22 /// Contingência FS-IA, com impressão do DANFE em Formulário de Segurança - Impressor Autônomo
23 ContigenciaFsIa = 2,
24 /// Contingência SCAN (Sistema de Contingência do Ambiente Nacional)
25 ContingenciaScan = 3,
26 /// Contingência EPEC (Evento Prévio da Emissão em Contingência)
27 ContigenciaEpec = 4,
28 /// Contingência FS-DA, com impressão do DANFE em Formulário de Segurança - Documento Auxiliar
29 ContigenciaFsDa = 5,
30 /// Contingência SVC-AN (SEFAZ Virtual de Contingência do AN)
31 ContigenciaSvcAn = 6,
32 /// Contingência SVC-RS (SEFAZ Virtual de Contingência do RS)
33 ContigenciaSvcRs = 7,
34 /// Contingência off-line da NFC-e
35 ContigenciaOfflineNfce = 9,
36}
37
38/// Finalidade da emissão da nota
39#[derive(Debug, Eq, PartialEq, Copy, Clone, Deserialize_repr, Serialize_repr)]
40#[repr(u8)]
41pub enum FinalidadeEmissao {
42 Normal = 1,
43 Complementar = 2,
44 Ajuste = 3,
45 Devolucao = 4,
46}
47
48/// Tipo do processo de emissão
49#[derive(Debug, Eq, PartialEq, Copy, Clone, Deserialize_repr, Serialize_repr)]
50#[repr(u8)]
51pub enum TipoProcessoEmissao {
52 /// Emissão de NF-e com aplicativo do contribuinte
53 ViaAplicativoDoContribuinte = 0,
54 /// Emissão de NF-e avulsa pelo Fisco
55 AvulsaPeloFisco = 1,
56 /// Emissão de NF-e avulsa, pelo contribuinte com seu certificado digital, através do site do Fisco
57 AvulsaPeloContribuinte = 2,
58 /// Emissão NF-e pelo contribuinte com aplicativo fornecido pelo Fisco
59 ViaAplicativoDoFisco = 3,
60}
61
62
63//TODO Separar TpFinalidadeEmissao e TpProcessoEmissao em modulos separados