1
2
3
4
5 package ecar.servlet.relatorio;
6
7 import java.io.File;
8 import java.text.SimpleDateFormat;
9 import java.util.Date;
10
11 import javax.servlet.http.HttpServletRequest;
12
13 import comum.util.Pagina;
14 import comum.util.XmlBuilder;
15
16 import ecar.dao.ConfiguracaoDao;
17 import ecar.exception.ECARException;
18 import ecar.login.SegurancaECAR;
19 import ecar.pojo.ConfiguracaoCfg;
20
21
22
23
24
25 public class LayoutArquivoExportacao extends AbstractServletReportXmlXsl {
26
27 private static final long serialVersionUID = 2395457474744685932L;
28 private static final int TAMANHO_VALORES = 14;
29 private ConfiguracaoCfg configuracao;
30
31
32
33
34
35
36
37
38
39
40
41 public StringBuffer getXml(HttpServletRequest request) throws ECARException{
42 configuracao = (new ConfiguracaoDao(null)).getConfiguracao();
43
44 setSaida(SAIDA_DOWNLOAD_E_GRAVAR);
45 String caminho = configuracao.getRaizUpload() + configuracao.getUploadIntegracao();
46 if(!caminho.endsWith("/"))
47 caminho = caminho + "/";
48
49 String nomeArquivo = Pagina.getParamStr(request, "nomeArquivo");
50 SegurancaECAR usuarioLogado = (SegurancaECAR) request.getSession().getAttribute("seguranca");
51 String codUsuarioLogado = usuarioLogado.getUsuario().getCodUsu().toString();
52
53 String titulo = "Layout para o arquivo \"" + nomeArquivo + "\"";
54
55 String caminhoCompleto = "";
56
57 String formato = "ddMMyyyy";
58 SimpleDateFormat formatter = new SimpleDateFormat(formato);
59
60 nomeArquivo += "_" + formatter.format(new Date()) + "_" + codUsuarioLogado + "_layout.pdf";
61 caminhoCompleto = caminho + nomeArquivo;
62
63 File diretorio = new File(caminho);
64
65 if(!diretorio.isDirectory())
66 diretorio.mkdirs();
67
68 setCaminhoArquivoSaidaGravar(caminhoCompleto);
69
70 XmlBuilder builder = new XmlBuilder();
71
72 builder.addNode("layout", "titulo=\"" + builder.normalize(titulo) + "\"");
73
74 geraXMLTR00(builder);
75 geraXMLTR01(builder);
76 geraXMLTR02(builder);
77 geraXMLTR99(builder);
78
79 builder.closeNode("layout");
80
81 return builder.toStringBuffer();
82 }
83
84
85
86
87
88
89
90
91
92 public void geraXMLTR00(XmlBuilder builder){
93 builder.addNode("tr", "numero=\"00 - Header\" mostrarObs=\"N\"");
94
95 escreveCampoTr(builder, "Campo", "Posição inicial", "Tamanho", "Tipo de dado", "Conteúdo");
96
97 escreveCampoTr(builder, "TR", "0", "2", "Numérico", "00");
98 escreveCampoTr(builder, "Sistema", "2", "6", "String", "Sigla do Sistema");
99 escreveCampoTr(builder, "Mês inicial da solicitação", "8", "2", "Numérico", "MM");
100 escreveCampoTr(builder, "Ano inicial da solicitação", "10", "4", "Numérico", "AAAA");
101 escreveCampoTr(builder, "Mês final da solicitação", "14", "2", "Numérico", "MM");
102 escreveCampoTr(builder, "Ano final da solicitação", "16", "4", "Numérico", "AAAA");
103 escreveCampoTr(builder, "Data/Hora da geração", "20", "14", "Numérico", "DDMMAAAAHHMMSS");
104 escreveCampoTr(builder, "Data/Hora da Carga", "34", "14", "Numérico", "DDMMAAAAHHMMSS (Data da carga efetuada pelo sistema corporativo)");
105
106 builder.closeNode("tr");
107 }
108
109
110
111
112
113
114
115
116
117 public void geraXMLTR01(XmlBuilder builder){
118 builder.addNode("tr", "numero=\"01 - Registro de valores\" mostrarObs=\"N\"");
119
120 escreveCampoTr(builder, "Campo", "Posição inicial", "Tamanho", "Tipo de dado", "Conteúdo");
121
122 escreveCampoTr(builder, "TR", "0", "2", "Numérico", "01");
123 escreveCampoTr(builder, "Conta", "2", "255", "String", "Conta Contábil");
124 escreveCampoTr(builder, "Mês", "257", "2", "Numérico", "MM");
125 escreveCampoTr(builder, "Ano", "259", "4", "Numérico", "AAAA");
126
127 String[] valores = new String[6];
128 valores[0] = configuracao.getFinanceiroDescValor1Cfg();
129 valores[1] = configuracao.getFinanceiroDescValor2Cfg();
130 valores[2] = configuracao.getFinanceiroDescValor3Cfg();
131 valores[3] = configuracao.getFinanceiroDescValor4Cfg();
132 valores[4] = configuracao.getFinanceiroDescValor5Cfg();
133 valores[5] = configuracao.getFinanceiroDescValor6Cfg();
134
135 int pos = 263;
136 for(int i = 0; i < 6; i++){
137 if("".equals(valores[i].trim()))
138 valores[i] = "Não preencher";
139 escreveCampoTr(builder, valores[i], String.valueOf(pos), String.valueOf(TAMANHO_VALORES), "Numérico", "99999999999900");
140 pos += TAMANHO_VALORES;
141 }
142
143 escreveCampoTr(builder, "Contabilidade Aberta/Fechada", String.valueOf(pos), "1", "String", "A - Aberto; F - Fechado");
144
145 builder.closeNode("tr");
146 }
147
148
149
150
151
152
153
154
155
156 public void geraXMLTR02(XmlBuilder builder){
157 builder.addNode("tr", "numero=\"02 - Registro de valores não previstos no e-Car\" mostrarObs=\"N\"");
158
159 escreveCampoTr(builder, "Campo", "Posição inicial", "Tamanho", "Tipo de dado", "Conteúdo");
160
161 escreveCampoTr(builder, "TR", "0", "2", "Numérico", "02");
162 escreveCampoTr(builder, "Mês", "2", "2", "Numérico", "MM");
163 escreveCampoTr(builder, "Ano", "4", "4", "Numérico", "AAAA");
164
165 String[] valores = new String[6];
166 valores[0] = configuracao.getFinanceiroDescValor1Cfg();
167 valores[1] = configuracao.getFinanceiroDescValor2Cfg();
168 valores[2] = configuracao.getFinanceiroDescValor3Cfg();
169 valores[3] = configuracao.getFinanceiroDescValor4Cfg();
170 valores[4] = configuracao.getFinanceiroDescValor5Cfg();
171 valores[5] = configuracao.getFinanceiroDescValor6Cfg();
172
173 int pos = 8;
174 for(int i = 0; i < 6; i++){
175 if("".equals(valores[i].trim()))
176 valores[i] = "Não preencher";
177 escreveCampoTr(builder, valores[i], String.valueOf(pos), String.valueOf(TAMANHO_VALORES), "Numérico", "99999999999900");
178 pos += TAMANHO_VALORES;
179 }
180
181 builder.closeNode("tr");
182 }
183
184
185
186
187
188
189
190
191
192 public void geraXMLTR99(XmlBuilder builder){
193 builder.addNode("tr", "numero=\"99 - Trailer\" mostrarObs=\"S\"");
194
195 escreveCampoTr(builder, "Campo", "Posição inicial", "Tamanho", "Tipo de dado", "Conteúdo");
196
197 escreveCampoTr(builder, "TR", "0", "2", "Numérico", "99");
198 escreveCampoTr(builder, "Quantidade de registros", "2", "6", "Numérico", "Quantidade de registros incluindo o Header e o Trailer");
199
200 String[] valores = new String[6];
201 valores[0] = configuracao.getFinanceiroDescValor1Cfg();
202 valores[1] = configuracao.getFinanceiroDescValor2Cfg();
203 valores[2] = configuracao.getFinanceiroDescValor3Cfg();
204 valores[3] = configuracao.getFinanceiroDescValor4Cfg();
205 valores[4] = configuracao.getFinanceiroDescValor5Cfg();
206 valores[5] = configuracao.getFinanceiroDescValor6Cfg();
207
208 int pos = 8;
209 for(int i = 0; i < 6; i++){
210 if("".equals(valores[i].trim()))
211 valores[i] = "Não preencher";
212 else
213 valores[i] = "Total do " + valores[i];
214
215 escreveCampoTr(builder, valores[i], String.valueOf(pos), String.valueOf(TAMANHO_VALORES), "Numérico", "99999999999900");
216 pos += TAMANHO_VALORES;
217 }
218
219
220 builder.closeNode("tr");
221 }
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236 public void escreveCampoTr(XmlBuilder builder, String nome, String posIni, String tamanho, String tipo, String conteudo){
237 builder.addClosedNode("campo",
238 "nome=\"" + builder.normalize(nome) + "\"" +
239 " posIni=\"" + builder.normalize(posIni) + "\"" +
240 " tamanho=\"" + builder.normalize(tamanho) + "\"" +
241 " tipo=\"" + builder.normalize(tipo) + "\"" +
242 " conteudo=\"" + builder.normalize(conteudo) + "\""
243 );
244 }
245
246
247
248
249
250
251
252
253
254 public String getXslFileName() {
255 return "layoutArquivoExportacao.xsl";
256 }
257
258
259
260
261
262
263
264
265
266
267
268 public String getErrorPage(HttpServletRequest request, String mensagem){
269 String errorPage = "exportarConta.jsp?msgOperacao=" + mensagem;
270 return errorPage;
271 }
272 }