~ubuntu-branches/debian/sid/bgfinancas/sid

« back to all changes in this revision

Viewing changes to src/Cadastros/PlanejamentoComponentes.java

  • Committer: Package Import Robot
  • Author(s): Jose Robson Mariano Alves
  • Date: 2014-09-24 15:01:45 UTC
  • Revision ID: package-import@ubuntu.com-20140924150145-le88tcphc5vmc8sh
Tags: upstream-2.0
ImportĀ upstreamĀ versionĀ 2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
Copyright 2010, 2012, 2014 Jose Robson Mariano Alves
 
3
 
 
4
This file is part of bgfinancas.
 
5
 
 
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.
 
10
 
 
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.
 
15
 
 
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/>.
 
18
 
 
19
*/
 
20
 
 
21
package Cadastros;
 
22
 
 
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;
 
35
 
 
36
public final class PlanejamentoComponentes extends Janela {
 
37
 
 
38
    private final float ValorInicial;
 
39
    private final String id_planejamento,Mes,Ano;
 
40
    private final TelaPrincipal Principal;
 
41
    private final Planejamento Planejamento;
 
42
 
 
43
    public PlanejamentoComponentes(TelaPrincipal _Principal, Planejamento _Planejamento, String _id_planejamento, String _ValorInicial, String _Mes, String _Ano) {
 
44
        initComponents();
 
45
        Visual.Janela(this.getJanela());
 
46
        Mes = _Mes;
 
47
        Ano = _Ano;
 
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);
 
57
    }
 
58
 
 
59
    public void AdicionarItem(String id_item, String nome)
 
60
    {
 
61
        DefaultTableModel modelo = (DefaultTableModel)lista_itens.getModel();
 
62
        modelo.addRow(new Object[]{id_item,nome,"0.0"});
 
63
    }
 
64
 
 
65
    public void RemoverItem()
 
66
    {
 
67
        if(lista_itens.getSelectedRow()==-1)
 
68
        {
 
69
            Janelinha.Aviso(Lingua.getMensagem("atencao"),Lingua.getMensagem("restricao_remover_item"));
 
70
        }else{
 
71
            DefaultTableModel modelo = (DefaultTableModel)lista_itens.getModel();
 
72
            modelo.removeRow(lista_itens.getSelectedRow());
 
73
            CalcularValorTotal();
 
74
        }
 
75
    }
 
76
 
 
77
    public void CalcularValorTotal()
 
78
    {
 
79
        try{
 
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++)
 
84
            {
 
85
                Preco_total+=Double.parseDouble((String)lista_itens.getValueAt(i,2));
 
86
            }
 
87
            Valor_Final = ValorInicial-Preco_total;
 
88
            valor_total.setText(Numeros.Arrendondar(Preco_total).toString());
 
89
            valor_final.setText(Numeros.Arrendondar(Valor_Final).toString());
 
90
        }catch(Exception e){
 
91
            Janelinha.Aviso(Lingua.getMensagem("erro"), Lingua.getMensagem("restricao_virgula"));
 
92
            CorrigirValores();
 
93
        }
 
94
    }
 
95
    
 
96
    public void CorrigirValores(){
 
97
        int quantidade_itens,i;
 
98
        quantidade_itens = lista_itens.getRowCount();
 
99
        for(i=0;i<quantidade_itens;i++)
 
100
        {
 
101
            String valor = lista_itens.getValueAt(i,2).toString();
 
102
            try { 
 
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);
 
108
            }
 
109
        }
 
110
        CalcularValorTotal();
 
111
    }
 
112
 
 
113
    public void PreencherFormulario()
 
114
    {
 
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");
 
117
        try
 
118
        {
 
119
            while(Banco.getResultSet().next())
 
120
            {
 
121
                modelo.addRow(new Object[]{Banco.getResultSet().getString("id_item"),Banco.getResultSet().getString("nome"),Banco.getResultSet().getString("valor")});
 
122
            }
 
123
        }catch(Exception e)
 
124
        {
 
125
            Janelinha.Aviso(Lingua.getMensagem("atencao"),Lingua.getMensagem("excecao")+" "+e.getMessage());
 
126
        }
 
127
        CalcularValorTotal();
 
128
    }
 
129
    
 
130
    public void CadastrarAlterar()
 
