r316 - in trunk: magalie-services/src/main/java/com/franciaflex/magalie/services/service magalie-services/src/test/java/com/franciaflex/magalie/services/service magalie-web/src/main/java/com/franciaflex/magalie/web/action magalie-web/src/main/webapp/WEB-INF/content magalie-web/src/main/webapp/js
Author: bleny Date: 2013-07-22 16:30:01 +0200 (Mon, 22 Jul 2013) New Revision: 316 Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revisions... Log: fixes the use of F4 and F5 in withdraw-item-input 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/FulfilKanbanService.java trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/FulfilKanbanServiceTest.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/FulfilKanbanAction.java trunk/magalie-web/src/main/webapp/WEB-INF/content/report.jsp trunk/magalie-web/src/main/webapp/js/withdraw-item-input.js 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 15:17:38 UTC (rev 315) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java 2013-07-22 14:30:01 UTC (rev 316) @@ -114,6 +114,8 @@ } + persistenceContext.commit(); + } protected Set<StoredArticle> sortStoredArticlesByPriority(Iterable<StoredArticle> storedArticles) { 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 15:17:38 UTC (rev 315) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FulfilKanbanService.java 2013-07-22 14:30:01 UTC (rev 316) @@ -120,7 +120,7 @@ } - public boolean isArticleUnavailable(Building building, MagalieUser magalieUser, String articleId) { + public RealTimeStorageMovementTask getRealTimeStorageMovementTask(Building building, MagalieUser magalieUser, String articleId) { ArticleStorageService articleStorageService = serviceContext.newService(ArticleStorageService.class); @@ -128,7 +128,7 @@ RealTimeStorageMovementTask realTimeStorageMovementTask = articleStorageService.getRealTimeStorageMovementTask(building, magalieUser, articleId); - return realTimeStorageMovementTask.isArticleUnavailable(); + return realTimeStorageMovementTask; } Modified: trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/FulfilKanbanServiceTest.java =================================================================== --- trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/FulfilKanbanServiceTest.java 2013-07-13 15:17:38 UTC (rev 315) +++ trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/FulfilKanbanServiceTest.java 2013-07-22 14:30:01 UTC (rev 316) @@ -1,6 +1,10 @@ package com.franciaflex.magalie.services.service; +import com.franciaflex.magalie.persistence.dao.UnavailableArticleJpaDao; 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.UnavailableArticle; import com.franciaflex.magalie.persistence.entity.Warehouse; import com.franciaflex.magalie.services.AbstractMagalieServiceTest; import com.franciaflex.magalie.services.exception.ArticleNotAvailableForKanbanException; @@ -10,12 +14,20 @@ import org.junit.Before; import org.junit.Test; +import javax.persistence.EntityManager; +import java.util.Date; +import java.util.List; + public class FulfilKanbanServiceTest extends AbstractMagalieServiceTest { private static final Log log = LogFactory.getLog(FulfilKanbanServiceTest.class); protected FulfilKanbanService service; + protected Building building; + + protected MagalieUser magalieUser; + protected Warehouse warehouse; @Before @@ -25,6 +37,12 @@ warehouse = fixture("B01"); + building = fixture("B1"); + + magalieUser = fixture("bruno"); + + serviceContext.setDate(new Date(1374496598822l)); + service = newService(FulfilKanbanService.class); } @@ -74,4 +92,27 @@ } + @Test + public void testIsArticleUnavailable() { + + Article articleWithNoStock = fixture("article4"); + + boolean articleUnavailable = + service.getRealTimeStorageMovementTask(building, magalieUser, articleWithNoStock.getId()); + + Assert.assertTrue(articleUnavailable); + + EntityManager entityManager = getJpaEntityManagerRule().newEntityManager(); + + UnavailableArticleJpaDao unavailableArticleJpaDao = + new UnavailableArticleJpaDao(entityManager); + + List<UnavailableArticle> allUnavailableArticles = unavailableArticleJpaDao.findAll(); + + Assert.assertEquals(1, allUnavailableArticles.size()); + + Assert.assertEquals(articleWithNoStock, allUnavailableArticles.get(0).getArticle()); + + } + } 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 15:17:38 UTC (rev 315) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/FulfilKanbanAction.java 2013-07-22 14:30:01 UTC (rev 316) @@ -32,6 +32,7 @@ import com.franciaflex.magalie.services.exception.ArticleNotAvailableForKanbanException; import com.franciaflex.magalie.services.exception.InvalidMagalieBarcodeException; import com.franciaflex.magalie.services.service.FulfilKanbanService; +import com.franciaflex.magalie.services.service.RealTimeStorageMovementTask; import com.franciaflex.magalie.web.Activity; import com.franciaflex.magalie.web.MagalieActionSupport; import com.franciaflex.magalie.web.MagalieSession; @@ -165,14 +166,26 @@ MagalieUser magalieUser = session.getMagalieUser(); - if (service.isArticleUnavailable(building, magalieUser, article.getId())) { + // just to check that user will be able to get something + RealTimeStorageMovementTask realTimeStorageMovementTask = + service.getRealTimeStorageMovementTask(building, magalieUser, article.getId()); + if (realTimeStorageMovementTask.isArticleUnavailable()) { + addActionError("Article sans stock"); return INPUT; } + if (realTimeStorageMovementTask.isDriverLicenseRequired()) { + + addActionError("Article inaccessible sans permis"); + + return INPUT; + + } + try { quantity = service.getDefinedQuantity(article, destinationWarehouse); Modified: trunk/magalie-web/src/main/webapp/WEB-INF/content/report.jsp =================================================================== --- trunk/magalie-web/src/main/webapp/WEB-INF/content/report.jsp 2013-07-13 15:17:38 UTC (rev 315) +++ trunk/magalie-web/src/main/webapp/WEB-INF/content/report.jsp 2013-07-22 14:30:01 UTC (rev 316) @@ -52,6 +52,9 @@ Article </th> <th> + Quantité réelle + </th> + <th> Utilisateur </th> <th> @@ -84,6 +87,9 @@ <s:property value="article.code" /> </td> <td> + <s:property value="actualQuantity" /> <s:property value="article.unit" /> + </td> + <td> <a href="#<s:property value="magalieUser.id" />"><s:property value="magalieUser.login" /></a> </td> <td> Modified: trunk/magalie-web/src/main/webapp/js/withdraw-item-input.js =================================================================== --- trunk/magalie-web/src/main/webapp/js/withdraw-item-input.js 2013-07-13 15:17:38 UTC (rev 315) +++ trunk/magalie-web/src/main/webapp/js/withdraw-item-input.js 2013-07-22 14:30:01 UTC (rev 316) @@ -301,15 +301,54 @@ onConfirm : function() { - // push model as Json in a hidden field - $('#withdraw-item_confirmation').val(JSON.stringify(model.getConfirmation())); + var barcode = $('#withdraw-item_locationBarcode').val(); - model.forceConfirm = true; + if (barcode.length > 0) { - $('#withdraw-item').submit(); + controller.onNext(); + } + + var confirmation = model.getConfirmation(); + + var confirmMessage = 'Confirmer ' + confirmation.storageMovementIds.length + ' mouvements ?'; + + if (confirm(confirmMessage)) { + + // push model as Json in a hidden field + $('#withdraw-item_confirmation').val(JSON.stringify(confirmation)); + + model.forceConfirm = true; + + $('#withdraw-item').submit(); + + } + }, + onCancel : function(e) { + + var confirmation = model.getConfirmation(); + + var confirmMessage = 'Annuler ' + confirmation.storageMovementIds.length + ' mouvements ?'; + + var redirect = confirmation.storageMovementIds.length == 0 + || confirm(confirmMessage); + + if (redirect) { + + redirectTo($('#cancelLink')); + + } else { + + if (e) { + e.preventDefault(); + } + + } + + }, + onSubmit : function(e) { if (model.forceConfirm) { @@ -331,9 +370,11 @@ $('#reportCancel').click(controller.onCancel); $('#withdraw-item_next').click(controller.onNext); $('#confirm').click(controller.onConfirm); + $('#cancelLink').click(controller.onCancel); + bindKey('F4', controller.onConfirm); bindKey('F5', controller.onReportError); - bindKey('Esc', function(){ redirectTo($('#cancelLink'));}); + bindKey('Esc', controller.onCancel); controller.onShowFirstLocation(); view.refresh(); });
participants (1)
-
bleny@users.forge.codelutin.com