OpenConcerto

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

svn://code.openconcerto.org/openconcerto

Rev

Rev 149 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 149 Rev 156
Line 66... Line 66...
66
import javax.swing.JLabel;
66
import javax.swing.JLabel;
67
import javax.swing.JOptionPane;
67
import javax.swing.JOptionPane;
68
import javax.swing.JPanel;
68
import javax.swing.JPanel;
69
import javax.swing.JPopupMenu;
69
import javax.swing.JPopupMenu;
70
import javax.swing.JScrollPane;
70
import javax.swing.JScrollPane;
-
 
71
import javax.swing.JTextField;
71
import javax.swing.SwingConstants;
72
import javax.swing.SwingConstants;
72
import javax.swing.SwingUtilities;
73
import javax.swing.SwingUtilities;
73
import javax.swing.ToolTipManager;
74
import javax.swing.ToolTipManager;
74
import javax.swing.event.CellEditorListener;
75
import javax.swing.event.CellEditorListener;
75
import javax.swing.event.ChangeEvent;
76
import javax.swing.event.ChangeEvent;
Line 92... Line 93...
92
 
93
 
93
    private SaisieJournalPanel panel;
94
    private SaisieJournalPanel panel;
94
    private final JCheckBox boxAutoInsert;
95
    private final JCheckBox boxAutoInsert;
95
    private boolean hideAnalytique = false;
96
    private boolean hideAnalytique = false;
96
 
97
 
97
    public SaisieJournalItemTable(final SQLRowValues defaultRowVals, JCheckBox boxAutoInsert) {
98
    public SaisieJournalItemTable(final SQLRowValues defaultRowVals, JCheckBox boxAutoInsert, final JTextField textField) {
98
        setLayout(new GridBagLayout());
99
        setLayout(new GridBagLayout());
99
        this.boxAutoInsert = boxAutoInsert;
100
        this.boxAutoInsert = boxAutoInsert;
100
        final GridBagConstraints c = new DefaultGridBagConstraints();
101
        final GridBagConstraints c = new DefaultGridBagConstraints();
101
        c.weightx = 1;
102
        c.weightx = 1;
102
 
103
 
Line 144... Line 145...
144
        if (!this.hideAnalytique) {
145
        if (!this.hideAnalytique) {
145
            final AnalytiqueItemTable analytiqueAssocTable = new AnalytiqueItemTable(true, new AbstractAction() {
146
            final AnalytiqueItemTable analytiqueAssocTable = new AnalytiqueItemTable(true, new AbstractAction() {
146
 
147
 
147
                @Override
148
                @Override
148
                public void actionPerformed(ActionEvent e) {
149
                public void actionPerformed(ActionEvent e) {
149
                    montantValid(defaultRowVals, true);
150
                    montantValid(defaultRowVals, true, textField);
150
                }
151
                }
151
            });
152
            });
152
            final MultiLineTableCellEditor multiLineTableCellEditor = new MultiLineTableCellEditor((RowValuesMultiLineEditTable) analytiqueAssocTable.getTable(), analytiqueAssocTable);
153
            final MultiLineTableCellEditor multiLineTableCellEditor = new MultiLineTableCellEditor((RowValuesMultiLineEditTable) analytiqueAssocTable.getTable(), analytiqueAssocTable);
153
 
154
 
154
            SQLTableElement eltPourcentAnalytique = new SQLTableElement(tableElement.getField("ANALYTIQUE"), String.class, multiLineTableCellEditor) {
155
            SQLTableElement eltPourcentAnalytique = new SQLTableElement(tableElement.getField("ANALYTIQUE"), String.class, multiLineTableCellEditor) {
Line 256... Line 257...
256
            }
257
            }
257
 
258
 
258
            @Override
259
            @Override
259
            public void keyPressed(KeyEvent e) {
260
            public void keyPressed(KeyEvent e) {
260
                if (e.getKeyCode() == KeyEvent.VK_ENTER) {
261
                if (e.getKeyCode() == KeyEvent.VK_ENTER) {
261
                    montantValid(defaultRowVals, false);
262
                    montantValid(defaultRowVals, false, textField);
262
                }
263
                }
263
            }
264
            }
264
        };
265
        };
265
        deviseCreditEditor.addKeyListener(keyListenerContrepartie);
266
        deviseCreditEditor.addKeyListener(keyListenerContrepartie);
266
        deviseDebitEditor.addKeyListener(keyListenerContrepartie);
267
        deviseDebitEditor.addKeyListener(keyListenerContrepartie);
Line 470... Line 471...
470
        c.set(Calendar.MONTH, SaisieJournalItemTable.this.panel.getSelectedMonth());
471
        c.set(Calendar.MONTH, SaisieJournalItemTable.this.panel.getSelectedMonth());
471
        c.set(Calendar.DAY_OF_MONTH, day);
472
        c.set(Calendar.DAY_OF_MONTH, day);
472
        return Tuple2.create(c.getTime(), lib);
473
        return Tuple2.create(c.getTime(), lib);
473
    }
474
    }
474
 
475
 
