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 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
18 ilm 1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 2011 OpenConcerto, by ILM Informatique. All rights reserved.
5
 *
6
 * The contents of this file are subject to the terms of the GNU General Public License Version 3
7
 * only ("GPL"). You may not use this file except in compliance with the License. You can obtain a
8
 * copy of the License at http://www.gnu.org/licenses/gpl-3.0.html See the License for the specific
9
 * language governing permissions and limitations under the License.
10
 *
11
 * When distributing the software, include this License Header Notice in each file.
12
 */
13
 
14
 package org.openconcerto.erp.core.reports.history.ui;
15
 
16
import org.openconcerto.erp.config.ComptaPropsConfiguration;
17
import org.openconcerto.erp.core.common.ui.PanelFrame;
18
import org.openconcerto.erp.preferences.DefaultNXProps;
19
import org.openconcerto.sql.Configuration;
20
import org.openconcerto.sql.model.SQLBase;
21
import org.openconcerto.sql.model.SQLField;
22
import org.openconcerto.sql.model.SQLRowAccessor;
23
import org.openconcerto.sql.model.SQLTable;
21 ilm 24
import org.openconcerto.sql.model.Where;
65 ilm 25
import org.openconcerto.sql.users.rights.JListSQLTablePanel;
18 ilm 26
 
27
import java.awt.event.WindowAdapter;
28
import java.awt.event.WindowEvent;
28 ilm 29
import java.util.Arrays;
18 ilm 30
import java.util.HashMap;
31
import java.util.List;
32
import java.util.Map;
33
 
34
import javax.swing.JFrame;
35
import javax.swing.event.TableModelEvent;
36
import javax.swing.event.TableModelListener;
37
 
