r243 - in trunk: magalie-persistence/src/main/xmi magalie-services/src/main/java/com/franciaflex/magalie/services/exception magalie-services/src/main/java/com/franciaflex/magalie/services/service magalie-services/src/main/resources magalie-services/src/test/java/com/franciaflex/magalie/services/service magalie-web/src/main/java/com/franciaflex/magalie/web/action
Author: bleny Date: 2013-06-07 16:16:49 +0200 (Fri, 07 Jun 2013) New Revision: 243 Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revisions... Log: refs #2168 introduce directWithdrawAllowed in Article entity Added: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/exception/IllegalWithdrawException.java Modified: trunk/magalie-persistence/src/main/xmi/magalie.zargo trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/SimpleWithdrawItemService.java trunk/magalie-services/src/main/resources/fixtures.yaml trunk/magalie-services/src/main/resources/fixtures2.yaml trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/SimpleWithdrawItemServiceTest.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/SimpleWithdrawItemAction.java Modified: trunk/magalie-persistence/src/main/xmi/magalie.zargo =================================================================== (Binary files differ) Added: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/exception/IllegalWithdrawException.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/exception/IllegalWithdrawException.java (rev 0) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/exception/IllegalWithdrawException.java 2013-06-07 14:16:49 UTC (rev 243) @@ -0,0 +1,24 @@ +package com.franciaflex.magalie.services.exception; + +import com.franciaflex.magalie.persistence.entity.Article; + +public class IllegalWithdrawException extends MagalieException { + + protected Article article; + + public IllegalWithdrawException(String message, Article article) { + super(message); + this.article = article; + } + + public static void checkWithdrawIsLegal(Article article) throws IllegalWithdrawException { + + if ( ! article.isDirectWithdrawAllowed()) { + + throw new IllegalWithdrawException("article cannot be withdrawn", article); + + } + + } + +} Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/SimpleWithdrawItemService.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/SimpleWithdrawItemService.java 2013-06-07 10:14:02 UTC (rev 242) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/SimpleWithdrawItemService.java 2013-06-07 14:16:49 UTC (rev 243) @@ -40,6 +40,7 @@ import com.franciaflex.magalie.services.MagalieService; import com.franciaflex.magalie.services.MagalieServiceContext; import com.franciaflex.magalie.services.SimpleWithdrawItemTask; +import com.franciaflex.magalie.services.exception.IllegalWithdrawException; import com.franciaflex.magalie.services.exception.InvalidMagalieBarcodeException; import com.google.common.base.Predicate; import com.google.common.collect.Iterables; @@ -59,7 +60,8 @@ this.serviceContext = serviceContext; } - public SimpleWithdrawItemTask getSimpleWithdrawItemTask(Building building, MagalieUser magalieUser, String articleBarcode) throws InvalidMagalieBarcodeException { + public SimpleWithdrawItemTask getSimpleWithdrawItemTask(Building building, MagalieUser magalieUser, String articleBarcode) + throws InvalidMagalieBarcodeException, IllegalWithdrawException { ArticleStorageService articleStorageService = serviceContext.newService(ArticleStorageService.class); @@ -71,6 +73,8 @@ Article article = magalieBarcodeService.getArticle(articleBarcode, company); + IllegalWithdrawException.checkWithdrawIsLegal(article); + Iterable<StoredArticle> storedArticles = articleStorageService.getStoredArticles(building, article); Modified: trunk/magalie-services/src/main/resources/fixtures.yaml =================================================================== --- trunk/magalie-services/src/main/resources/fixtures.yaml 2013-06-07 10:14:02 UTC (rev 242) +++ trunk/magalie-services/src/main/resources/fixtures.yaml 2013-06-07 14:16:49 UTC (rev 243) @@ -328,6 +328,7 @@ description: Jonc Souple D5 fixedLocationsFirst: true company: *franciaflex + directWithdrawAllowed: true article2: &article2 !article @@ -339,6 +340,7 @@ description: Moteur Oréa Slt 50 RTS 50/12 fixedLocationsFirst: false company: *franciaflex + directWithdrawAllowed: true article3: &article3 !article @@ -350,6 +352,7 @@ description: Interface ASA/SOMFY + clip fixedLocationsFirst: true company: *franciaflex + directWithdrawAllowed: true article4: &article4 !article @@ -359,6 +362,7 @@ description: Kit Tr.PM Fixe 122G D40Plat 10 fixedLocationsFirst: false company: *franciaflex + directWithdrawAllowed: true article5: &article5 !article @@ -370,6 +374,7 @@ description: Caisson 2005 3F 6000 Brun fixedLocationsFirst: false company: *franciaflex + directWithdrawAllowed: true article6: &article6 !article @@ -382,6 +387,7 @@ fixedLocationsFirst: false supplier: *supplier2 company: *franciaflex + directWithdrawAllowed: true articles: - *article1 Modified: trunk/magalie-services/src/main/resources/fixtures2.yaml =================================================================== --- trunk/magalie-services/src/main/resources/fixtures2.yaml 2013-06-07 10:14:02 UTC (rev 242) +++ trunk/magalie-services/src/main/resources/fixtures2.yaml 2013-06-07 14:16:49 UTC (rev 243) @@ -193,6 +193,7 @@ description: very big screws fixedLocationsFirst: false company: *franciaflex + directWithdrawAllowed: true article2: &article2 !article @@ -202,6 +203,7 @@ description: little buttons fixedLocationsFirst: false company: *franciaflex + directWithdrawAllowed: true article3: &article3 !article @@ -213,6 +215,7 @@ description: magic powder fixedLocationsFirst: false company: *franciaflex + directWithdrawAllowed: true article4: &article4 !article @@ -222,6 +225,7 @@ description: lutins malins fixedLocationsFirst: false company: *franciaflex + directWithdrawAllowed: true articles: - *article1 Modified: trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/SimpleWithdrawItemServiceTest.java =================================================================== --- trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/SimpleWithdrawItemServiceTest.java 2013-06-07 10:14:02 UTC (rev 242) +++ trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/SimpleWithdrawItemServiceTest.java 2013-06-07 14:16:49 UTC (rev 243) @@ -30,6 +30,7 @@ import com.franciaflex.magalie.persistence.entity.StoredArticle; import com.franciaflex.magalie.services.AbstractMagalieServiceTest; import com.franciaflex.magalie.services.SimpleWithdrawItemTask; +import com.franciaflex.magalie.services.exception.IllegalWithdrawException; import com.franciaflex.magalie.services.exception.InvalidMagalieBarcodeException; import com.google.common.base.Predicate; import com.google.common.collect.Iterables; @@ -68,7 +69,7 @@ } @Test - public void testSimpleWithdraw() throws InvalidMagalieBarcodeException { + public void testSimpleWithdraw() throws InvalidMagalieBarcodeException, IllegalWithdrawException { Article article = fixture("article2"); @@ -91,7 +92,7 @@ } @Test - public void testSimpleWithdrawWithoutDriverLicense() throws InvalidMagalieBarcodeException { + public void testSimpleWithdrawWithoutDriverLicense() throws InvalidMagalieBarcodeException, IllegalWithdrawException { magalieUser = fixture("corinne"); Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/SimpleWithdrawItemAction.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/SimpleWithdrawItemAction.java 2013-06-07 10:14:02 UTC (rev 242) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/SimpleWithdrawItemAction.java 2013-06-07 14:16:49 UTC (rev 243) @@ -28,6 +28,7 @@ import com.franciaflex.magalie.persistence.entity.MagalieUser; import com.franciaflex.magalie.persistence.entity.StoredArticle; import com.franciaflex.magalie.services.SimpleWithdrawItemTask; +import com.franciaflex.magalie.services.exception.IllegalWithdrawException; import com.franciaflex.magalie.services.exception.InvalidMagalieBarcodeException; import com.franciaflex.magalie.services.service.SimpleWithdrawItemService; import com.franciaflex.magalie.web.MagalieActionSupport; @@ -96,6 +97,12 @@ return ERROR; + } catch (IllegalWithdrawException e) { + + session.addMessage("Cet article ne peut pas être prélevé avec cette méthode"); + + return ERROR; + } if (simpleWithdrawItemTask.isDriverLicenseRequired()) { @@ -139,7 +146,7 @@ } @Override - public String execute() throws InvalidMagalieBarcodeException { + public String execute() throws InvalidMagalieBarcodeException, IllegalWithdrawException { MagalieUser magalieUser = session.getMagalieUser();
participants (1)
-
bleny@users.forge.codelutin.com