OpenConcerto

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

svn://code.openconcerto.org/openconcerto

Rev

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

Rev 174 Rev 177
Line 22... Line 22...
22
import java.util.Collection;
22
import java.util.Collection;
23
 
23
 
24
public class QteTotalDocProvider extends UserInitialsValueProvider {
24
public class QteTotalDocProvider extends UserInitialsValueProvider {
25
 
25
 
26
    private enum TypeQteTotalDocProvider {
26
    private enum TypeQteTotalDocProvider {
27
        QTE, COLIS
27
        QTE_KG, QTE, COLIS, PDS_BRUT, QTE_MULT
28
    };
28
    };
29
 
29
 
30
    private final TypeQteTotalDocProvider type;
30
    private final TypeQteTotalDocProvider type;
-
 
31
    private boolean ha = false;
31
 
32
 
32
    public QteTotalDocProvider(TypeQteTotalDocProvider t) {
33
    public QteTotalDocProvider(TypeQteTotalDocProvider t) {
-
 
34
        this(t, false);
-
 
35
    }
-
 
36
 
-
 
37
    public QteTotalDocProvider(TypeQteTotalDocProvider t, boolean ha) {
33
        this.type = t;
38
        this.type = t;
-
 
39
        this.ha = ha;
34
    }
40
    }
35
 
41
 
36
    @Override
42
    @Override
37
    public Object getValue(SpreadSheetCellValueContext context) {
43
    public Object getValue(SpreadSheetCellValueContext context) {
38
        SQLRowAccessor row = context.getRow();
44
        SQLRowAccessor row = context.getRow();
Line 41... Line 47...
41
        Collection<? extends SQLRowAccessor> cols = row.getReferentRows(table.getTable(table.getName() + "_ELEMENT"));
47
        Collection<? extends SQLRowAccessor> cols = row.getReferentRows(table.getTable(table.getName() + "_ELEMENT"));
42
        BigDecimal total = BigDecimal.ZERO;
48
        BigDecimal total = BigDecimal.ZERO;
43
        for (SQLRowAccessor sqlRowAccessor : cols) {
49
        for (SQLRowAccessor sqlRowAccessor : cols) {
44
 
50
 
45
            if (!sqlRowAccessor.getTable().contains("NIVEAU") || sqlRowAccessor.getInt("NIVEAU") == 1) {
51
            if (!sqlRowAccessor.getTable().contains("NIVEAU") || sqlRowAccessor.getInt("NIVEAU") == 1) {
-
 
52
                String field = "PV_HT";
-
 
53
                if (this.ha) {
-
 
54
                    field = "PA_HT";
-
 
55
                }
-
 
56
                BigDecimal prixUnitaire = sqlRowAccessor.getBigDecimal(field);
-
 
57
                if (prixUnitaire != null && prixUnitaire.signum() != 0) {
-
 
58
                    if (this.type == TypeQteTotalDocProvider.QTE || this.type == TypeQteTotalDocProvider.QTE_KG) {
-
 
59
                        if (this.type == TypeQteTotalDocProvider.QTE || sqlRowAccessor.getForeignID("ID_UNITE_VENTE") == 7) {
46
 
60
 
47
                if (this.type == TypeQteTotalDocProvider.QTE) {
-
 
48
                    BigDecimal qte = sqlRowAccessor.getBigDecimal("QTE_UNITAIRE").multiply(new BigDecimal(sqlRowAccessor.getInt("QTE")));
61
                            BigDecimal qte = sqlRowAccessor.getBigDecimal("QTE_UNITAIRE").multiply(new BigDecimal(sqlRowAccessor.getInt("QTE")));
49
 
-
 
50
                    total = total.add(qte);
62
                            total = total.add(qte);
-
 
63
                        }
-
 
64
                    } else if (this.type == TypeQteTotalDocProvider.PDS_BRUT) {
-
 
65
                        total = total.add(sqlRowAccessor.getBigDecimal("T_POIDS_BRUT"));
-
 
66
                    } else if (this.type == TypeQteTotalDocProvider.QTE_MULT) {
-
 
67
                        BigDecimal qte = new BigDecimal(sqlRowAccessor.getInt("QTE"));
-
 
68
                        total = total.add(qte);
51
 
-
 
52
                } else {
69
                    } else {
53
                    if (sqlRowAccessor.getObject("NB_COLIS") != null) {
70
                        if (sqlRowAccessor.getObject("NB_COLIS") != null) {
54
                        total = total.add(new BigDecimal(sqlRowAccessor.getInt("NB_COLIS")));
71
                            total = total.add(new BigDecimal(sqlRowAccessor.getInt("NB_COLIS")));
55
                    }
72
                        }
56
                }
73
                    }
57
 
-
 
-
 
74
                }
58
            }
75
            }
59
        }
76
        }
60
 
77
 
61
        return total;
78
        return total;
62
    }
79
    }
63
 
80
 
64
    public static void register() {
81
    public static void register() {
-
 
82
        SpreadSheetCellValueProviderManager.put("sales.qty.multiple.total", new QteTotalDocProvider(TypeQteTotalDocProvider.QTE_MULT));
65
        SpreadSheetCellValueProviderManager.put("sales.qty.total", new QteTotalDocProvider(TypeQteTotalDocProvider.QTE));
83
        SpreadSheetCellValueProviderManager.put("sales.qty.total", new QteTotalDocProvider(TypeQteTotalDocProvider.QTE));
-
 
84
        SpreadSheetCellValueProviderManager.put("purchase.qty.total", new QteTotalDocProvider(TypeQteTotalDocProvider.QTE, true));
-
 
85
        SpreadSheetCellValueProviderManager.put("sales.qty.total.kg", new QteTotalDocProvider(TypeQteTotalDocProvider.QTE_KG));
66
        SpreadSheetCellValueProviderManager.put("sales.package.total", new QteTotalDocProvider(TypeQteTotalDocProvider.COLIS));
86
        SpreadSheetCellValueProviderManager.put("sales.package.total", new QteTotalDocProvider(TypeQteTotalDocProvider.COLIS));
-
 
87
        SpreadSheetCellValueProviderManager.put("sales.package.brut", new QteTotalDocProvider(TypeQteTotalDocProvider.PDS_BRUT));
67
    }
88
    }
68
}
89
}