OpenConcerto

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

svn://code.openconcerto.org/openconcerto

Compare Revisions

Regard whitespace Rev 148 → Rev 149

/trunk/OpenConcerto/src/org/openconcerto/erp/core/common/ui/TotalCalculator.java
15,6 → 15,7
 
import org.openconcerto.erp.core.finance.accounting.element.ComptePCESQLElement;
import org.openconcerto.erp.core.finance.tax.model.TaxeCache;
import org.openconcerto.erp.preferences.GestionCommercialeGlobalPreferencePanel;
import org.openconcerto.sql.Configuration;
import org.openconcerto.sql.model.SQLRow;
import org.openconcerto.sql.model.SQLRowAccessor;
21,6 → 22,7
import org.openconcerto.sql.model.SQLRowValues;
import org.openconcerto.sql.model.SQLRowValuesListFetcher;
import org.openconcerto.sql.model.SQLTable;
import org.openconcerto.sql.preferences.SQLPreferences;
import org.openconcerto.utils.DecimalUtils;
import org.openconcerto.utils.Tuple2;
 
37,7 → 39,7
private static String FIELD_SERVICE = "SERVICE";
private static String FIELD_POIDS = "T_POIDS";
private final String fieldHT, fieldHA, fieldDevise;
 
private boolean imputEcart = true;
private SQLRowAccessor rowDefaultCptProduit, rowDefaultCptService, rowDefaultCptTVACollecte, rowDefaultCptTVADeductible, rowDefaultCptAchat;
 
private SQLRowAccessor rowDefaultCptProduitStandard;
92,6 → 94,9
this.fieldHT = fieldHT;
final SQLTable tablePrefCompte = Configuration.getInstance().getRoot().findTable("PREFS_COMPTE");
final SQLRow rowPrefsCompte = tablePrefCompte.getRow(2);
SQLPreferences prefs = SQLPreferences.getMemCached(tablePrefCompte.getDBRoot());
this.imputEcart = prefs.getBoolean(GestionCommercialeGlobalPreferencePanel.IMPUT_ECART, true);
 
// FIXME faire un fetcher pour ne pas faire 5 requetes (1 par getForeign)
// Comptes par défaut
this.rowDefaultCptService = rowPrefsCompte.getForeign("ID_COMPTE_PCE_VENTE_SERVICE");
228,7 → 233,10
addHT(ht, ht, tva, this.rowDefaultCptProduit, false);
}
 
private Map<Integer, SQLRowAccessor> mapTVA;
// Cache de TVA
private static Map<Integer, SQLRowAccessor> mapTVA;
private static long lastTVAfetchedTime = 0;
 
final SQLTable tvaTable = Configuration.getInstance().getRoot().findTable("TAXE");
final SQLTable compteTable = Configuration.getInstance().getRoot().findTable("COMPTE_PCE");
 
275,6 → 283,7
for (SQLRowValues sqlRowValues : rowValsList) {
mapTVA.put(sqlRowValues.getID(), sqlRowValues);
}
lastTVAfetchedTime = System.currentTimeMillis();
}
 
private void addHT(BigDecimal ht, BigDecimal htSansFacturable, SQLRowAccessor tva, SQLRowAccessor cptArticle, boolean selection) {
424,8 → 433,8
}
}
 
// TODO Ne pas fetcher la TVA pour chaque instance de TotalCalculator utiliser un cache
if (mapTVA == null) {
// TODO : generaliser le cache
if (mapTVA == null || lastTVAfetchedTime + 30 * 1000 < System.currentTimeMillis()) {
fetchTVA();
}
final SQLRowAccessor foreignTVA = rowAccessorLine.getForeign("ID_TAXE");
550,11 → 559,22
System.err.print("Ecarts: " + reste + "(HT:" + ht);
System.err.print(" TVA:" + tva);
System.err.println(" TTC:" + totalTTC2);
 
// TODO Check if row already exist in MAP ??
if (!this.imputEcart) {
for (SQLRowAccessor rHT : this.mapHt.keySet()) {
BigDecimal input = this.mapHt.get(rHT);
if (input != null && input.signum() != 0) {
this.mapHt.put(rHT, input.add(reste));
break;
}
}
} else {
SQLRow row = ComptePCESQLElement.getRow("758", "Ecarts arrondis");
// TODO Check if row already exist in MAP ??
this.mapHt.put(row, reste);
}
}
}
 
public BigDecimal getTotalDevise() {
return totalDevise;