OpenConcerto

Dépôt officiel du code source de l'ERP OpenConcerto
sonarqube

svn://code.openconcerto.org/openconcerto

Rev

Rev 156 | Rev 182 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 156 Rev 180
Line 12... Line 12...
12
 */
12
 */
13
 
13
 
14
 package org.openconcerto.erp.core.finance.accounting.ui;
14
 package org.openconcerto.erp.core.finance.accounting.ui;
15
 
15
 
16
import org.openconcerto.erp.config.ComptaPropsConfiguration;
16
import org.openconcerto.erp.config.ComptaPropsConfiguration;
-
 
17
import org.openconcerto.erp.core.common.ui.DeviseField;
17
import org.openconcerto.erp.core.common.ui.DeviseNiceTableCellRenderer;
18
import org.openconcerto.erp.core.common.ui.DeviseNiceTableCellRenderer;
18
import org.openconcerto.erp.core.finance.accounting.element.ComptePCESQLElement;
19
import org.openconcerto.erp.core.finance.accounting.element.ComptePCESQLElement;
19
import org.openconcerto.erp.core.finance.accounting.element.EcritureSQLElement;
20
import org.openconcerto.erp.core.finance.accounting.element.EcritureSQLElement;
20
import org.openconcerto.erp.core.finance.accounting.element.MouvementSQLElement;
21
import org.openconcerto.erp.core.finance.accounting.element.MouvementSQLElement;
21
import org.openconcerto.erp.core.finance.accounting.model.PointageModel;
22
import org.openconcerto.erp.core.finance.accounting.model.PointageModel;
Line 72... Line 73...
72
import javax.swing.JTextField;
73
import javax.swing.JTextField;
73
import javax.swing.SwingConstants;
74
import javax.swing.SwingConstants;
74
import javax.swing.SwingUtilities;
75
import javax.swing.SwingUtilities;
75
import javax.swing.SwingWorker;
76
import javax.swing.SwingWorker;
76
import javax.swing.event.DocumentEvent;
77
import javax.swing.event.DocumentEvent;
77
import javax.swing.event.DocumentListener;
-
 
78
import javax.swing.event.TableModelEvent;
78
import javax.swing.event.TableModelEvent;
79
import javax.swing.event.TableModelListener;
79
import javax.swing.event.TableModelListener;
80
 
80
 
