Author: bleny Date: 2013-03-25 16:47:59 +0100 (Mon, 25 Mar 2013) New Revision: 38 Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revisions... Log: refs #2204: show storage movements Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/StorageMovements.java trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/dao/StorageMovementDao.java trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/dao/jpa/JpaStorageMovementDao.java trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/MagalieReport.java trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/ReportService.java trunk/magalie-web/src/main/webapp/WEB-INF/content/report.jsp Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/StorageMovements.java =================================================================== --- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/StorageMovements.java 2013-03-25 15:13:20 UTC (rev 37) +++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/StorageMovements.java 2013-03-25 15:47:59 UTC (rev 38) @@ -3,6 +3,8 @@ import com.franciaflex.magalie.entity.Article; import com.franciaflex.magalie.entity.StorageMovement; import com.google.common.base.Function; +import com.google.common.base.Predicate; +import com.google.common.base.Predicates; public class StorageMovements { @@ -14,7 +16,23 @@ } } + protected static class StorageMovementIsConfirmedPredicate implements Predicate<StorageMovement> { + + @Override + public boolean apply(StorageMovement storageMovement) { + return storageMovement.isConfirmed(); + } + } + public static Function<StorageMovement, Article> getArticleFunction() { return new GetArticleFunction(); } + + public static Predicate<StorageMovement> storageMovementIsConfirmed() { + return new StorageMovementIsConfirmedPredicate(); + } + + public static Predicate<StorageMovement> storageMovementIsNotConfirmed() { + return Predicates.not(storageMovementIsConfirmed()); + } } Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/dao/StorageMovementDao.java =================================================================== --- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/dao/StorageMovementDao.java 2013-03-25 15:13:20 UTC (rev 37) +++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/dao/StorageMovementDao.java 2013-03-25 15:47:59 UTC (rev 38) @@ -12,4 +12,6 @@ List<StorageMovement> findAllByArticle(Article article); + List<StorageMovement> findAll(); + } Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/dao/jpa/JpaStorageMovementDao.java =================================================================== --- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/dao/jpa/JpaStorageMovementDao.java 2013-03-25 15:13:20 UTC (rev 37) +++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/dao/jpa/JpaStorageMovementDao.java 2013-03-25 15:47:59 UTC (rev 38) @@ -26,4 +26,9 @@ return query.getResultList(); } + @Override + public List<StorageMovement> findAll() { + Query query = entityManager.createQuery("from StorageMovement sm order by sm.orderDate"); + return query.getResultList(); + } } Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/MagalieReport.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/MagalieReport.java 2013-03-25 15:13:20 UTC (rev 37) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/MagalieReport.java 2013-03-25 15:47:59 UTC (rev 38) @@ -1,6 +1,10 @@ package com.franciaflex.magalie.services; +import com.franciaflex.magalie.StorageMovements; import com.franciaflex.magalie.entity.MagalieUser; +import com.franciaflex.magalie.entity.StorageMovement; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Iterables; import java.util.Date; import java.util.List; @@ -8,12 +12,19 @@ public class MagalieReport { protected Date reportDate; - private List<MagalieUser> allMagalieUsers; + protected List<MagalieUser> allMagalieUsers; + + protected List<StorageMovement> allStorageMovements; + public void setReportDate(Date reportDate) { this.reportDate = reportDate; } + public Date getReportDate() { + return reportDate; + } + public void setAllMagalieUsers(List<MagalieUser> allMagalieUsers) { this.allMagalieUsers = allMagalieUsers; } @@ -21,4 +32,30 @@ public List<MagalieUser> getAllMagalieUsers() { return allMagalieUsers; } + + public void setAllStorageMovements(List<StorageMovement> allStorageMovements) { + this.allStorageMovements = allStorageMovements; + } + + public List<StorageMovement> getConfirmedStorageMovements() { + ImmutableList<StorageMovement> confirmedStorageMovements = + ImmutableList.copyOf( + Iterables.filter( + allStorageMovements, + StorageMovements.storageMovementIsConfirmed() + ) + ); + return confirmedStorageMovements; + } + + public List<StorageMovement> getNotConfirmedStorageMovements() { + ImmutableList<StorageMovement> confirmedStorageMovements = + ImmutableList.copyOf( + Iterables.filter( + allStorageMovements, + StorageMovements.storageMovementIsNotConfirmed() + ) + ); + return confirmedStorageMovements; + } } Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/ReportService.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/ReportService.java 2013-03-25 15:13:20 UTC (rev 37) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/ReportService.java 2013-03-25 15:47:59 UTC (rev 38) @@ -1,6 +1,8 @@ package com.franciaflex.magalie.services; +import com.franciaflex.magalie.dao.StorageMovementDao; import com.franciaflex.magalie.entity.MagalieUser; +import com.franciaflex.magalie.entity.StorageMovement; import java.util.Date; import java.util.List; @@ -28,6 +30,12 @@ magalieReport.setAllMagalieUsers(allMagalieUsers); + StorageMovementDao storageMovementDao = serviceContext.getStorageMovementDao(); + + List<StorageMovement> allStorageMovements = storageMovementDao.findAll(); + + magalieReport.setAllStorageMovements(allStorageMovements); + return magalieReport; } Modified: trunk/magalie-web/src/main/webapp/WEB-INF/content/report.jsp =================================================================== --- trunk/magalie-web/src/main/webapp/WEB-INF/content/report.jsp 2013-03-25 15:13:20 UTC (rev 37) +++ trunk/magalie-web/src/main/webapp/WEB-INF/content/report.jsp 2013-03-25 15:47:59 UTC (rev 38) @@ -7,7 +7,137 @@ <h1>Rapport MagaLiE</h1> +<p> + <s:property value="report.reportDate" /> +</p> + <section> + <h2>Mouvements de stocks prévus (non confirmés)</h2> + + <table class="table"> + <thead> + <tr> + <th> + Id + </th> + <th> + Magasin + </th> + <th> + Emplacement + </th> + <th> + Article + </th> + <th> + Quantité + </th> + <th> + Utilisateur + </th> + <th> + Date ordre + </th> + </tr> + </thead> + + <tbody> + <s:iterator value="report.notConfirmedStorageMovements"> + <tr> + <td> + <s:property value="id" /> + </td> + <td> + <s:property value="site.storeCode" /> + </td> + <td> + <s:property value="site.locationCode" /> + </td> + <td> + <s:property value="article.code" /> + </td> + <td> + <s:property value="quantity" /> <s:property value="article.unit" /> + </td> + <td> + <a href="#<s:property value="magalieUser.id" />"><s:property value="magalieUser.login" /></a> + </td> + <td> + <s:property value="orderDate" /> + </td> + </tr> + </s:iterator> + </tbody> + </table> +</section> + +<section> + <h2>Mouvements de stocks confirmés</h2> + + <table class="table"> + <thead> + <tr> + <th> + Id + </th> + <th> + Magasin + </th> + <th> + Emplacement + </th> + <th> + Article + </th> + <th> + Quantité + </th> + <th> + Utilisateur + </th> + <th> + Date ordre + </th> + <th> + Date confirmation + </th> + </tr> + </thead> + + <tbody> + <s:iterator value="report.confirmedStorageMovements"> + <tr> + <td> + <s:property value="id" /> + </td> + <td> + <s:property value="site.storeCode" /> + </td> + <td> + <s:property value="site.locationCode" /> + </td> + <td> + <s:property value="article.code" /> + </td> + <td> + <s:property value="quantity" /> <s:property value="article.unit" /> + </td> + <td> + <a href="#<s:property value="magalieUser.id" />"><s:property value="magalieUser.login" /></a> + </td> + <td> + <s:property value="orderDate" /> + </td> + <td> + <s:property value="confirmDate" /> + </td> + </tr> + </s:iterator> + </tbody> + </table> +</section> + +<section> <h2>Utilisateurs connus</h2> <table class="table"> @@ -29,10 +159,10 @@ </thead> <tbody> - <s:iterator value="report.allMagalieUsers" var="magalieUser"> + <s:iterator value="report.allMagalieUsers"> <tr> <td> - <s:property value="id" /> + <a name="<s:property value="id" />"><s:property value="id" /></a> </td> <td> <s:property value="login" />