OpenConcerto

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

svn://code.openconcerto.org/openconcerto

Rev

Rev 180 | 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
 *
182 ilm 4
 * Copyright 2011-2019 OpenConcerto, by ILM Informatique. All rights reserved.
18 ilm 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"));
182 ilm 60
        mapList.put("Bons de livraison", Arrays.asList("BON_DE_LIVRAISON"));
28 ilm 61
        mapList.put("Avoirs", Arrays.asList("AVOIR_CLIENT"));
93 ilm 62
                mapList.put("Articles facturés", Arrays.asList("SAISIE_VENTE_FACTURE_ELEMENT"));
63
                mapList.put("Articles proposés", Arrays.asList("DEVIS_ELEMENT"));
156 ilm 64
                mapList.put("Encaissements", Arrays.asList("ENCAISSER_MONTANT"));
18 ilm 65
        Map<SQLTable, SQLField> map = new HashMap<SQLTable, SQLField>();
66
        map.put(b.getTable("SAISIE_VENTE_FACTURE_ELEMENT"), b.getTable("SAISIE_VENTE_FACTURE_ELEMENT").getField("ID_SAISIE_VENTE_FACTURE"));
28 ilm 67
        map.put(b.getTable("DEVIS_ELEMENT"), b.getTable("DEVIS_ELEMENT").getField("ID_DEVIS"));
18 ilm 68
 
69
        final HistoriqueClientBilanPanel bilanPanel = new HistoriqueClientBilanPanel();
67 ilm 70
        SQLTable tableEch = Configuration.getInstance().getRoot().findTable("ECHEANCE_CLIENT");
71
        Where wNotRegle = new Where(tableEch.getField("REGLE"), "=", Boolean.FALSE);
72
        wNotRegle = wNotRegle.and(new Where(tableEch.getField("REG_COMPTA"), "=", Boolean.FALSE));
18 ilm 73
 
156 ilm 74
        this.listPanel = new ListeHistoriquePanel("Clients", JListSQLTablePanel.createComboRequest(Configuration.getInstance().getDirectory().getElement(b.getTable("CLIENT")), false), mapList,
75
                bilanPanel, map, null, wNotRegle);
18 ilm 76
        this.listPanel.addListenerTable(new TableModelListener() {
77
            public void tableChanged(TableModelEvent arg0) {
78
                bilanPanel.updateRelance(HistoriqueClientFrame.this.listPanel.getListId("RELANCE"));
79
            }
80
        }, "RELANCE");
81
 
82
        this.listPanel.addListenerTable(new TableModelListener() {
83
            public void tableChanged(TableModelEvent arg0) {
84
                bilanPanel.updateEcheance(HistoriqueClientFrame.this.listPanel.getListId("ECHEANCE_CLIENT"));
85
            }
86
        }, "ECHEANCE_CLIENT");
87
 
88
        this.listPanel.addListenerTable(new TableModelListener() {
89
            public void tableChanged(TableModelEvent arg0) {
90
                bilanPanel.updateChequeData(HistoriqueClientFrame.this.listPanel.getListId("CHEQUE_A_ENCAISSER"));
91
            }
92
        }, "CHEQUE_A_ENCAISSER");
93
 
94
        this.listPanel.addListenerTable(new TableModelListener() {
95
            public void tableChanged(TableModelEvent arg0) {
96
                bilanPanel.updateVCData(HistoriqueClientFrame.this.listPanel.getListId("SAISIE_VENTE_COMPTOIR"));
97
            }
98
        }, "SAISIE_VENTE_COMPTOIR");
99
 
100
        this.listPanel.addListenerTable(new TableModelListener() {
101
            public void tableChanged(TableModelEvent arg0) {
102
                SQLRowAccessor rowSel = HistoriqueClientFrame.this.listPanel.getSelectedRow();
103
                int id = (rowSel == null) ? -1 : rowSel.getID();
104
                bilanPanel.updateVFData(HistoriqueClientFrame.this.listPanel.getListId("SAISIE_VENTE_FACTURE"), id);
105
            }
106
        }, "SAISIE_VENTE_FACTURE");