81
public class PointagePanel extends JPanel {
81
public class PointagePanel extends JPanel {
82
 
82
 
Line 84... Line 84...
84
    private JTextField codePointage;
84
    private JTextField codePointage;
85
    private ISQLCompteSelector selCompte;
85
    private ISQLCompteSelector selCompte;
86
    private final JDate datePointee;
86
    private final JDate datePointee;
87
    private JCheckBox boxValidEcriture;
87
    private JCheckBox boxValidEcriture;
88
    private JPanel warningPanel;
88
    private JPanel warningPanel;
-
 
89
    private final DeviseField fieldSoldeD = new DeviseField(15);
-
 
90
    private final DeviseField fieldSoldeA = new DeviseField(15);
-
 
91
    private final DeviseField fieldEcart = new DeviseField(15);
89
 
92
 
90
    private final SQLBase base = ((ComptaPropsConfiguration) Configuration.getInstance()).getSQLBaseSociete();
93
    private final SQLBase base = ((ComptaPropsConfiguration) Configuration.getInstance()).getSQLBaseSociete();
91
    private final SQLTable tableEcr = this.base.getTable("ECRITURE");
94
    private final SQLTable tableEcr = this.base.getTable("ECRITURE");
92
    private final SQLTable tableCpt = this.base.getTable("COMPTE_PCE");
95
    private final SQLTable tableCpt = this.base.getTable("COMPTE_PCE");
93
 
96
 
Line 202... Line 205...
202
        c.weightx = 1;
205
        c.weightx = 1;
203
        c.gridx++;
206
        c.gridx++;
204
        c.gridwidth = 1;
207
        c.gridwidth = 1;
205
        this.add(this.datePointee, c);
208
        this.add(this.datePointee, c);
206
 
209
 
-
 
210
        JPanel panelCheckValue = new JPanel(new GridBagLayout());
-
 
211
        GridBagConstraints cCheck = new DefaultGridBagConstraints();
-
 
212
        JLabel labelSoldeD = new JLabel("Solde de départ");
-
 
213
        labelSoldeD.setHorizontalAlignment(SwingConstants.RIGHT);
-
 
214
        cCheck.gridwidth = 1;
-
 
215
        cCheck.weightx = 0;
-
 
216
        panelCheckValue.add(labelSoldeD, cCheck);
-
 
217
 
-
 
218
        cCheck.fill = GridBagConstraints.NONE;
-
 
219
        cCheck.weightx = 1;
-
 
220
        cCheck.gridx++;
-
 
221
        cCheck.gridwidth = 1;
-
 
222
        panelCheckValue.add(this.fieldSoldeD, cCheck);
-
 
223
 
-
 
224
        JLabel labelSoldeA = new JLabel("Solde d'arrivée");
-
 
225
        labelSoldeA.setHorizontalAlignment(SwingConstants.RIGHT);
-
 
226
        cCheck.gridx++;
-
 
227
 
-
 
228
        cCheck.gridwidth = 1;
-
 
229
        cCheck.weightx = 0;
-
 
230
        panelCheckValue.add(labelSoldeA, cCheck);
-
 
231
        cCheck.fill = GridBagConstraints.NONE;
-
 
232
        cCheck.weightx = 1;
-
 
233
        cCheck.gridx++;
-
 
234
        cCheck.gridwidth = 1;
-
 
235
        panelCheckValue.add(this.fieldSoldeA, cCheck);
-
 
236
 
-
 
237
        JLabel labelEcart = new JLabel("Ecart pointage");
-
 
238
        labelEcart.setHorizontalAlignment(SwingConstants.RIGHT);
-
 
239
        cCheck.gridx++;
-
 
240
        cCheck.gridwidth = 1;
-
 
241
        cCheck.weightx = 0;
-
 
242
        panelCheckValue.add(labelEcart, cCheck);
-
 
243
 
-
 
244
        cCheck.fill = GridBagConstraints.NONE;
-
 
245
        cCheck.weightx = 1;
-
 
246
        cCheck.gridx++;
-
 
247
        cCheck.gridwidth = 1;
-
 
248
        this.fieldEcart.setEditable(false);
-
 
249
        panelCheckValue.add(this.fieldEcart, cCheck);
-
 
250
 
-
 
251
        c.gridx++;
-
 
252
        c.gridwidth = 3;
-
 
253
        c.weightx = 1;
-
 
254
        this.add(panelCheckValue, c);
-
 
255
        this.fieldSoldeA.getDocument().addDocumentListener(new SimpleDocumentListener() {
-
 
256
 
-
 
257
            @Override
-
 
258
            public void update(DocumentEvent e) {
-
 
259
                PointagePanel.this.model.updateTotauxCompte(PointagePanel.this.fieldSoldeD, PointagePanel.this.fieldSoldeA, PointagePanel.this.fieldEcart);
-
 
260
            }
-
 
261
        });
-
 
262
 
-
 
263
        this.fieldSoldeD.getDocument().addDocumentListener(new SimpleDocumentListener() {
-
 
264
 
-
 
265
            @Override
-
 
266
            public void update(DocumentEvent e) {
-
 
267
                PointagePanel.this.model.updateTotauxCompte(PointagePanel.this.fieldSoldeD, PointagePanel.this.fieldSoldeA, PointagePanel.this.fieldEcart);
-
 
268
            }
-
 
269
        });
-
 
270
 
207
        TitledSeparator sepPeriode = new TitledSeparator("Filtre ");
271
        TitledSeparator sepPeriode = new TitledSeparator("Filtre ");
208
        c.gridy++;
272
        c.gridy++;
209
        c.gridx = 0;
273
        c.gridx = 0;
210
        c.anchor = GridBagConstraints.WEST;
274
        c.anchor = GridBagConstraints.WEST;
211
        c.gridwidth = GridBagConstraints.REMAINDER;
275
        c.gridwidth = GridBagConstraints.REMAINDER;
Line 242... Line 306...
242
 
306
 
243
        panelPeriode.add(this.dateDeb);
307
        panelPeriode.add(this.dateDeb);
244
        this.dateDeb.addValueListener(new PropertyChangeListener() {
308
        this.dateDeb.addValueListener(new PropertyChangeListener() {
245
            public void propertyChange(PropertyChangeEvent evt) {
309
            public void propertyChange(PropertyChangeEvent evt) {
246
                changeListRequest();
310
                changeListRequest();
247
                PointagePanel.this.model.updateTotauxCompte();
311
                PointagePanel.this.model.updateTotauxCompte(PointagePanel.this.fieldSoldeD, PointagePanel.this.fieldSoldeA, PointagePanel.this.fieldEcart);
248
            }
312
            }
249
        });
313
        });
250
 
314
 
251
        // Date de fin
315
        // Date de fin
252
        this.dateFin = new JDate(true);
316
        this.dateFin = new JDate(true);
253
        panelPeriode.add(new JLabel("au"));
317
        panelPeriode.add(new JLabel("au"));
254
        this.dateFin.addValueListener(new PropertyChangeListener() {
318
        this.dateFin.addValueListener(new PropertyChangeListener() {
255
            public void propertyChange(PropertyChangeEvent evt) {
319
            public void propertyChange(PropertyChangeEvent evt) {
256
                changeListRequest();
320
                changeListRequest();
257
                PointagePanel.this.model.updateTotauxCompte();
321
                PointagePanel.this.model.updateTotauxCompte(PointagePanel.this.fieldSoldeD, PointagePanel.this.fieldSoldeA, PointagePanel.this.fieldEcart);
258
            }
322
            }
259
        });
323
        });
260
 
324
 
261
        panelPeriode.add(this.dateFin);
325
        panelPeriode.add(this.dateFin);
262
 
326
 
Line 444... Line 508...
444
        });
