mirror of
https://github.com/klmp200/PQT_Gestionnaire_vente_stock.git
synced 2024-11-25 02:24:17 +00:00
[CLIENT] #16 : Correction de bugs dans l'algo permetant de déterminer si la créa/modif de produit est valide
This commit is contained in:
parent
55b7f7f4de
commit
0a5db85a9a
@ -1,9 +1,7 @@
|
||||
package com.pqt.client.gui.modules.stock_screen.product_manager_screen;
|
||||
|
||||
import com.pqt.client.gui.ressources.strings.GUIStringTool;
|
||||
import com.pqt.client.module.stock.StockService;
|
||||
import com.pqt.core.entities.product.Category;
|
||||
import com.pqt.core.entities.product.LightweightProduct;
|
||||
import com.pqt.core.entities.product.Product;
|
||||
|
||||
import java.util.*;
|
||||
@ -40,12 +38,38 @@ class ProductManagerScreenModel {
|
||||
}
|
||||
|
||||
boolean isProductCreationPossible() {
|
||||
return (initialData!=null && !currentData.equals(initialData))
|
||||
return (initialData==null || !areProductsEqual(initialData, currentData))
|
||||
&& !currentData.getName().isEmpty()
|
||||
&& currentData.getCategory()!=null
|
||||
&& currentData.getPrice()>=0;
|
||||
}
|
||||
|
||||
private boolean areProductsEqual(Product p1, Product p2){
|
||||
|
||||
/*
|
||||
Ces listes sont des différentiels entre les deux listes de composants des deux produits.
|
||||
|
||||
Elles sont toutes les deux vides ssi les produits ont les mêmes composants.
|
||||
|
||||
Si la liste diff de p1 contient un produit après le diff, c'est que ce produit n'était pas un composant de
|
||||
p2, et vice-versa.
|
||||
*/
|
||||
|
||||
List<Product> p1Diff = new ArrayList<>(p1.getComponents()),
|
||||
p2Diff = new ArrayList<>(p2.getComponents());
|
||||
p1Diff.removeAll(p2.getComponents());
|
||||
p2Diff.removeAll(p1.getComponents());
|
||||
|
||||
return p1.getName().equals(p2.getName())
|
||||
&& p1.getPrice() == p2.getPrice()
|
||||
&& p1.getCategory() == p2.getCategory()
|
||||
&& p1.getAmountSold() == p2.getAmountSold()
|
||||
&& p1.getAmountRemaining() == p2.getAmountRemaining()
|
||||
&& p1.isSellable() == p2.isSellable()
|
||||
&& p1Diff.size()==0
|
||||
&& p2Diff.size()==0;
|
||||
}
|
||||
|
||||
void addComponent(Product product) {
|
||||
currentData.getComponents().add(product);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user