r312 - in trunk: magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao magalie-services/src/main/java/com/franciaflex/magalie/services/service magalie-web/src/main/java/com/franciaflex/magalie/web/action magalie-web/src/main/webapp/WEB-INF/content
Author: bleny Date: 2013-07-13 16:40:13 +0200 (Sat, 13 Jul 2013) New Revision: 312 Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revisions... Log: enable cancal link in withdraw item input, show error when article is not available Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/StorageMovementDao.java trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/StorageMovementJpaDao.java trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FulfilKanbanService.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/FulfilKanbanAction.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/WithdrawItemAction.java trunk/magalie-web/src/main/webapp/WEB-INF/content/withdraw-item-input.jsp Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/StorageMovementDao.java =================================================================== --- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/StorageMovementDao.java 2013-07-13 14:11:55 UTC (rev 311) +++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/StorageMovementDao.java 2013-07-13 14:40:13 UTC (rev 312) @@ -25,6 +25,7 @@ import com.franciaflex.magalie.persistence.entity.Article; import com.franciaflex.magalie.persistence.entity.Building; +import com.franciaflex.magalie.persistence.entity.MagalieUser; import com.franciaflex.magalie.persistence.entity.StorageMovement; import com.franciaflex.magalie.persistence.entity.StoredArticle; @@ -40,4 +41,6 @@ List<StorageMovement> findAllInReception(Building building); List<StorageMovement> findAllImpactingStoredArticle(StoredArticle storedArticle); + + List<StorageMovement> findAllUnconfirmed(MagalieUser magalieUser); } Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/StorageMovementJpaDao.java =================================================================== --- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/StorageMovementJpaDao.java 2013-07-13 14:11:55 UTC (rev 311) +++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/StorageMovementJpaDao.java 2013-07-13 14:40:13 UTC (rev 312) @@ -26,12 +26,15 @@ import com.franciaflex.magalie.persistence.Locations; import com.franciaflex.magalie.persistence.entity.Article; import com.franciaflex.magalie.persistence.entity.Building; +import com.franciaflex.magalie.persistence.entity.MagalieUser; import com.franciaflex.magalie.persistence.entity.StorageMovement; import com.franciaflex.magalie.persistence.entity.StoredArticle; +import com.google.common.collect.Maps; import javax.persistence.EntityManager; import javax.persistence.Query; import java.util.List; +import java.util.Map; public class StorageMovementJpaDao extends AbstractStorageMovementJpaDao { @@ -71,4 +74,13 @@ Query query = entityManager.createQuery("from StorageMovement sm order by sm.movementDate"); return query.getResultList(); } + + @Override + public List<StorageMovement> findAllUnconfirmed(MagalieUser magalieUser) { + Map<String, Object> storageMovementProperties = Maps.newHashMap(); + storageMovementProperties.put(StorageMovement.PROPERTY_MAGALIE_USER, magalieUser); + storageMovementProperties.put(StorageMovement.PROPERTY_CONFIRM_DATE, null); + List<StorageMovement> storageMovements = findAllByProperties(storageMovementProperties); + return storageMovements; + } } Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java 2013-07-13 14:11:55 UTC (rev 311) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java 2013-07-13 14:40:13 UTC (rev 312) @@ -49,7 +49,6 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import com.google.common.collect.Multimap; import com.google.common.collect.Multimaps; import com.google.common.collect.Ordering; @@ -274,31 +273,30 @@ } - public void cancelStorageMovement(StorageMovementConfirmation confirmation) { + public void cancelStorageMovements(MagalieUser magalieUser) { if (log.isDebugEnabled()) { - log.debug(" will make cancellation " + confirmation); + log.debug("will make cancellation for " + magalieUser); } - JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext(); + JpaMagaliePersistenceContext persistenceContext = + serviceContext.getPersistenceContext(); - StorageMovementJpaDao storageMovementDao = persistenceContext.getStorageMovementDao(); + StorageMovementJpaDao storageMovementDao = + persistenceContext.getStorageMovementDao(); - Set<StorageMovement> cancelledStorageMovements = Sets.newHashSet(); + List<StorageMovement> unconfirmedStorageMovements = + storageMovementDao.findAllUnconfirmed(magalieUser); - for (String storageMovementId : confirmation.getStorageMovementIds()) { + for (StorageMovement unconfirmedStorageMovement : unconfirmedStorageMovements) { - StorageMovement storageMovement = - storageMovementDao.findById(storageMovementId); + storageMovementDao.remove(unconfirmedStorageMovement); - cancelledStorageMovements.add(storageMovement); + } - storageMovementDao.remove(storageMovement); - - if (log.isDebugEnabled()) { - log.debug("cancelled storage movement " + storageMovement); - } - + if (log.isDebugEnabled()) { + log.debug("cancelled " + unconfirmedStorageMovements.size() + + " storage movements " + unconfirmedStorageMovements); } persistenceContext.commit(); @@ -338,14 +336,8 @@ StorageMovementJpaDao storageMovementDao = persistenceContext.getStorageMovementDao(); - Map<String, Object> storageMovementProperties = Maps.newHashMap(); - - storageMovementProperties.put(StorageMovement.PROPERTY_MAGALIE_USER, magalieUser); - storageMovementProperties.put(StorageMovement.PROPERTY_ARTICLE, article); - storageMovementProperties.put(StorageMovement.PROPERTY_CONFIRM_DATE, null); - List<StorageMovement> storageMovements = - storageMovementDao.findAllByProperties(storageMovementProperties); + storageMovementDao.findAllUnconfirmed(magalieUser); if (log.isDebugEnabled()) { log.debug("found " + storageMovements.size() + " movements already done " + storageMovements); Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FulfilKanbanService.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FulfilKanbanService.java 2013-07-13 14:11:55 UTC (rev 311) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FulfilKanbanService.java 2013-07-13 14:40:13 UTC (rev 312) @@ -32,6 +32,7 @@ import com.franciaflex.magalie.persistence.entity.Company; import com.franciaflex.magalie.persistence.entity.Kanban; import com.franciaflex.magalie.persistence.entity.Location; +import com.franciaflex.magalie.persistence.entity.MagalieUser; import com.franciaflex.magalie.persistence.entity.Warehouse; import com.franciaflex.magalie.services.MagalieService; import com.franciaflex.magalie.services.MagalieServiceContext; @@ -118,4 +119,17 @@ return destinationLocation; } + + public boolean isArticleUnavailable(Building building, MagalieUser magalieUser, String articleId) { + + ArticleStorageService articleStorageService = + serviceContext.newService(ArticleStorageService.class); + + RealTimeStorageMovementTask realTimeStorageMovementTask = + articleStorageService.getRealTimeStorageMovementTask(building, magalieUser, articleId); + + return realTimeStorageMovementTask.isArticleUnavailable(); + + } + } Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/FulfilKanbanAction.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/FulfilKanbanAction.java 2013-07-13 14:11:55 UTC (rev 311) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/FulfilKanbanAction.java 2013-07-13 14:40:13 UTC (rev 312) @@ -27,6 +27,7 @@ import com.franciaflex.magalie.persistence.entity.Building; import com.franciaflex.magalie.persistence.entity.Company; import com.franciaflex.magalie.persistence.entity.Location; +import com.franciaflex.magalie.persistence.entity.MagalieUser; import com.franciaflex.magalie.persistence.entity.Warehouse; import com.franciaflex.magalie.services.exception.ArticleNotAvailableForKanbanException; import com.franciaflex.magalie.services.exception.InvalidMagalieBarcodeException; @@ -160,6 +161,18 @@ } + Building building = session.getBuilding(); + + MagalieUser magalieUser = session.getMagalieUser(); + + if (service.isArticleUnavailable(building, magalieUser, article.getId())) { + + addActionError("Article sans stock"); + + return INPUT; + + } + try { quantity = service.getDefinedQuantity(article, destinationWarehouse); Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/WithdrawItemAction.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/WithdrawItemAction.java 2013-07-13 14:11:55 UTC (rev 311) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/WithdrawItemAction.java 2013-07-13 14:40:13 UTC (rev 312) @@ -210,8 +210,10 @@ public String cancel() { - articleStorageService.cancelStorageMovement(confirmation); + MagalieUser magalieUser = session.getMagalieUser(); + articleStorageService.cancelStorageMovements(magalieUser); + String resultName = session.getActivity().name(); return resultName; Modified: trunk/magalie-web/src/main/webapp/WEB-INF/content/withdraw-item-input.jsp =================================================================== --- trunk/magalie-web/src/main/webapp/WEB-INF/content/withdraw-item-input.jsp 2013-07-13 14:11:55 UTC (rev 311) +++ trunk/magalie-web/src/main/webapp/WEB-INF/content/withdraw-item-input.jsp 2013-07-13 14:40:13 UTC (rev 312) @@ -60,9 +60,7 @@ <s:hidden name="confirmation" /> <div class="btn-group"> - <s:url action="withdraw-item!cancel" id="cancelUrl" > - <%--s:param name="storageMovementOrderId" value="%{storageMovementOrderId}" /--%> - </s:url> + <s:url action="withdraw-item!cancel" id="cancelUrl" /> <s:a href="%{cancelUrl}" cssClass="btn btn-mini" id="cancelLink" >Abandon (Esc)</s:a> <div style="display: none"> <input type="button" id="reportError" value="Ano. (F5)" class="btn btn-danger btn-mini" />
participants (1)
-
bleny@users.forge.codelutin.com