OpenConcerto

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

svn://code.openconcerto.org/openconcerto

Compare Revisions

Regard whitespace Rev 141 → Rev 142

/trunk/OpenConcerto/src/org/openconcerto/erp/core/sales/product/model/ProductHelper.java
137,16 → 137,21
public Map<Long, BigDecimal> getUnitCost(Map<Long, Integer> productQties, TypePrice type) {
final Map<Long, BigDecimal> result = new HashMap<Long, BigDecimal>();
 
String fieldPrice = (type == TypePrice.ARTICLE_TARIF_FOURNISSEUR ? "PRIX_ACHAT_DEVISE_F" : "PRIX");
String fieldDate = (type == TypePrice.ARTICLE_TARIF_FOURNISSEUR ? "DATE_PRIX" : "DATE");
String fieldPrice = (type == TypePrice.ARTICLE_TARIF_FOURNISSEUR || type == TypePrice.ARTICLE_TARIF_FOURNISSEUR_DDP ? "PRIX_ACHAT_DEVISE_F" : "PRIX");
String fieldDate = (type == TypePrice.ARTICLE_TARIF_FOURNISSEUR || type == TypePrice.ARTICLE_TARIF_FOURNISSEUR_DDP ? "DATE_PRIX" : "DATE");
 
// get all costs
final SQLTable costTable = root.getTable(type.name());
final SQLTable costTable = root.getTable(type == TypePrice.ARTICLE_TARIF_FOURNISSEUR_DDP ? "ARTICLE_TARIF_FOURNISSEUR" : type.name());
final SQLSelect sel = new SQLSelect();
sel.addSelect(costTable.getKey());
sel.addSelect(costTable.getField("ID_ARTICLE"));
sel.addSelect(costTable.getField("QTE"));
sel.addSelect(costTable.getField(fieldPrice));
if (type == TypePrice.ARTICLE_TARIF_FOURNISSEUR_DDP) {
for (SupplierPriceField f : SupplierPriceField.values()) {
sel.addSelect(costTable.getField(f.name()));
}
}
sel.addSelect(costTable.getField(fieldDate));
sel.setWhere(new Where(costTable.getField("ID_ARTICLE"), true, productQties.keySet()));
sel.addFieldOrder(costTable.getField("QTE"));
158,6 → 163,9
System.out.println(sqlRow.getID() + ":" + sqlRow.getAllValues());
}
final int size = l.size();
if (size == 0 && type == TypePrice.ARTICLE_PRIX_REVIENT) {
return getUnitCost(productQties, TypePrice.ARTICLE_TARIF_FOURNISSEUR_DDP);
} else {
for (Long id : productQties.keySet()) {
BigDecimal cost = BigDecimal.ZERO;
final int qty = productQties.get(id);
167,11 → 175,19
// stop when the max qty is found
if (row.getLong("QTE") > qty) {
if (cost == null) {
if (type == TypePrice.ARTICLE_TARIF_FOURNISSEUR_DDP) {
cost = getEnumPrice(row, SupplierPriceField.COEF_TRANSPORT_SIEGE);
} else {
cost = row.getBigDecimal(fieldPrice);
}
}
break;
}
if (type == TypePrice.ARTICLE_TARIF_FOURNISSEUR_DDP) {
cost = getEnumPrice(row, SupplierPriceField.COEF_TRANSPORT_SIEGE);
} else {
cost = row.getBigDecimal(fieldPrice);
}
 
}
}
183,6 → 199,7
}
return result;
}
}
 
/**
*
210,8 → 227,12
final Map<Integer, BigDecimal> qtyParent = new HashMap<Integer, BigDecimal>();
for (ProductComponent p : items) {
parentsArticleIDs.add(p.getProduct().getID());
qtyParent.put(p.getProduct().getID(), p.getQty());
BigDecimal qty = BigDecimal.ZERO;
if (qtyParent.get(p.getProduct().getID()) != null) {
qty = qtyParent.get(p.getProduct().getID());
}
qtyParent.put(p.getProduct().getID(), qty.add(p.getQty()));
}
 
// get all childs
final SQLTable costTable = root.getTable("ARTICLE_ELEMENT");
240,8 → 261,9
if (childs.size() > 0) {
 
for (SQLRowValues childRowValues : childs) {
final SQLRowAccessor foreignArticleParent = childRowValues.getForeign("ID_ARTICLE_PARENT");
 
final SQLRowAccessor foreignArticleParent = childRowValues.getForeign("ID_ARTICLE_PARENT");
if (!childRowValues.isForeignEmpty("ID_ARTICLE") && childRowValues.getForeign("ID_ARTICLE") != null) {
ProductComponent childComponent = ProductComponent.createFrom(childRowValues);
// Test pour éviter les boucles dans les boms
if (!ancestors.contains(childComponent.getProduct().getID())) {
260,6 → 282,7
}
}
}
}
 
// Recherche si un kit est présent parmis les articles
final List<ProductComponent> bomFromChilds = getChildWithQtyFrom(new ArrayList(result), ancestors);
334,7 → 357,7
}
 
public enum TypePrice {
ARTICLE_PRIX_REVIENT, ARTICLE_PRIX_MIN_VENTE, ARTICLE_PRIX_PUBLIC, ARTICLE_TARIF_FOURNISSEUR
ARTICLE_PRIX_REVIENT, ARTICLE_PRIX_MIN_VENTE, ARTICLE_PRIX_PUBLIC, ARTICLE_TARIF_FOURNISSEUR, ARTICLE_TARIF_FOURNISSEUR_DDP
};
 
public BigDecimal getBomPriceForQuantity(int qty, Collection<? extends SQLRowAccessor> rowValuesProductItems, TypePrice type) {