### Install libgdiplus on Ubuntu 18.x
Source: https://github.com/zeusautomacao/dfe.net/blob/master/README.md
Installs the libgdiplus and libc6-dev libraries required for printing in Linux environments.
```bash
apt-get install -y --no-install-recommends libgdiplus libc6-dev
```
--------------------------------
### Install libgdiplus on Docker Ubuntu 18.x
Source: https://github.com/zeusautomacao/dfe.net/blob/master/README.md
Installs necessary libraries for printing within a Docker container based on Ubuntu 18.x.
```dockerfile
RUN apt-get update \
&& apt-get install -y --no-install-recommends libgdiplus libc6-dev \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
```
--------------------------------
### Install libgdiplus 6.0.5 on Debian 10
Source: https://github.com/zeusautomacao/dfe.net/blob/master/README.md
Installs a specific version (6.0.5) of libgdiplus on Debian 10, addressing potential OutOfMemoryException errors.
```bash
RUN apt-get update && apt-get remove libgdiplus -y && apt autoremove -y && apt-get install -y apt-transport-https dirmngr gnupg ca-certificates
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
RUN echo "deb https://download.mono-project.com/repo/debian stable-buster main" | tee /etc/apt/sources.list.d/mono-official-stable.list
RUN apt-get update && apt-get install -y libgdiplus=6.0.5-0xamarin1+debian10b1
RUN apt show libgdiplus && rm -rf /var/lib/apt/lists/*
```
--------------------------------
### Install Core Fonts on Debian 10
Source: https://github.com/zeusautomacao/dfe.net/blob/master/README.md
Installs Microsoft core fonts on Debian 10, which may be required for specific report generations.
```bash
apt-get install -y ttf-mscorefonts-installer fontconfig
```
--------------------------------
### Install Core Fonts on Ubuntu 18.x
Source: https://github.com/zeusautomacao/dfe.net/blob/master/README.md
Installs Microsoft core fonts, including Times New Roman, which are used in some DANFE reports.
```bash
sudo apt-get install ttf-mscorefonts-installer
```
--------------------------------
### XML Documentation for Project Classes
Source: https://github.com/zeusautomacao/dfe.net/blob/master/CONTRIBUTING.md
Document all classes and attributes in XML format, following the pattern used in NFe.Classes. For project `*.Classes`, include the code and description as specified in the Manual de Orientação do Contribuinte.
```csharp
///
/// PR06 - Versão do Aplicativo que processou a consulta.
///
public string verAplic { get; set; }
```
--------------------------------
### ConfiguracaoServico - Configuration
Source: https://context7.com/zeusautomacao/dfe.net/llms.txt
Demonstrates how to instantiate and configure the ConfiguracaoServico class for SEFAZ communication, specifying state, environment, document model, and digital certificate.
```APIDOC
## ConfiguracaoServico - Configuration
### Description
Instantiate and configure the `ConfiguracaoServico` class to set up parameters for SEFAZ communication. This includes defining the emitting state (UF), operation environment (production/homologation), fiscal document model, layout version, and the digital certificate (A1/A3).
### Usage
```csharp
using NFe.Core.Cadastros;
using NFe.Core.Interfaces;
using NFe.Core.XmlSchemas.NfeAutorizacao.Retorno;
using NFe.Utils.Informacoes;
// Configure the service for NFe issuance in São Paulo, in homologation environment
var configuracaoServico = new ConfiguracaoServico
{
cUF = Estado.SP, // Emitting state: São Paulo
tpAmb = TipoAmbiente.Homologacao, // Environment: homologation (2)
Modelo = ModeloDocumento.NFe, // Model 55 = NFe
tpEmis = TipoEmissao.Normal, // Normal emission (1)
Versao = VersaoServico.Versao400, // Layout version 4.00
Certificado = certificadoX509 // X.509 digital certificate
};
// Alternatively, load certificate from Windows repository
var certificado = CertificadoDigital.ObterDoRepositorio("certificate-serial-number");
configuracaoServico.Certificado = certificado;
```
```
--------------------------------
### Configurar Serviços para CT-e e MDF-e com DFe.NET
Source: https://context7.com/zeusautomacao/dfe.net/llms.txt
Configure instâncias de serviço para CT-e e MDF-e usando a classe ConfiguracaoServico. Permite interagir com os respectivos Web Services da SEFAZ.
```csharp
using CTe.Utils;
using MDFe.Utils;
// Configuração para CT-e
var configuracaoCTe = new ConfiguracaoServico
{
cUF = Estado.SP,
tpAmb = TipoAmbiente.Homologacao,
Modelo = ModeloDocumento.CTe, // Modelo 57
Versao = VersaoServico.Versao400,
Certificado = certificadoX509
};
var servicoCTe = new ServicosCTe(configuracaoCTe);
var retornoStatusCTe = servicoCTe.CTeStatusServico();
// Configuração para MDF-e
var configuracaoMDFe = new ConfiguracaoServico
{
cUF = Estado.SP,
tpAmb = TipoAmbiente.Homologacao,
Modelo = ModeloDocumento.MDFe, // Modelo 58
Versao = VersaoServico.Versao300,
Certificado = certificadoX509
};
var servicoMDFe = new ServicosMDFe(configuracaoMDFe);
var retornoStatusMDFe = servicoMDFe.MDFeStatusServico();
// Autorizar um MDF-e (manifesto para transportadoras)
var retornoMDFe = servicoMDFe.MDFeAutorizacaoLote(loteManifesto);
```
--------------------------------
### NFe XML Structure Example
Source: https://github.com/zeusautomacao/dfe.net/blob/master/NFe.Danfe.Html/Readme.txt
This XML snippet represents a complete NFe (Nota Fiscal Eletrônica) structure, including issuer, recipient, item details, and tax information. It adheres to version 4.00 of the NFe schema.
```xml
4368509077VENDA DE MERCADORIAS E SERVICOS551365222019-06-11T17:00:55-03:00124313409110210101.1.78.010835909000113KRAFCHINSKI, MORAES E LINARES LTDAKRAFCHINSKI, MORAES E LINARES LTDARUA GUIA LOPES1280RONDONIA4313409NOVO HAMBURGORS934155121058BRASIL51307730100860452247332806205000155BIKETOP COMERCIO E SERVICOS DE BICICLETAS EIRELIALTINO SERBETO DE BARROS173LOJA 01PITUBA2927408SALVADORBA418304921058BRASIL719880151741155731233005110SEM GTINCAMISA CANNONDALE PRETA/RAJADA CINZA LETRA AMARELA-ZIPER CURTO-MASC TAM G611300006102UN1.000029.990000000029.99SEM GTINUN1.000029.99000000001000329.997.00002.10999500.000.00000.000129.990.65000.190129.993.00000.90005115SEM GTINCAMISA ORBEA PRETA/AZUL/BRANCA-ZIPER CURTO- MASC - TAM G611300006102UN1.000029.990000000029.99SEM GTINUN1.000029.99000000001000329.997.00002.10999500.000.00000.000129.990.65000.190129.993.00000.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
```
--------------------------------
### Question Template
Source: https://github.com/zeusautomacao/dfe.net/blob/master/CONTRIBUTING.md
Use this markdown template when asking questions about the project. Provide a clear question, context, steps already taken, and environment details.
```markdown
**Pergunta:**
Como posso configurar o projeto para rodar em um ambiente Linux?
**Contexto:**
Estou tentando executar o projeto no Ubuntu 22.04, mas estou enfrentando dificuldades para instalar as dependências corretamente.
**O que já tentei:**
1. Instalei todas as dependências listadas na documentação.
2. Executei o comando X, mas recebo o erro "Y".
3. Tentei a solução alternativa Z, sem sucesso.
**Ambiente:**
- Sistema Operacional: Ubuntu 22.04
- .NET versão: 6.0
- Dependências instaladas: A, B, C
```
--------------------------------
### Enviar Carta de Correção Eletrônica (CC-e) com NFe.NET
Source: https://context7.com/zeusautomacao/dfe.net/llms.txt
Use RecepcaoEventoCartaCorrecao para enviar uma CC-e e corrigir informações de uma NFe autorizada. Podem ser registradas até 20 CC-es por NFe, mas apenas a última é válida. O texto da correção deve ter entre 15 e 1000 caracteres.
```csharp
using NFe.Utils;
var servicoNFe = new ServicosNFe(configuracaoServico);
// Enviar carta de correção para ajustar dado do destinatário
var retornoCartaCorrecao = servicoNFe.RecepcaoEventoCartaCorrecao(
idLote: 1,
sequenciaEvento: 1, // Incrementar para cada nova CC-e da mesma nota
chave: "35240112345678000195550010000001001234567890",
correcao: "Correção do endereço do destinatário: Rua Exemplo, 123, Bairro Centro",
cpfCnpj: "12345678000195"
);
if (retornoCartaCorrecao.cStat == "135")
{
Console.WriteLine($"CC-e registrada com protocolo: {retornoCartaCorrecao.nProt}");
}
```
--------------------------------
### XML Documentation for Certificate Retrieval
Source: https://github.com/zeusautomacao/dfe.net/blob/master/CONTRIBUTING.md
Use XML documentation comments for methods and classes. When referencing other elements, use the `` tag. Ensure to include the license header and usage rights.
```csharp
///
/// Obtém o certificado digital.
///
/// Se for informado, será usado o método .
/// Caso contrário, será usado .
///
/// Após o uso, invoque .
///
```
--------------------------------
### Serializar e Desserializar NFeProc com ExtNfeProc
Source: https://context7.com/zeusautomacao/dfe.net/llms.txt
Utilize ExtNfeProc para converter XML de NFeProc em objetos C# e vice-versa. Essencial para persistir e carregar documentos fiscais autorizados.
```csharp
using NFe.Utils.NFe;
using NFe.Core.XmlSchemas.NfeAutorizacao.Retorno;
// Deserializar um nfeProc a partir de XML em string
var xmlNfeProc = File.ReadAllText("nfeproc_35240112345678.xml");
var nfeProc = xmlNfeProc.XmlDeserialize();
// Acessar informações do documento autorizado
var chaveAcesso = nfeProc.protNFe.infProt.chNFe;
var protocolo = nfeProc.protNFe.infProt.nProt;
var dataAutorizacao = nfeProc.protNFe.infProt.dhRecbto;
Console.WriteLine($"Chave: {chaveAcesso}");
Console.WriteLine($"Protocolo: {protocolo}");
Console.WriteLine($"Autorizada em: {dataAutorizacao}");
// Serializar de volta para XML
var xmlSerializado = nfeProc.XmlSerialize();
File.WriteAllText("nfeproc_salvo.xml", xmlSerializado);
```
--------------------------------
### Configure SEFAZ Service for NFe
Source: https://context7.com/zeusautomacao/dfe.net/llms.txt
Set up the service configuration for NFe emissions, specifying the state, environment, document model, and digital certificate. The certificate can be loaded from a file or the Windows certificate store.
```csharp
using NFe.Core.Cadastros;
using NFe.Core.Interfaces;
using NFe.Core.XmlSchemas.NfeAutorizacao.Retorno;
using NFe.Utils.Informacoes;
// Configurar o serviço para emissão de NFe no estado de São Paulo em homologação
var configuracaoServico = new ConfiguracaoServico
{
cUF = Estado.SP, // Estado emissor: São Paulo
tpAmb = TipoAmbiente.Homologacao, // Ambiente: homologação (2)
Modelo = ModeloDocumento.NFe, // Modelo 55 = NFe
tpEmis = TipoEmissao.Normal, // Emissão normal (1)
Versao = VersaoServico.Versao400, // Layout versão 4.00
Certificado = certificadoX509 // Certificado digital X.509
};
// Alternativamente, carregar certificado do repositório do Windows
var certificado = CertificadoDigital.ObterDoRepositorio("numero-serie-certificado");
configuracaoServico.Certificado = certificado;
```
--------------------------------
### Consultar Cadastro de Contribuinte com NfeConsultaCadastro
Source: https://context7.com/zeusautomacao/dfe.net/llms.txt
Use NfeConsultaCadastro para verificar informações cadastrais de um contribuinte (CNPJ/CPF/IE) junto à SEFAZ. Útil para validação antes da emissão de documentos.
```csharp
using NFe.Utils;
var servicoNFe = new ServicosNFe(configuracaoServico);
// Consultar cadastro por CNPJ
var retornoCadastro = servicoNFe.NfeConsultaCadastro(
cUF: Estado.SP,
cpfCnpj: "12345678000195",
ie: null
);
if (retornoCadastro.cStat == "111" || retornoCadastro.cStat == "112")
{
var cadastro = retornoCadastro.infCad.FirstOrDefault();
Console.WriteLine($"CNPJ: {cadastro?.CNPJ}");
Console.WriteLine($"Razão Social: {cadastro?.xNome}");
Console.WriteLine($"Situação: {cadastro?.xSit}");
Console.WriteLine($"IE: {cadastro?.IE}");
}
```
--------------------------------
### Transmitir Evento Prévio de Emissão em Contingência (EPEC) com NFe.NET
Source: https://context7.com/zeusautomacao/dfe.net/llms.txt
O método RecepcaoEventoEpec envia o EPEC ao ambiente nacional da SEFAZ, usado quando o contribuinte opera em modo de contingência por indisponibilidade dos webservices do estado emissor. O EPEC registra antecipadamente as informações resumidas da NFe.
```csharp
using NFe.Utils;
var servicoNFe = new ServicosNFe(configuracaoServico);
// Enviar EPEC durante operação em contingência
var retornoEpec = servicoNFe.RecepcaoEventoEpec(
idLote: 1,
sequenciaEvento: 1,
nfe: nfeGerada, // Objeto NFe gerado localmente
versao: "4.00"
);
if (retornoEpec.cStat == "135")
{
Console.WriteLine($"EPEC registrado: {retornoEpec.nProt}");
// Após restabelecimento, transmitir a NFe normalmente com tpEmis = Contingência
}
```
--------------------------------
### Load and Print NF-e/NFC-e Document
Source: https://github.com/zeusautomacao/dfe.net/blob/master/README.md
Loads an XML file into an nfeProc object and generates a DANFE (printable version) for NFCe. Requires the DFe.NET library and optionally FastReport.Net for advanced printing features.
```cs
var proc = new nfeProc().CarregarDeArquivoXml(Caminho_do_arquivo_XML);
var danfe = new DanfeFrNfce(proc, new ConfiguracaoDanfeNfce(NfceDetalheVendaNormal.UmaLinha, NfceDetalheVendaContigencia.UmaLinha, null/*Logomarca em byte[]*/), "00001", "XXXXXXXXXXXXXXXXXXXXXXXXXX");
danfe.Visualizar();
//danfe.Imprimir();
//danfe.ExibirDesign();
```
--------------------------------
### ConfiguracaoServico for CT-e and MDF-e
Source: https://context7.com/zeusautomacao/dfe.net/llms.txt
Configures services for CT-e and MDF-e, following the same pattern as NFe. This allows for easy integration of multiple document types within a single application.
```APIDOC
## ConfiguracaoServico para CT-e e MDF-e
A configuração de serviço para CT-e (Conhecimento de Transporte Eletrônico) e MDF-e (Manifesto de Documentos Fiscais Eletrônicos) segue o mesmo padrão da NFe, com a diferença no modelo do documento. As classes `ServicosCTe` e `ServicosMDFe` seguem a mesma interface de uso que `ServicosNFe`, facilitando a integração de múltiplos tipos de documentos em uma única aplicação.
```csharp
using CTe.Utils;
using MDFe.Utils;
// Configuração para CT-e
var configuracaoCTe = new ConfiguracaoServico
{
cUF = Estado.SP,
tpAmb = TipoAmbiente.Homologacao,
Modelo = ModeloDocumento.CTe, // Modelo 57
Versao = VersaoServico.Versao400,
Certificado = certificadoX509
};
var servicoCTe = new ServicosCTe(configuracaoCTe);
var retornoStatusCTe = servicoCTe.CTeStatusServico();
// Configuração para MDF-e
var configuracaoMDFe = new ConfiguracaoServico
{
cUF = Estado.SP,
tpAmb = TipoAmbiente.Homologacao,
Modelo = ModeloDocumento.MDFe, // Modelo 58
Versao = VersaoServico.Versao300,
Certificado = certificadoX509
};
var servicoMDFe = new ServicosMDFe(configuracaoMDFe);
var retornoStatusMDFe = servicoMDFe.MDFeStatusServico();
// Autorizar um MDF-e (manifesto para transportadoras)
var retornoMDFe = servicoMDFe.MDFeAutorizacaoLote(loteManifesto);
```
```