2
Copyright 2010, 2012, 2014 Jose Robson Mariano Alves
4
This file is part of bgfinancas.
6
This program is free software: you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation, either version 3 of the License, or
9
(at your option) any later version.
11
This package is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU General Public License for more details.
16
You should have received a copy of the GNU General Public License
17
along with this program. If not, see <http://www.gnu.org/licenses/>.
21
package Movimentacoes;
23
import Biblioteca.Botoes;
24
import Biblioteca.Calendario;
25
import Biblioteca.Datas;
26
import Biblioteca.Formularios;
27
import Biblioteca.Janela;
28
import Biblioteca.Janelinha;
29
import Biblioteca.Mascaras;
30
import Biblioteca.NotacaoInternacional;
31
import Biblioteca.Numeros;
32
import Biblioteca.Visual;
33
import Principal.TelaPrincipal;
34
import java.sql.SQLException;
35
import java.util.Calendar;
37
public final class Receitas extends Janela {
40
private Mascaras mascaras;
41
private String id_receita;
42
private Float valor_antigo;
43
private final TelaPrincipal Principal;
45
public Receitas(TelaPrincipal principal) {
47
Principal = principal;
48
Visual.Janela(this.getJanela());
49
BarraDeFerramentas.add(Botoes.Cadastrar(this));
50
BarraDeFerramentas.add(Botoes.Alterar(this));
51
BarraDeFerramentas.add(Botoes.Excluir(this));
52
BarraDeFerramentas.add(Botoes.Consultar(this));
53
BarraDeFerramentas.add(Botoes.Sair(this));
54
PreencherFormulario(null,null);
57
public void AdicionarItem(String item_nome)
59
item.removeAllItems();
60
item.addItem(item_nome);
63
public void PreencherContas()
67
Banco.executeQuery("SELECT nome FROM contas WHERE ativada='0' ORDER BY nome ASC");
68
conta.addItem(Lingua.getMensagem("selecione"));
69
while(Banco.getResultSet().next())
71
conta.addItem(Banco.getResultSet().getString("nome"));
73
}catch(SQLException e)
75
conta.addItem(Lingua.getMensagem("nenhum_item_encontrado"));
79
public void PreencherItens()
83
Banco.executeQuery("SELECT nome FROM receitas_itens ORDER BY nome ASC");
84
item.addItem(Lingua.getMensagem("selecione"));
85
while(Banco.getResultSet().next())
87
item.addItem(Banco.getResultSet().getString("nome"));
89
}catch(SQLException e)
91
conta.addItem(Lingua.getMensagem("nenhum_item_encontrado"));
95
public void PreencherFormulario(String acao, String receitas_id)
98
id_receita = receitas_id;
99
Formularios.LimparFormulario(JPanelProduto);
100
BFinalizar.setVisible(true);
101
conta.removeAllItems();
102
item.removeAllItems();
105
BFinalizar.setText(Lingua.getMensagem("aguardando_acao"));
106
BFinalizar.setEnabled(false);
107
Formularios.DesativarFormulario(JPanelProduto);
109
BFinalizar.setText(Acao);
110
BFinalizar.setEnabled(true);
111
Formularios.AtivarFormulario(JPanelProduto);
112
if(acao.equals(Lingua.getMensagem("cadastrar")))
117
Calendar Data = Calendar.getInstance();
118
dia = Data.get(Calendar.DAY_OF_MONTH);
119
mes = Data.get(Calendar.MONTH)+1;
120
ano = Data.get(Calendar.YEAR);
121
data.setSelectedItem(String.format("%02d", dia)+"/"+String.format("%02d", mes)+"/"+ano);
123
BItemPesquisar.setEnabled(false);
124
if(acao.equals(Lingua.getMensagem("consultar")))
126
BFinalizar.setVisible(false);
128
Banco.executeQuery("SELECT receitas.*, receitas_itens.nome AS item_nome, TO_CHAR(receitas.data,'DD/MM/YYYY') AS data_exibir, contas.nome AS conta_nome FROM receitas, receitas_itens, contas WHERE id_receita='"+id_receita+"' AND receitas.id_item=receitas_itens.id_item AND receitas.id_conta=contas.id_conta");
130
Banco.getResultSet().next();
131
item.addItem(Banco.getResultSet().getString("item_nome"));
132
descricao.setText(Banco.getResultSet().getString("descricao"));
133
valor.setText(Banco.getResultSet().getString("valor"));
134
valor_antigo = Float.parseFloat(Banco.getResultSet().getString("valor"));
135
data.setSelectedItem(Banco.getResultSet().getString("data_exibir"));
136
conta.addItem(Banco.getResultSet().getString("conta_nome"));
137
}catch(SQLException e){
138
Janelinha.Aviso(Lingua.getMensagem("erro"),Lingua.getMensagem("excecao")+" "+e);
139
} catch (NumberFormatException e) {
140
Janelinha.Aviso(Lingua.getMensagem("erro"),Lingua.getMensagem("excecao")+" "+e);
146
public void Cadastrar()
148
String id_conta="0",id_item="0";
151
Banco.executeQuery("SELECT id_conta FROM contas WHERE nome='"+conta.getSelectedItem()+"'");
153
Banco.getResultSet().next();
154
id_conta = Banco.getResultSet().getString("id_conta");
155
}catch(SQLException e){
156
Janelinha.Aviso(Lingua.getMensagem("erro"),Lingua.getMensagem("excecao")+" "+e);
160
Banco.executeQuery("SELECT id_item FROM receitas_itens WHERE nome='"+item.getSelectedItem()+"'");
162
Banco.getResultSet().next();
163
id_item = Banco.getResultSet().getString("id_item");
164
}catch(SQLException e){
165
Janelinha.Aviso(Lingua.getMensagem("erro"),Lingua.getMensagem("excecao")+" "+e);
170
Banco.executeUpdate("INSERT INTO receitas (id_conta,id_item,descricao,valor,data,hora) VALUES('"+id_conta+"','"+id_item+"','"+descricao.getText()+"','"+Numeros.Arrendondar(valor.getText())+"','"+Datas.ConverterData(data.getSelectedItem().toString())+"',NOW())");
171
Banco.executeUpdate("UPDATE contas SET valor=valor+"+Numeros.Arrendondar(valor.getText())+" WHERE id_conta='"+id_conta+"'");
172
Janelinha.Aviso(Lingua.getMensagem("cadastrar"),Lingua.getMensagem("sucesso"));
173
Principal.ContasSaldo();
174
PreencherFormulario(Lingua.getMensagem("cadastrar"),null);
176
Janelinha.Aviso(Lingua.getMensagem("erro"),Lingua.getMensagem("excecao")+" "+e);
180
public void Alterar()
184
Banco.executeQuery("SELECT id_conta FROM contas WHERE nome='"+conta.getSelectedItem()+"'");
186
Banco.getResultSet().next();
187
id_conta = Banco.getResultSet().getString("id_conta");
188
}catch(SQLException e){
189
Janelinha.Aviso(Lingua.getMensagem("erro"),Lingua.getMensagem("excecao")+" "+e);
193
Double valor_atual = Double.parseDouble(valor.getText()),diferenca;
194
diferenca = valor_atual-valor_antigo;
196
Banco.executeUpdate("UPDATE receitas SET valor='"+Numeros.Arrendondar(valor.getText())+"', descricao='"+descricao.getText()+"', data='"+Datas.ConverterData(data.getSelectedItem().toString())+"' WHERE id_receita='"+id_receita+"'");
198
Banco.executeUpdate("UPDATE contas SET valor=valor+"+Numeros.Arrendondar(diferenca)+" WHERE id_conta='"+id_conta+"'");
199
Janelinha.Aviso(Lingua.getMensagem("alterar"),Lingua.getMensagem("sucesso"));
200
Principal.ContasSaldo();
201
PreencherFormulario(null,null);
203
Janelinha.Aviso(Lingua.getMensagem("erro"),Lingua.getMensagem("excecao")+" "+e);
207
public void Excluir()
210
Banco.executeQuery("SELECT id_conta FROM contas WHERE nome='"+conta.getSelectedItem()+"'");
212
Banco.getResultSet().next();
213
id_conta = Banco.getResultSet().getString("id_conta");
214
}catch(SQLException e){
215
Janelinha.Aviso(Lingua.getMensagem("erro"),Lingua.getMensagem("excecao")+" "+e);
219
if(Banco.executeUpdate("DELETE FROM receitas WHERE id_receita='"+id_receita+"'")>0)
221
Banco.executeUpdate("UPDATE contas SET valor = valor - "+valor_antigo+" WHERE id_conta='"+id_conta+"'");
222
Janelinha.Aviso(Lingua.getMensagem("excluir"),Lingua.getMensagem("sucesso"));
223
Principal.ContasSaldo();
224
PreencherFormulario(null,null);
226
PreencherFormulario(null,null);
229
Janelinha.Aviso(Lingua.getMensagem("erro"),Lingua.getMensagem("excecao")+" "+e);
234
public void Botoes(String acao)
236
if(acao.equals(Lingua.getMensagem("cadastrar"))){
237
PreencherFormulario(Lingua.getMensagem("cadastrar"),null);
238
}else if(acao.equals("ItensPesquisar")){
239
new ReceitasItensPesquisar(this).setVisible(true);
240
}else if(acao.equals(Lingua.getMensagem("alterar"))){
241
new ReceitasPesquisar(Principal,this,Lingua.getMensagem("alterar")).setVisible(true);
242
}else if(acao.equals(Lingua.getMensagem("excluir"))){
243
new ReceitasPesquisar(Principal,this,Lingua.getMensagem("excluir")).setVisible(true);
244
}else if(acao.equals(Lingua.getMensagem("consultar"))){
245
new ReceitasPesquisar(Principal,this,Lingua.getMensagem("consultar")).setVisible(true);
246
}else if(acao.equals(Lingua.getMensagem("sair"))){
247
Receitas.this.dispose();
251
public boolean ValidarFormulario()
253
if(item.getSelectedItem().equals(Lingua.getMensagem("selecione")))
255
Janelinha.Aviso(Lingua.getMensagem("erro"), Lingua.getMensagem("campo_nao_informado")+" "+Lingua.getMensagem("item"));
256
item.requestFocus(true);
258
}else if (valor.getText().equals(""))
260
Janelinha.Aviso(Lingua.getMensagem("erro"), Lingua.getMensagem("campo_nao_informado")+" "+Lingua.getMensagem("valor"));
261
valor.requestFocus(true);
263
}else if(conta.getSelectedItem().equals(Lingua.getMensagem("selecione")))
265
Janelinha.Aviso(Lingua.getMensagem("erro"), Lingua.getMensagem("campo_nao_informado")+" "+Lingua.getMensagem("conta"));
266
conta.requestFocus(true);
273
/** This method is called from within the constructor to
274
* initialize the form.
275
* WARNING: Do NOT modify this code. The content of this method is
276
* always regenerated by the Form Editor.
278
@SuppressWarnings("unchecked")
279
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
280
private void initComponents() {
282
BarraDeFerramentas = new javax.swing.JToolBar();
283
JPanelProduto = new javax.swing.JPanel();
284
CONTA = new javax.swing.JLabel();
285
DATA = new javax.swing.JLabel();
286
DATA2 = new javax.swing.JLabel();
287
DATA3 = new javax.swing.JLabel();
288
DATA4 = new javax.swing.JLabel();
289
valor = new javax.swing.JTextField();
290
descricao = new javax.swing.JTextField();
291
conta = new javax.swing.JComboBox();
292
BItemPesquisar = new javax.swing.JButton();
293
item = new javax.swing.JComboBox();
294
DATA1 = new javax.swing.JLabel();
295
BFinalizar = new javax.swing.JButton();
296
data = new Calendario(false);
298
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
299
setTitle(Lingua.getMensagem("receitas"));
300
setFont(new java.awt.Font("Tahoma", 0, 11)); // NOI18N
301
setForeground(java.awt.Color.cyan);
302
getContentPane().setLayout(null);
304
BarraDeFerramentas.setFloatable(false);
305
BarraDeFerramentas.setRollover(true);
306
getContentPane().add(BarraDeFerramentas);
307
BarraDeFerramentas.setBounds(0, 0, 500, 41);
309
JPanelProduto.setBorder(javax.swing.BorderFactory.createTitledBorder(null, Lingua.getMensagem("dados_receita"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, FonteFinancas, new java.awt.Color(0, 102, 204)));
310
JPanelProduto.setForeground(new java.awt.Color(51, 94, 168));
311
JPanelProduto.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N
312
JPanelProduto.setLayout(null);
314
CONTA.setFont(FonteFinancas);
315
CONTA.setForeground(new java.awt.Color(51, 94, 168));
316
CONTA.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
317
CONTA.setText(Lingua.getMensagem("conta")+":");
318
JPanelProduto.add(CONTA);
319
CONTA.setBounds(20, 160, 80, 20);
321
DATA.setFont(FonteFinancas);
322
DATA.setForeground(new java.awt.Color(51, 94, 168));
323
DATA.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
324
DATA.setText(Lingua.getMensagem("moeda"));
325
JPanelProduto.add(DATA);
326
DATA.setBounds(110, 100, 30, 20);
328
DATA2.setFont(FonteFinancas);
329
DATA2.setForeground(new java.awt.Color(51, 94, 168));
330
DATA2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
331
DATA2.setText(Lingua.getMensagem("item")+":");
332
JPanelProduto.add(DATA2);
333
DATA2.setBounds(20, 40, 80, 20);
335
DATA3.setFont(FonteFinancas);
336
DATA3.setForeground(new java.awt.Color(51, 94, 168));
337
DATA3.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
338
DATA3.setText(Lingua.getMensagem("descricao")+":");
339
JPanelProduto.add(DATA3);
340
DATA3.setBounds(20, 70, 80, 20);
342
DATA4.setFont(FonteFinancas);
343
DATA4.setForeground(new java.awt.Color(51, 94, 168));
344
DATA4.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
345
DATA4.setText(Lingua.getMensagem("data")+":");
346
JPanelProduto.add(DATA4);
347
DATA4.setBounds(20, 130, 80, 20);
349
valor.setFont(FonteFinancas);
350
JPanelProduto.add(valor);
351
valor.setBounds(140, 100, 60, 20);
352
valor.setDocument(new Biblioteca.NotacaoInternacional());
354
descricao.setFont(FonteFinancas);
355
JPanelProduto.add(descricao);
356
descricao.setBounds(110, 70, 220, 20);
358
conta.setFont(FonteFinancas);
359
JPanelProduto.add(conta);
360
conta.setBounds(110, 160, 220, 20);
362
BItemPesquisar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/outros/pesquisar.png"))); // NOI18N
363
BItemPesquisar.setBorderPainted(false);
364
BItemPesquisar.setContentAreaFilled(false);
365
BItemPesquisar.addActionListener(new java.awt.event.ActionListener() {
366
public void actionPerformed(java.awt.event.ActionEvent evt) {
367
BItemPesquisarActionPerformed(evt);
370
JPanelProduto.add(BItemPesquisar);
371
BItemPesquisar.setBounds(330, 40, 30, 20);
373
item.setFont(FonteFinancas);
374
JPanelProduto.add(item);
375
item.setBounds(110, 40, 220, 20);
377
DATA1.setFont(FonteFinancas);
378
DATA1.setForeground(new java.awt.Color(51, 94, 168));
379
DATA1.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
380
DATA1.setText(Lingua.getMensagem("valor")+":");
381
JPanelProduto.add(DATA1);
382
DATA1.setBounds(20, 100, 80, 20);
384
BFinalizar.setFont(FonteFinancas);
385
BFinalizar.setText(Lingua.getMensagem("aguardando_acao"));
386
BFinalizar.setFocusPainted(false);
387
BFinalizar.addActionListener(new java.awt.event.ActionListener() {
388
public void actionPerformed(java.awt.event.ActionEvent evt) {
389
BFinalizarActionPerformed(evt);
392
JPanelProduto.add(BFinalizar);
393
BFinalizar.setBounds(110, 190, 110, 20);
395
data.setFont(FonteFinancas);
396
JPanelProduto.add(data);
397
data.setBounds(110, 130, 110, 20);
399
getContentPane().add(JPanelProduto);
400
JPanelProduto.setBounds(20, 60, 377, 230);
402
setSize(new java.awt.Dimension(424, 335));
403
setLocationRelativeTo(null);
404
}// </editor-fold>//GEN-END:initComponents
406
private void BFinalizarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BFinalizarActionPerformed
407
if(Acao.equals(Lingua.getMensagem("cadastrar"))){
408
if(ValidarFormulario() && Janelinha.Pergunta(Lingua.getMensagem("cadastrar"),Lingua.getMensagem("tem_certeza")))
412
}else if(Acao.equals(Lingua.getMensagem("alterar"))){
413
if(ValidarFormulario() && Janelinha.Pergunta(Lingua.getMensagem("alterar"),Lingua.getMensagem("tem_certeza")))
417
}else if(Acao.equals(Lingua.getMensagem("excluir")))
419
if(Janelinha.Pergunta(Lingua.getMensagem("excluir"),Lingua.getMensagem("tem_certeza")))
424
}//GEN-LAST:event_BFinalizarActionPerformed
426
private void BItemPesquisarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BItemPesquisarActionPerformed
427
Botoes("ItensPesquisar");
428
}//GEN-LAST:event_BItemPesquisarActionPerformed
430
// Variables declaration - do not modify//GEN-BEGIN:variables
431
private javax.swing.JButton BFinalizar;
432
private javax.swing.JButton BItemPesquisar;
433
private javax.swing.JToolBar BarraDeFerramentas;
434
private javax.swing.JLabel CONTA;
435
private javax.swing.JLabel DATA;
436
private javax.swing.JLabel DATA1;
437
private javax.swing.JLabel DATA2;
438
private javax.swing.JLabel DATA3;
439
private javax.swing.JLabel DATA4;
440
private javax.swing.JPanel JPanelProduto;
441
private javax.swing.JComboBox conta;
442
private javax.swing.JComboBox data;
443
private javax.swing.JTextField descricao;
444
private javax.swing.JComboBox item;
445
private javax.swing.JTextField valor;
446
// End of variables declaration//GEN-END:variables