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/>.
23
import Biblioteca.Botoes;
24
import Biblioteca.Janela;
25
import Biblioteca.Janelinha;
26
import Biblioteca.Numeros;
27
import Biblioteca.Visual;
28
import Principal.TelaPrincipal;
29
import java.awt.event.ActionEvent;
30
import java.awt.event.KeyEvent;
31
import javax.swing.AbstractAction;
32
import javax.swing.JComponent;
33
import javax.swing.KeyStroke;
34
import javax.swing.table.DefaultTableModel;
36
public final class PlanejamentoComponentes extends Janela {
38
private final float ValorInicial;
39
private final String id_planejamento,Mes,Ano;
40
private final TelaPrincipal Principal;
41
private final Planejamento Planejamento;
43
public PlanejamentoComponentes(TelaPrincipal _Principal, Planejamento _Planejamento, String _id_planejamento, String _ValorInicial, String _Mes, String _Ano) {
45
Visual.Janela(this.getJanela());
48
Principal = _Principal;
49
ValorInicial = Float.parseFloat(_ValorInicial);
50
Planejamento = _Planejamento;
51
id_planejamento = _id_planejamento;
52
BarraDeFerramentas.add(Botoes.Sair(this));
53
valor_inicial.setText(_ValorInicial);
54
PreencherFormulario();
55
lista_itens.setFont(FonteFinancas);
56
lista_itens.getTableHeader().setFont(FonteFinancas);
59
public void AdicionarItem(String id_item, String nome)
61
DefaultTableModel modelo = (DefaultTableModel)lista_itens.getModel();
62
modelo.addRow(new Object[]{id_item,nome,"0.0"});
65
public void RemoverItem()
67
if(lista_itens.getSelectedRow()==-1)
69
Janelinha.Aviso(Lingua.getMensagem("atencao"),Lingua.getMensagem("restricao_remover_item"));
71
DefaultTableModel modelo = (DefaultTableModel)lista_itens.getModel();
72
modelo.removeRow(lista_itens.getSelectedRow());
77
public void CalcularValorTotal()
80
int quantidade_itens,i;
81
Double Preco_total=0.0,Valor_Final=0.0;
82
quantidade_itens = lista_itens.getRowCount();
83
for(i=0;i<quantidade_itens;i++)
85
Preco_total+=Double.parseDouble((String)lista_itens.getValueAt(i,2));
87
Valor_Final = ValorInicial-Preco_total;
88
valor_total.setText(Numeros.Arrendondar(Preco_total).toString());
89
valor_final.setText(Numeros.Arrendondar(Valor_Final).toString());
91
Janelinha.Aviso(Lingua.getMensagem("erro"), Lingua.getMensagem("restricao_virgula"));
96
public void CorrigirValores(){
97
int quantidade_itens,i;
98
quantidade_itens = lista_itens.getRowCount();
99
for(i=0;i<quantidade_itens;i++)
101
String valor = lista_itens.getValueAt(i,2).toString();
103
Double.parseDouble(valor);
104
int pontos = valor.length() - valor.replace(".", "").length();
105
lista_itens.setValueAt(valor.replace(",", "."), i, 2);
106
} catch(NumberFormatException e) {
107
lista_itens.setValueAt("0.00", i, 2);
110
CalcularValorTotal();
113
public void PreencherFormulario()
115
DefaultTableModel modelo = (DefaultTableModel)lista_itens.getModel();
116
Banco.executeQuery("SELECT planejamento_componentes.id_item, planejamento_componentes.valor, planejamento_itens.nome FROM planejamento_componentes, planejamento_itens WHERE planejamento_componentes.id_planejamento='"+id_planejamento+"' AND planejamento_itens.id_item=planejamento_componentes.id_item ORDER BY planejamento_itens.nome ASC");
119
while(Banco.getResultSet().next())
121
modelo.addRow(new Object[]{Banco.getResultSet().getString("id_item"),Banco.getResultSet().getString("nome"),Banco.getResultSet().getString("valor")});
125
Janelinha.Aviso(Lingua.getMensagem("atencao"),Lingua.getMensagem("excecao")+" "+e.getMessage());
127
CalcularValorTotal();
130
public void CadastrarAlterar()
134
Banco.executeUpdate("DELETE FROM planejamento_componentes WHERE id_planejamento='"+id_planejamento+"'");
135
int Quantidade_Itens,i;
136
Quantidade_Itens = lista_itens.getRowCount();
137
for(i=0;i<Quantidade_Itens;i++)
139
Banco.executeUpdate("INSERT INTO planejamento_componentes VALUES('"+id_planejamento+"','"+(String)lista_itens.getValueAt(i,0)+"','"+(String)lista_itens.getValueAt(i,2)+"')");
141
Janelinha.Aviso(Lingua.getMensagem("cadastrar"),Lingua.getMensagem("sucesso"));
142
Principal.SetarData(Mes, Ano);
143
Principal.Planejamento(Mes,Ano);
144
if(Planejamento != null)
146
Planejamento.PreencherFormulario(null, null, 0, null, null);
148
PlanejamentoComponentes.this.dispose();
150
Janelinha.Aviso(Lingua.getMensagem("erro"),Lingua.getMensagem("excecao")+" "+e.getMessage());
155
public void Botoes(String acao)
157
if(acao.equals(Lingua.getMensagem("sair"))){
158
PlanejamentoComponentes.this.dispose();
159
}else if(acao.equals("ItensPesquisar")){
160
new PlanejamentoItensPesquisar(this).setVisible(true);
164
/** This method is called from within the constructor to
165
* initialize the form.
166
* WARNING: Do NOT modify this code. The content of this method is
167
* always regenerated by the Form Editor.
169
@SuppressWarnings("unchecked")
170
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
171
private void initComponents() {
173
BarraDeFerramentas = new javax.swing.JToolBar();
174
JPanelProduto = new javax.swing.JPanel();
175
Produtos = new javax.swing.JScrollPane();
176
lista_itens = new javax.swing.JTable();
177
BProdutoAdd = new javax.swing.JButton();
178
valor_final = new javax.swing.JLabel();
179
BProdutoDel = new javax.swing.JButton();
180
CIFRAO = new javax.swing.JLabel();
181
CIFRAO1 = new javax.swing.JLabel();
182
valor_inicial = new javax.swing.JLabel();
183
CIFRAO2 = new javax.swing.JLabel();
184
valor_total = new javax.swing.JLabel();
185
PRECO_TOTAL3 = new javax.swing.JLabel();
186
PRECO_TOTAL4 = new javax.swing.JLabel();
187
PRECO_TOTAL5 = new javax.swing.JLabel();
188
BFinalizar = new javax.swing.JButton();
190
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
191
setTitle(Lingua.getMensagem("planejamento")+" > "+Lingua.getMensagem("plano")+" > "+Lingua.getMensagem("itens"));
192
setFont(new java.awt.Font("Tahoma", 0, 11)); // NOI18N
193
setForeground(java.awt.Color.cyan);
194
getContentPane().setLayout(null);
196
BarraDeFerramentas.setFloatable(false);
197
BarraDeFerramentas.setRollover(true);
198
getContentPane().add(BarraDeFerramentas);
199
BarraDeFerramentas.setBounds(0, 0, 790, 41);
201
JPanelProduto.setBorder(javax.swing.BorderFactory.createTitledBorder(null, Lingua.getMensagem("lista_itens"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, FonteFinancas, new java.awt.Color(0, 102, 204)));
202
JPanelProduto.setForeground(new java.awt.Color(51, 94, 168));
203
JPanelProduto.setLayout(null);
205
lista_itens.setModel(new javax.swing.table.DefaultTableModel(
213
boolean[] canEdit = new boolean [] {
217
public boolean isCellEditable(int rowIndex, int columnIndex) {
218
return canEdit [columnIndex];
221
lista_itens.getTableHeader().setReorderingAllowed(false);
222
lista_itens.addKeyListener(new java.awt.event.KeyAdapter() {
223
public void keyReleased(java.awt.event.KeyEvent evt) {
224
lista_itensKeyReleased(evt);
227
Produtos.setViewportView(lista_itens);
228
if (lista_itens.getColumnModel().getColumnCount() > 0) {
229
lista_itens.getColumnModel().getColumn(0).setMaxWidth(50);
230
lista_itens.getColumnModel().getColumn(1).setResizable(false);
231
lista_itens.getColumnModel().getColumn(1).setHeaderValue(Lingua.getMensagem("nome"));
232
lista_itens.getColumnModel().getColumn(2).setResizable(false);
233
lista_itens.getColumnModel().getColumn(2).setHeaderValue(Lingua.getMensagem("valor"));
236
JPanelProduto.add(Produtos);
237
Produtos.setBounds(20, 30, 560, 220);
239
BProdutoAdd.setFont(FonteFinancasPequena);
240
BProdutoAdd.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/outros/adicionar.png"))); // NOI18N
241
BProdutoAdd.setText(Lingua.getMensagem("adicionar_item"));
242
BProdutoAdd.setToolTipText(Lingua.getMensagem("adicionar_item"));
243
BProdutoAdd.setBorder(null);
244
BProdutoAdd.setBorderPainted(false);
245
BProdutoAdd.setContentAreaFilled(false);
246
BProdutoAdd.addActionListener(new java.awt.event.ActionListener() {
247
public void actionPerformed(java.awt.event.ActionEvent evt) {
248
BProdutoAddActionPerformed(evt);
251
JPanelProduto.add(BProdutoAdd);
252
BProdutoAdd.setBounds(20, 250, 120, 30);
253
BProdutoAdd.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_A, 0), "A");
254
BProdutoAdd.getActionMap().put("A", new AbstractAction() {
255
public void actionPerformed(ActionEvent A) {
256
Botoes("ItensPesquisar");
260
valor_final.setFont(FonteFinancasNegrito);
261
valor_final.setForeground(new java.awt.Color(255, 51, 51));
262
valor_final.setText("0.0");
263
JPanelProduto.add(valor_final);
264
valor_final.setBounds(510, 320, 90, 20);
266
BProdutoDel.setFont(FonteFinancasPequena);
267
BProdutoDel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/outros/remover.png"))); // NOI18N
268
BProdutoDel.setText(Lingua.getMensagem("remover_item"));
269
BProdutoDel.setToolTipText(Lingua.getMensagem("remover_item"));
270
BProdutoDel.setBorder(null);
271
BProdutoDel.setBorderPainted(false);
272
BProdutoDel.setContentAreaFilled(false);
273
BProdutoDel.addActionListener(new java.awt.event.ActionListener() {
274
public void actionPerformed(java.awt.event.ActionEvent evt) {
275
BProdutoDelActionPerformed(evt);
278
JPanelProduto.add(BProdutoDel);
279
BProdutoDel.setBounds(140, 250, 120, 30);
280
BProdutoDel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_R, 0), "R");
281
BProdutoDel.getActionMap().put("R", new AbstractAction() {
282
public void actionPerformed(ActionEvent R) {
287
CIFRAO.setFont(FonteFinancasNegrito);
288
CIFRAO.setForeground(new java.awt.Color(255, 0, 0));
289
CIFRAO.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
290
CIFRAO.setText(Lingua.getMensagem("moeda"));
291
JPanelProduto.add(CIFRAO);
292
CIFRAO.setBounds(480, 290, 30, 20);
294
CIFRAO1.setFont(FonteFinancasNegrito);
295
CIFRAO1.setForeground(new java.awt.Color(255, 0, 0));
296
CIFRAO1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
297
CIFRAO1.setText(Lingua.getMensagem("moeda"));
298
JPanelProduto.add(CIFRAO1);
299
CIFRAO1.setBounds(480, 320, 30, 20);
301
valor_inicial.setFont(FonteFinancasNegrito);
302
valor_inicial.setForeground(new java.awt.Color(255, 51, 51));
303
valor_inicial.setText("0.0");
304
JPanelProduto.add(valor_inicial);
305
valor_inicial.setBounds(510, 290, 90, 20);
307
CIFRAO2.setFont(FonteFinancasNegrito);
308
CIFRAO2.setForeground(new java.awt.Color(255, 0, 0));
309
CIFRAO2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
310
CIFRAO2.setText(Lingua.getMensagem("moeda"));
311
JPanelProduto.add(CIFRAO2);
312
CIFRAO2.setBounds(480, 260, 30, 20);
314
valor_total.setFont(FonteFinancasNegrito);
315
valor_total.setForeground(new java.awt.Color(255, 51, 51));
316
valor_total.setText("0.0");
317
JPanelProduto.add(valor_total);
318
valor_total.setBounds(510, 260, 90, 20);
320
PRECO_TOTAL3.setFont(FonteFinancas);
321
PRECO_TOTAL3.setForeground(new java.awt.Color(51, 51, 51));
322
PRECO_TOTAL3.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
323
PRECO_TOTAL3.setText(Lingua.getMensagem("valor_final")+":");
324
JPanelProduto.add(PRECO_TOTAL3);
325
PRECO_TOTAL3.setBounds(300, 320, 180, 20);
327
PRECO_TOTAL4.setFont(FonteFinancas);
328
PRECO_TOTAL4.setForeground(new java.awt.Color(51, 51, 51));
329
PRECO_TOTAL4.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
330
PRECO_TOTAL4.setText(Lingua.getMensagem("valor_total_itens")+":");
331
JPanelProduto.add(PRECO_TOTAL4);
332
PRECO_TOTAL4.setBounds(300, 260, 180, 20);
334
PRECO_TOTAL5.setFont(FonteFinancas);
335
PRECO_TOTAL5.setForeground(new java.awt.Color(51, 51, 51));
336
PRECO_TOTAL5.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
337
PRECO_TOTAL5.setText(Lingua.getMensagem("valor_inicial")+":");
338
JPanelProduto.add(PRECO_TOTAL5);
339
PRECO_TOTAL5.setBounds(300, 290, 180, 20);
341
getContentPane().add(JPanelProduto);
342
JPanelProduto.setBounds(20, 90, 604, 365);
344
BFinalizar.setFont(FonteFinancas);
345
BFinalizar.setText(Lingua.getMensagem("atualizar"));
346
BFinalizar.setFocusPainted(false);
347
BFinalizar.addActionListener(new java.awt.event.ActionListener() {
348
public void actionPerformed(java.awt.event.ActionEvent evt) {
349
BFinalizarActionPerformed(evt);
352
getContentPane().add(BFinalizar);
353
BFinalizar.setBounds(503, 60, 110, 20);
355
setSize(new java.awt.Dimension(648, 500));
356
setLocationRelativeTo(null);
357
}// </editor-fold>//GEN-END:initComponents
359
private void BFinalizarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BFinalizarActionPerformed
360
if(Janelinha.Pergunta(Lingua.getMensagem("atualizar"),Lingua.getMensagem("tem_certeza")))
364
}//GEN-LAST:event_BFinalizarActionPerformed
366
private void BProdutoAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BProdutoAddActionPerformed
367
Botoes("ItensPesquisar");
368
}//GEN-LAST:event_BProdutoAddActionPerformed
370
private void lista_itensKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_lista_itensKeyReleased
371
CalcularValorTotal();
372
}//GEN-LAST:event_lista_itensKeyReleased
374
private void BProdutoDelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BProdutoDelActionPerformed
376
}//GEN-LAST:event_BProdutoDelActionPerformed
378
// Variables declaration - do not modify//GEN-BEGIN:variables
379
private javax.swing.JButton BFinalizar;
380
private javax.swing.JButton BProdutoAdd;
381
private javax.swing.JButton BProdutoDel;
382
private javax.swing.JToolBar BarraDeFerramentas;
383
private javax.swing.JLabel CIFRAO;
384
private javax.swing.JLabel CIFRAO1;
385
private javax.swing.JLabel CIFRAO2;
386
private javax.swing.JPanel JPanelProduto;
387
private javax.swing.JLabel PRECO_TOTAL3;
388
private javax.swing.JLabel PRECO_TOTAL4;
389
private javax.swing.JLabel PRECO_TOTAL5;
390
private javax.swing.JScrollPane Produtos;
391
private javax.swing.JTable lista_itens;
392
private javax.swing.JLabel valor_final;
393
private javax.swing.JLabel valor_inicial;
394
private javax.swing.JLabel valor_total;
395
// End of variables declaration//GEN-END:variables