Author: bleny Date: 2013-05-21 12:28:31 +0200 (Tue, 21 May 2013) New Revision: 170 Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revisions... Log: deal with reception of articles without suppliers Added: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/SuppliersToReceive.java Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReceptionService.java trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/ReceptionServiceTest.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/PrepareArticleReceptionAction.java trunk/magalie-web/src/main/webapp/WEB-INF/content/prepare-article-reception-input.jsp Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReceptionService.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReceptionService.java 2013-05-21 09:16:26 UTC (rev 169) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReceptionService.java 2013-05-21 10:28:31 UTC (rev 170) @@ -60,7 +60,7 @@ this.serviceContext = serviceContext; } - public List<Supplier> getReceivedSuppliers(Building building) { + public SuppliersToReceive getReceivedSuppliers(Building building) { List<StoredArticle> allReceivedArticles = getReceivedArticles(building, null); @@ -72,8 +72,10 @@ ) ); - return Lists.newArrayList(suppliers); + SuppliersToReceive suppliersToReceive = new SuppliersToReceive(suppliers); + return suppliersToReceive; + } public List<StoredArticle> getReceivedArticles(Building building, String supplierId) { Added: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/SuppliersToReceive.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/SuppliersToReceive.java (rev 0) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/SuppliersToReceive.java 2013-05-21 10:28:31 UTC (rev 170) @@ -0,0 +1,39 @@ +package com.franciaflex.magalie.services.service; + +import com.franciaflex.magalie.persistence.entity.Supplier; +import com.google.common.base.Predicates; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; + +import java.util.List; + +public class SuppliersToReceive { + + protected Iterable<Supplier> suppliers; + + protected boolean articlesWithoutSuppliers; + + protected boolean somethingToReceive; + + public SuppliersToReceive(Iterable<Supplier> suppliers) { + + somethingToReceive = ! Iterables.isEmpty(suppliers); + + articlesWithoutSuppliers = Iterables.contains(suppliers, null); + + this.suppliers = Iterables.filter(suppliers, Predicates.notNull()); + + } + + public boolean isSomethingToReceive() { + return somethingToReceive; + } + + public List<Supplier> getSuppliers() { + return Lists.newArrayList(suppliers); + } + + public boolean isArticlesWithoutSuppliers() { + return articlesWithoutSuppliers; + } +} Modified: trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/ReceptionServiceTest.java =================================================================== --- trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/ReceptionServiceTest.java 2013-05-21 09:16:26 UTC (rev 169) +++ trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/ReceptionServiceTest.java 2013-05-21 10:28:31 UTC (rev 170) @@ -39,7 +39,6 @@ import org.apache.commons.logging.LogFactory; import org.junit.Assert; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import java.text.ParseException; @@ -80,15 +79,20 @@ } @Test - @Ignore("to be fixed") public void testGetSuppliers() { - List<Supplier> suppliers = service.getReceivedSuppliers(building); + SuppliersToReceive receivedSuppliers = service.getReceivedSuppliers(building); + Assert.assertTrue(receivedSuppliers.isSomethingToReceive()); + + List<Supplier> suppliers = receivedSuppliers.getSuppliers(); + Assert.assertEquals(1, suppliers.size()); Assert.assertEquals(supplier, suppliers.get(0)); + Assert.assertTrue(receivedSuppliers.isArticlesWithoutSuppliers()); + } @Test @@ -176,7 +180,6 @@ } @Test - @Ignore("to be fixed") public void testWeCannotReceiveTheSameItemMultipleTime() throws Exception { testConfirmReception(); @@ -186,9 +189,13 @@ Assert.assertTrue(receivedArticles.isEmpty()); - List<Supplier> receivedSuppliers = service.getReceivedSuppliers(building); + SuppliersToReceive receivedSuppliers = service.getReceivedSuppliers(building); - Assert.assertTrue(receivedSuppliers.isEmpty()); + List<Supplier> suppliers = receivedSuppliers.getSuppliers(); + Assert.assertTrue(receivedSuppliers.isSomethingToReceive()); + + Assert.assertTrue(suppliers.isEmpty()); + } } Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/PrepareArticleReceptionAction.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/PrepareArticleReceptionAction.java 2013-05-21 09:16:26 UTC (rev 169) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/PrepareArticleReceptionAction.java 2013-05-21 10:28:31 UTC (rev 170) @@ -25,8 +25,8 @@ import com.franciaflex.magalie.persistence.entity.Building; import com.franciaflex.magalie.persistence.entity.StoredArticle; -import com.franciaflex.magalie.persistence.entity.Supplier; import com.franciaflex.magalie.services.service.ReceptionService; +import com.franciaflex.magalie.services.service.SuppliersToReceive; import com.franciaflex.magalie.web.MagalieActionSupport; import com.franciaflex.magalie.web.MagalieSession; @@ -40,10 +40,10 @@ protected MagalieSession session; - protected List<Supplier> receivedSuppliers; - protected List<StoredArticle> receivedArticles; + protected SuppliersToReceive suppliersToReceive; + public void setSupplierId(String supplierId) { this.supplierId = supplierId; } @@ -61,16 +61,18 @@ Building building = session.getBuilding(); - receivedSuppliers = service.getReceivedSuppliers(building); + suppliersToReceive = service.getReceivedSuppliers(building); + if ( ! suppliersToReceive.isSomethingToReceive()) { + + addActionMessage("Il n'y a aucun article en attente"); + + } + return INPUT; } - public List<Supplier> getReceivedSuppliers() { - return receivedSuppliers; - } - @Override public String execute() { @@ -78,10 +80,20 @@ receivedArticles = service.getReceivedArticles(building, supplierId); + if (receivedArticles.isEmpty()) { + + addActionMessage("Il n'y a aucun article en attente"); + + } + return SUCCESS; } + public SuppliersToReceive getSuppliersToReceive() { + return suppliersToReceive; + } + public List<StoredArticle> getReceivedArticles() { return receivedArticles; } Modified: trunk/magalie-web/src/main/webapp/WEB-INF/content/prepare-article-reception-input.jsp =================================================================== --- trunk/magalie-web/src/main/webapp/WEB-INF/content/prepare-article-reception-input.jsp 2013-05-21 09:16:26 UTC (rev 169) +++ trunk/magalie-web/src/main/webapp/WEB-INF/content/prepare-article-reception-input.jsp 2013-05-21 10:28:31 UTC (rev 170) @@ -23,22 +23,24 @@ <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> -<ul> - <s:iterator value="receivedSuppliers"> +<s:if test="suppliersToReceive.somethingToReceive"> + <ul> + <s:iterator value="suppliersToReceive.suppliers"> + <li> + <s:url namespace="/" action="prepare-article-reception" id="prepareArticleReceptionUrl"> + <s:param name="supplierId" value="%{id}" /> + </s:url> + <s:a href="%{prepareArticleReceptionUrl}"><s:property value="name" /></s:a> + </li> + </s:iterator> <li> - <s:url namespace="/" action="prepare-article-reception" id="prepareArticleReceptionUrl"> - <s:param name="supplierId" value="%{id}" /> - </s:url> - <s:a href="%{prepareArticleReceptionUrl}"><s:property value="name" /></s:a> + <s:url namespace="/" action="prepare-article-reception" id="prepareArticleReceptionUrl" /> + <s:a href="%{prepareArticleReceptionUrl}"> + Tous les fournisseurs + </s:a> </li> - </s:iterator> - <li> - <s:url namespace="/" action="prepare-article-reception" id="prepareArticleReceptionUrl" /> - <s:a href="%{prepareArticleReceptionUrl}"> - Tous les fournisseurs - </s:a> - </li> -</ul> + </ul> +</s:if> <s:url namespace="/" action="choose-activity" id="chooseActivityUrl"/> <s:a href="%{chooseActivityUrl}" cssClass="btn">Changer d'activité</s:a>