131
    {
 
132
        // items
 
133
        try{
 
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++)
 
138
            {
 
139
                Banco.executeUpdate("INSERT INTO planejamento_componentes VALUES('"+id_planejamento+"','"+(String)lista_itens.getValueAt(i,0)+"','"+(String)lista_itens.getValueAt(i,2)+"')");
 
140
            }
 
141
            Janelinha.Aviso(Lingua.getMensagem("cadastrar"),Lingua.getMensagem("sucesso"));
 
142
            Principal.SetarData(Mes, Ano);
 
143
            Principal.Planejamento(Mes,Ano);
 
144
            if(Planejamento != null)
 
145
            {
 
146
                Planejamento.PreencherFormulario(null, null, 0, null, null);
 
147
            }
 
148
            PlanejamentoComponentes.this.dispose();
 
149
        }catch(Exception e){
 
150
            Janelinha.Aviso(Lingua.getMensagem("erro"),Lingua.getMensagem("excecao")+" "+e.getMessage());
 
151
        }
 
152
    }
 
153
    
 
154
    @Override
 
155
    public void Botoes(String acao)
 
156
    {
 
157
        if(acao.equals(Lingua.getMensagem("sair"))){
 
158
            PlanejamentoComponentes.this.dispose();
 
159
        }else if(acao.equals("ItensPesquisar")){
 
160
            new PlanejamentoItensPesquisar(this).setVisible(true);
 
161
        }
 
162
    }
 
163
 
 
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.
 
168
     */
 
169
    @SuppressWarnings("unchecked")
 
170
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
 
171
    private void initComponents() {
 
172
 
 
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();
 
189
 
 
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);
 
195
 
 
196
        BarraDeFerramentas.setFloatable(false);
 
197
        BarraDeFerramentas.setRollover(true);
 
198
        getContentPane().add(BarraDeFerramentas);
 
199
        BarraDeFerramentas.setBounds(0, 0, 790, 41);
 
200
 
 
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);
 
204
 
 
205
        lista_itens.setModel(new javax.swing.table.DefaultTableModel(
 
206
            new Object [][] {
 
207
 
 
208
            },
 
209
            new String [] {
 
210
                "ID", "", ""
 
211
            }
 
212
        ) {
 
213
            boolean[] canEdit = new boolean [] {
 
214
                false, false, true
 
215
            };
 
216
 
 
217
            public boolean isCellEditable(int rowIndex, int columnIndex) {
 
218
                return canEdit [columnIndex];
 
219
            }
 
220
        });
 
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);
 
225
            }
 
226
        });
 
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"));
 
234
        }
 
235
 
 
236
        JPanelProduto.add(Produtos);
 
237
        Produtos.setBounds(20, 30, 560, 220);
 
238
 
 
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);
 
249
            }
 
250
        });
 
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");
 
257
            }
 
258
        });
 
259
 
 
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);
 
265
 
 
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);
 
276
            }
 
277
        });
 
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) {
 
283
                RemoverItem();
 
284
            }
 
285
        });
 
286
 
 
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);
 
293
 
 
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);
 
300
 
 
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);
 
306
 
 
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);
 
313
 
 
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);
 
319
 
 
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);
 
326
 
 
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);
 
333
 
 
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);
 
340
 
 
341
        getContentPane().add(JPanelProduto);
 
342
        JPanelProduto.setBounds(20, 90, 604, 365);
 
343
 
 
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);
 
350
            }
 
351
        });
 
352
        getContentPane().add(BFinalizar);
 
353
        BFinalizar.setBounds(503, 60, 110, 20);
 
354
 
 
355
        setSize(new java.awt.Dimension(648, 500));
 
356
        setLocationRelativeTo(null);
 
357
    }// </editor-fold>//GEN-END:initComponents
 
358
 
 
359
private void BFinalizarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BFinalizarActionPerformed
 
360
        if(Janelinha.Pergunta(Lingua.getMensagem("atualizar"),Lingua.getMensagem("tem_certeza")))
 
361
        {
 
362
            CadastrarAlterar();
 
363
        }
 
364
}//GEN-LAST:event_BFinalizarActionPerformed
 
365
 
 
366
private void BProdutoAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BProdutoAddActionPerformed
 
367
    Botoes("ItensPesquisar");
 
368
}//GEN-LAST:event_BProdutoAddActionPerformed
 
369
 
 
370
private void lista_itensKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_lista_itensKeyReleased
 
371
    CalcularValorTotal();
 
372
}//GEN-LAST:event_lista_itensKeyReleased
 
373
 
 
374
private void BProdutoDelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BProdutoDelActionPerformed
 
375
    RemoverItem();
 
376
}//GEN-LAST:event_BProdutoDelActionPerformed
 
377
 
 
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
 
396
 
 
397
}