107
 
90 ilm 108
        this.listPanel.addListenerTable(new TableModelListener() {
109
            public void tableChanged(TableModelEvent arg0) {
110
 
111
                SQLRowAccessor rowSel = HistoriqueClientFrame.this.listPanel.getSelectedRow();
112
                int id = (rowSel == null) ? -1 : rowSel.getID();
113
                bilanPanel.updateVFArticleData(HistoriqueClientFrame.this.listPanel.getListId("SAISIE_VENTE_FACTURE_ELEMENT"), id);
114
            }
115
        }, "SAISIE_VENTE_FACTURE_ELEMENT");
116
 
18 ilm 117
        this.panelFrame = new PanelFrame(this.listPanel, "Historique client");
118
        this.panelFrame.addWindowListener(new WindowAdapter() {
119
            public void windowClosing(WindowEvent e) {
120
                listPanel.removeAllTableListener();
121
            };
122
        });
123
 
124
        this.panelFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
156 ilm 125
 
126
        // // Daet filter
127
        // Map<IListe, SQLField> listeFilter = new HashMap<IListe, SQLField>();
128
        // IListe listeRel = this.listPanel.getIListeFromTableName("RELANCE");
129
        // listeFilter.put(listeRel, listeRel.getModel().getTable().getField("DATE"));
130
        // IListe listeVtC = this.listPanel.getIListeFromTableName("SAISIE_VENTE_COMPTOIR");
131
        // listeFilter.put(listeVtC, listeVtC.getModel().getTable().getField("DATE"));
132
        // IListe listeDevis = this.listPanel.getIListeFromTableName("DEVIS");
133
        // listeFilter.put(listeDevis, listeDevis.getModel().getTable().getField("DATE"));
134
        //
135
        // IListe listeChq = this.listPanel.getIListeFromTableName("CHEQUE_A_ENCAISSER");
136
        // listeFilter.put(listeChq, listeChq.getModel().getTable().getField("DATE"));
137
        //
138
        // IListe listeEch = this.listPanel.getIListeFromTableName("ECHEANCE_CLIENT");
139
        // listeFilter.put(listeEch, listeEch.getModel().getTable().getField("DATE"));
140
        // IListe listedevisElt = this.listPanel.getIListeFromTableName("DEVIS_ELEMENT");
141
        // listeFilter.put(listedevisElt,
142
        // listedevisElt.getModel().getTable().getForeignTable("ID_DEVIS").getField("DATE"));
143
        //
144
        // IListe listeAvoir = this.listPanel.getIListeFromTableName("AVOIR_CLIENT");
145
        // listeFilter.put(listeAvoir, listeAvoir.getModel().getTable().getField("DATE"));
146
        //
147
        // IListe listefactElt =
148
        // this.listPanel.getIListeFromTableName("SAISIE_VENTE_FACTURE_ELEMENT");
149
        // listeFilter.put(listefactElt,
150
        // listefactElt.getModel().getTable().getForeignTable("ID_SAISIE_VENTE_FACTURE").getField("DATE"));
151
        //
152
        // IListe listeFact = this.listPanel.getIListeFromTableName("SAISIE_VENTE_FACTURE");
153
        // listeFilter.put(listeFact, listeFact.getModel().getTable().getField("DATE"));
154
        //
155
        // final IListFilterDatePanel panel = new IListFilterDatePanel(listeFilter,
156
        // IListFilterDatePanel.getDefaultMap());
157
        // GridBagConstraints c = new DefaultGridBagConstraints();
158
        // c.gridy = 4;
159
        // c.gridwidth = GridBagConstraints.REMAINDER;
160
        // c.weightx = 1;
161
        // c.gridx=0;
162
        // this.listPanel.add(panel);
163
 
18 ilm 164
    }
165
 
166
    public PanelFrame getFrame() {
167
        return this.panelFrame;
168
    }
169
 
170
    public void selectId(int id) {
171
        this.listPanel.selectIDinJList(id);
172
    }
173
 
174
    public void setVisible(boolean b) {
175
        this.panelFrame.setVisible(b);
176
    }
177
}