forked from ZeusAutomacao/DFe.NET
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDacteFrCte.cs
148 lines (131 loc) · 6.52 KB
/
DacteFrCte.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
/********************************************************************************/
/* Projeto: Biblioteca ZeusNFe */
/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */
/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */
/* */
/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */
/* Zeusdev Tecnologia LTDA ME */
/* */
/* Você pode obter a última versão desse arquivo no GitHub */
/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */
/* */
/* */
/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */
/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */
/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */
/* qualquer versão posterior. */
/* */
/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */
/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */
/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/
/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */
/* */
/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/
/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */
/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */
/* Você também pode obter uma copia da licença em: */
/* http://www.opensource.org/licenses/lgpl-license.php */
/* */
/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */
/* http://www.zeusautomacao.com.br/ */
/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */
/********************************************************************************/
using CTe.Classes;
using CTe.Dacte.Base;
using FastReport;
using FastReport.Export.PdfSimple;
using System;
using System.IO;
using DFe.Utils;
namespace CTe.Dacte.OpenFast
{
public class DacteFrCte
{
public Report Relatorio;
public DacteFrCte()
{
Relatorio = new Report();
}
public DacteFrCte(cteProc proc, ConfiguracaoDacte config, string arquivoRelatorio = "")
{
Relatorio = new Report();
RegisterData(proc);
if (string.IsNullOrWhiteSpace(arquivoRelatorio))
{
const string caminho = @"CTe\CTeRetrato.frx";
var frx = FrxFileHelper.TryGetFrxFile(caminho);
Relatorio.Load(new MemoryStream(frx));
}
else
{
Relatorio.Load(arquivoRelatorio);
}
Configurar(config);
}
public void LoadReport(string arquivoRelatorio)
{
Relatorio.Load(arquivoRelatorio);
}
public void LoadReport(MemoryStream stream)
{
Relatorio.Load(stream);
}
public void RegisterData(cteProc proc)
{
Relatorio.RegisterData(new[] { proc }, "cteProc", 20);
Relatorio.GetDataSource("cteProc").Enabled = true;
}
public void Configurar(ConfiguracaoDacte config)
{
Relatorio.SetParameterValue("DoocumentoCancelado", config.DocumentoCancelado);
Relatorio.SetParameterValue("Desenvolvedor", config.Desenvolvedor);
Relatorio.SetParameterValue("QuebrarLinhasObservacao", config.QuebrarLinhasObservacao);
if (Relatorio.FindObject("poEmitLogo") != null)
((PictureObject)Relatorio.FindObject("poEmitLogo")).SetImageData(config.Logomarca);
}
/// <summary>
/// Converte o DACTe para PDF e salva-o no caminho/arquivo indicado
/// </summary>
/// <param name="arquivo">Caminho/arquivo onde deve ser salvo o PDF do DACTe</param>
public void ExportarPdf(string arquivo)
{
Relatorio.Prepare();
Relatorio.Export(new PDFSimpleExport(), arquivo);
}
/// <summary>
/// Converte o DACTe para PDF e copia para o stream
/// </summary>
/// <param name="outputStream">Variável do tipo Stream para output</param>
public void ExportarPdf(Stream outputStream)
{
Relatorio.Prepare();
Relatorio.Export(new PDFSimpleExport(), outputStream);
outputStream.Position = 0;
}
/// <summary>
/// Converte o DACTe para PDF e salva-o no caminho/arquivo indicado
/// </summary>
/// <param name="arquivo">Caminho/arquivo onde deve ser salvo o PDF do DACTe</param>
/// <param name="exportBase">Instancia do tipo de exportacao do FastReport</param>
public void ExportarPdf(string arquivo, FastReport.Export.ExportBase exportBase)
{
if (exportBase == null)
throw new NullReferenceException("exportBase deve ter um objeto instanciado, tente 'new PDFExport()'");
Relatorio.Prepare();
Relatorio.Export(exportBase, arquivo);
}
/// <summary>
/// Converte o DACTe para PDF e copia para o stream
/// </summary>
/// <param name="outputStream">Variável do tipo Stream para output</param>
/// <param name="exportBase">Instancia do tipo de exportacao do FastReport</param>
public void ExportarPdf(Stream outputStream, FastReport.Export.ExportBase exportBase)
{
if (exportBase == null)
throw new NullReferenceException("exportBase deve ter um objeto instanciado, tente 'new PDFExport()'");
Relatorio.Prepare();
Relatorio.Export(exportBase, outputStream);
outputStream.Position = 0;
}
}
}