508
        });
445
 
509
 
446
        this.ecriturePanel.getListe().addListener(new TableModelListener() {
510
        this.ecriturePanel.getListe().addListener(new TableModelListener() {
447
            @Override
511
            @Override
448
            public void tableChanged(TableModelEvent e) {
512
            public void tableChanged(TableModelEvent e) {
449
                PointagePanel.this.model.updateTotauxCompte();
513
                PointagePanel.this.model.updateTotauxCompte(PointagePanel.this.fieldSoldeD, PointagePanel.this.fieldSoldeA, PointagePanel.this.fieldEcart);
450
            }
514
            }
451
        });
515
        });
452
 
516
 
453
        // Gestion du code de releve
517
        // Gestion du code de releve
454
        this.codePointage.getDocument().addDocumentListener(new SimpleDocumentListener() {
518
        this.codePointage.getDocument().addDocumentListener(new SimpleDocumentListener() {
455
 
519
 
456
            @Override
520
            @Override
457
            public void update(DocumentEvent e) {
521
            public void update(DocumentEvent e) {
458
                PointagePanel.this.warningPanel.setVisible((PointagePanel.this.codePointage.getText().trim().length() == 0));
522
                PointagePanel.this.warningPanel.setVisible((PointagePanel.this.codePointage.getText().trim().length() == 0));
459
                PointagePanel.this.buttonPointer.setEnabled((PointagePanel.this.codePointage.getText().trim().length() != 0));
523
                PointagePanel.this.buttonPointer.setEnabled((PointagePanel.this.codePointage.getText().trim().length() != 0));
460
                PointagePanel.this.model.updateTotauxCompte();
524
                PointagePanel.this.model.updateTotauxCompte(PointagePanel.this.fieldSoldeD, PointagePanel.this.fieldSoldeA, PointagePanel.this.fieldEcart);
461
            }
525
            }
462
        });
526
        });
463
 
527
 
464
        changeListRequest();
528
        changeListRequest();
465
        this.warningPanel.setVisible((this.codePointage.getText().trim().length() == 0));
529
        this.warningPanel.setVisible((this.codePointage.getText().trim().length() == 0));
Line 567... Line 631...
567
            } catch (SQLException e1) {
631
            } catch (SQLException e1) {
568
 
632
 
569
                e1.printStackTrace();
633
                e1.printStackTrace();
570
            }
634
            }
571
        }
635
        }
572
        this.model.updateTotauxCompte();
636
        this.model.updateTotauxCompte(PointagePanel.this.fieldSoldeD, PointagePanel.this.fieldSoldeA, PointagePanel.this.fieldEcart);
573
    }
637
    }
574
 
638
 
575
    public ListPanelEcritures getEcriturePanel() {
639
    public ListPanelEcritures getEcriturePanel() {
576
        return ecriturePanel;
640
        return ecriturePanel;
577
    }
641
    }
Line 594... Line 658...
594
                rowVals.update(id);
658
                rowVals.update(id);
595
            } catch (SQLException e1) {
659
            } catch (SQLException e1) {
596
                e1.printStackTrace();
660
                e1.printStackTrace();
597
            }
661
            }
598
        }
662
        }
599
        this.model.updateTotauxCompte();
663
        this.model.updateTotauxCompte(PointagePanel.this.fieldSoldeD, PointagePanel.this.fieldSoldeA, PointagePanel.this.fieldEcart);
600
    }
664
    }
601
 
665
 
602
    /*
666
    /*
603
     * MaJ de la requete pour remplir la IListe en fonction du compte sélectionner et du mode de
667
     * MaJ de la requete pour remplir la IListe en fonction du compte sélectionner et du mode de
604
     * sélection
668
     * sélection