OpenConcerto

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

svn://code.openconcerto.org/openconcerto

Rev

Rev 149 | Rev 180 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 149 Rev 156
Line 65... Line 65...
65
import java.util.Date;
65
import java.util.Date;
66
import java.util.HashMap;
66
import java.util.HashMap;
67
import java.util.List;
67
import java.util.List;
68
import java.util.Map;
68
import java.util.Map;
69
import java.util.Set;
69
import java.util.Set;
-
 
70
import java.util.Map.Entry;
70
 
71
 
71
import javax.swing.Icon;
72
import javax.swing.Icon;
72
import javax.swing.JCheckBox;
73
import javax.swing.JCheckBox;
73
import javax.swing.JLabel;
74
import javax.swing.JLabel;
74
import javax.swing.JOptionPane;
75
import javax.swing.JOptionPane;
Line 440... Line 441...
440
 
441
 
441
    }
442
    }
442
 
443
 
443
    private static String getNextForMonth(Class<? extends SQLElement> clazz, Date d, SQLRowAccessor rowNum) {
444
    private static String getNextForMonth(Class<? extends SQLElement> clazz, Date d, SQLRowAccessor rowNum) {
444
 
445
 
-
 
446
        List<SQLTable> tables = new ArrayList<>();
445
        final SQLTable table = Configuration.getInstance().getDirectory().getElement(clazz).getTable();
447
        SQLTable table = Configuration.getInstance().getDirectory().getElement(clazz).getTable();
-
 
448
        tables.add(table);
446
        final String s = map.get(clazz);
449
        final String s = map.get(clazz);
-
 
450
        for (Entry<Class<? extends SQLElement>, String> entry : map.entrySet()) {
-
 
451
            if (!entry.getKey().equals(clazz) && entry.getValue().equals(s)) {
-
 
452
                tables.add(Configuration.getInstance().getDirectory().getElement(entry.getKey()).getTable());
-
 
453
            }
-
 
454
        }
-
 
455
 
447
        final String pattern = rowNum.getString(s + FORMAT);
456
        final String pattern = rowNum.getString(s + FORMAT);
448
        final Tuple2<String, String> prefixSuffix = getPrefixAndSuffix(pattern, d);
457
        final Tuple2<String, String> prefixSuffix = getPrefixAndSuffix(pattern, d);
449
        final String prefix = prefixSuffix.get0();
458
        final String prefix = prefixSuffix.get0();
450
        final String suffix = prefixSuffix.get1();
459
        final String suffix = prefixSuffix.get1();
-
 
460
        final String decimalPattern = "'" + prefix + "'" + suffix;
-
 
461
        final DecimalFormat format = new DecimalFormat(decimalPattern);
-
 
462
        int value = 0;
-
 
463
 
-
 
464
            for (SQLTable sqlTable : tables) {
451
 
465
 
452
        Where w = new Where(table.getField("NUMERO"), "LIKE", "%" + prefix + "%");
-
 
453
            final SQLSelect sel = new SQLSelect();
466
                final SQLSelect sel = new SQLSelect();
454
            sel.addSelect(table.getField("NUMERO"));
467
                sel.addSelect(sqlTable.getField("NUMERO"));
455
            sel.addSelect(table.getKey());
468
                sel.addSelect(sqlTable.getKey());
-
 
469
                Where w = new Where(sqlTable.getField("NUMERO"), "LIKE", "%" + prefix + "%");
456
 
470
 
457
            sel.setWhere(w);
471
                sel.setWhere(w);
458
            SQLDataSource source = Configuration.getInstance().getBase().getDataSource();
472
                SQLDataSource source = Configuration.getInstance().getBase().getDataSource();
459
 
473
 
460
            final ResultSetHandler createFromSelect = SQLRowListRSH.createFromSelect(sel);
474
                final ResultSetHandler createFromSelect = SQLRowListRSH.createFromSelect(sel);
461
 
475
 
462
            final List<SQLRow> l = (List<SQLRow>) source.execute(sel.asString(), new IResultSetHandler(createFromSelect, false));
476
                final List<SQLRow> l = (List<SQLRow>) source.execute(sel.asString(), new IResultSetHandler(createFromSelect, false));
463
 
477
 
464
            final String decimalPattern = "'" + prefix + "'" + suffix;
-
 
465
            final DecimalFormat format = new DecimalFormat(decimalPattern);
-
 
466
            int value = 0;
-
 
467
            for (SQLRow sqlRow : l) {
478
                for (SQLRow sqlRow : l) {
468
 
479
 
469
                final String numero = sqlRow.getString("NUMERO");
480
                    final String numero = sqlRow.getString("NUMERO");
470
                try {
481
                    try {
471
 
482
 
Line 474... Line 485...
474
                } catch (ParseException exn) {
485
                    } catch (ParseException exn) {
475
                    System.err.println("NumerotationAutoSQLElement.getNextForMonth(): warning: unable to parse " + numero + " with pattern " + decimalPattern + " row:" + sqlRow);
486
                        System.err.println("NumerotationAutoSQLElement.getNextForMonth(): warning: unable to parse " + numero + " with pattern " + decimalPattern + " row:" + sqlRow);
476
                    exn.printStackTrace();
487
                        exn.printStackTrace();
477
                }
488
                    }
478
            }
489
                }
-
 
490
            }
479
            final String result = format.format(value + 1);
491
            final String result = format.format(value + 1);
480
            System.err.println("NumerotationAutoSQLElement.getNextForMonth(): " + result);
492
            System.err.println("NumerotationAutoSQLElement.getNextForMonth(): " + result);
481
            return result;
493
            return result;
482
    }
494
    }
483
 
495