OpenConcerto

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

svn://code.openconcerto.org/openconcerto

Rev

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

Rev 182 Rev 185
Line 47... Line 47...
47
import org.openconcerto.erp.preferences.ModeReglementDefautPrefPanel;
47
import org.openconcerto.erp.preferences.ModeReglementDefautPrefPanel;
48
import org.openconcerto.sql.Configuration;
48
import org.openconcerto.sql.Configuration;
49
import org.openconcerto.sql.element.ElementSQLObject;
49
import org.openconcerto.sql.element.ElementSQLObject;
50
import org.openconcerto.sql.element.SQLComponent;
50
import org.openconcerto.sql.element.SQLComponent;
51
import org.openconcerto.sql.element.SQLElement;
51
import org.openconcerto.sql.element.SQLElement;
52
import org.openconcerto.sql.element.SQLComponent.Mode;
-
 
53
import org.openconcerto.sql.model.SQLBackgroundTableCache;
52
import org.openconcerto.sql.model.SQLBackgroundTableCache;
54
import org.openconcerto.sql.model.SQLBase;
53
import org.openconcerto.sql.model.SQLBase;
55
import org.openconcerto.sql.model.SQLInjector;
54
import org.openconcerto.sql.model.SQLInjector;
56
import org.openconcerto.sql.model.SQLRow;
55
import org.openconcerto.sql.model.SQLRow;
57
import org.openconcerto.sql.model.SQLRowAccessor;
56
import org.openconcerto.sql.model.SQLRowAccessor;
58
import org.openconcerto.sql.model.SQLRowValues;
57
import org.openconcerto.sql.model.SQLRowValues;
-
 
58
import org.openconcerto.sql.model.SQLRowValuesListFetcher;
59
import org.openconcerto.sql.model.SQLSelect;
59
import org.openconcerto.sql.model.SQLSelect;
-
 
60
import org.openconcerto.sql.model.SQLSelectJoin;
60
import org.openconcerto.sql.model.SQLTable;
61
import org.openconcerto.sql.model.SQLTable;
61
import org.openconcerto.sql.model.UndefinedRowValuesCache;
62
import org.openconcerto.sql.model.UndefinedRowValuesCache;
62
import org.openconcerto.sql.model.Where;
63
import org.openconcerto.sql.model.Where;
63
import org.openconcerto.sql.preferences.SQLPreferences;
64
import org.openconcerto.sql.preferences.SQLPreferences;
64
import org.openconcerto.sql.sqlobject.ElementComboBox;
65
import org.openconcerto.sql.sqlobject.ElementComboBox;
Line 689... Line 690...
689
            DefaultGridBagConstraints.lockMinimumSize(acompteCmd);
690
            DefaultGridBagConstraints.lockMinimumSize(acompteCmd);
690
            this.add(acompteCmd, c);
691
            this.add(acompteCmd, c);
691
            this.addView(acompteCmd, "ACOMPTE_COMMANDE");
692
            this.addView(acompteCmd, "ACOMPTE_COMMANDE");
692
        }
693
        }
693
 
694
 
-
 
695
        if (this.getTable().getFieldsName().contains("POURCENT_RG") && prefs.getBoolean(GestionCommercialeGlobalPreferencePanel.POURCENT_RG, false)) {
-
 
696
            // RG
-
 
697
            c.gridy++;
-
 
698
            c.gridx = 0;
-
 
699
            c.weightx = 0;
-
 
700
            c.weighty = 0;
-
 
701
            c.gridwidth = 1;
-
 
702
            c.fill = GridBagConstraints.HORIZONTAL;
-
 
703
            this.add(new JLabel(getLabelFor("POURCENT_RG"), SwingConstants.RIGHT), c);
-
 
704
            c.gridx++;
-
 
705
            c.weightx = 1;
-
 
706
            JTextField fieldRG = new JTextField();
-
 
707
            this.add(fieldRG, c);
-
 
708
            this.addView(fieldRG, "POURCENT_RG");
-
 
709
        }
-
 
710
 
694
        c.gridy++;
711
        c.gridy++;
695
        c.gridx = 0;
712
        c.gridx = 0;
