r185 - in trunk: magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/jpa 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: Bavencoff Date: 2013-05-23 12:39:57 +0200 (Thu, 23 May 2013) New Revision: 185 Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revisions... Log: fixes #2438 : resume movement order Added: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/OrderResumeService.java Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/StorageMovementOrderDao.java trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/jpa/StorageMovementOrderJpaDao.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/ChooseActivityAction.java trunk/magalie-web/src/main/webapp/WEB-INF/content/choose-activity.jsp Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/StorageMovementOrderDao.java =================================================================== --- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/StorageMovementOrderDao.java 2013-05-23 07:23:35 UTC (rev 184) +++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/StorageMovementOrderDao.java 2013-05-23 10:39:57 UTC (rev 185) @@ -23,8 +23,14 @@ * #L% */ +import com.franciaflex.magalie.persistence.entity.Building; +import com.franciaflex.magalie.persistence.entity.MagalieUser; import com.franciaflex.magalie.persistence.entity.StorageMovementOrder; +import java.util.List; + public interface StorageMovementOrderDao extends Dao<StorageMovementOrder> { + public List<StorageMovementOrder> findNotConfirmedByUser(MagalieUser magalieUser, Building building); + } Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/jpa/StorageMovementOrderJpaDao.java =================================================================== --- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/jpa/StorageMovementOrderJpaDao.java 2013-05-23 07:23:35 UTC (rev 184) +++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/jpa/StorageMovementOrderJpaDao.java 2013-05-23 10:39:57 UTC (rev 185) @@ -24,9 +24,13 @@ */ import com.franciaflex.magalie.persistence.dao.StorageMovementOrderDao; +import com.franciaflex.magalie.persistence.entity.Building; +import com.franciaflex.magalie.persistence.entity.MagalieUser; import com.franciaflex.magalie.persistence.entity.StorageMovementOrder; import javax.persistence.EntityManager; +import javax.persistence.Query; +import java.util.List; public class StorageMovementOrderJpaDao extends AbstractJpaDao<StorageMovementOrder> implements StorageMovementOrderDao { @@ -39,4 +43,17 @@ return StorageMovementOrder.class; } + @Override + public List<StorageMovementOrder> findNotConfirmedByUser(MagalieUser magalieUser, Building building) { + Query query = entityManager.createQuery( + " select distinct smo" + + " from StorageMovementOrder smo" + + " inner join smo.storageMovements as sm" + + " where sm.magalieUser = :magalieUser" + + " and sm.originLocation.warehouse.building = :building" + + " and sm.confirmDate is null" ); + query.setParameter("magalieUser", magalieUser); + query.setParameter("building", building); + return query.getResultList(); + } } Added: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/OrderResumeService.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/OrderResumeService.java (rev 0) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/OrderResumeService.java 2013-05-23 10:39:57 UTC (rev 185) @@ -0,0 +1,61 @@ +package com.franciaflex.magalie.services.service; + +/* + * #%L + * MagaLiE :: Services + * $Id:$ + * $HeadURL:$ + * %% + * Copyright (C) 2013 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ + + +import com.franciaflex.magalie.persistence.MagaliePersistenceContext; +import com.franciaflex.magalie.persistence.dao.StorageMovementOrderDao; +import com.franciaflex.magalie.persistence.entity.Building; +import com.franciaflex.magalie.persistence.entity.MagalieUser; +import com.franciaflex.magalie.persistence.entity.StorageMovementOrder; +import com.franciaflex.magalie.services.MagalieService; +import com.franciaflex.magalie.services.MagalieServiceContext; + +import java.util.List; + +public class OrderResumeService implements MagalieService { + + protected MagalieServiceContext serviceContext; + + @Override + public void setServiceContext(MagalieServiceContext serviceContext) { + this.serviceContext = serviceContext; + } + + public StorageMovementOrder findMovementOrderResume(MagalieUser magalieUser, Building building) { + + MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext(); + + StorageMovementOrderDao storageMovementOrderDao = persistenceContext.getStorageMovementOrderDao(); + + List<StorageMovementOrder> notConfirmedByUser = storageMovementOrderDao.findNotConfirmedByUser(magalieUser, building); + + if (notConfirmedByUser.isEmpty()) { + return null; + } else { + return notConfirmedByUser.get(0); + } + } + +} Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/ChooseActivityAction.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/ChooseActivityAction.java 2013-05-23 07:23:35 UTC (rev 184) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/ChooseActivityAction.java 2013-05-23 10:39:57 UTC (rev 185) @@ -25,6 +25,8 @@ import com.franciaflex.magalie.persistence.entity.Building; import com.franciaflex.magalie.persistence.entity.MagalieUser; +import com.franciaflex.magalie.persistence.entity.StorageMovementOrder; +import com.franciaflex.magalie.services.service.OrderResumeService; import com.franciaflex.magalie.web.MagalieActionSupport; import com.franciaflex.magalie.web.MagalieSession; @@ -36,10 +38,18 @@ protected Building building; + protected OrderResumeService service; + + protected StorageMovementOrder movementOrderResume; + public void setSession(MagalieSession session) { this.session = session; } + public void setService(OrderResumeService service) { + this.service = service; + } + @Override public String execute() throws Exception { @@ -47,6 +57,8 @@ building = session.getBuilding(); + movementOrderResume = service.findMovementOrderResume(magalieUser, building); + return SUCCESS; } @@ -58,4 +70,13 @@ public Building getBuilding() { return building; } + + public StorageMovementOrder getMovementOrderResume() { + return movementOrderResume; + } + + public OrderResumeService getService() { + return service; + } + } Modified: trunk/magalie-web/src/main/webapp/WEB-INF/content/choose-activity.jsp =================================================================== --- trunk/magalie-web/src/main/webapp/WEB-INF/content/choose-activity.jsp 2013-05-23 07:23:35 UTC (rev 184) +++ trunk/magalie-web/src/main/webapp/WEB-INF/content/choose-activity.jsp 2013-05-23 10:39:57 UTC (rev 185) @@ -29,6 +29,12 @@ <s:url namespace="/" action="fulfil-kanban!input" id="fulfilKanbanUrl"/> <s:url namespace="/" action="deliver-requested-article!input" id="deliverRequestedArticleUrl"/> <s:url namespace="/" action="prepare-article-reception!input" id="prepareArticleReceptionUrl"/> +<s:if test="movementOrderResume" > + <s:url namespace="/" action="withdraw-item!input" id="movementOrderResumeUrl"> + <s:param name="storageMovementOrderId" value="%{movementOrderResume.id}" /> + </s:url> +</s:if> + <s:url namespace="/" action="logout" id="logoutUrl"/> <head> @@ -37,6 +43,9 @@ bindKey('1', function(){ redirectTo($('#fulfilKanbanlink'));}); bindKey('2', function(){ redirectTo($('#deliverRequestedArticlelink'));}); bindKey('3', function(){ redirectTo($('#prepareArticleReceptionlink'));}); + <s:if test="movementOrderResume" > + bindKey('4', function(){ redirectTo($('#movementOrderResumelink'));}); + </s:if> bindKey('Esc', function(){ redirectTo($('#logoutlink'));}); }); @@ -56,4 +65,7 @@ <s:a href="%{fulfilKanbanUrl}" cssClass="btn btn-block" id="fulfilKanbanlink">Traiter kanbans (1)</s:a> <s:a href="%{deliverRequestedArticleUrl}" cssClass="btn btn-block" id="deliverRequestedArticlelink">Traiter listes à servir (2)</s:a> <s:a href="%{prepareArticleReceptionUrl}" cssClass="btn btn-block" id="prepareArticleReceptionlink" >Traiter les réceptions fournisseurs (3)</s:a> +<s:if test="movementOrderResume" > + <s:a href="%{movementOrderResumeUrl}" cssClass="btn btn-block" id="movementOrderResumelink" >Reprendre l'ordre de mouvement (4)</s:a> +</s:if> <s:a href="%{logoutUrl}" cssClass="btn btn-block" id="logoutlink" >Déconnexion (Esc)</s:a>
participants (1)
-
Bavencoff@users.forge.codelutin.com