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 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 180 Rev 182
Line 1... Line 1...
1
/*
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 * 
3
 * 
4
 * Copyright 2011 OpenConcerto, by ILM Informatique. All rights reserved.
4
 * Copyright 2011-2019 OpenConcerto, by ILM Informatique. All rights reserved.
5
 * 
5
 * 
6
 * The contents of this file are subject to the terms of the GNU General Public License Version 3
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
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
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.
9
 * language governing permissions and limitations under the License.
Line 50... Line 50...
50
import org.openconcerto.sql.view.list.RowValuesTableModel;
50
import org.openconcerto.sql.view.list.RowValuesTableModel;
51
import org.openconcerto.sql.view.list.SQLTableElement;
51
import org.openconcerto.sql.view.list.SQLTableElement;
52
import org.openconcerto.sql.view.list.ValidStateChecker;
52
import org.openconcerto.sql.view.list.ValidStateChecker;
53
import org.openconcerto.ui.preferences.DefaultProps;
53
import org.openconcerto.ui.preferences.DefaultProps;
54
import org.openconcerto.utils.DecimalUtils;
54
import org.openconcerto.utils.DecimalUtils;
-
 
55
import org.openconcerto.utils.ExceptionHandler;
55
import org.openconcerto.utils.Tuple3;
56
import org.openconcerto.utils.Tuple3;
56
import org.openconcerto.utils.i18n.TranslationManager;
57
import org.openconcerto.utils.i18n.TranslationManager;
57
 
58
 
58
import java.awt.Component;
59
import java.awt.Component;
59
import java.awt.event.ActionEvent;
60
import java.awt.event.ActionEvent;
Line 101... Line 102...
101
    public AbstractAchatArticleItemTable() {
102
    public AbstractAchatArticleItemTable() {
102
        super();
103
        super();
103
    }
104
    }
104
 
105
 
105
    @Override
106
    @Override
-
 
107
    public AutoCompletionManager getCodeCompletionManager() {
-
 
108
        return this.m;
-
 
109
    }
-
 
110
 
-
 
111
    @Override
106
    protected void setModel(RowValuesTableModel model) {
112
    protected void setModel(RowValuesTableModel model) {
107
        super.setModel(model);
113
        super.setModel(model);
108
        model.addTableModelListener(new TableModelListener() {
114
        model.addTableModelListener(new TableModelListener() {
109
 
115
 
110
            @Override
116
            @Override
Line 124... Line 130...
124
        final boolean createAuto = prefs.getBoolean(GestionArticleGlobalPreferencePanel.CREATE_ARTICLE_AUTO, true);
130
        final boolean createAuto = prefs.getBoolean(GestionArticleGlobalPreferencePanel.CREATE_ARTICLE_AUTO, true);
125
        final boolean showEco = prefs.getBoolean(AbstractVenteArticleItemTable.SHOW_ECO_CONTRIBUTION_COLUMNS, false);
131
        final boolean showEco = prefs.getBoolean(AbstractVenteArticleItemTable.SHOW_ECO_CONTRIBUTION_COLUMNS, false);
126
        final boolean showDmdAchat = prefs.getBoolean(GestionArticleGlobalPreferencePanel.ACTIVE_DEMANDE_ACHAT, false);
132
        final boolean showDmdAchat = prefs.getBoolean(GestionArticleGlobalPreferencePanel.ACTIVE_DEMANDE_ACHAT, false);
127
        final boolean showDevise = prefs.getBoolean(AbstractVenteArticleItemTable.ARTICLE_SHOW_DEVISE, false);
133
        final boolean showDevise = prefs.getBoolean(AbstractVenteArticleItemTable.ARTICLE_SHOW_DEVISE, false);
128
        this.supplierCode = prefs.getBoolean(GestionArticleGlobalPreferencePanel.SUPPLIER_PRODUCT_CODE, false);
134
        this.supplierCode = prefs.getBoolean(GestionArticleGlobalPreferencePanel.SUPPLIER_PRODUCT_CODE, false);
-
 
135
        final boolean withDeclinaison = prefs.getBoolean(GestionArticleGlobalPreferencePanel.ACTIVER_DECLINAISON, false);
129
 
136
 
130
        final List<SQLTableElement> list = new Vector<SQLTableElement>();
137
        final List<SQLTableElement> list = new Vector<SQLTableElement>();
131
        final SQLTableElement eNiveau = new SQLTableElement(e.getTable().getField("NIVEAU")) {
138
        final SQLTableElement eNiveau = new SQLTableElement(e.getTable().getField("NIVEAU")) {
132
            @Override
139
            @Override
133
            public void setValueFrom(SQLRowValues row, Object value) {
140
            public void setValueFrom(SQLRowValues row, Object value) {
Line 175... Line 182...
175
 
182
 
176
        // Article
183
        // Article
177
        SQLTableElement tableElementDepot = new SQLTableElement(e.getTable().getField("ID_DEPOT_STOCK"), true, true, true);
184
        SQLTableElement tableElementDepot = new SQLTableElement(e.getTable().getField("ID_DEPOT_STOCK"), true, true, true);
178
        list.add(tableElementDepot);
185
        list.add(tableElementDepot);
179
 
186
 
-
 
187
        Set<String> fieldsName = e.getTable().getFieldsName();
180
        if (e.getTable().getFieldsName().contains("ID_FAMILLE_ARTICLE")) {
188
        if (fieldsName.contains("ID_FAMILLE_ARTICLE")) {
181
            final SQLTableElement tableFamille = new SQLTableElement(e.getTable().getField("ID_FAMILLE_ARTICLE"));
189
            final SQLTableElement tableFamille = new SQLTableElement(e.getTable().getField("ID_FAMILLE_ARTICLE"));
182
            list.add(tableFamille);
190
            list.add(tableFamille);
183
        }
191
        }
184
 
192
 
185
        if (e.getTable().getFieldsName().contains("ID_ECO_CONTRIBUTION")) {
193
        if (fieldsName.contains("ID_ECO_CONTRIBUTION")) {
186
            this.tableElementEcoID = new SQLTableElement(e.getTable().getField("ID_ECO_CONTRIBUTION"));
194
            this.tableElementEcoID = new SQLTableElement(e.getTable().getField("ID_ECO_CONTRIBUTION"));
187
            list.add(this.tableElementEcoID);
195
            list.add(this.tableElementEcoID);
188
        }
196
        }
189
 
197
 
190
        if (e.getTable().getFieldsName().contains("INCOTERM")) {
198
        if (fieldsName.contains("INCOTERM")) {
191
            final SQLTableElement tableElementInco = new SQLTableElement(e.getTable().getField("INCOTERM"));
199
            final SQLTableElement tableElementInco = new SQLTableElement(e.getTable().getField("INCOTERM"));
192
            tableElementInco.setEditable(false);
200
            tableElementInco.setEditable(false);
193
            list.add(tableElementInco);
201
            list.add(tableElementInco);
194
        }
202
        }
195
 
203
 
196
        if (e.getTable().getFieldsName().contains("PREBILAN")) {
204
        if (fieldsName.contains("PREBILAN")) {
197
            final SQLTableElement tableElementPre = new SQLTableElement(e.getTable().getField("PREBILAN"), BigDecimal.class);
205
            final SQLTableElement tableElementPre = new SQLTableElement(e.getTable().getField("PREBILAN"), BigDecimal.class);
198
            tableElementPre.setRenderer(new DeviseTableCellRenderer());
206
            tableElementPre.setRenderer(new DeviseTableCellRenderer());
199
            list.add(tableElementPre);
207
            list.add(tableElementPre);
200
        }
208
        }
201
 
209
 
202
        // Code article
210
        // Code article
203
        final SQLTableElement tableElementCode = new SQLTableElement(e.getTable().getField("CODE"), String.class,
211
        final SQLTableElement tableElementCode = new SQLTableElement(e.getTable().getField("CODE"), String.class,
204
                new ITextArticleWithCompletionCellEditor(e.getTable().getTable("ARTICLE"), e.getTable().getTable("ARTICLE_FOURNISSEUR"))) {
212
                new ITextArticleWithCompletionCellEditor(e.getTable().getTable("ARTICLE"), e.getTable().getTable("ARTICLE_FOURNISSEUR"), withDeclinaison)) {
205
            @Override
213
            @Override
206
            public boolean isCellEditable(SQLRowValues vals, int rowIndex, int columnIndex) {
214
            public boolean isCellEditable(SQLRowValues vals, int rowIndex, int columnIndex) {
207
                boolean b = super.isCellEditable(vals, rowIndex, columnIndex);
215
                boolean b = super.isCellEditable(vals, rowIndex, columnIndex);
208
                return b && !isFromTranferred(vals);
216
                return b && !isFromTranferred(vals);
209
 
217
 
Line 219... Line 227...
219
 
227
 
220
            }
228
            }
221
        };
229
        };
222
        list.add(tableElementNom);
230
        list.add(tableElementNom);
223
 
231
 
-
 
232
        List<String> fieldDecl = new ArrayList<>();
-
 
233
 
-
 
234
        if (withDeclinaison) {
-
 
235
 
-
 
236
            for (String string : fieldsName) {
-
 
237
                if (string.startsWith("ID_ARTICLE_DECLINAISON")) {
-
 
238
                    final SQLTableElement tableElementDeclinaison = new SQLTableElement(e.getTable().getField(string));
-
 
239
                    tableElementDeclinaison.setEditable(false);
-
 
240
                    fieldDecl.add(string);
-
 
241
                    list.add(tableElementDeclinaison);
-
 
242
                }
-
 
243
            }
-
 
244
        }
224
        if (e.getTable().getFieldsName().contains("DESCRIPTIF")) {
245
        if (fieldsName.contains("DESCRIPTIF")) {
225
            final SQLTableElement tableElementDesc = new SQLTableElement(e.getTable().getField("DESCRIPTIF"));
246
            final SQLTableElement tableElementDesc = new SQLTableElement(e.getTable().getField("DESCRIPTIF"));
226
            list.add(tableElementDesc);
247
            list.add(tableElementDesc);
227
        }
248
        }
228
        if (e.getTable().getFieldsName().contains("COLORIS")) {
249
        if (fieldsName.contains("COLORIS")) {
229
            final SQLTableElement tableElementColoris = new SQLTableElement(e.getTable().getField("COLORIS"));
250
            final SQLTableElement tableElementColoris = new SQLTableElement(e.getTable().getField("COLORIS"));
230
            list.add(tableElementColoris);
251
            list.add(tableElementColoris);
231
        }
252
        }
-
 
253
 
-
 
254
        if (fieldsName.contains("ID_FABRICANT")) {
-
 
255
            SQLTableElement fab = new SQLTableElement(e.getTable().getField("ID_FABRICANT"));
-
 
256
            list.add(fab);
-
 
257
        }
-
 
258
 
232
        // Valeur des métriques
259
        // Valeur des métriques
233
        final SQLTableElement tableElement_ValeurMetrique2 = new SQLTableElement(e.getTable().getField("VALEUR_METRIQUE_2"), Float.class);
260
        final SQLTableElement tableElement_ValeurMetrique2 = new SQLTableElement(e.getTable().getField("VALEUR_METRIQUE_2"), Float.class);
234
        list.add(tableElement_ValeurMetrique2);
261
        list.add(tableElement_ValeurMetrique2);
235
        final SQLTableElement tableElement_ValeurMetrique3 = new SQLTableElement(e.getTable().getField("VALEUR_METRIQUE_3"), Float.class);
262
        final SQLTableElement tableElement_ValeurMetrique3 = new SQLTableElement(e.getTable().getField("VALEUR_METRIQUE_3"), Float.class);
236
        list.add(tableElement_ValeurMetrique3);
263
        list.add(tableElement_ValeurMetrique3);
Line 240... Line 267...
240
        final DeviseNumericHTConvertorCellEditor editorPAHT = new DeviseNumericHTConvertorCellEditor(e.getTable().getField("PRIX_METRIQUE_HA_1"));
267
        final DeviseNumericHTConvertorCellEditor editorPAHT = new DeviseNumericHTConvertorCellEditor(e.getTable().getField("PRIX_METRIQUE_HA_1"));
241
        final SQLTableElement tableElement_PrixMetrique1_AchatHT = new SQLTableElement(e.getTable().getField("PRIX_METRIQUE_HA_1"), BigDecimal.class, editorPAHT);
268
        final SQLTableElement tableElement_PrixMetrique1_AchatHT = new SQLTableElement(e.getTable().getField("PRIX_METRIQUE_HA_1"), BigDecimal.class, editorPAHT);
242
        tableElement_PrixMetrique1_AchatHT.setRenderer(new CurrencyWithSymbolRenderer());
269
        tableElement_PrixMetrique1_AchatHT.setRenderer(new CurrencyWithSymbolRenderer());
243
        list.add(tableElement_PrixMetrique1_AchatHT);
270
        list.add(tableElement_PrixMetrique1_AchatHT);
244
 
271
 
245
        if (e.getTable().getFieldsName().contains("ECO_CONTRIBUTION")) {
272
        if (fieldsName.contains("ECO_CONTRIBUTION")) {
246
            this.tableElementEco = new SQLTableElement(e.getTable().getField("ECO_CONTRIBUTION"));
273
            this.tableElementEco = new SQLTableElement(e.getTable().getField("ECO_CONTRIBUTION"));
247
            list.add(this.tableElementEco);
274
            list.add(this.tableElementEco);
248
        }
275
        }
249
 
276
 
250
        final SQLTableElement tableElement_Devise = new SQLTableElement(e.getTable().getField("ID_DEVISE"));
277
        final SQLTableElement tableElement_Devise = new SQLTableElement(e.getTable().getField("ID_DEVISE"));
Line 329... Line 356...
329
            tableBrElt = new SQLTableElement(e.getTable().getField("ID_BON_RECEPTION_ELEMENT"));
356
            tableBrElt = new SQLTableElement(e.getTable().getField("ID_BON_RECEPTION_ELEMENT"));
330
            tableBrElt.setEditable(false);
357
            tableBrElt.setEditable(false);
331
            list.add(tableBrElt);
358
            list.add(tableBrElt);
332
        }
359
        }
333
 
360
 
334
        if (e.getTable().getFieldsName().contains("QTE_ORIGINE")) {
361
        if (fieldsName.contains("QTE_ORIGINE")) {
335
            final SQLTableElement tableQteO = new SQLTableElement(e.getTable().getField("QTE_ORIGINE"));
362
            final SQLTableElement tableQteO = new SQLTableElement(e.getTable().getField("QTE_ORIGINE"));
336
            tableQteO.setEditable(false);
363
            tableQteO.setEditable(false);
337
            list.add(tableQteO);
364
            list.add(tableQteO);
338
        }
365
        }
339
 
366
 
Line 341... Line 368...
341
        final SQLTableElement qteElement = new SQLTableElement(e.getTable().getField("QTE"), Integer.class) {
368
        final SQLTableElement qteElement = new SQLTableElement(e.getTable().getField("QTE"), Integer.class) {
342
            protected Object getDefaultNullValue() {
369
            protected Object getDefaultNullValue() {
343
                return Integer.valueOf(0);
370
                return Integer.valueOf(0);
344
            }
371
            }
345
        };
372
        };
346
        if (e.getTable().getFieldsName().contains("QTE_ORIGINE")) {
373
        if (fieldsName.contains("QTE_ORIGINE")) {
347
            qteElement.setRenderer(new DeliveredQtyRowValuesRenderer(false));
374
            qteElement.setRenderer(new DeliveredQtyRowValuesRenderer(false));
348
        }
375
        }
349
        list.add(qteElement);
376
        list.add(qteElement);
350
        // TVA
377
        // TVA
351
        this.tableElementTVA = new SQLTableElement(e.getTable().getField("ID_TAXE"));
378
        this.tableElementTVA = new SQLTableElement(e.getTable().getField("ID_TAXE"));
Line 468... Line 495...
468
        if (e.getTable().contains("POURCENT_REMISE")) {
495
        if (e.getTable().contains("POURCENT_REMISE")) {
469
            tableElementRemise = new SQLTableElement(e.getTable().getField("POURCENT_REMISE"));
496
            tableElementRemise = new SQLTableElement(e.getTable().getField("POURCENT_REMISE"));
470
            list.add(tableElementRemise);
497
            list.add(tableElementRemise);
471
        }
498
        }
472
 
499
 
473
        if (e.getTable().getFieldsName().contains("T_ECO_CONTRIBUTION")) {
500
        if (fieldsName.contains("T_ECO_CONTRIBUTION")) {
474
            this.tableElementEcoTotal = new SQLTableElement(e.getTable().getField("T_ECO_CONTRIBUTION"));
501
            this.tableElementEcoTotal = new SQLTableElement(e.getTable().getField("T_ECO_CONTRIBUTION"));
475
            list.add(this.tableElementEcoTotal);
502
            list.add(this.tableElementEcoTotal);
476
        }
503
        }
477
 
504
 
478
        // Total HT
505
        // Total HT
Line 587... Line 614...
587
            AutoCompletionManager dmd = new AutoCompletionManager(dmdElt, ((ComptaPropsConfiguration) Configuration.getInstance()).getSQLBaseSociete().getField("DEMANDE_ACHAT_ELEMENT.ID"), this.table,
614
            AutoCompletionManager dmd = new AutoCompletionManager(dmdElt, ((ComptaPropsConfiguration) Configuration.getInstance()).getSQLBaseSociete().getField("DEMANDE_ACHAT_ELEMENT.ID"), this.table,
588
                    this.table.getRowValuesTableModel(), ITextWithCompletion.MODE_CONTAINS, true, true, new ValidStateChecker());
615
                    this.table.getRowValuesTableModel(), ITextWithCompletion.MODE_CONTAINS, true, true, new ValidStateChecker());
589
            dmd.fill("ID_FAMILLE_ARTICLE", "ID_FAMILLE_ARTICLE");
616
            dmd.fill("ID_FAMILLE_ARTICLE", "ID_FAMILLE_ARTICLE");
590
        }
617
        }
591
        List<String> completionFields = new ArrayList<String>();
618
        List<String> completionFields = new ArrayList<String>();
592
        if (e.getTable().getFieldsName().contains("INCOTERM")) {
619
        if (fieldsName.contains("INCOTERM")) {
593
            completionFields.add("INCOTERM");
620
            completionFields.add("INCOTERM");
594
        }
621
        }
595
        if (e.getTable().getFieldsName().contains("ID_ECO_CONTRIBUTION")) {
622
        if (fieldsName.contains("ID_ECO_CONTRIBUTION")) {
596
            completionFields.add("ID_ECO_CONTRIBUTION");
623
            completionFields.add("ID_ECO_CONTRIBUTION");
597
        }
624
        }
598
        completionFields.add("ID_UNITE_VENTE");
625
        completionFields.add("ID_UNITE_VENTE");
599
        completionFields.add("QTE_UNITAIRE");
626
        completionFields.add("QTE_UNITAIRE");
600
        completionFields.add("PA_HT");
627
        completionFields.add("PA_HT");
Line 612... Line 639...
612
        completionFields.add("PRIX_METRIQUE_VT_2");
639
        completionFields.add("PRIX_METRIQUE_VT_2");
613
        completionFields.add("PRIX_METRIQUE_VT_3");
640
        completionFields.add("PRIX_METRIQUE_VT_3");
614
        completionFields.add("SERVICE");
641
        completionFields.add("SERVICE");
615
        completionFields.add("ID_DEVISE");
642
        completionFields.add("ID_DEVISE");
616
        completionFields.add("PA_DEVISE");
643
        completionFields.add("PA_DEVISE");
-
 
644
        completionFields.addAll(fieldDecl);
617
        if (e.getTable().getFieldsName().contains("COLORIS")) {
645
        if (fieldsName.contains("COLORIS")) {
618
            completionFields.add("COLORIS");
646
            completionFields.add("COLORIS");
619
        }
647
        }
620
 
648
 
621
        if (e.getTable().getFieldsName().contains("DESCRIPTIF")) {
649
        if (fieldsName.contains("DESCRIPTIF")) {
622
            completionFields.add("DESCRIPTIF");
650
            completionFields.add("DESCRIPTIF");
623
        }
651
        }
624
        if (e.getTable().getFieldsName().contains("ID_FAMILLE_ARTICLE")) {
652
        if (fieldsName.contains("ID_FAMILLE_ARTICLE")) {
625
            completionFields.add("ID_FAMILLE_ARTICLE");
653
            completionFields.add("ID_FAMILLE_ARTICLE");
626
        }
654
        }
627
        final SQLTable sqlTableArticle = e.getTable().getTable("ARTICLE");
655
        final SQLTable sqlTableArticle = e.getTable().getTable("ARTICLE");
628
        if (getSQLElement().getTable().getFieldsName().contains("POIDS_COLIS_NET") && sqlTableArticle.getTable().getFieldsName().contains("POIDS_COLIS_NET")) {
656
        if (getSQLElement().getTable().getFieldsName().contains("POIDS_COLIS_NET") && sqlTableArticle.getTable().getFieldsName().contains("POIDS_COLIS_NET")) {
629
            completionFields.add("POIDS_COLIS_NET");
657
            completionFields.add("POIDS_COLIS_NET");
Line 634... Line 662...
634
        this.m = new AutoCompletionManager(tableElementCode, sqlTableArticle.getField("CODE"), this.table, this.table.getRowValuesTableModel()) {
662
        this.m = new AutoCompletionManager(tableElementCode, sqlTableArticle.getField("CODE"), this.table, this.table.getRowValuesTableModel()) {
635
            @Override
663
            @Override
636
            protected Object getValueFrom(SQLRow row, String field, SQLRowAccessor rowDest) {
664
            protected Object getValueFrom(SQLRow row, String field, SQLRowAccessor rowDest) {
637
                Object res = tarifCompletion(row, field);
665
                Object res = tarifCompletion(row, field);
638
                if (res == null) {
666
                if (res == null) {
-
 
667
                    if (field.equalsIgnoreCase("ID_CODE_FOURNISSEUR")) {
-
 
668
                        return null;
-
 
669
                    } else {
639
                    return super.getValueFrom(row, field, rowDest);
670
                        return super.getValueFrom(row, field, rowDest);
-
 
671
                    }
640
                } else {
672
                } else {
641
                    return res;
673
                    return res;
642
                }
674
                }
643
            }
675
            }
644
        };
676
        };
Line 793... Line 825...
793
                tableElement_PA_Devise.setModifier(new CellDynamicModifier() {
825
                tableElement_PA_Devise.setModifier(new CellDynamicModifier() {
794
                    public Object computeValueFrom(SQLRowValues row, SQLTableElement source) {
826
                    public Object computeValueFrom(SQLRowValues row, SQLTableElement source) {
795
                        if (source != null && source.getField().getName().equals("PA_DEVISE")) {
827
                        if (source != null && source.getField().getName().equals("PA_DEVISE")) {
796
                            return row.getObject("PA_DEVISE");
828
                            return row.getObject("PA_DEVISE");
797
                        } else {
829
                        } else {
798
                            if (!row.isForeignEmpty("ID_DEVISE") && row.getForeign("ID_DEVISE") != null) {
830
                            if (row.contains("ID_DEVISE") && !row.isForeignEmpty("ID_DEVISE")) {
799
                                String devCode = row.getForeign("ID_DEVISE").getString("CODE");
831
                                String devCode = row.getForeign("ID_DEVISE").getString("CODE");
800
                                BigDecimal bigDecimal = (BigDecimal) row.getObject("PRIX_METRIQUE_HA_1");
832
                                BigDecimal bigDecimal = (BigDecimal) row.getObject("PRIX_METRIQUE_HA_1");
801
 
833
 
802
                                CurrencyConverter c = new CurrencyConverter();
834
                                CurrencyConverter c = new CurrencyConverter();
803
                                BigDecimal result = convert(bigDecimal, devCode, true);
835
                                BigDecimal result = convert(bigDecimal, devCode, true);
Line 946... Line 978...
946
            public Object computeValueFrom(SQLRowValues row, SQLTableElement source) {
978
            public Object computeValueFrom(SQLRowValues row, SQLTableElement source) {
947
                if (source != null && source.getField().getName().equals("PRIX_METRIQUE_HA_1")) {
979
                if (source != null && source.getField().getName().equals("PRIX_METRIQUE_HA_1")) {
948
                    return row.getObject("PRIX_METRIQUE_HA_1");
980
                    return row.getObject("PRIX_METRIQUE_HA_1");
949
                } else {
981
                } else {
950
                    if (source != null && source.getField().getName().equals("PA_DEVISE")) {
982
                    if (source != null && source.getField().getName().equals("PA_DEVISE")) {
951
                        if (!row.isForeignEmpty("ID_DEVISE") && row.getForeign("ID_DEVISE") != null) {
983
                        if (row.contains("ID_DEVISE") && !row.isForeignEmpty("ID_DEVISE")) {
952
                            String devCode = row.getForeign("ID_DEVISE").getString("CODE");
984
                            String devCode = row.getForeign("ID_DEVISE").getString("CODE");
953
                            BigDecimal bigDecimal = (BigDecimal) row.getObject("PA_DEVISE");
985
                            BigDecimal bigDecimal = (BigDecimal) row.getObject("PA_DEVISE");
954
 
986
 
955
                            return convert(bigDecimal, devCode, false);
987
                            return convert(bigDecimal, devCode, false);
956
                        } else {
988
                        } else {
Line 1058... Line 1090...
1058
            }
1090
            }
1059
 
1091
 
1060
            JButton buttonStock = new JButton("Consulter le stock");
1092
            JButton buttonStock = new JButton("Consulter le stock");
1061
            buttonStock.addActionListener(new ActionListener() {
1093
            buttonStock.addActionListener(new ActionListener() {
1062
                public void actionPerformed(ActionEvent event) {
1094
                public void actionPerformed(ActionEvent event) {
-
 
1095
                    try {
1063
                    SQLRowValues rowValsSel = table.getSelectedRowValues();
1096
                        SQLRowValues rowValsSel = table.getSelectedRowValues();
1064
                    if (rowValsSel != null) {
1097
                        if (rowValsSel != null) {
1065
                        SQLRowAccessor foreignArt = rowValsSel.getForeign("ID_ARTICLE");
1098
                            SQLRowAccessor foreignArt = rowValsSel.getForeign("ID_ARTICLE");
1066
                        if (foreignArt != null && !foreignArt.isUndefined()) {
1099
                            if (foreignArt != null && !foreignArt.isUndefined()) {
1067
                            SQLRowAccessor rowValsStock = StockSQLElement.getStock(rowValsSel);
1100
                                SQLRowAccessor rowValsStock = StockSQLElement.getStock(rowValsSel);
Line 1070... Line 1103...
1070
                                frame.selectionId(rowValsStock.getID());
1103
                                    frame.selectionId(rowValsStock.getID());
1071
                                frame.setVisible(true);
1104
                                    frame.setVisible(true);
1072
                            }
1105
                                }
1073
                        }
1106
                            }
1074
                    }
1107
                        }
1075
 
-
 
-
 
1108
                    } catch (Exception e) {
-
 
1109
                        ExceptionHandler.handle("Erreur d'accès au stock", e);
-
 
1110
                    }
1076
                }
1111
                }
1077
            });
1112
            });
1078
 
1113
 
1079
            this.buttons.add(buttonStock);
1114
            this.buttons.add(buttonStock);
1080
 
1115
 
Line 1127... Line 1162...
1127
        final SQLTable tTarifFournisseur = this.getSQLElement().getTable().getDBRoot().getTable("ARTICLE_TARIF_FOURNISSEUR");
1162
        final SQLTable tTarifFournisseur = this.getSQLElement().getTable().getDBRoot().getTable("ARTICLE_TARIF_FOURNISSEUR");
1128
 
1163
 
1129
        if (row != null && !row.isUndefined() && (field.equalsIgnoreCase("ID_CODE_FOURNISSEUR")) && this.rowFournisseur != null && !this.rowFournisseur.isUndefined()) {
1164
        if (row != null && !row.isUndefined() && (field.equalsIgnoreCase("ID_CODE_FOURNISSEUR")) && this.rowFournisseur != null && !this.rowFournisseur.isUndefined()) {
1130
            final SQLTable foreignTableCodeF = getSQLElement().getTable().getForeignTable("ID_CODE_FOURNISSEUR");
1165
            final SQLTable foreignTableCodeF = getSQLElement().getTable().getForeignTable("ID_CODE_FOURNISSEUR");
1131
            List<SQLRow> resultCode = row.getReferentRows(foreignTableCodeF);
1166
            List<SQLRow> resultCode = row.getReferentRows(foreignTableCodeF);
1132
            int idCode = foreignTableCodeF.getUndefinedID();
-
 
1133
            for (SQLRow sqlRow : resultCode) {
1167
            for (SQLRow sqlRow : resultCode) {
1134
                if (sqlRow.getForeignID("ID_FOURNISSEUR") == this.rowFournisseur.getID()) {
1168
                if (sqlRow.getForeignID("ID_FOURNISSEUR") == this.rowFournisseur.getID()) {
1135
                    return sqlRow.getID();
1169
                    return sqlRow.getID();
1136
                }
1170
                }
1137
 
1171
 
1138
            }
1172
            }
1139
            return idCode;
1173
            return foreignTableCodeF.getUndefinedIDNumber();
1140
        }
1174
        }
1141
        if (field.equalsIgnoreCase("ID_CODE_FOURNISSEUR")) {
1175
        if (field.equalsIgnoreCase("ID_CODE_FOURNISSEUR")) {
1142
            final SQLTable foreignTableCodeF = getSQLElement().getTable().getForeignTable("ID_CODE_FOURNISSEUR");
1176
            final SQLTable foreignTableCodeF = getSQLElement().getTable().getForeignTable("ID_CODE_FOURNISSEUR");
1143
            return foreignTableCodeF.getUndefinedID();
1177
            return foreignTableCodeF.getUndefinedIDNumber();
1144
        }
1178
        }
1145
 
1179
 
1146
        if (row != null && !row.isUndefined() && (field.equalsIgnoreCase("PRIX_METRIQUE_HA_1") || field.equalsIgnoreCase("PA_HT")) && tTarifFournisseur != null) {
1180
        if (row != null && !row.isUndefined() && (field.equalsIgnoreCase("PRIX_METRIQUE_HA_1") || field.equalsIgnoreCase("PA_HT")) && tTarifFournisseur != null) {
1147
            List<String> incoTerms;
1181
            List<String> incoTerms;
1148
 
1182