OpenConcerto

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

svn://code.openconcerto.org/openconcerto

Rev

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

Rev 21 Rev 25
Line 39... Line 39...
39
import org.openconcerto.sql.model.SQLRowValues;
39
import org.openconcerto.sql.model.SQLRowValues;
40
import org.openconcerto.sql.model.SQLSelect;
40
import org.openconcerto.sql.model.SQLSelect;
41
import org.openconcerto.sql.model.SQLTable;
41
import org.openconcerto.sql.model.SQLTable;
42
import org.openconcerto.sql.model.Where;
42
import org.openconcerto.sql.model.Where;
43
import org.openconcerto.sql.users.UserManager;
43
import org.openconcerto.sql.users.UserManager;
-
 
44
import org.openconcerto.sql.utils.SQLUtils;
44
import org.openconcerto.utils.DesktopEnvironment;
45
import org.openconcerto.utils.DesktopEnvironment;
45
import org.openconcerto.utils.ExceptionHandler;
46
import org.openconcerto.utils.ExceptionHandler;
46
import org.openconcerto.utils.Pair;
47
import org.openconcerto.utils.Pair;
47
 
48
 
48
import java.io.File;
49
import java.io.File;
Line 53... Line 54...
53
import java.util.Date;
54
import java.util.Date;
54
import java.util.List;
55
import java.util.List;
55
 
56
 
56
import javax.swing.JFrame;
57
import javax.swing.JFrame;
57
import javax.swing.JOptionPane;
58
import javax.swing.JOptionPane;
-
 
59
import javax.swing.SwingUtilities;
58
 
60
 
59
import org.apache.commons.dbutils.handlers.ArrayListHandler;
61
import org.apache.commons.dbutils.handlers.ArrayListHandler;
60
import org.jdom.Document;
62
import org.jdom.Document;
61
import org.jdom.Element;
63
import org.jdom.Element;
62
import org.jdom.input.SAXBuilder;
64
import org.jdom.input.SAXBuilder;
Line 105... Line 107...
105
            document.setRootElement(new Element("config"));
107
            document.setRootElement(new Element("config"));
106
        }
108
        }
107
        return document;
109
        return document;
108
    }
110
    }
109
 
111
 
110
    private static File getConfigFile() {
112
    public static File getConfigFile() {
111
        return getConfigFile(ComptaPropsConfiguration.APP_NAME, new File("."));
113
        return getConfigFile(ComptaPropsConfiguration.APP_NAME, new File("."));
112
    }
114
    }
113
 
115
 
114
    public static void createConnexion() {
116
    public static void createConnexion() {
115
        final ComptaPropsConfiguration conf = ComptaPropsConfiguration.create();
117
        final ComptaPropsConfiguration conf = ComptaPropsConfiguration.create();
Line 130... Line 132...
130
            JOptionPane.showMessageDialog(new JFrame(), "Impossible de configurer la connexion à la base de donnée.\n ID société: " + getSocieteID() + " \n ID utilisateur: " + getUserID());
132
            JOptionPane.showMessageDialog(new JFrame(), "Impossible de configurer la connexion à la base de donnée.\n ID société: " + getSocieteID() + " \n ID utilisateur: " + getUserID());
131
            e.printStackTrace();
133
            e.printStackTrace();
132
        }
134
        }
133
    }
135
    }
134
 
136
 