696
        c.weightx = 1;
713
        c.weightx = 1;
697
        c.weighty = 1;
714
        c.weighty = 1;
698
        c.gridwidth = GridBagConstraints.REMAINDER;
715
        c.gridwidth = GridBagConstraints.REMAINDER;
Line 1006... Line 1023...
1006
                refreshText();
1023
                refreshText();
1007
            }
1024
            }
1008
 
1025
 
1009
        });
1026
        });
1010
 
1027
 
1011
        this.selAvoir.addValueListener(new PropertyChangeListener() {
1028
        this.selAvoir.addModelListener("wantedID", new PropertyChangeListener() {
1012
 
1029
 
1013
            public void propertyChange(PropertyChangeEvent evt) {
1030
            public void propertyChange(PropertyChangeEvent evt) {
1014
                refreshText();
1031
                refreshText();
1015
            }
1032
            }
1016
 
1033
 
Line 1059... Line 1076...
1059
            }
1076
            }
1060
        };
1077
        };
1061
 
1078
 
1062
        this.changeCompteListener = new PropertyChangeListener() {
1079
        this.changeCompteListener = new PropertyChangeListener() {
1063
            public void propertyChange(PropertyChangeEvent evt) {
1080
            public void propertyChange(PropertyChangeEvent evt) {
1064
                SQLSelect sel = new SQLSelect(getTable().getBase());
1081
                SQLSelect sel = new SQLSelect();
1065
                sel.addSelect(SaisieVenteFactureSQLComponent.this.client.getTable().getKey());
1082
                sel.addSelect(SaisieVenteFactureSQLComponent.this.client.getTable().getKey());
1066
                Where where = new Where(SaisieVenteFactureSQLComponent.this.client.getTable().getField("ID_COMPTE_PCE"), "=", SaisieVenteFactureSQLComponent.this.compteSel.getValue());
1083
                Where where = new Where(SaisieVenteFactureSQLComponent.this.client.getTable().getField("ID_COMPTE_PCE"), "=", SaisieVenteFactureSQLComponent.this.compteSel.getValue());
1067
                sel.setWhere(where);
1084
                sel.setWhere(where);
1068
 
1085
 
1069
                String req = sel.asString();
1086
                String req = sel.asString();
Line 1223... Line 1240...
1223
        long netAPayer = 0;
1240
        long netAPayer = 0;
1224
        long ttc = 0;
1241
        long ttc = 0;
1225
        if (n != null) {
1242
        if (n != null) {
1226
            netAPayer = n.longValue();
1243
            netAPayer = n.longValue();
1227
            ttc = n.longValue();
1244
            ttc = n.longValue();
1228
        }
-
 
1229
 
1245
 
1230
        if (this.selAvoir.getSelectedId() > 1) {
1246
            if (this.selAvoir.getWantedID() > 1) {
1231
            SQLTable tableAvoir = Configuration.getInstance().getDirectory().getElement("AVOIR_CLIENT").getTable();
1247
                final SQLTable tableAvoir = getElement().getForeignElement("ID_AVOIR_CLIENT").getTable();
1232
            if (n != null) {
-
 
1233
                SQLRow rowAvoir = tableAvoir.getRow(this.selAvoir.getSelectedId());
1248
                final SQLRow rowAvoir = tableAvoir.getRow(this.selAvoir.getWantedID());
1234
                long totalAvoir = ((Number) rowAvoir.getObject("MONTANT_TTC")).longValue();
1249
                long totalAvoir = ((Number) rowAvoir.getObject("MONTANT_TTC")).longValue();
1235
                totalAvoir -= ((Number) rowAvoir.getObject("MONTANT_SOLDE")).longValue();
1250
                totalAvoir -= ((Number) rowAvoir.getObject("MONTANT_SOLDE")).longValue();
1236
                if (getSelectedID() > 1) {
1251
                if (getSelectedID() > 1) {
1237
                    SQLRow row = getTable().getRow(getSelectedID());
1252
                    SQLRow row = getTable().getRow(getSelectedID());
1238
                    int idAvoirOld = row.getInt("ID_AVOIR_CLIENT");
1253
                    int idAvoirOld = row.getInt("ID_AVOIR_CLIENT");
Line 1249... Line 1264...
1249
                    totalAvoirTTC = totalAvoir;
1264
                    totalAvoirTTC = totalAvoir;
1250
                }
1265
                }
1251
                netAPayer = l;
1266
                netAPayer = l;
1252
            }
1267
            }
1253
        }
1268
        }
-
 
1269
 
1254
        if (this.gestionTimbre) {
1270
        if (this.gestionTimbre) {
1255
            Long timbre = this.totalTimbre.getValue();
1271
            Long timbre = this.totalTimbre.getValue();
1256
            if (timbre != null) {
1272
            if (timbre != null) {
1257
                netAPayer += timbre;
1273
                netAPayer += timbre;
1258
            }
1274
            }
Line 1304... Line 1320...
1304
 
1320
 
1305
        this.rowSelected = r;
1321
        this.rowSelected = r;
1306
        if (r != null) {
1322
        if (r != null) {
1307
            // FIXME Mettre un droit pour autoriser la modification d'une facture lettrée ou pointée
1323
            // FIXME Mettre un droit pour autoriser la modification d'une facture lettrée ou pointée
1308
            if (!r.isUndefined() && r.getObject("ID_MOUVEMENT") != null && !r.isForeignEmpty("ID_MOUVEMENT")) {
1324
            if (!r.isUndefined() && r.getObject("ID_MOUVEMENT") != null && !r.isForeignEmpty("ID_MOUVEMENT")) {
-
 
1325
 
-
 
1326
                if (containsChequeDeposer(r)) {
-
 
1327
                    SwingUtilities.invokeLater(new Runnable() {
-
 
1328
 
-
 
1329
                        @Override
-
 
1330
                        public void run() {
-
 
1331
                            JOptionPane.showMessageDialog(null, "Attention cette facture est référencée par un chèque déposé en banque. Vous ne pourrez pas valider les modifications!");
-
 
1332
                        }
-
 
1333
                    });
-
 
1334
                }
-
 
1335
 
1309
                SQLTable tableEcr = getTable().getTable("ECRITURE");
1336
                SQLTable tableEcr = getTable().getTable("ECRITURE");
1310
                SQLTable tableMvt = getTable().getTable("MOUVEMENT");
1337
                SQLTable tableMvt = getTable().getTable("MOUVEMENT");
1311
                SQLTable tablePiece = getTable().getTable("PIECE");
1338
                SQLTable tablePiece = getTable().getTable("PIECE");
1312
                {
1339
                {
1313
                    SQLSelect sel = new SQLSelect();
1340
                    SQLSelect sel = new SQLSelect();
Line 1377... Line 1404...
1377
        if (this.compteSel != null) {
1404
        if (this.compteSel != null) {
1378
            this.compteSel.addValueListener(this.changeCompteListener);
1405
            this.compteSel.addValueListener(this.changeCompteListener);
1379
        } // nomClient.addValueListener(changeClientListener);
1406
        } // nomClient.addValueListener(changeClientListener);
1380
    }
1407
    }
1381
 
1408
 
-
 
1409
    private boolean containsChequeDeposer(SQLRowAccessor r) {
-
 
1410
        if (!r.isUndefined() && r.getObject("ID_MOUVEMENT") != null && !r.isForeignEmpty("ID_MOUVEMENT")) {
-
 
1411
            final SQLTable tableCheque = getTable().getTable("CHEQUE_A_ENCAISSER");
-
 
1412
            SQLRowValues rowValsCheque = new SQLRowValues(tableCheque);
-
 
1413
            rowValsCheque.putNulls("ENCAISSE");
-
 
1414
            rowValsCheque.putRowValues("ID_MOUVEMENT").putRowValues("ID_PIECE");
-
 
1415
 
-
 
1416
            final int idPiece = r.getForeign("ID_MOUVEMENT").getInt("ID_PIECE");
-
 
1417
            final SQLRowValuesListFetcher createFetcher = SQLRowValuesListFetcher.create(rowValsCheque);
-
 
1418
            createFetcher.addSelTransf(new ITransformer<SQLSelect, SQLSelect>() {
-
 
1419
                @Override
-
 
1420
                public SQLSelect transformChecked(SQLSelect input) {
-
 
1421
                    final SQLSelectJoin joinFromField = input.getJoinFromField(r.getTable().getForeignTable("ID_MOUVEMENT").getField("ID_PIECE"));
-
 
1422
                    input.setWhere(new Where(tableCheque.getField("ENCAISSE"), "=", Boolean.TRUE).and(new Where(joinFromField.getJoinedTable().getKey(), "=", idPiece)));
-
 
1423
                    return input;
-
 
1424
                }
-
 
1425
            }, 0);
-
 
1426
            final List<SQLRowValues> fetch = createFetcher.fetch();
-
 
1427
            return !fetch.isEmpty();
-
 
1428
        }
-
 
1429
        return false;
-
 
1430
 
-
 
1431
    }
-
 
1432
 
1382
    private String getInitialesFromVerif(SQLRow row) {
1433
    private String getInitialesFromVerif(SQLRow row) {
1383
        String s = "";
1434
        String s = "";
1384
 
1435
 
1385
        if (row != null) {
1436
        if (row != null) {
1386
            String prenom = row.getString("PRENOM");
1437
            String prenom = row.getString("PRENOM");
Line 1441... Line 1492...
1441
                        val++;
1492
                        val++;
1442
                        rowVals.put(labelNumberFor, Integer.valueOf(val));
1493
                        rowVals.put(labelNumberFor, Integer.valueOf(val));
1443
                        rowVals.update();
1494
                        rowVals.update();
1444
                    }
1495
                    }
1445
                } else {
1496
                } else {
-
 
1497
                    rowFactureOld = this.getTable().getRow(getSelectedID());
-
 
1498
                    if (containsChequeDeposer(rowFactureOld)) {
-
 
1499
                        SwingUtilities.invokeLater(new Runnable() {
-
 
1500
 
-
 
1501
                            @Override
-
 
1502
                            public void run() {
-
 
1503
                                JOptionPane.showMessageDialog(null,
-
 
1504
                                        "Cette facture est référencée par un chèque déposé en banque. Impossible de valider les modifications!\n Supprimer le dépôt de chèque avant de modifier la facture.");
-
 
1505
                            }
-
 
1506
                        });
-
 
1507
                        return idSaisieVF;
-
 
1508
                    }
-
 
1509
 
1446
                    if (JOptionPane.showConfirmDialog(this, "Attention en modifiant cette facture, vous supprimerez les chéques et les échéances associés. Continuer?", "Modification de facture",
1510
                    if (JOptionPane.showConfirmDialog(this, "Attention en modifiant cette facture, vous supprimerez les chéques et les échéances associés. Continuer?", "Modification de facture",
1447
                            JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
1511
                            JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
1448
                        // On recupere l'ancien total HT
1512
                        // On recupere l'ancien total HT
1449
                        rowFactureOld = this.getTable().getRow(getSelectedID());
-
 
1450
                        lFactureOld = ((Number) rowFactureOld.getObject("T_HT")).longValue();
1513
                        lFactureOld = ((Number) rowFactureOld.getObject("T_HT")).longValue();
1451
 
1514
 
1452
                        super.update();
1515
                        super.update();
1453
 
1516
 
1454
                        idSaisieVF = getSelectedID();
1517
                        idSaisieVF = getSelectedID();
Line 1556... Line 1619...
1556
                    createDocument(rowFacture);
1619
                    createDocument(rowFacture);
1557
 
1620
 
1558
                }
1621
                }
1559
                if (attempt > 0) {
1622
                if (attempt > 0) {
1560
                    SwingUtilities.invokeLater(new Runnable() {
1623
                    SwingUtilities.invokeLater(new Runnable() {
-
 
1624
 
1561
                        public void run() {
1625
                        public void run() {
1562
                            JOptionPane.showMessageDialog(null, "Le numéro a été actualisé en " + num);
1626
                            JOptionPane.showMessageDialog(null, "Le numéro a été actualisé en " + num);
1563
                        }
1627
                        }
1564
                    });
1628
                    });
1565
                }
1629
                }