diff --git a/src/main/java/fyloz/trial/ColorRecipesExplorer/model/Company.java b/src/main/java/fyloz/trial/ColorRecipesExplorer/model/Company.java index d0261b8..63ed96b 100644 --- a/src/main/java/fyloz/trial/ColorRecipesExplorer/model/Company.java +++ b/src/main/java/fyloz/trial/ColorRecipesExplorer/model/Company.java @@ -65,4 +65,9 @@ public class Company extends BeanModel implements Serializable { return companyID == company.companyID && Objects.equals(companyName, company.companyName); } + + @Override + public int hashCode() { + return Objects.hash(companyID, companyName); + } } diff --git a/src/main/java/fyloz/trial/ColorRecipesExplorer/model/Material.java b/src/main/java/fyloz/trial/ColorRecipesExplorer/model/Material.java index d180665..2c25ae2 100644 --- a/src/main/java/fyloz/trial/ColorRecipesExplorer/model/Material.java +++ b/src/main/java/fyloz/trial/ColorRecipesExplorer/model/Material.java @@ -18,6 +18,7 @@ public class Material extends BeanModel implements Serializable { @NotNull @NotEmpty + @Column(unique = true) private String materialCode; @NotNull @@ -109,4 +110,9 @@ public class Material extends BeanModel implements Serializable { Objects.equals(materialCode, material.materialCode) && Objects.equals(materialType, material.materialType); } + + @Override + public int hashCode() { + return Objects.hash(materialID, materialCode, inventoryQuantity, isMixType, materialType); + } } diff --git a/src/main/java/fyloz/trial/ColorRecipesExplorer/model/MaterialType.java b/src/main/java/fyloz/trial/ColorRecipesExplorer/model/MaterialType.java index 2faae83..007ed60 100644 --- a/src/main/java/fyloz/trial/ColorRecipesExplorer/model/MaterialType.java +++ b/src/main/java/fyloz/trial/ColorRecipesExplorer/model/MaterialType.java @@ -101,4 +101,9 @@ public class MaterialType extends BeanModel implements Serializable { Objects.equals(prefix, that.prefix) && Objects.equals(usePercentages, that.usePercentages); } + + @Override + public int hashCode() { + return Objects.hash(materialTypeID, materialTypeName, prefix, usePercentages, materials); + } } diff --git a/src/main/java/fyloz/trial/ColorRecipesExplorer/model/Mix.java b/src/main/java/fyloz/trial/ColorRecipesExplorer/model/Mix.java index febddbe..6e77016 100644 --- a/src/main/java/fyloz/trial/ColorRecipesExplorer/model/Mix.java +++ b/src/main/java/fyloz/trial/ColorRecipesExplorer/model/Mix.java @@ -104,4 +104,9 @@ public class Mix extends BeanModel implements Serializable { Objects.equals(mixType, mix.mixType) && Objects.equals(mixQuantities, mix.mixQuantities); } + + @Override + public int hashCode() { + return Objects.hash(mixID, recipe, mixType, mixQuantities, location); + } } diff --git a/src/main/java/fyloz/trial/ColorRecipesExplorer/model/MixQuantity.java b/src/main/java/fyloz/trial/ColorRecipesExplorer/model/MixQuantity.java index 1d3d80c..dce9916 100644 --- a/src/main/java/fyloz/trial/ColorRecipesExplorer/model/MixQuantity.java +++ b/src/main/java/fyloz/trial/ColorRecipesExplorer/model/MixQuantity.java @@ -88,9 +88,14 @@ public class MixQuantity extends BeanModel implements Serializable { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; MixQuantity that = (MixQuantity) o; - return mixQuantityID.equals(that.mixQuantityID) && - quantity == that.quantity && + return Objects.equals(mixQuantityID, that.mixQuantityID) && Objects.equals(mix, that.mix) && - Objects.equals(material, that.material); + Objects.equals(material, that.material) && + Objects.equals(quantity, that.quantity); + } + + @Override + public int hashCode() { + return Objects.hash(mixQuantityID, mix, material, quantity); } } diff --git a/src/main/java/fyloz/trial/ColorRecipesExplorer/model/MixType.java b/src/main/java/fyloz/trial/ColorRecipesExplorer/model/MixType.java index 6caf2db..a0c5f79 100644 --- a/src/main/java/fyloz/trial/ColorRecipesExplorer/model/MixType.java +++ b/src/main/java/fyloz/trial/ColorRecipesExplorer/model/MixType.java @@ -76,4 +76,9 @@ public class MixType extends BeanModel implements Serializable { return typeID == mixType.typeID && Objects.equals(typeName, mixType.typeName); } + + @Override + public int hashCode() { + return Objects.hash(typeID, typeName, material); + } } diff --git a/src/main/java/fyloz/trial/ColorRecipesExplorer/model/Recipe.java b/src/main/java/fyloz/trial/ColorRecipesExplorer/model/Recipe.java index 3e45aff..286f71a 100644 --- a/src/main/java/fyloz/trial/ColorRecipesExplorer/model/Recipe.java +++ b/src/main/java/fyloz/trial/ColorRecipesExplorer/model/Recipe.java @@ -173,4 +173,9 @@ public class Recipe extends BeanModel implements Serializable { Objects.equals(recipeMixes, recipe.recipeMixes) && Objects.equals(recipeSteps, recipe.recipeSteps); } + + @Override + public int hashCode() { + return Objects.hash(recipeID, recipeCode, company, recipeDescription, sample, approbationDate, remark, note, recipeMixes, recipeSteps); + } } diff --git a/src/main/java/fyloz/trial/ColorRecipesExplorer/model/RecipeStep.java b/src/main/java/fyloz/trial/ColorRecipesExplorer/model/RecipeStep.java index 9da6426..3616b14 100644 --- a/src/main/java/fyloz/trial/ColorRecipesExplorer/model/RecipeStep.java +++ b/src/main/java/fyloz/trial/ColorRecipesExplorer/model/RecipeStep.java @@ -77,4 +77,9 @@ public class RecipeStep extends BeanModel implements Serializable { Objects.equals(stepMessage, recipeStep.stepMessage) && Objects.equals(recipe, recipeStep.recipe); } + + @Override + public int hashCode() { + return Objects.hash(stepID, recipe, stepMessage); + } } diff --git a/src/main/java/fyloz/trial/ColorRecipesExplorer/services/GenericService.java b/src/main/java/fyloz/trial/ColorRecipesExplorer/services/GenericService.java index 0ef707b..6e3d6f9 100644 --- a/src/main/java/fyloz/trial/ColorRecipesExplorer/services/GenericService.java +++ b/src/main/java/fyloz/trial/ColorRecipesExplorer/services/GenericService.java @@ -97,7 +97,6 @@ public abstract class GenericService implements IGenericSer */ @Override public boolean exists(T entity) { - return dao.findById(entity.getID()).isPresent(); } diff --git a/src/main/java/fyloz/trial/ColorRecipesExplorer/services/MaterialService.java b/src/main/java/fyloz/trial/ColorRecipesExplorer/services/MaterialService.java index c9318c5..b4c4fd2 100644 --- a/src/main/java/fyloz/trial/ColorRecipesExplorer/services/MaterialService.java +++ b/src/main/java/fyloz/trial/ColorRecipesExplorer/services/MaterialService.java @@ -21,6 +21,16 @@ public class MaterialService extends GenericService { this.mixQuantityService = mixQuantityService; } + /** + * Récupère la produit ayant le code spécifié dans la base de données. + * + * @param materialCode Le code du produit + * @return Le produit correspondant au code. + */ + public Material getByMaterialCode(String materialCode) { + return ((MaterialDao) dao).findByMaterialCode(materialCode); + } + /** * Vérifie si un produit est lié à un ou plusieurs mélanges. * @@ -39,6 +49,12 @@ public class MaterialService extends GenericService { return false; } + @Override + public boolean exists(Material entity) { + Material material = getByMaterialCode(entity.getMaterialCode()); + return super.exists(entity) || material != null; + } + /** * Crée le fichier SIMDUT sur le disque et y transfert le contenu du MultipartFile passé en paramètre. *

diff --git a/src/main/resources/lang/messages_en.properties b/src/main/resources/lang/messages_en.properties index 068f951..e99518c 100644 --- a/src/main/resources/lang/messages_en.properties +++ b/src/main/resources/lang/messages_en.properties @@ -57,4 +57,14 @@ materialType.add.title=Add a material type materialType.name=Material type name materialType.prefix=Prefix keyword.characters=characters -materialType.usePercents=Use percentages \ No newline at end of file +materialType.usePercents=Use percentages +image.add.title=Add an image +mix.add.title=Adding a banner +mix.add.subtitle=Adding a mix for the recipe {0} +mix.mixType=Mix type +keyword.remove=Remove +mix.edit.title=Editing a mix +mix.edit.subtitle=Editing a mix for the recipe {0} ({1}) +password.ask=What is your password? +password.notValid=Your password is not valid +error.serverError=An error occurred while sending data to the server. \ No newline at end of file diff --git a/src/main/resources/lang/messages_fr.properties b/src/main/resources/lang/messages_fr.properties index 2d85999..fd28aa4 100644 --- a/src/main/resources/lang/messages_fr.properties +++ b/src/main/resources/lang/messages_fr.properties @@ -58,3 +58,13 @@ materialType.name=Nom du type de produit materialType.prefix=Préfix keyword.characters=caractères materialType.usePercents=Utiliser les pourcentages +image.add.title=Ajout une image +mix.add.title=Ajout d'un mélange +mix.add.subtitle=Ajout d''un mélange pour la recette {0} +mix.mixType=Type de mélange +keyword.remove=Retirer +mix.edit.title=Modifier un mélange +mix.edit.subtitle=Modifier un mélange pour la recette {0} ({1}) +password.ask=Quel est votre mot de passe? +password.notValid=Votre mot de passe n'est pas valide +error.serverError=Une erreur est survenue lors de l'envoie des informations vers le serveur. diff --git a/src/main/resources/templates/images/add.html b/src/main/resources/templates/images/add.html index a76dde8..0b7bf4b 100644 --- a/src/main/resources/templates/images/add.html +++ b/src/main/resources/templates/images/add.html @@ -1,10 +1,7 @@ - - Ajout une image - - + @@ -14,12 +11,12 @@

-
+ - +
- +
diff --git a/src/main/resources/templates/mix/creator.html b/src/main/resources/templates/mix/creator.html index bec228c..75aead1 100644 --- a/src/main/resources/templates/mix/creator.html +++ b/src/main/resources/templates/mix/creator.html @@ -1,10 +1,8 @@ - - Ajout d'un mélange + -