135
    public static void commitAll(List<Ticket> tickets) {
137
    public static void commitAll(final List<Ticket> tickets) {
136
        // createConnexion();
138
        // createConnexion();
-
 
139
        try {
-
 
140
            SQLUtils.executeAtomic(Configuration.getInstance().getSystemRoot().getDataSource(), new SQLUtils.SQLFactory<Object>() {
-
 
141
                @Override
-
 
142
                public Object create() throws SQLException {
137
        SQLElement elt = Configuration.getInstance().getDirectory().getElement("TICKET_CAISSE");
143
                    SQLElement elt = Configuration.getInstance().getDirectory().getElement("TICKET_CAISSE");
138
        SQLElement eltFact = Configuration.getInstance().getDirectory().getElement("SAISIE_VENTE_FACTURE_ELEMENT");
144
                    SQLElement eltFact = Configuration.getInstance().getDirectory().getElement("SAISIE_VENTE_FACTURE_ELEMENT");
139
        SQLElement eltEnc = Configuration.getInstance().getDirectory().getElement("ENCAISSER_MONTANT");
145
                    SQLElement eltEnc = Configuration.getInstance().getDirectory().getElement("ENCAISSER_MONTANT");
140
        SQLElement eltMode = Configuration.getInstance().getDirectory().getElement("MODE_REGLEMENT");
146
                    SQLElement eltMode = Configuration.getInstance().getDirectory().getElement("MODE_REGLEMENT");
141
        for (Ticket ticket : tickets) {
147
                    for (Ticket ticket : tickets) {
Line 202... Line 208...
202
                        rowValsElt.put("NOM", "Ticket " + ticket.getCode());
208
                                    rowValsElt.put("NOM", "Ticket " + ticket.getCode());
203
                        rowValsElt.put("DATE", ticket.getCreationDate());
209
                                    rowValsElt.put("DATE", ticket.getCreationDate());
204
                        rowValsElt.put("ID_TICKET_CAISSE", rowVals);
210
                                    rowValsElt.put("ID_TICKET_CAISSE", rowVals);
205
                    }
211
                                }
206
                }
212
                            }
207
                try {
-
 
-
 
213
 
208
                    SQLRow rowFinal = rowVals.insert();
214
                            SQLRow rowFinal = rowVals.insert();
209
                    Thread t = new Thread(new GenerationMvtTicketCaisse(rowFinal));
215
                            Thread t = new Thread(new GenerationMvtTicketCaisse(rowFinal));
210
                    t.start();
216
                            t.start();
211
                    try {
217
                            try {
212
                        t.join();
218
                                t.join();
213
                    } catch (InterruptedException e) {
219
                            } catch (InterruptedException exn) {
214
                        // TODO Auto-generated catch block
220
                                // TODO Bloc catch auto-généré
215
                        e.printStackTrace();
221
                                exn.printStackTrace();
216
                    }
222
                            }
-
 
223
 
217
                    // msie à jour du mouvement
224
                            // msie à jour du mouvement
218
                    rowFinal = rowFinal.getTable().getRow(rowFinal.getID());
225
                            rowFinal = rowFinal.getTable().getRow(rowFinal.getID());
219
                    List<SQLRow> rowsEnc = rowFinal.getReferentRows(eltEnc.getTable());
226
                            List<SQLRow> rowsEnc = rowFinal.getReferentRows(eltEnc.getTable());
220
                    long totalEnc = 0;
227
                            long totalEnc = 0;
221
                    for (SQLRow sqlRow : rowsEnc) {
228
                            for (SQLRow sqlRow : rowsEnc) {
222
                        long montant = sqlRow.getLong("MONTANT");
229
                                long montant = sqlRow.getLong("MONTANT");
223
                        PrixTTC ttc = new PrixTTC(montant);
230
                                PrixTTC ttc = new PrixTTC(montant);
224
                        totalEnc += montant;
231
                                totalEnc += montant;
225
                        new GenerationReglementVenteNG("Règlement " + sqlRow.getForeignRow("ID_MODE_REGLEMENT").getForeignRow("ID_TYPE_REGLEMENT").getString("NOM") + " Ticket "
232
                                new GenerationReglementVenteNG("Règlement " + sqlRow.getForeignRow("ID_MODE_REGLEMENT").getForeignRow("ID_TYPE_REGLEMENT").getString("NOM") + " Ticket "
226
                                + rowFinal.getString("NUMERO"), getClientCaisse(), ttc, sqlRow.getDate("DATE").getTime(), sqlRow.getForeignRow("ID_MODE_REGLEMENT"), rowFinal,
233
                                        + rowFinal.getString("NUMERO"), getClientCaisse(), ttc, sqlRow.getDate("DATE").getTime(), sqlRow.getForeignRow("ID_MODE_REGLEMENT"), rowFinal, rowFinal
227
                                rowFinal.getForeignRow("ID_MOUVEMENT"), false);
234
                                        .getForeignRow("ID_MOUVEMENT"), false);
228
                    }
235
                            }
229
                    if (totalEnc > total) {
236
                            if (totalEnc > total) {
230
                        final SQLTable table = Configuration.getInstance().getDirectory().getElement("TYPE_REGLEMENT").getTable();
237
                                final SQLTable table = Configuration.getInstance().getDirectory().getElement("TYPE_REGLEMENT").getTable();
231
                        int idComptePceCaisse = table.getRow(TypeReglementSQLElement.ESPECE).getInt("ID_COMPTE_PCE_CLIENT");
238
                                int idComptePceCaisse = table.getRow(TypeReglementSQLElement.ESPECE).getInt("ID_COMPTE_PCE_CLIENT");
232
                        if (idComptePceCaisse == table.getUndefinedID()) {
239
                                if (idComptePceCaisse == table.getUndefinedID()) {
233
                            idComptePceCaisse = ComptePCESQLElement.getId(ComptePCESQLElement.getComptePceDefault("VenteEspece"));
240
                                    idComptePceCaisse = ComptePCESQLElement.getId(ComptePCESQLElement.getComptePceDefault("VenteEspece"));
234
                        }
241
                                }
235
                        new GenerationMvtVirement(idComptePceCaisse, getClientCaisse().getInt("ID_COMPTE_PCE"), 0, totalEnc - total,
242
                                new GenerationMvtVirement(idComptePceCaisse, getClientCaisse().getInt("ID_COMPTE_PCE"), 0, totalEnc - total, "Rendu sur règlement " + " Ticket "
236
                                "Rendu sur règlement " + " Ticket " + rowFinal.getString("NUMERO"), new Date(), JournalSQLElement.CAISSES, " Ticket " + rowFinal.getString("NUMERO")).genereMouvement();
243
                                        + rowFinal.getString("NUMERO"), new Date(), JournalSQLElement.CAISSES, " Ticket " + rowFinal.getString("NUMERO")).genereMouvement();
237
                    }
244
                            }
238
 
245
 
239
                    updateStock(rowFinal.getID());
246
                            updateStock(rowFinal.getID());
240
                } catch (SQLException e) {
-
 
241
                    e.printStackTrace();
-
 
242
                }
-
 
-
 
247
 
243
            }
248
                        }
244
        }
249
                    }