38
public class HistoriqueClientFrame {
39
 
40
    private PanelFrame panelFrame;
41
    private ListeHistoriquePanel listPanel;
42
 
43
    public HistoriqueClientFrame() {
44
        final ComptaPropsConfiguration comptaPropsConfiguration = ((ComptaPropsConfiguration) Configuration.getInstance());
45
        SQLBase b = comptaPropsConfiguration.getSQLBaseSociete();
46
 
28 ilm 47
        // List<String> l = new ArrayList<String>();
48
        Map<String, List<String>> mapList = new HashMap<String, List<String>>();
18 ilm 49
 
41 ilm 50
        final Boolean bModeVenteComptoir = DefaultNXProps.getInstance().getBooleanValue("ArticleVenteComptoir", true);
18 ilm 51
        if (bModeVenteComptoir) {
28 ilm 52
            mapList.put("Ventes comptoir", Arrays.asList("SAISIE_VENTE_COMPTOIR"));
18 ilm 53
        }
28 ilm 54
        mapList.put("Ventes facture", Arrays.asList("SAISIE_VENTE_FACTURE"));
55
        mapList.put("Chèques à encaisser", Arrays.asList("CHEQUE_A_ENCAISSER"));
56
        mapList.put("Echéances", Arrays.asList("ECHEANCE_CLIENT"));
57
        mapList.put("Relances", Arrays.asList("RELANCE"));
58
        mapList.put("Devis", Arrays.asList("DEVIS"));
180 ilm 59
        mapList.put("Commandes", Arrays.asList("COMMANDE_CLIENT"));
28 ilm 60
        mapList.put("Avoirs", Arrays.asList("AVOIR_CLIENT"));
93 ilm 61
                mapList.put("Articles facturés", Arrays.asList("SAISIE_VENTE_FACTURE_ELEMENT"));
62
                mapList.put("Articles proposés", Arrays.asList("DEVIS_ELEMENT"));
156 ilm 63
                mapList.put("Encaissements", Arrays.asList("ENCAISSER_MONTANT"));
18 ilm 64
        Map<SQLTable, SQLField> map = new HashMap<SQLTable, SQLField>();
65
        map.put(b.getTable("SAISIE_VENTE_FACTURE_ELEMENT"), b.getTable("SAISIE_VENTE_FACTURE_ELEMENT").getField("ID_SAISIE_VENTE_FACTURE"));
28 ilm 66
        map.put(b.getTable("DEVIS_ELEMENT"), b.getTable("DEVIS_ELEMENT").getField("ID_DEVIS"));
18 ilm 67
 
68
        final HistoriqueClientBilanPanel bilanPanel = new HistoriqueClientBilanPanel();
67 ilm 69
        SQLTable tableEch = Configuration.getInstance().getRoot().findTable("ECHEANCE_CLIENT");
70
        Where wNotRegle = new Where(tableEch.getField("REGLE"), "=", Boolean.FALSE);
71
        wNotRegle = wNotRegle.and(new Where(tableEch.getField("REG_COMPTA"), "=", Boolean.FALSE));
18 ilm 72
 
156 ilm 73
        this.listPanel = new ListeHistoriquePanel("Clients", JListSQLTablePanel.createComboRequest(Configuration.getInstance().getDirectory().getElement(b.getTable("CLIENT")), false), mapList,
74
                bilanPanel, map, null, wNotRegle);
18 ilm 75
        this.listPanel.addListenerTable(new TableModelListener() {
76
            public void tableChanged(TableModelEvent arg0) {
77
                bilanPanel.updateRelance(HistoriqueClientFrame.this.listPanel.getListId("RELANCE"));
78
            }
79
        }, "RELANCE");
80
 
81
        this.listPanel.addListenerTable(new TableModelListener() {
82
            public void tableChanged(TableModelEvent arg0) {
83
                bilanPanel.updateEcheance(HistoriqueClientFrame.this.listPanel.getListId("ECHEANCE_CLIENT"));
84
            }
85
        }, "ECHEANCE_CLIENT");
86
 
87
        this.listPanel.addListenerTable(new TableModelListener() {
88
            public void tableChanged(TableModelEvent arg0) {
89
                bilanPanel.updateChequeData(HistoriqueClientFrame.this.listPanel.getListId("CHEQUE_A_ENCAISSER"));
90
            }
91
        }, "CHEQUE_A_ENCAISSER");
92
 
93
        this.listPanel.addListenerTable(new TableModelListener() {
94
            public void tableChanged(TableModelEvent arg0) {
95
                bilanPanel.updateVCData(HistoriqueClientFrame.this.listPanel.getListId("SAISIE_VENTE_COMPTOIR"));
96
            }
97
        }, "SAISIE_VENTE_COMPTOIR");
98
 
99
        this.listPanel.addListenerTable(new TableModelListener() {
100
            public void tableChanged(TableModelEvent arg0) {
101
                SQLRowAccessor rowSel = HistoriqueClientFrame.this.listPanel.getSelectedRow();
102
                int id = (rowSel == null) ? -1 : rowSel.getID();
103
                bilanPanel.updateVFData(HistoriqueClientFrame.this.listPanel.getListId("SAISIE_VENTE_FACTURE"), id);
104
            }
105
        }, "SAISIE_VENTE_FACTURE");
106
 
90 ilm 107
        this.listPanel.addListenerTable(new TableModelListener() {
108
            public void tableChanged(TableModelEvent arg0) {
109
 
110
                SQLRowAccessor rowSel = HistoriqueClientFrame.this.listPanel.getSelectedRow();
111
                int id = (rowSel == null) ? -1 : rowSel.getID();
112
                bilanPanel.updateVFArticleData(HistoriqueClientFrame.this.listPanel.getListId("SAISIE_VENTE_FACTURE_ELEMENT"), id);
113
            }
114
        }, "SAISIE_VENTE_FACTURE_ELEMENT");
115
 
18 ilm 116
        this.panelFrame = new PanelFrame(this.listPanel, "Historique client");
117
        this.panelFrame.addWindowListener(new WindowAdapter() {
118
            public void windowClosing(WindowEvent e) {
119
                listPanel.removeAllTableListener();
120
            };
121
        });
122
 
123
        this.panelFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
156 ilm 124
 
125
        // // Daet filter
126
        // Map<IListe, SQLField> listeFilter = new HashMap<IListe, SQLField>();
127
        // IListe listeRel = this.listPanel.getIListeFromTableName("RELANCE");
128
        // listeFilter.put(listeRel, listeRel.getModel().getTable().getField("DATE"));
129
        // IListe listeVtC = this.listPanel.getIListeFromTableName("SAISIE_VENTE_COMPTOIR");
130
        // listeFilter.put(listeVtC, listeVtC.getModel().getTable().getField("DATE"));
131
        // IListe listeDevis = this.listPanel.getIListeFromTableName("DEVIS");
132
        // listeFilter.put(listeDevis, listeDevis.getModel().getTable().getField("DATE"));
133
        //
134
        // IListe listeChq = this.listPanel.getIListeFromTableName("CHEQUE_A_ENCAISSER");
135
        // listeFilter.put(listeChq, listeChq.getModel().getTable().getField("DATE"));
136
        //
137
        // IListe listeEch = this.listPanel.getIListeFromTableName("ECHEANCE_CLIENT");
138
        // listeFilter.put(listeEch, listeEch.getModel().getTable().getField("DATE"));
139
        // IListe listedevisElt = this.listPanel.getIListeFromTableName("DEVIS_ELEMENT");
140
        // listeFilter.put(listedevisElt,
141
        // listedevisElt.getModel().getTable().getForeignTable("ID_DEVIS").getField("DATE"));
142
        //
143
        // IListe listeAvoir = this.listPanel.getIListeFromTableName("AVOIR_CLIENT");
144
        // listeFilter.put(listeAvoir, listeAvoir.getModel().getTable().getField("DATE"));
145
        //
146
        // IListe listefactElt =
147
        // this.listPanel.getIListeFromTableName("SAISIE_VENTE_FACTURE_ELEMENT");
148
        // listeFilter.put(listefactElt,
149
        // listefactElt.getModel().getTable().getForeignTable("ID_SAISIE_VENTE_FACTURE").getField("DATE"));
150
        //
151
        // IListe listeFact = this.listPanel.getIListeFromTableName("SAISIE_VENTE_FACTURE");
152
        // listeFilter.put(listeFact, listeFact.getModel().getTable().getField("DATE"));
153
        //
154
        // final IListFilterDatePanel panel = new IListFilterDatePanel(listeFilter,
155
        // IListFilterDatePanel.getDefaultMap());
156
        // GridBagConstraints c = new DefaultGridBagConstraints();
157
        // c.gridy = 4;
158
        // c.gridwidth = GridBagConstraints.REMAINDER;
159
        // c.weightx = 1;
160
        // c.gridx=0;
161
        // this.listPanel.add(panel);
162
 
18 ilm 163
    }
164
 
165
    public PanelFrame getFrame() {
166
        return this.panelFrame;
167
    }
168
 
169
    public void selectId(int id) {
170
        this.listPanel.selectIDinJList(id);
171
    }
172
 
173
    public void setVisible(boolean b) {
174
        this.panelFrame.setVisible(b);
175
    }
176
}