Skip to main content

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