-
 
250
                    SwingUtilities.invokeLater(new Runnable() {
-
 
251
 
-
 
252
                        @Override
-
 
253
                        public void run() {
-
 
254
                            // TODO Raccord de méthode auto-généré
-
 
255
 
245
        JOptionPane.showMessageDialog(null, "Clôture de la caisse terminée.");
256
                            JOptionPane.showMessageDialog(null, "Clôture de la caisse terminée.");
246
    }
257
                        }
-
 
258
                    });
-
 
259
                    return null;
-
 
260
                }
-
 
261
            });
-
 
262
        } catch (Exception exn) {
-
 
263
            // TODO Bloc catch auto-généré
-
 
264
            ExceptionHandler.handle("Une erreur est survenue pendant la clôture.", exn);
-
 
265
        }
-
 
266
 
-
 
267
    }
247
 
268
 
248
    private static SQLRow rowClient = null;
269
    private static SQLRow rowClient = null;
249
 
270
 
250
    private static SQLRow getClientCaisse() throws SQLException {
271
    private static SQLRow getClientCaisse() throws SQLException {
251
        if (rowClient == null) {
272
        if (rowClient == null) {
Line 339... Line 360...
339
        }
360
        }
340
    }
361
    }
341
 
362
 
342
    public static int getID() {
363
    public static int getID() {
343
        final Document d = getDocument();
364
        final Document d = getDocument();
344
        return Integer.valueOf(d.getRootElement().getAttributeValue("caisseID", "2"));
365
        return Integer.valueOf(d.getRootElement().getAttributeValue("caisseID", "-1"));
345
    }
366
    }
346
 
367
 
347
    public static void setID(int caisseId) {
368
    public static void setID(int caisseId) {
348
        final Document d = getDocument();
369
        final Document d = getDocument();
349
        d.getRootElement().setAttribute("caisseID", String.valueOf(caisseId));
370
        d.getRootElement().setAttribute("caisseID", String.valueOf(caisseId));
Line 362... Line 383...
362
        return l;
383
        return l;
363
    }
384
    }
364
 
385
 
365
    public static int getUserID() {
386
    public static int getUserID() {
366
        final Document d = getDocument();
387
        final Document d = getDocument();
367
        return Integer.valueOf(d.getRootElement().getAttributeValue("userID", "2"));
388
        return Integer.valueOf(d.getRootElement().getAttributeValue("userID", "-1"));
368
    }
389
    }
369
 
390
 
370
    public static void setUserID(int userId) {
391
    public static void setUserID(int userId) {
371
        final Document d = getDocument();
392
        final Document d = getDocument();
372
        d.getRootElement().setAttribute("userID", String.valueOf(userId));
393
        d.getRootElement().setAttribute("userID", String.valueOf(userId));
373
    }
394
    }
374
 
395
 
375
    public static int getSocieteID() {
396
    public static int getSocieteID() {
376
        final Document d = getDocument();
397
        final Document d = getDocument();
377
        return Integer.valueOf(d.getRootElement().getAttributeValue("societeID", "42"));
398
        return Integer.valueOf(d.getRootElement().getAttributeValue("societeID", "-1"));
378
    }
399
    }
379
 
400
 
380
    public static void setSocieteID(int societeId) {
401
    public static void setSocieteID(int societeId) {
381
        final Document d = getDocument();
402
        final Document d = getDocument();
382
        d.getRootElement().setAttribute("societeID", String.valueOf(societeId));
403
        d.getRootElement().setAttribute("societeID", String.valueOf(societeId));