475
    public void montantValid(final SQLRowValues defaultRowVals, final boolean fromAnalytique) {
476
    public void montantValid(final SQLRowValues defaultRowVals, final boolean fromAnalytique, final JTextField textPiece) {
476
        System.err.println("Enter");
477
        System.err.println("Enter");
477
        final SQLRowValues vals = SaisieJournalItemTable.this.table.getSelectedRowValues();
478
        final SQLRowValues vals = SaisieJournalItemTable.this.table.getSelectedRowValues();
478
        final int selectedRow = SaisieJournalItemTable.this.table.getSelectedRow();
479
        final int selectedRow = SaisieJournalItemTable.this.table.getSelectedRow();
479
        SwingUtilities.invokeLater(new Runnable() {
480
        SwingUtilities.invokeLater(new Runnable() {
480
            public void run() {
481
            public void run() {
481
 
482
 
482
                if (boxAutoInsert.isSelected() && isSaisieValid()) {
483
                if (boxAutoInsert.isSelected() && isSaisieValid()) {
483
                    if (SaisieJournalItemTable.this.panel.getSelectedJournal() == SQLRow.NONEXISTANT_ID || SaisieJournalItemTable.this.panel.getSelectedMonth() == -1) {
484
                    if (SaisieJournalItemTable.this.panel.getSelectedJournal() == SQLRow.NONEXISTANT_ID || SaisieJournalItemTable.this.panel.getSelectedMonth() == -1) {
484
                        JOptionPane.showMessageDialog(SaisieJournalItemTable.this.panel, "Impossible de créer la saisie si aucun journal ou aucun mois n'est sélectionné!");
485
                        JOptionPane.showMessageDialog(SaisieJournalItemTable.this.panel, "Impossible de créer la saisie si aucun journal ou aucun mois n'est sélectionné!");
485
                    } else {
486
                    } else {
486
                        createSaisie(defaultRowVals);
487
                        createSaisie(defaultRowVals, textPiece);
487
                    }
488
                    }
488
                } else {
489
                } else {
489
                    if (!fromAnalytique && !hideAnalytique && vals.getString("NUMERO") != null && (vals.getString("NUMERO").startsWith("6") || vals.getString("NUMERO").startsWith("7"))) {
490
                    if (!fromAnalytique && !hideAnalytique && vals.getString("NUMERO") != null && (vals.getString("NUMERO").startsWith("6") || vals.getString("NUMERO").startsWith("7"))) {
490
 
491
 
491
                        // Update montant
492
                        // Update montant
Line 515... Line 516...
515
            }
516
            }
516
        });
517
        });
517
 
518
 
518
    }
519
    }
519
 
520
 
520
    public synchronized void createSaisie(final SQLRowValues defaultRowVals) {
521
    public synchronized void createSaisie(final SQLRowValues defaultRowVals, JTextField pieceText) {
521
 
522
 
522
        Tuple2<Date, String> t = getDateAndLabelFromSaisie();
523
        Tuple2<Date, String> t = getDateAndLabelFromSaisie();
523
        final Date d = t.get0();
524
        final Date d = t.get0();
524
        final String lib = t.get1();
525
        String pieceLabel = pieceText.getText();
-
 
526
        final String lib = pieceLabel == null || pieceLabel.trim().length() == 0 ? t.get1() : pieceLabel;
525
 
527
 
526
        // Create saisieKM
528
        // Create saisieKM
527
        SQLRowValues rowVAlsKM = new SQLRowValues(SaisieJournalItemTable.this.table.getRowValuesTableModel().getSQLElement().getTable().getForeignTable("ID_SAISIE_KM"));
529
        SQLRowValues rowVAlsKM = new SQLRowValues(SaisieJournalItemTable.this.table.getRowValuesTableModel().getSQLElement().getTable().getForeignTable("ID_SAISIE_KM"));
528
 
530
 
529
        rowVAlsKM.put("DATE", d);
531
        rowVAlsKM.put("DATE", d);
Line 534... Line 536...
534
            id = rowVAlsKM.insert().getID();
536
            id = rowVAlsKM.insert().getID();
535
 
537
 
536
            table.updateField("ID_SAISIE_KM", id);
538
            table.updateField("ID_SAISIE_KM", id);
537
            table.clear();
539
            table.clear();
538
            GenerationMvtSaisieKm gen = new GenerationMvtSaisieKm(id);
540
            GenerationMvtSaisieKm gen = new GenerationMvtSaisieKm(id);
539
            gen.genereMouvement();
541
            int idMvt = gen.genereMouvement();
-
 
542
 
-
 
543
            // maj de l'id du mouvement correspondant
-
 
544
            SQLRowValues rowValsKMMvt = new SQLRowValues(SaisieJournalItemTable.this.table.getRowValuesTableModel().getSQLElement().getTable().getForeignTable("ID_SAISIE_KM"));
-
 
545
            rowValsKMMvt.put("ID_MOUVEMENT", new Integer(idMvt));
-
 
546
            rowValsKMMvt.update(id);
540
 
547
 
541
            defaultRowVals.put("NOM_PIECE", "");
548
            defaultRowVals.put("NOM_PIECE", "");
542
            defaultRowVals.put("NOM_ECRITURE", "");
549
            defaultRowVals.put("NOM_ECRITURE", "");
543
            table.getRowValuesTableModel().addNewRow();
550
            table.getRowValuesTableModel().addNewRow();
544
 
-
 
-
 
551
            pieceText.setText("");
545
        } catch (SQLException e) {
552
        } catch (SQLException e) {
546
            e.printStackTrace();
553
            e.printStackTrace();
547
        }
554
        }
548
 
555
 
549
    }
556
    }