Franciaflex-magalie-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- 438 discussions
r77 - in trunk/magalie-services/src/main/java/com/franciaflex/magalie/services: . service
by bleny@users.forge.codelutin.com 05 Apr '13
by bleny@users.forge.codelutin.com 05 Apr '13
05 Apr '13
Author: bleny
Date: 2013-04-05 15:22:46 +0200 (Fri, 05 Apr 2013)
New Revision: 77
Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revision…
Log:
remove delegate code in service context
Modified:
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/DefaultMagalieServiceContext.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/MagalieServiceContext.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/FixturesService.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FulfilKanbanService.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/MagalieBarcodeService.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/MagalieUsersService.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReportService.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/SiteErrorsService.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/StoreService.java
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/DefaultMagalieServiceContext.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/DefaultMagalieServiceContext.java 2013-04-05 13:15:07 UTC (rev 76)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/DefaultMagalieServiceContext.java 2013-04-05 13:22:46 UTC (rev 77)
@@ -4,15 +4,6 @@
import com.franciaflex.magalie.MagalieTechnicalException;
import com.franciaflex.magalie.persistence.JpaMagaliePersistenceContext;
import com.franciaflex.magalie.persistence.MagaliePersistenceContext;
-import com.franciaflex.magalie.persistence.dao.ArticleDao;
-import com.franciaflex.magalie.persistence.dao.DeliveredRequestedArticleDao;
-import com.franciaflex.magalie.persistence.dao.MagalieUserDao;
-import com.franciaflex.magalie.persistence.dao.RequestedArticleDao;
-import com.franciaflex.magalie.persistence.dao.SiteDao;
-import com.franciaflex.magalie.persistence.dao.SiteErrorDao;
-import com.franciaflex.magalie.persistence.dao.StorageMovementDao;
-import com.franciaflex.magalie.persistence.dao.StorageMovementOrderDao;
-import com.franciaflex.magalie.persistence.dao.StoredArticleDao;
import javax.persistence.EntityManager;
import java.lang.reflect.Constructor;
@@ -93,48 +84,4 @@
return persistenceContext;
}
- @Override
- public MagalieUserDao getMagalieUserDao() {
- return getPersistenceContext().getMagalieUserDao();
- }
-
- @Override
- public StoredArticleDao getStoredArticleDao() {
- return getPersistenceContext().getStoredArticleDao();
- }
-
- @Override
- public RequestedArticleDao getRequestedArticleDao() {
- return getPersistenceContext().getRequestedArticleDao();
- }
-
- @Override
- public ArticleDao getArticleDao() {
- return getPersistenceContext().getArticleDao();
- }
-
- @Override
- public StorageMovementDao getStorageMovementDao() {
- return getPersistenceContext().getStorageMovementDao();
- }
-
- @Override
- public SiteErrorDao getSiteErrorDao() {
- return getPersistenceContext().getSiteErrorDao();
- }
-
- @Override
- public StorageMovementOrderDao getStorageMovementOrderDao() {
- return getPersistenceContext().getStorageMovementOrderDao();
- }
-
- @Override
- public SiteDao getSiteDao() {
- return getPersistenceContext().getSiteDao();
- }
-
- @Override
- public DeliveredRequestedArticleDao getDeliveredRequestedArticleDao() {
- return getPersistenceContext().getDeliveredRequestedArticleDao();
- }
}
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/MagalieServiceContext.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/MagalieServiceContext.java 2013-04-05 13:15:07 UTC (rev 76)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/MagalieServiceContext.java 2013-04-05 13:22:46 UTC (rev 77)
@@ -25,15 +25,6 @@
import com.franciaflex.magalie.MagalieApplicationConfig;
import com.franciaflex.magalie.persistence.MagaliePersistenceContext;
-import com.franciaflex.magalie.persistence.dao.ArticleDao;
-import com.franciaflex.magalie.persistence.dao.DeliveredRequestedArticleDao;
-import com.franciaflex.magalie.persistence.dao.MagalieUserDao;
-import com.franciaflex.magalie.persistence.dao.RequestedArticleDao;
-import com.franciaflex.magalie.persistence.dao.SiteDao;
-import com.franciaflex.magalie.persistence.dao.SiteErrorDao;
-import com.franciaflex.magalie.persistence.dao.StorageMovementDao;
-import com.franciaflex.magalie.persistence.dao.StorageMovementOrderDao;
-import com.franciaflex.magalie.persistence.dao.StoredArticleDao;
import java.util.Date;
@@ -48,24 +39,6 @@
MagaliePersistenceContext getPersistenceContext();
- MagalieUserDao getMagalieUserDao();
-
- StoredArticleDao getStoredArticleDao();
-
- RequestedArticleDao getRequestedArticleDao();
-
- ArticleDao getArticleDao();
-
- StorageMovementDao getStorageMovementDao();
-
MagalieApplicationConfig getMagalieApplicationConfig();
- SiteErrorDao getSiteErrorDao();
-
- StorageMovementOrderDao getStorageMovementOrderDao();
-
- SiteDao getSiteDao();
-
- DeliveredRequestedArticleDao getDeliveredRequestedArticleDao();
-
}
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-04-05 13:15:07 UTC (rev 76)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java 2013-04-05 13:22:46 UTC (rev 77)
@@ -172,7 +172,7 @@
public StorageMovementTask getStorageMovementTask(String storageMovementOrderId) {
- StorageMovementOrderDao dao = serviceContext.getStorageMovementOrderDao();
+ StorageMovementOrderDao dao = serviceContext.getPersistenceContext().getStorageMovementOrderDao();
StorageMovementOrder storageMovementOrder = dao.findById(storageMovementOrderId);
@@ -213,13 +213,13 @@
protected List<StoredArticle> getStoredArticles(Article article) {
- StoredArticleDao storedArticleDao = serviceContext.getStoredArticleDao();
+ StoredArticleDao storedArticleDao = serviceContext.getPersistenceContext().getStoredArticleDao();
List<StoredArticle> storedArticles = storedArticleDao.findAllByArticle(article);
// consider storage movements and compute actually available quantities
- StorageMovementDao storageMovementDao = serviceContext.getStorageMovementDao();
+ StorageMovementDao storageMovementDao = serviceContext.getPersistenceContext().getStorageMovementDao();
List<StorageMovement> storageMovements = storageMovementDao.findAllByArticle(article);
@@ -273,9 +273,9 @@
String storageMovementOrderId = confirmation.getStorageMovementOrderId();
StorageMovementOrderDao storageMovementOrderDao =
- serviceContext.getStorageMovementOrderDao();
+ serviceContext.getPersistenceContext().getStorageMovementOrderDao();
- SiteDao siteDao = serviceContext.getSiteDao();
+ SiteDao siteDao = serviceContext.getPersistenceContext().getSiteDao();
StorageMovementOrder storageMovementOrder =
storageMovementOrderDao.findById(storageMovementOrderId);
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FixturesService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FixturesService.java 2013-04-05 13:15:07 UTC (rev 76)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FixturesService.java 2013-04-05 13:22:46 UTC (rev 77)
@@ -68,7 +68,7 @@
}
- MagalieUserDao magalieUserDao = serviceContext.getMagalieUserDao();
+ MagalieUserDao magalieUserDao = serviceContext.getPersistenceContext().getMagalieUserDao();
Collection<MagalieUser> users = fixtures.fixture("users");
@@ -80,7 +80,7 @@
persistenceContext.commit();
- SiteDao siteDao = serviceContext.getSiteDao();
+ SiteDao siteDao = serviceContext.getPersistenceContext().getSiteDao();
Collection<Site> sites = fixtures.fixture("sites");
@@ -92,7 +92,7 @@
persistenceContext.commit();
- ArticleDao articleDao = serviceContext.getArticleDao();
+ ArticleDao articleDao = serviceContext.getPersistenceContext().getArticleDao();
Collection<Article> articles = fixtures.fixture("articles");
@@ -104,7 +104,7 @@
persistenceContext.commit();
- StoredArticleDao storedArticleDao = serviceContext.getStoredArticleDao();
+ StoredArticleDao storedArticleDao = serviceContext.getPersistenceContext().getStoredArticleDao();
Collection<StoredArticle> storedArticles = fixtures.fixture("storedArticles");
@@ -116,7 +116,7 @@
persistenceContext.commit();
- RequestedArticleDao requestedArticleDao = serviceContext.getRequestedArticleDao();
+ RequestedArticleDao requestedArticleDao = serviceContext.getPersistenceContext().getRequestedArticleDao();
Collection<RequestedArticle> requestedArticles = fixtures.fixture("requestedArticles");
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-04-05 13:15:07 UTC (rev 76)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FulfilKanbanService.java 2013-04-05 13:22:46 UTC (rev 77)
@@ -45,7 +45,7 @@
ArticleStorageService articleStorageService =
serviceContext.newService(ArticleStorageService.class);
- SiteDao siteDao = serviceContext.getSiteDao();
+ SiteDao siteDao = serviceContext.getPersistenceContext().getSiteDao();
Site destinationSite = siteDao.findById(destinationSiteId);
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/MagalieBarcodeService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/MagalieBarcodeService.java 2013-04-05 13:15:07 UTC (rev 76)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/MagalieBarcodeService.java 2013-04-05 13:22:46 UTC (rev 77)
@@ -43,7 +43,7 @@
String articleCode = Iterables.get(split, 1);
- ArticleDao articleDao = serviceContext.getArticleDao();
+ ArticleDao articleDao = serviceContext.getPersistenceContext().getArticleDao();
Article article = articleDao.findByCode(articleCode);
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/MagalieUsersService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/MagalieUsersService.java 2013-04-05 13:15:07 UTC (rev 76)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/MagalieUsersService.java 2013-04-05 13:22:46 UTC (rev 77)
@@ -19,7 +19,7 @@
public MagalieUser getMagalieUser(String login) {
- MagalieUserDao dao = serviceContext.getMagalieUserDao();
+ MagalieUserDao dao = serviceContext.getPersistenceContext().getMagalieUserDao();
MagalieUser magalieUser = dao.findByLogin(login);
@@ -31,7 +31,7 @@
public List<MagalieUser> getAllMagalieUsers() {
- MagalieUserDao dao = serviceContext.getMagalieUserDao();
+ MagalieUserDao dao = serviceContext.getPersistenceContext().getMagalieUserDao();
List<MagalieUser> allMagalieUsers = dao.findAll();
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReportService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReportService.java 2013-04-05 13:15:07 UTC (rev 76)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ReportService.java 2013-04-05 13:22:46 UTC (rev 77)
@@ -34,7 +34,7 @@
magalieReport.setAllMagalieUsers(allMagalieUsers);
- StorageMovementDao storageMovementDao = serviceContext.getStorageMovementDao();
+ StorageMovementDao storageMovementDao = serviceContext.getPersistenceContext().getStorageMovementDao();
List<StorageMovement> allStorageMovements = storageMovementDao.findAll();
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java 2013-04-05 13:15:07 UTC (rev 76)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java 2013-04-05 13:22:46 UTC (rev 77)
@@ -73,7 +73,7 @@
protected List<RequestedArticle> getRequestedArticles(String storeCode) {
- RequestedArticleDao requestedArticleDao = serviceContext.getRequestedArticleDao();
+ RequestedArticleDao requestedArticleDao = serviceContext.getPersistenceContext().getRequestedArticleDao();
List<RequestedArticle> allRequestedArticles = requestedArticleDao.findAllUndelivered();
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/SiteErrorsService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/SiteErrorsService.java 2013-04-05 13:15:07 UTC (rev 76)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/SiteErrorsService.java 2013-04-05 13:22:46 UTC (rev 77)
@@ -33,7 +33,7 @@
public void reportError(Site site, MagalieUser magalieUser, Date reportDate) {
- SiteErrorDao siteErrorDao = serviceContext.getSiteErrorDao();
+ SiteErrorDao siteErrorDao = serviceContext.getPersistenceContext().getSiteErrorDao();
SiteError existingSiteError = siteErrorDao.findBySite(site);
@@ -62,7 +62,7 @@
public List<Site> getAllSitesInError() {
- SiteErrorDao siteErrorDao = serviceContext.getSiteErrorDao();
+ SiteErrorDao siteErrorDao = serviceContext.getPersistenceContext().getSiteErrorDao();
List<Site> allSitesInError = siteErrorDao.getAllSitesInError();
@@ -72,7 +72,7 @@
public List<SiteError> getAllSiteErrors() {
- SiteErrorDao siteErrorDao = serviceContext.getSiteErrorDao();
+ SiteErrorDao siteErrorDao = serviceContext.getPersistenceContext().getSiteErrorDao();
List<SiteError> allSiteErrors = siteErrorDao.findAll();
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/StoreService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/StoreService.java 2013-04-05 13:15:07 UTC (rev 76)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/StoreService.java 2013-04-05 13:22:46 UTC (rev 77)
@@ -17,7 +17,7 @@
public List<String> getAllStoreCodes() {
- SiteDao dao = serviceContext.getSiteDao();
+ SiteDao dao = serviceContext.getPersistenceContext().getSiteDao();
return dao.getAllStoreCodes();
1
0
05 Apr '13
Author: bleny
Date: 2013-04-05 15:15:07 +0200 (Fri, 05 Apr 2013)
New Revision: 76
Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revision…
Log:
introduce DeliveredRequestedArticle
Added:
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/DeliveredRequestedArticleDao.java
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/jpa/DeliveredRequestedArticleJpaDao.java
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/entity/DeliveredRequestedArticle.java
Modified:
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/JpaMagaliePersistenceContext.java
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/MagaliePersistenceContext.java
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/RequestedArticleDao.java
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/jpa/RequestedArticleJpaDao.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/DefaultMagalieServiceContext.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/MagalieServiceContext.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java
trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/RequestedArticleServiceTest.java
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/JpaMagaliePersistenceContext.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/JpaMagaliePersistenceContext.java 2013-04-05 12:37:48 UTC (rev 75)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/JpaMagaliePersistenceContext.java 2013-04-05 13:15:07 UTC (rev 76)
@@ -1,6 +1,7 @@
package com.franciaflex.magalie.persistence;
import com.franciaflex.magalie.persistence.dao.ArticleDao;
+import com.franciaflex.magalie.persistence.dao.DeliveredRequestedArticleDao;
import com.franciaflex.magalie.persistence.dao.MagalieUserDao;
import com.franciaflex.magalie.persistence.dao.RequestedArticleDao;
import com.franciaflex.magalie.persistence.dao.SiteDao;
@@ -9,6 +10,7 @@
import com.franciaflex.magalie.persistence.dao.StorageMovementOrderDao;
import com.franciaflex.magalie.persistence.dao.StoredArticleDao;
import com.franciaflex.magalie.persistence.dao.jpa.ArticleJpaDao;
+import com.franciaflex.magalie.persistence.dao.jpa.DeliveredRequestedArticleJpaDao;
import com.franciaflex.magalie.persistence.dao.jpa.MagalieUserJpaDao;
import com.franciaflex.magalie.persistence.dao.jpa.RequestedArticleJpaDao;
import com.franciaflex.magalie.persistence.dao.jpa.SiteErrorJpaDao;
@@ -75,6 +77,11 @@
}
@Override
+ public DeliveredRequestedArticleDao getDeliveredRequestedArticleDao() {
+ return new DeliveredRequestedArticleJpaDao(entityManager);
+ }
+
+ @Override
public void commit() {
entityTransaction.commit();
entityTransaction = entityManager.getTransaction();
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/MagaliePersistenceContext.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/MagaliePersistenceContext.java 2013-04-05 12:37:48 UTC (rev 75)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/MagaliePersistenceContext.java 2013-04-05 13:15:07 UTC (rev 76)
@@ -1,6 +1,7 @@
package com.franciaflex.magalie.persistence;
import com.franciaflex.magalie.persistence.dao.ArticleDao;
+import com.franciaflex.magalie.persistence.dao.DeliveredRequestedArticleDao;
import com.franciaflex.magalie.persistence.dao.MagalieUserDao;
import com.franciaflex.magalie.persistence.dao.RequestedArticleDao;
import com.franciaflex.magalie.persistence.dao.SiteDao;
@@ -30,6 +31,8 @@
SiteDao getSiteDao();
+ DeliveredRequestedArticleDao getDeliveredRequestedArticleDao();
+
void commit();
void rollback();
Added: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/DeliveredRequestedArticleDao.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/DeliveredRequestedArticleDao.java (rev 0)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/DeliveredRequestedArticleDao.java 2013-04-05 13:15:07 UTC (rev 76)
@@ -0,0 +1,10 @@
+package com.franciaflex.magalie.persistence.dao;
+
+import com.franciaflex.magalie.persistence.entity.DeliveredRequestedArticle;
+
+/**
+ * @author bleny
+ */
+public interface DeliveredRequestedArticleDao extends Dao<DeliveredRequestedArticle> {
+
+}
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/RequestedArticleDao.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/RequestedArticleDao.java 2013-04-05 12:37:48 UTC (rev 75)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/RequestedArticleDao.java 2013-04-05 13:15:07 UTC (rev 76)
@@ -2,8 +2,13 @@
import com.franciaflex.magalie.persistence.entity.RequestedArticle;
+import java.util.List;
+
/**
* @author bleny
*/
public interface RequestedArticleDao extends Dao<RequestedArticle> {
+
+ List<RequestedArticle> findAllUndelivered();
+
}
Added: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/jpa/DeliveredRequestedArticleJpaDao.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/jpa/DeliveredRequestedArticleJpaDao.java (rev 0)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/jpa/DeliveredRequestedArticleJpaDao.java 2013-04-05 13:15:07 UTC (rev 76)
@@ -0,0 +1,19 @@
+package com.franciaflex.magalie.persistence.dao.jpa;
+
+import com.franciaflex.magalie.persistence.dao.DeliveredRequestedArticleDao;
+import com.franciaflex.magalie.persistence.entity.DeliveredRequestedArticle;
+
+import javax.persistence.EntityManager;
+
+public class DeliveredRequestedArticleJpaDao extends AbstractJpaDao<DeliveredRequestedArticle> implements DeliveredRequestedArticleDao {
+
+ public DeliveredRequestedArticleJpaDao(EntityManager entityManager) {
+ super(entityManager);
+ }
+
+ @Override
+ protected Class<DeliveredRequestedArticle> getEntityClass() {
+ return DeliveredRequestedArticle.class;
+ }
+
+}
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/jpa/RequestedArticleJpaDao.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/jpa/RequestedArticleJpaDao.java 2013-04-05 12:37:48 UTC (rev 75)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/jpa/RequestedArticleJpaDao.java 2013-04-05 13:15:07 UTC (rev 76)
@@ -4,6 +4,8 @@
import com.franciaflex.magalie.persistence.entity.RequestedArticle;
import javax.persistence.EntityManager;
+import javax.persistence.TypedQuery;
+import java.util.List;
public class RequestedArticleJpaDao extends AbstractJpaDao<RequestedArticle> implements RequestedArticleDao {
@@ -15,4 +17,15 @@
protected Class<RequestedArticle> getEntityClass() {
return RequestedArticle.class;
}
+
+ @Override
+ public List<RequestedArticle> findAllUndelivered() {
+ TypedQuery<RequestedArticle> query =
+ entityManager.createQuery(
+ "from RequestedArticle ra where ra not in (select dra.requestedArticle from DeliveredRequestedArticle dra)",
+ getEntityClass()
+ );
+ return query.getResultList();
+ }
+
}
Added: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/entity/DeliveredRequestedArticle.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/entity/DeliveredRequestedArticle.java (rev 0)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/entity/DeliveredRequestedArticle.java 2013-04-05 13:15:07 UTC (rev 76)
@@ -0,0 +1,39 @@
+package com.franciaflex.magalie.persistence.entity;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.OneToOne;
+
+@Entity
+public class DeliveredRequestedArticle extends AbstractEntity {
+
+ @Id
+ protected String id;
+
+ @OneToOne
+ protected StorageMovementOrder storageMovementOrder;
+
+ @OneToOne
+ protected RequestedArticle requestedArticle;
+
+ @Override
+ public String getId() {
+ return id;
+ }
+
+ public StorageMovementOrder getStorageMovementOrder() {
+ return storageMovementOrder;
+ }
+
+ public void setStorageMovementOrder(StorageMovementOrder storageMovementOrder) {
+ this.storageMovementOrder = storageMovementOrder;
+ }
+
+ public RequestedArticle getRequestedArticle() {
+ return requestedArticle;
+ }
+
+ public void setRequestedArticle(RequestedArticle requestedArticle) {
+ this.requestedArticle = requestedArticle;
+ }
+}
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/DefaultMagalieServiceContext.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/DefaultMagalieServiceContext.java 2013-04-05 12:37:48 UTC (rev 75)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/DefaultMagalieServiceContext.java 2013-04-05 13:15:07 UTC (rev 76)
@@ -5,6 +5,7 @@
import com.franciaflex.magalie.persistence.JpaMagaliePersistenceContext;
import com.franciaflex.magalie.persistence.MagaliePersistenceContext;
import com.franciaflex.magalie.persistence.dao.ArticleDao;
+import com.franciaflex.magalie.persistence.dao.DeliveredRequestedArticleDao;
import com.franciaflex.magalie.persistence.dao.MagalieUserDao;
import com.franciaflex.magalie.persistence.dao.RequestedArticleDao;
import com.franciaflex.magalie.persistence.dao.SiteDao;
@@ -131,4 +132,9 @@
public SiteDao getSiteDao() {
return getPersistenceContext().getSiteDao();
}
+
+ @Override
+ public DeliveredRequestedArticleDao getDeliveredRequestedArticleDao() {
+ return getPersistenceContext().getDeliveredRequestedArticleDao();
+ }
}
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/MagalieServiceContext.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/MagalieServiceContext.java 2013-04-05 12:37:48 UTC (rev 75)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/MagalieServiceContext.java 2013-04-05 13:15:07 UTC (rev 76)
@@ -26,6 +26,7 @@
import com.franciaflex.magalie.MagalieApplicationConfig;
import com.franciaflex.magalie.persistence.MagaliePersistenceContext;
import com.franciaflex.magalie.persistence.dao.ArticleDao;
+import com.franciaflex.magalie.persistence.dao.DeliveredRequestedArticleDao;
import com.franciaflex.magalie.persistence.dao.MagalieUserDao;
import com.franciaflex.magalie.persistence.dao.RequestedArticleDao;
import com.franciaflex.magalie.persistence.dao.SiteDao;
@@ -65,4 +66,6 @@
SiteDao getSiteDao();
+ DeliveredRequestedArticleDao getDeliveredRequestedArticleDao();
+
}
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java 2013-04-05 12:37:48 UTC (rev 75)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java 2013-04-05 13:15:07 UTC (rev 76)
@@ -75,7 +75,7 @@
RequestedArticleDao requestedArticleDao = serviceContext.getRequestedArticleDao();
- List<RequestedArticle> allRequestedArticles = requestedArticleDao.findAll();
+ List<RequestedArticle> allRequestedArticles = requestedArticleDao.findAllUndelivered();
if (log.isInfoEnabled()) {
log.info(allRequestedArticles.size() + " articles requested");
@@ -83,8 +83,6 @@
// TODO brendan 05/04/13 consider storeCode
- // TODO brendan 05/04/13 remove already treated requests
-
return allRequestedArticles;
}
Modified: trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/RequestedArticleServiceTest.java
===================================================================
--- trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/RequestedArticleServiceTest.java 2013-04-05 12:37:48 UTC (rev 75)
+++ trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/RequestedArticleServiceTest.java 2013-04-05 13:15:07 UTC (rev 76)
@@ -25,8 +25,17 @@
}
@Test
- public void testPrioritize() {
+ public void testGetRequestedArticles() throws Exception {
+ String storeCode = "UO1";
+
+ List<RequestedArticle> requestedArticles = service.getRequestedArticles(storeCode);
+
+ }
+
+ @Test
+ public void testGetRequestedArticlesByPriority() {
+
List<RequestedArticle> requestedArticles = fixture("requestedArticles");
Queue<RequestedArticle> requestedArticlesByPriority =
1
0
05 Apr '13
Author: bleny
Date: 2013-04-05 14:37:48 +0200 (Fri, 05 Apr 2013)
New Revision: 75
Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revision…
Log:
add fixtures for requested articles, begin implementation of service
Added:
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/RequestedArticles.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java
trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/RequestedArticleServiceTest.java
Removed:
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedItemService.java
trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/RequestedItemServiceTest.java
Modified:
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/StoredArticles.java
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/entity/Article.java
trunk/magalie-persistence/src/main/resources/magalie.properties
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FixturesService.java
trunk/magalie-services/src/main/resources/fixtures.yaml
trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/DeliverRequestedArticleAction.java
Added: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/RequestedArticles.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/RequestedArticles.java (rev 0)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/RequestedArticles.java 2013-04-05 12:37:48 UTC (rev 75)
@@ -0,0 +1,21 @@
+package com.franciaflex.magalie.persistence;
+
+import com.franciaflex.magalie.persistence.entity.RequestedArticle;
+import org.apache.commons.collections.comparators.BooleanComparator;
+
+import java.util.Comparator;
+
+public class RequestedArticles {
+
+ protected static final class UrgentFirstComparator implements Comparator<RequestedArticle> {
+
+ @Override
+ public int compare(RequestedArticle x, RequestedArticle y) {
+ return BooleanComparator.getTrueFirstComparator().compare(x.isUrgent(), y.isUrgent());
+ }
+ }
+
+ public static Comparator<RequestedArticle> urgentFirstComparator() {
+ return new UrgentFirstComparator();
+ }
+}
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/StoredArticles.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/StoredArticles.java 2013-04-04 16:41:25 UTC (rev 74)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/StoredArticles.java 2013-04-05 12:37:48 UTC (rev 75)
@@ -8,11 +8,10 @@
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import com.google.common.collect.Ordering;
-import com.google.common.primitives.Booleans;
+import org.apache.commons.collections.comparators.BooleanComparator;
import java.util.Collection;
import java.util.Comparator;
-import java.util.Set;
public class StoredArticles {
@@ -25,15 +24,10 @@
}
@Override
- public int compare(StoredArticle storedArticle1, StoredArticle storedArticle2) {
- boolean storedArticle1isInFixedSite = false;
- boolean storedArticle2isInFixedSite = false;
- Set<Site> fixedSites = article.getFixedSites();
- if (fixedSites != null) {
- storedArticle1isInFixedSite = fixedSites.contains(storedArticle1.getSite());
- storedArticle2isInFixedSite = fixedSites.contains(storedArticle2.getSite());
- }
- return Booleans.compare(storedArticle2isInFixedSite, storedArticle1isInFixedSite);
+ public int compare(StoredArticle x, StoredArticle y) {
+ boolean xIsInFixedSite = article.isFixedSite(x.getSite());
+ boolean yIsInFixedSite = article.isFixedSite(y.getSite());
+ return BooleanComparator.getTrueFirstComparator().compare(xIsInFixedSite, yIsInFixedSite);
}
}
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/entity/Article.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/entity/Article.java 2013-04-04 16:41:25 UTC (rev 74)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/entity/Article.java 2013-04-05 12:37:48 UTC (rev 75)
@@ -70,4 +70,13 @@
public void setDescription(String description) {
this.description = description;
}
+
+ public boolean isFixedSite(Site site) {
+ boolean isFixedSite = false;
+ Set<Site> fixedSites = getFixedSites();
+ if (fixedSites != null) {
+ isFixedSite = fixedSites.contains(site);
+ }
+ return isFixedSite;
+ }
}
Modified: trunk/magalie-persistence/src/main/resources/magalie.properties
===================================================================
--- trunk/magalie-persistence/src/main/resources/magalie.properties 2013-04-04 16:41:25 UTC (rev 74)
+++ trunk/magalie-persistence/src/main/resources/magalie.properties 2013-04-05 12:37:48 UTC (rev 75)
@@ -4,6 +4,6 @@
javax.persistence.jdbc.password=
hibernate.dialect=org.hibernate.dialect.H2Dialect
hibernate.hbm2ddl.auto=update
-hibernate.show_sql=true
+hibernate.show_sql=false
hibernate.format_sql=true
hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FixturesService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FixturesService.java 2013-04-04 16:41:25 UTC (rev 74)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FixturesService.java 2013-04-05 12:37:48 UTC (rev 75)
@@ -3,10 +3,12 @@
import com.franciaflex.magalie.persistence.MagaliePersistenceContext;
import com.franciaflex.magalie.persistence.dao.ArticleDao;
import com.franciaflex.magalie.persistence.dao.MagalieUserDao;
+import com.franciaflex.magalie.persistence.dao.RequestedArticleDao;
import com.franciaflex.magalie.persistence.dao.SiteDao;
import com.franciaflex.magalie.persistence.dao.StoredArticleDao;
import com.franciaflex.magalie.persistence.entity.Article;
import com.franciaflex.magalie.persistence.entity.MagalieUser;
+import com.franciaflex.magalie.persistence.entity.RequestedArticle;
import com.franciaflex.magalie.persistence.entity.Site;
import com.franciaflex.magalie.persistence.entity.StoredArticle;
import com.franciaflex.magalie.services.MagalieFixtures;
@@ -114,6 +116,18 @@
persistenceContext.commit();
+ RequestedArticleDao requestedArticleDao = serviceContext.getRequestedArticleDao();
+
+ Collection<RequestedArticle> requestedArticles = fixtures.fixture("requestedArticles");
+
+ for (RequestedArticle requestedArticle : requestedArticles) {
+
+ requestedArticleDao.persist(requestedArticle);
+
+ }
+
+ persistenceContext.commit();
+
} else {
if (log.isWarnEnabled()) {
Copied: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java (from rev 74, trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedItemService.java)
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java (rev 0)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedArticleService.java 2013-04-05 12:37:48 UTC (rev 75)
@@ -0,0 +1,178 @@
+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.RequestedArticles;
+import com.franciaflex.magalie.persistence.dao.RequestedArticleDao;
+import com.franciaflex.magalie.persistence.entity.Article;
+import com.franciaflex.magalie.persistence.entity.MagalieUser;
+import com.franciaflex.magalie.persistence.entity.RequestedArticle;
+import com.franciaflex.magalie.persistence.entity.StorageMovementOrder;
+import com.franciaflex.magalie.services.MagalieService;
+import com.franciaflex.magalie.services.MagalieServiceContext;
+import com.franciaflex.magalie.services.exception.RequiredDriverLicenceException;
+import com.franciaflex.magalie.services.exception.UnavailableArticleException;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Ordering;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.List;
+import java.util.PriorityQueue;
+import java.util.Queue;
+
+public class RequestedArticleService implements MagalieService {
+
+ private static final Log log = LogFactory.getLog(RequestedArticleService.class);
+
+ protected MagalieServiceContext serviceContext;
+
+ public void setServiceContext(MagalieServiceContext serviceContext) {
+ this.serviceContext = serviceContext;
+ }
+
+ public StorageMovementOrder getStorageMovementOrder(
+ MagalieUser magalieUser,
+ String storeCode) {
+
+ List<RequestedArticle> requestedArticles = getRequestedArticles(storeCode);
+
+ Queue<RequestedArticle> requestedArticlesByPriority = getRequestedArticlesByPriority(requestedArticles);
+
+ StorageMovementOrder storageMovementOrder =
+ findOrderToExecute(
+ requestedArticlesByPriority,
+ magalieUser);
+
+ return storageMovementOrder;
+
+ }
+
+ protected List<RequestedArticle> getRequestedArticles(String storeCode) {
+
+ RequestedArticleDao requestedArticleDao = serviceContext.getRequestedArticleDao();
+
+ List<RequestedArticle> allRequestedArticles = requestedArticleDao.findAll();
+
+ if (log.isInfoEnabled()) {
+ log.info(allRequestedArticles.size() + " articles requested");
+ }
+
+ // TODO brendan 05/04/13 consider storeCode
+
+ // TODO brendan 05/04/13 remove already treated requests
+
+ return allRequestedArticles;
+
+ }
+
+ protected StorageMovementOrder findOrderToExecute(Queue<RequestedArticle> requestedArticlesByPriority, MagalieUser magalieUser) {
+
+ ArticleStorageService articleStorageService =
+ serviceContext.newService(ArticleStorageService.class);
+
+ StorageMovementOrder storageMovementOrder = null;
+
+ int requestedArticlesCount = requestedArticlesByPriority.size();
+
+ Iterator<RequestedArticle> requestedArticleIterator = requestedArticlesByPriority.iterator();
+
+ boolean everythingIsUnavailable = true;
+
+ boolean requiredDriverLicence = false;
+
+ while (storageMovementOrder == null && requestedArticleIterator.hasNext()) {
+
+ RequestedArticle requestedArticle = requestedArticleIterator.next();
+
+ Article article = requestedArticle.getArticle();
+
+ double quantity = requestedArticle.getQuantity();
+
+ try {
+
+ storageMovementOrder = articleStorageService.bookArticle(magalieUser, article, quantity, null);
+
+ everythingIsUnavailable = false;
+
+ } catch (UnavailableArticleException e) {
+
+ if (log.isDebugEnabled()) {
+ log.debug("cannot work for order", e);
+ }
+
+ } catch (RequiredDriverLicenceException e) {
+
+ if (log.isDebugEnabled()) {
+ log.debug("cannot work for order", e);
+ }
+
+ requiredDriverLicence = true;
+
+ }
+
+ }
+
+ if (storageMovementOrder == null && requestedArticlesCount > 0) {
+
+ if (everythingIsUnavailable) {
+
+ if (requiredDriverLicence) {
+
+ // throw new RequiredDriverLicenceException();
+
+ } else {
+
+ // throw new UnavailableArticleException();
+
+ }
+ }
+ }
+
+ return storageMovementOrder;
+
+ }
+
+ protected Queue<RequestedArticle> getRequestedArticlesByPriority(List<RequestedArticle> requests) {
+
+ Comparator<RequestedArticle> priorityComparator =
+ Ordering.compound(
+ Lists.newArrayList(
+ RequestedArticles.urgentFirstComparator()
+ )
+ );
+
+ PriorityQueue<RequestedArticle> requestedArticles =
+ new PriorityQueue<RequestedArticle>(
+ requests.size(),
+ priorityComparator);
+
+ requestedArticles.addAll(requests);
+
+ return requestedArticles;
+
+ }
+}
Deleted: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedItemService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedItemService.java 2013-04-04 16:41:25 UTC (rev 74)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedItemService.java 2013-04-05 12:37:48 UTC (rev 75)
@@ -1,131 +0,0 @@
-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.dao.RequestedArticleDao;
-import com.franciaflex.magalie.persistence.entity.Article;
-import com.franciaflex.magalie.persistence.entity.MagalieUser;
-import com.franciaflex.magalie.persistence.entity.RequestedArticle;
-import com.franciaflex.magalie.persistence.entity.StorageMovementOrder;
-import com.franciaflex.magalie.services.MagalieService;
-import com.franciaflex.magalie.services.MagalieServiceContext;
-import com.franciaflex.magalie.services.exception.RequiredDriverLicenceException;
-import com.franciaflex.magalie.services.exception.UnavailableArticleException;
-import com.google.common.collect.Sets;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-public class RequestedItemService implements MagalieService {
-
- private static final Log log = LogFactory.getLog(RequestedItemService.class);
-
- protected MagalieServiceContext serviceContext;
-
- public void setServiceContext(MagalieServiceContext serviceContext) {
- this.serviceContext = serviceContext;
- }
-
- public StorageMovementOrder getWithdrawTask(
- MagalieUser magalieUser,
- String storeCode) {
-
- ArticleStorageService articleStorageService =
- serviceContext.newService(ArticleStorageService.class);
-
- RequestedArticleDao requestedArticleDao = serviceContext.getRequestedArticleDao();
-
- List<RequestedArticle> allRequestedArticles = requestedArticleDao.findAll();
-
- if (log.isInfoEnabled()) {
- log.info(allRequestedArticles.size() + " articles requested");
- }
-
- Set<RequestedArticle> sortedRequestedArticles = Sets.newHashSet(allRequestedArticles);
-
- StorageMovementOrder storageMovementOrder = null;
-
- int requestedArticlesCount = allRequestedArticles.size();
-
- Iterator<RequestedArticle> requestedArticleIterator = sortedRequestedArticles.iterator();
-
- boolean everythingIsUnavailable = true;
-
- boolean requiredDriverLicence = false;
-
- while (storageMovementOrder == null && requestedArticleIterator.hasNext()) {
-
- RequestedArticle requestedArticle = requestedArticleIterator.next();
-
- Article article = requestedArticle.getArticle();
-
- double quantity = requestedArticle.getQuantity();
-
- try {
-
- storageMovementOrder = articleStorageService.bookArticle(magalieUser, article, quantity, null);
-
- everythingIsUnavailable = false;
-
- } catch (UnavailableArticleException e) {
-
- if (log.isDebugEnabled()) {
- log.debug("cannot work for order", e);
- }
-
- } catch (RequiredDriverLicenceException e) {
-
- if (log.isDebugEnabled()) {
- log.debug("cannot work for order", e);
- }
-
- requiredDriverLicence = true;
-
- }
-
- }
-
- if (storageMovementOrder == null && requestedArticlesCount > 0) {
-
- if (everythingIsUnavailable) {
-
- if (requiredDriverLicence) {
-
- // throw new RequiredDriverLicenceException();
-
- } else {
-
- // throw new UnavailableArticleException();
-
- }
- }
- }
-
- return storageMovementOrder;
-
- }
-}
Modified: trunk/magalie-services/src/main/resources/fixtures.yaml
===================================================================
--- trunk/magalie-services/src/main/resources/fixtures.yaml 2013-04-04 16:41:25 UTC (rev 74)
+++ trunk/magalie-services/src/main/resources/fixtures.yaml 2013-04-05 12:37:48 UTC (rev 75)
@@ -144,3 +144,25 @@
storedArticlesForArticle1:
- *storedArticle1
- *storedArticle2
+
+requestedArticle1:
+ &requestedArticle1 !requested-article
+ id: requestedArticle1
+ article: *article3
+ quantity: 100
+ requestList: 123456789
+ requestDate: 2013-04-08 12:00:00
+ urgent: true
+
+requestedArticle2:
+ &requestedArticle2 !requested-article
+ id: requestedArticle2
+ article: *article3
+ quantity: 250
+ requestList: 123456789
+ requestDate: 2013-04-08 12:00:00
+ urgent: false
+
+requestedArticles:
+ - *requestedArticle1
+ - *requestedArticle2
Copied: trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/RequestedArticleServiceTest.java (from rev 65, trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/RequestedItemServiceTest.java)
===================================================================
--- trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/RequestedArticleServiceTest.java (rev 0)
+++ trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/RequestedArticleServiceTest.java 2013-04-05 12:37:48 UTC (rev 75)
@@ -0,0 +1,38 @@
+package com.franciaflex.magalie.services.service;
+
+import com.franciaflex.magalie.persistence.entity.RequestedArticle;
+import com.franciaflex.magalie.services.AbstractMagalieServiceTest;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.text.ParseException;
+import java.util.Date;
+import java.util.List;
+import java.util.Queue;
+
+public class RequestedArticleServiceTest extends AbstractMagalieServiceTest {
+
+ protected RequestedArticleService service;
+
+ @Before
+ public void setUp() throws ParseException {
+
+ service = newService(RequestedArticleService.class);
+
+ serviceContext.setDate(new Date(1363948427576l));
+
+ }
+
+ @Test
+ public void testPrioritize() {
+
+ List<RequestedArticle> requestedArticles = fixture("requestedArticles");
+
+ Queue<RequestedArticle> requestedArticlesByPriority =
+ service.getRequestedArticlesByPriority(requestedArticles);
+
+ Assert.assertEquals(requestedArticles.size(), requestedArticlesByPriority.size());
+
+ }
+}
Deleted: trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/RequestedItemServiceTest.java
===================================================================
--- trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/RequestedItemServiceTest.java 2013-04-04 16:41:25 UTC (rev 74)
+++ trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/RequestedItemServiceTest.java 2013-04-05 12:37:48 UTC (rev 75)
@@ -1,50 +0,0 @@
-package com.franciaflex.magalie.services.service;
-
-import com.franciaflex.magalie.persistence.JpaUtil;
-import com.franciaflex.magalie.persistence.entity.MagalieUser;
-import com.franciaflex.magalie.services.AbstractMagalieServiceTest;
-import com.google.common.collect.Sets;
-import org.junit.Test;
-
-import javax.persistence.EntityManager;
-import java.util.Comparator;
-import java.util.Set;
-
-public class RequestedItemServiceTest extends AbstractMagalieServiceTest {
-
- @Test
- public void testGetWithdrawTask() throws Exception {
-
- getServiceContext();
-
- Set<Double> doubles = Sets.newTreeSet(new Comparator<Double>() {
- @Override
- public int compare(Double o1, Double o2) {
- return Double.compare(o1, o2);
- }
- });
-
- doubles.add(3.);
- doubles.add(2.);
- doubles.add(4.);
- doubles.add(1.);
- doubles.add(7.);
-
- System.out.println(doubles);
- }
-
- @Test
- public void testName() throws Exception {
- getServiceContext();
-
- MagalieUser alexandre = fixture("alexandre");
-
- EntityManager entityManager = serviceContext.getEntityManager();
-
- JpaUtil.cleanDatabase(entityManager);
-
-// MagalieUser found = serviceContext.getMagalieUserDao().findById(alexandre.getId());
-
-// Assert.assertNull(found);
- }
-}
Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/DeliverRequestedArticleAction.java
===================================================================
--- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/DeliverRequestedArticleAction.java 2013-04-04 16:41:25 UTC (rev 74)
+++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/DeliverRequestedArticleAction.java 2013-04-05 12:37:48 UTC (rev 75)
@@ -2,7 +2,7 @@
import com.franciaflex.magalie.persistence.entity.MagalieUser;
import com.franciaflex.magalie.persistence.entity.StorageMovementOrder;
-import com.franciaflex.magalie.services.service.RequestedItemService;
+import com.franciaflex.magalie.services.service.RequestedArticleService;
import com.franciaflex.magalie.web.MagalieActionSupport;
import com.franciaflex.magalie.web.MagalieSession;
import org.apache.commons.logging.Log;
@@ -19,11 +19,11 @@
protected MagalieSession session;
- protected RequestedItemService service;
+ protected RequestedArticleService service;
protected StorageMovementOrder storageMovementOrder;
- public void setService(RequestedItemService service) {
+ public void setService(RequestedArticleService service) {
this.service = service;
}
@@ -38,7 +38,7 @@
String storeCode = session.getStoreCode();
- storageMovementOrder = service.getWithdrawTask(magalieUser, storeCode);
+ storageMovementOrder = service.getStorageMovementOrder(magalieUser, storeCode);
String result = SUCCESS;
1
0
r74 - 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
by bleny@users.forge.codelutin.com 04 Apr '13
by bleny@users.forge.codelutin.com 04 Apr '13
04 Apr '13
Author: bleny
Date: 2013-04-04 18:41:25 +0200 (Thu, 04 Apr 2013)
New Revision: 74
Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revision…
Log:
start implementing requested articles service
Added:
trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/DeliverRequestedArticleAction.java
trunk/magalie-web/src/main/webapp/WEB-INF/content/deliver-requested-article-input.jsp
Modified:
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/Dao.java
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/jpa/AbstractJpaDao.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedItemService.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/Dao.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/Dao.java 2013-04-04 14:55:54 UTC (rev 73)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/Dao.java 2013-04-04 16:41:25 UTC (rev 74)
@@ -2,10 +2,14 @@
import com.franciaflex.magalie.persistence.entity.AbstractEntity;
+import java.util.List;
+
public interface Dao<E extends AbstractEntity> {
E findById(String id);
+ List<E> findAll();
+
void persist(E entity);
E merge(E entity);
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/jpa/AbstractJpaDao.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/jpa/AbstractJpaDao.java 2013-04-04 14:55:54 UTC (rev 73)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/jpa/AbstractJpaDao.java 2013-04-04 16:41:25 UTC (rev 74)
@@ -4,6 +4,8 @@
import com.franciaflex.magalie.persistence.entity.AbstractEntity;
import javax.persistence.EntityManager;
+import javax.persistence.TypedQuery;
+import java.util.List;
public abstract class AbstractJpaDao<E extends AbstractEntity> implements Dao<E> {
@@ -22,6 +24,13 @@
}
@Override
+ public List<E> findAll() {
+ String simpleName = getEntityClass().getSimpleName();
+ TypedQuery<E> query = entityManager.createQuery("from " + simpleName, getEntityClass());
+ return query.getResultList();
+ }
+
+ @Override
public void persist(E entity) {
entityManager.persist(entity);
}
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedItemService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedItemService.java 2013-04-04 14:55:54 UTC (rev 73)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/RequestedItemService.java 2013-04-04 16:41:25 UTC (rev 74)
@@ -23,43 +23,108 @@
* #L%
*/
-import com.franciaflex.magalie.persistence.dao.ArticleDao;
-import com.franciaflex.magalie.persistence.dao.MagalieUserDao;
+import com.franciaflex.magalie.persistence.dao.RequestedArticleDao;
import com.franciaflex.magalie.persistence.entity.Article;
import com.franciaflex.magalie.persistence.entity.MagalieUser;
+import com.franciaflex.magalie.persistence.entity.RequestedArticle;
import com.franciaflex.magalie.persistence.entity.StorageMovementOrder;
import com.franciaflex.magalie.services.MagalieService;
import com.franciaflex.magalie.services.MagalieServiceContext;
import com.franciaflex.magalie.services.exception.RequiredDriverLicenceException;
import com.franciaflex.magalie.services.exception.UnavailableArticleException;
+import com.google.common.collect.Sets;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
public class RequestedItemService implements MagalieService {
+ private static final Log log = LogFactory.getLog(RequestedItemService.class);
+
protected MagalieServiceContext serviceContext;
public void setServiceContext(MagalieServiceContext serviceContext) {
this.serviceContext = serviceContext;
}
- public StorageMovementOrder getWithdrawTask() throws RequiredDriverLicenceException, UnavailableArticleException {
+ public StorageMovementOrder getWithdrawTask(
+ MagalieUser magalieUser,
+ String storeCode) {
- ArticleStorageService articleStorageService = serviceContext.newService(ArticleStorageService.class);
+ ArticleStorageService articleStorageService =
+ serviceContext.newService(ArticleStorageService.class);
- ArticleDao articleDao = serviceContext.getArticleDao();
+ RequestedArticleDao requestedArticleDao = serviceContext.getRequestedArticleDao();
- MagalieUserDao magalieUserDao = serviceContext.getMagalieUserDao();
+ List<RequestedArticle> allRequestedArticles = requestedArticleDao.findAll();
- MagalieUser alexandre = magalieUserDao.findById("magalie_user_alexandre");
+ if (log.isInfoEnabled()) {
+ log.info(allRequestedArticles.size() + " articles requested");
+ }
- Article article1 = articleDao.findById("article1");
+ Set<RequestedArticle> sortedRequestedArticles = Sets.newHashSet(allRequestedArticles);
- StorageMovementOrder storageMovementOrder =
- articleStorageService.bookArticle(
- alexandre,
- article1,
- 40.
- );
+ StorageMovementOrder storageMovementOrder = null;
+ int requestedArticlesCount = allRequestedArticles.size();
+
+ Iterator<RequestedArticle> requestedArticleIterator = sortedRequestedArticles.iterator();
+
+ boolean everythingIsUnavailable = true;
+
+ boolean requiredDriverLicence = false;
+
+ while (storageMovementOrder == null && requestedArticleIterator.hasNext()) {
+
+ RequestedArticle requestedArticle = requestedArticleIterator.next();
+
+ Article article = requestedArticle.getArticle();
+
+ double quantity = requestedArticle.getQuantity();
+
+ try {
+
+ storageMovementOrder = articleStorageService.bookArticle(magalieUser, article, quantity, null);
+
+ everythingIsUnavailable = false;
+
+ } catch (UnavailableArticleException e) {
+
+ if (log.isDebugEnabled()) {
+ log.debug("cannot work for order", e);
+ }
+
+ } catch (RequiredDriverLicenceException e) {
+
+ if (log.isDebugEnabled()) {
+ log.debug("cannot work for order", e);
+ }
+
+ requiredDriverLicence = true;
+
+ }
+
+ }
+
+ if (storageMovementOrder == null && requestedArticlesCount > 0) {
+
+ if (everythingIsUnavailable) {
+
+ if (requiredDriverLicence) {
+
+ // throw new RequiredDriverLicenceException();
+
+ } else {
+
+ // throw new UnavailableArticleException();
+
+ }
+ }
+ }
+
return storageMovementOrder;
}
Added: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/DeliverRequestedArticleAction.java
===================================================================
--- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/DeliverRequestedArticleAction.java (rev 0)
+++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/DeliverRequestedArticleAction.java 2013-04-04 16:41:25 UTC (rev 74)
@@ -0,0 +1,60 @@
+package com.franciaflex.magalie.web.action;
+
+import com.franciaflex.magalie.persistence.entity.MagalieUser;
+import com.franciaflex.magalie.persistence.entity.StorageMovementOrder;
+import com.franciaflex.magalie.services.service.RequestedItemService;
+import com.franciaflex.magalie.web.MagalieActionSupport;
+import com.franciaflex.magalie.web.MagalieSession;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.struts2.convention.annotation.Result;
+import org.apache.struts2.convention.annotation.Results;
+
+@Results({
+ @Result(name="success", type="redirectAction", params = { "actionName", "withdraw-item!input", "storageMovementOrderId", "${storageMovementOrderId}" })
+})
+public class DeliverRequestedArticleAction extends MagalieActionSupport {
+
+ private static final Log log = LogFactory.getLog(DeliverRequestedArticleAction.class);
+
+ protected MagalieSession session;
+
+ protected RequestedItemService service;
+
+ protected StorageMovementOrder storageMovementOrder;
+
+ public void setService(RequestedItemService service) {
+ this.service = service;
+ }
+
+ public void setSession(MagalieSession session) {
+ this.session = session;
+ }
+
+ @Override
+ public String execute() {
+
+ MagalieUser magalieUser = session.getMagalieUser();
+
+ String storeCode = session.getStoreCode();
+
+ storageMovementOrder = service.getWithdrawTask(magalieUser, storeCode);
+
+ String result = SUCCESS;
+
+ if (storageMovementOrder == null) {
+
+ addActionMessage("Aucun article");
+
+ result = INPUT;
+
+ }
+
+ return result;
+
+ }
+
+ public String getStorageMovementOrderId() {
+ return storageMovementOrder.getId();
+ }
+}
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-04-04 14:55:54 UTC (rev 73)
+++ trunk/magalie-web/src/main/webapp/WEB-INF/content/choose-activity.jsp 2013-04-04 16:41:25 UTC (rev 74)
@@ -26,8 +26,8 @@
<%@ taglib prefix="sb" uri="/struts-bootstrap-tags" %>
<%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
-<s:url namespace="/" action="withdraw-item!input" id="withdrawItemUrl"/>
<s:url namespace="/" action="fulfil-kanban!input" id="fulfilKanbanUrl"/>
+<s:url namespace="/" action="deliver-requested-article!input" id="deliverRequestedArticleUrl"/>
<s:url namespace="/" action="logout" id="logoutUrl"/>
<header>
@@ -39,7 +39,7 @@
</dl>
</header>
-<s:a href="%{withdrawItemUrl}" cssClass="btn btn-block">Traiter listes à servir</s:a>
<s:a href="%{fulfilKanbanUrl}" cssClass="btn btn-block">Traiter kanbans</s:a>
-<s:a href="" cssClass="btn btn-block">Traiter les réceptions fournisseurs</s:a>
+<s:a href="%{deliverRequestedArticleUrl}" cssClass="btn btn-block">Traiter listes à servir</s:a>
+<s:a href="%{}" cssClass="btn btn-block">Traiter les réceptions fournisseurs</s:a>
<s:a href="%{logoutUrl}" cssClass="btn btn-block">Déconnexion</s:a>
Added: trunk/magalie-web/src/main/webapp/WEB-INF/content/deliver-requested-article-input.jsp
===================================================================
--- trunk/magalie-web/src/main/webapp/WEB-INF/content/deliver-requested-article-input.jsp (rev 0)
+++ trunk/magalie-web/src/main/webapp/WEB-INF/content/deliver-requested-article-input.jsp 2013-04-04 16:41:25 UTC (rev 74)
@@ -0,0 +1,8 @@
+<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+
+<s:url namespace="/" action="deliver-requested-article" id="deliverRequestedArticleUrl"/>
+<s:url namespace="/" action="choose-activity" id="chooseActivityUrl"/>
+
+<s:a href="%{deliverRequestedArticleUrl}" cssClass="btn btn-block">Demander un article à servir</s:a>
+<s:a href="%{chooseActivityUrl}" cssClass="btn btn-block">Changer d'activité</s:a>
1
0
r73 - in trunk: magalie-services/src/main/java/com/franciaflex/magalie/services/service magalie-web/src/main/java/com/franciaflex/magalie/web/action
by bleny@users.forge.codelutin.com 04 Apr '13
by bleny@users.forge.codelutin.com 04 Apr '13
04 Apr '13
Author: bleny
Date: 2013-04-04 16:55:54 +0200 (Thu, 04 Apr 2013)
New Revision: 73
Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revision…
Log:
use best effort policy when fulfilling kanban
Modified:
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
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-04-04 14:52:50 UTC (rev 72)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FulfilKanbanService.java 2013-04-04 14:55:54 UTC (rev 73)
@@ -1,7 +1,9 @@
package com.franciaflex.magalie.services.service;
+import com.franciaflex.magalie.persistence.dao.SiteDao;
import com.franciaflex.magalie.persistence.entity.Article;
import com.franciaflex.magalie.persistence.entity.MagalieUser;
+import com.franciaflex.magalie.persistence.entity.Site;
import com.franciaflex.magalie.persistence.entity.StorageMovementOrder;
import com.franciaflex.magalie.services.MagalieService;
import com.franciaflex.magalie.services.MagalieServiceContext;
@@ -24,7 +26,8 @@
public StorageMovementOrder fulfilKanbanTask(
String articleBarcode,
- MagalieUser magalieUser) throws InvalidMagalieBarcodeException,
+ MagalieUser magalieUser,
+ String destinationSiteId) throws InvalidMagalieBarcodeException,
UnavailableArticleException,
RequiredDriverLicenceException {
@@ -42,11 +45,16 @@
ArticleStorageService articleStorageService =
serviceContext.newService(ArticleStorageService.class);
+ SiteDao siteDao = serviceContext.getSiteDao();
+
+ Site destinationSite = siteDao.findById(destinationSiteId);
+
StorageMovementOrder storageMovementOrder =
- articleStorageService.bookArticle(
+ articleStorageService.bookArticleWithBestEffortPolicy(
magalieUser,
article,
- quantityInKanban);
+ quantityInKanban,
+ destinationSite);
return storageMovementOrder;
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-04-04 14:52:50 UTC (rev 72)
+++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/FulfilKanbanAction.java 2013-04-04 14:55:54 UTC (rev 73)
@@ -52,8 +52,10 @@
try {
- storageMovementOrder = service.fulfilKanbanTask(articleBarcode, magalieUser);
+ // TODO brendan 04/04/13 add destination site != null
+ storageMovementOrder = service.fulfilKanbanTask(articleBarcode, magalieUser, null);
+
} catch (InvalidMagalieBarcodeException e) {
addFieldError("articleBarcode", "Le code barre n'est pas un code valide");
1
0
r72 - in trunk: magalie-persistence/src/main/java/com/franciaflex/magalie/persistence magalie-services/src/main/java/com/franciaflex/magalie/services/exception magalie-services/src/main/java/com/franciaflex/magalie/services/service magalie-services/src/test/java/com/franciaflex/magalie/services/service
by bleny@users.forge.codelutin.com 04 Apr '13
by bleny@users.forge.codelutin.com 04 Apr '13
04 Apr '13
Author: bleny
Date: 2013-04-04 16:52:50 +0200 (Thu, 04 Apr 2013)
New Revision: 72
Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revision…
Log:
introduce best effort policy
Modified:
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/Sites.java
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/StoredArticles.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/exception/RequiredDriverLicenceException.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java
trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/ArticleStorageServiceTest.java
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/Sites.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/Sites.java 2013-04-04 13:38:01 UTC (rev 71)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/Sites.java 2013-04-04 14:52:50 UTC (rev 72)
@@ -55,6 +55,10 @@
return new AccessibleSitePredicate(magalieUser);
}
+ public static Predicate<Site> inaccessibleSitePredicate(MagalieUser magalieUser) {
+ return Predicates.not(accessibleSitePredicate(magalieUser));
+ }
+
public static Predicate<Site> siteRequireDriverLicensePredicate() {
return new SiteRequireDriverLicensePredicate();
}
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/StoredArticles.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/StoredArticles.java 2013-04-04 13:38:01 UTC (rev 71)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/StoredArticles.java 2013-04-04 14:52:50 UTC (rev 72)
@@ -8,6 +8,7 @@
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import com.google.common.collect.Ordering;
+import com.google.common.primitives.Booleans;
import java.util.Collection;
import java.util.Comparator;
@@ -25,15 +26,14 @@
@Override
public int compare(StoredArticle storedArticle1, StoredArticle storedArticle2) {
+ boolean storedArticle1isInFixedSite = false;
+ boolean storedArticle2isInFixedSite = false;
Set<Site> fixedSites = article.getFixedSites();
- boolean storedArticle1isInFixedSite = fixedSites.contains(storedArticle1.getSite());
- boolean storedArticle2isInFixedSite = fixedSites.contains(storedArticle2.getSite());
- if (storedArticle1isInFixedSite && ! storedArticle2isInFixedSite) {
- return -1;
- } else if ( ! storedArticle1isInFixedSite && storedArticle2isInFixedSite) {
- return +1;
+ if (fixedSites != null) {
+ storedArticle1isInFixedSite = fixedSites.contains(storedArticle1.getSite());
+ storedArticle2isInFixedSite = fixedSites.contains(storedArticle2.getSite());
}
- return 0;
+ return Booleans.compare(storedArticle2isInFixedSite, storedArticle1isInFixedSite);
}
}
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/exception/RequiredDriverLicenceException.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/exception/RequiredDriverLicenceException.java 2013-04-04 13:38:01 UTC (rev 71)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/exception/RequiredDriverLicenceException.java 2013-04-04 14:52:50 UTC (rev 72)
@@ -1,7 +1,10 @@
package com.franciaflex.magalie.services.exception;
+import com.franciaflex.magalie.persistence.Sites;
import com.franciaflex.magalie.persistence.entity.Article;
import com.franciaflex.magalie.persistence.entity.MagalieUser;
+import com.franciaflex.magalie.persistence.entity.Site;
+import com.google.common.base.Predicate;
public class RequiredDriverLicenceException extends MagalieException {
@@ -9,50 +12,43 @@
protected MagalieUser magalieUser;
- protected double requestedQuantity;
+ protected Site site;
- protected double accessibleQuantity;
-
protected RequiredDriverLicenceException(String message) {
super(message);
}
- public static void throwIfRequestMoreThanAccessible(double requestedQuantity, double accessibleQuantity, MagalieUser magalieUser, Article article) throws RequiredDriverLicenceException {
+ public Article getArticle() {
+ return article;
+ }
- if (requestedQuantity > accessibleQuantity) {
+ public MagalieUser getMagalieUser() {
+ return magalieUser;
+ }
+ public Site getSite() {
+ return site;
+ }
+
+ public static void throwIfUserCannotAccessSite(MagalieUser magalieUser, Site site, Article article) throws RequiredDriverLicenceException {
+
+ Predicate<Site> isSiteInaccessiblePredicate = Sites.inaccessibleSitePredicate(magalieUser);
+
+ if (isSiteInaccessiblePredicate.apply(site)) {
+
String message = "requested article " + article
- + " can not be retrieved since user " + magalieUser
- + " has no driver license";
+ + " can not be retrieved since user " + magalieUser
+ + " has no driver license";
RequiredDriverLicenceException newException = new RequiredDriverLicenceException(message);
- newException.article = article;
-
newException.magalieUser = magalieUser;
- newException.requestedQuantity = requestedQuantity;
+ newException.site = site;
- newException.accessibleQuantity = accessibleQuantity;
+ newException.article = article;
throw newException;
-
}
}
-
- public Article getArticle() {
- return article;
- }
-
- public MagalieUser getMagalieUser() {
- return magalieUser;
- }
-
- public double getRequestedQuantity() {
- return requestedQuantity;
- }
-
- public double getAccessibleQuantity() {
- return accessibleQuantity;
- }
}
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-04-04 13:38:01 UTC (rev 71)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java 2013-04-04 14:52:50 UTC (rev 72)
@@ -49,27 +49,36 @@
}
+ public StorageMovementOrder bookArticleWithBestEffortPolicy(
+ MagalieUser magalieUser, Article article, double requestedQuantity, Site destinationSite)
+ throws RequiredDriverLicenceException, UnavailableArticleException {
+
+ return bookArticle(magalieUser, article ,requestedQuantity, destinationSite, true);
+
+ }
+
public StorageMovementOrder bookArticle(
MagalieUser magalieUser, Article article, double requestedQuantity, Site destinationSite)
throws UnavailableArticleException, RequiredDriverLicenceException {
+ return bookArticle(magalieUser, article ,requestedQuantity, destinationSite, false);
+
+ }
+
+ protected StorageMovementOrder bookArticle(
+ MagalieUser magalieUser, Article article, double requestedQuantity, Site destinationSite, boolean bestEffortPolicy)
+ throws UnavailableArticleException, RequiredDriverLicenceException {
+
Preconditions.checkNotNull(magalieUser);
Preconditions.checkNotNull(article);
Preconditions.checkArgument(requestedQuantity > 0.);
- double availableQuantity = getAvailableQuantity(article);
- UnavailableArticleException.throwIfRequestMoreThanAvailable(requestedQuantity, availableQuantity, article);
-
- double accessibleQuantity = getAccessibleQuantity(article, magalieUser);
- RequiredDriverLicenceException.throwIfRequestMoreThanAccessible(requestedQuantity, accessibleQuantity, magalieUser, article);
-
if (log.isInfoEnabled()) {
log.info("will process article request"
+ ": requested = " + requestedQuantity
- + ", accessible " + accessibleQuantity
- + ", available " + availableQuantity);
+ );
}
List<StoredArticle> storedArticles = getStoredArticles(article);
@@ -86,13 +95,7 @@
Set<StoredArticle> sortedStoredArticles =
Sets.newTreeSet(storedArticlesOrdering);
- Iterables.addAll(
- sortedStoredArticles,
- Iterables.filter(
- storedArticles,
- StoredArticles.articleStoredInAccessibleSitePredicate(magalieUser)
- )
- );
+ Iterables.addAll(sortedStoredArticles, storedArticles);
StorageMovementOrder storageMovementOrder = new StorageMovementOrder();
@@ -108,28 +111,51 @@
double quantityWithdrawn = Math.min(quantityLeft, quantityInSite);
- quantity += quantityWithdrawn;
+ if (quantityWithdrawn > 0.) {
- StorageMovement newStorageMovement = new StorageMovement();
+ Site originSite = storedArticle.getSite();
- newStorageMovement.setArticle(article);
+ RequiredDriverLicenceException.throwIfUserCannotAccessSite(magalieUser, originSite, article);
- newStorageMovement.setOrderDate(orderDate);
+ quantity += quantityWithdrawn;
- newStorageMovement.setMagalieUser(magalieUser);
+ StorageMovement newStorageMovement = new StorageMovement();
- newStorageMovement.setOriginSite(storedArticle.getSite());
+ newStorageMovement.setArticle(article);
- newStorageMovement.setDestinationSite(destinationSite);
+ newStorageMovement.setOrderDate(orderDate);
- newStorageMovement.setExpectedQuantity(quantityWithdrawn);
+ newStorageMovement.setMagalieUser(magalieUser);
- if (quantityWithdrawn > 0.) {
+ newStorageMovement.setOriginSite(originSite);
+ newStorageMovement.setDestinationSite(destinationSite);
+
+ newStorageMovement.setExpectedQuantity(quantityWithdrawn);
+
storageMovementOrder.addStorageMovement(newStorageMovement);
}
+ }
+ if (bestEffortPolicy) {
+
+ log.debug("best effort policy, requested quantity was "
+ + requestedQuantity + " but only " + quantity +
+ " available");
+
+ if (storageMovementOrder.getStorageMovements().isEmpty()) {
+
+ UnavailableArticleException.throwIfRequestMoreThanAvailable(requestedQuantity, 0., article);
+
+ }
+
+ } else {
+
+ // strict policy, we must deliver all requested quantity
+
+ UnavailableArticleException.throwIfRequestMoreThanAvailable(requestedQuantity, quantity, article);
+
}
MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
@@ -242,44 +268,6 @@
}
- protected double getAvailableQuantity(Article article) {
-
- List<StoredArticle> storedArticles = getStoredArticles(article);
-
- double availableQuantity = 0.;
-
- for (StoredArticle storedArticle : storedArticles) {
-
- availableQuantity += storedArticle.getQuantity();
-
- }
-
- return availableQuantity;
-
- }
-
- protected double getAccessibleQuantity(Article article, MagalieUser magalieUser) {
-
- List<StoredArticle> storedArticles = getStoredArticles(article);
-
- Iterable<StoredArticle> accessibleStoredArticles =
- Iterables.filter(
- storedArticles,
- StoredArticles.articleStoredInAccessibleSitePredicate(magalieUser)
- );
-
- double accessibleQuantity = 0.;
-
- for (StoredArticle storedArticle : accessibleStoredArticles) {
-
- accessibleQuantity += storedArticle.getQuantity();
-
- }
-
- return accessibleQuantity;
-
- }
-
public void confirmStorageMovement(StorageMovementConfirmation confirmation, MagalieUser magalieUser) {
String storageMovementOrderId = confirmation.getStorageMovementOrderId();
Modified: trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/ArticleStorageServiceTest.java
===================================================================
--- trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/ArticleStorageServiceTest.java 2013-04-04 13:38:01 UTC (rev 71)
+++ trunk/magalie-services/src/test/java/com/franciaflex/magalie/services/service/ArticleStorageServiceTest.java 2013-04-04 14:52:50 UTC (rev 72)
@@ -36,12 +36,12 @@
@Test
public void testThrowUnavailableArticle() throws Exception {
- MagalieUser basile = fixture("basile");
+ MagalieUser alexandre = fixture("alexandre");
Article article = fixture("article1");
StorageMovementOrder storageMovementOrder;
try {
- storageMovementOrder = service.bookArticle(basile, article, 100.);
+ storageMovementOrder = service.bookArticle(alexandre, article, 100.);
if (log.isDebugEnabled()) {
log.debug("storageMovementOrder = " + storageMovementOrder);
}
@@ -59,6 +59,7 @@
MagalieUser basile = fixture("basile");
Article article = fixture("article1");
+ Site site2 = fixture("site2");
StorageMovementOrder storageMovementOrder;
try {
@@ -71,7 +72,7 @@
if (log.isDebugEnabled()) {
log.debug("exception raised = " + e);
}
- Assert.assertEquals(50., e.getAccessibleQuantity(), DELTA);
+ Assert.assertEquals(site2.getId(), e.getSite().getId());
}
}
@@ -79,11 +80,11 @@
public void testWithdrawArticleWithoutDriverLicense() throws Exception {
MagalieUser basile = fixture("basile");
- Article article = fixture("article1");
+ Article article = fixture("article2");
StorageMovementOrder storageMovementOrder = null;
try {
- storageMovementOrder = service.bookArticle(basile, article, 50.);
+ storageMovementOrder = service.bookArticle(basile, article, 5.);
if (log.isDebugEnabled()) {
log.debug("storageMovementOrder = " + storageMovementOrder);
}
@@ -226,5 +227,33 @@
}
}
+ @Test
+ public void testWithdrawArticleWithBestEffortPolicy() throws Exception {
+ MagalieUser alexandre = fixture("alexandre");
+ Article article = fixture("article2");
+ Site site1 = fixture("site1");
+
+ try {
+ StorageMovementOrder storageMovementOrder = service.bookArticleWithBestEffortPolicy(alexandre, article, 30., null);
+ if (log.isDebugEnabled()) {
+ log.debug("storageMovementOrder = " + storageMovementOrder);
+ }
+ Assert.assertEquals(1, storageMovementOrder.getStorageMovements().size());
+ StorageMovement storageMovement = Iterables.get(storageMovementOrder.getStorageMovements(), 0, null);
+ Assert.assertEquals("only 10 is available, so don't propose more", 10., storageMovement.getQuantity(), DELTA);
+ Assert.assertEquals(site1.getId(), storageMovement.getOriginSite().getId());
+ } catch (RequiredDriverLicenceException e) {
+ if (log.isDebugEnabled()) {
+ log.debug("exception raised = " + e);
+ }
+ Assert.fail();
+ } catch (UnavailableArticleException e) {
+ if (log.isDebugEnabled()) {
+ log.debug("exception raised = " + e);
+ }
+ Assert.fail();
+ }
+ }
+
}
1
0
r71 - in trunk: magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/entity magalie-services/src/main/java/com/franciaflex/magalie/services/service
by bleny@users.forge.codelutin.com 04 Apr '13
by bleny@users.forge.codelutin.com 04 Apr '13
04 Apr '13
Author: bleny
Date: 2013-04-04 15:38:01 +0200 (Thu, 04 Apr 2013)
New Revision: 71
Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revision…
Log:
consider actual quantity
Modified:
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/entity/StorageMovement.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/entity/StorageMovement.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/entity/StorageMovement.java 2013-04-04 12:52:29 UTC (rev 70)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/entity/StorageMovement.java 2013-04-04 13:38:01 UTC (rev 71)
@@ -1,5 +1,7 @@
package com.franciaflex.magalie.persistence.entity;
+import com.google.common.base.Objects;
+
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@@ -109,4 +111,9 @@
public void setActualQuantity(Double actualQuantity) {
this.actualQuantity = actualQuantity;
}
+
+ public double getQuantity() {
+ double quantity = Objects.firstNonNull(actualQuantity, expectedQuantity);
+ return quantity;
+ }
}
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-04-04 12:52:29 UTC (rev 70)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java 2013-04-04 13:38:01 UTC (rev 71)
@@ -209,10 +209,8 @@
StoredArticle storedArticle = storedArticlesBySite.get(originSite);
- // TODO brendan 28/03/13 consider actual quantity
+ double actualQuantity = storedArticle.getQuantity() - storageMovement.getQuantity();
- double actualQuantity = storedArticle.getQuantity() - storageMovement.getExpectedQuantity();
-
if (actualQuantity > 0.) {
storedArticle.setQuantity(actualQuantity);
1
0
r70 - trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence
by bleny@users.forge.codelutin.com 04 Apr '13
by bleny@users.forge.codelutin.com 04 Apr '13
04 Apr '13
Author: bleny
Date: 2013-04-04 14:52:29 +0200 (Thu, 04 Apr 2013)
New Revision: 70
Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revision…
Log:
do not re-begin transaction
Modified:
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/JpaMagaliePersistenceContext.java
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/JpaMagaliePersistenceContext.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/JpaMagaliePersistenceContext.java 2013-04-04 09:41:37 UTC (rev 69)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/JpaMagaliePersistenceContext.java 2013-04-04 12:52:29 UTC (rev 70)
@@ -29,7 +29,9 @@
public JpaMagaliePersistenceContext(EntityManager entityManager) {
this.entityManager = entityManager;
entityTransaction = entityManager.getTransaction();
- entityTransaction.begin();
+ if ( ! entityTransaction.isActive()) {
+ entityTransaction.begin();
+ }
}
@Override
1
0
r69 - in trunk: magalie-persistence/src/main/java/com/franciaflex/magalie/persistence magalie-services/src/main/java/com/franciaflex/magalie/services/service
by bleny@users.forge.codelutin.com 04 Apr '13
by bleny@users.forge.codelutin.com 04 Apr '13
04 Apr '13
Author: bleny
Date: 2013-04-04 11:41:37 +0200 (Thu, 04 Apr 2013)
New Revision: 69
Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revision…
Log:
remove dead code ; factorize
Modified:
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/JpaMagaliePersistenceContext.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FixturesService.java
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/JpaMagaliePersistenceContext.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/JpaMagaliePersistenceContext.java 2013-04-04 09:13:13 UTC (rev 68)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/JpaMagaliePersistenceContext.java 2013-04-04 09:41:37 UTC (rev 69)
@@ -88,11 +88,8 @@
@Override
public void clearDatabase() {
- entityTransaction.rollback();
- entityTransaction = entityManager.getTransaction();
- entityTransaction.begin();
+ rollback();
JpaUtil.cleanDatabase(entityManager);
- entityTransaction.commit();
- entityTransaction.begin();
+ commit();
}
}
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FixturesService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FixturesService.java 2013-04-04 09:13:13 UTC (rev 68)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FixturesService.java 2013-04-04 09:41:37 UTC (rev 69)
@@ -9,14 +9,12 @@
import com.franciaflex.magalie.persistence.entity.MagalieUser;
import com.franciaflex.magalie.persistence.entity.Site;
import com.franciaflex.magalie.persistence.entity.StoredArticle;
-import com.franciaflex.magalie.services.DefaultMagalieServiceContext;
import com.franciaflex.magalie.services.MagalieFixtures;
import com.franciaflex.magalie.services.MagalieService;
import com.franciaflex.magalie.services.MagalieServiceContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import javax.persistence.EntityManager;
import java.util.Collection;
public class FixturesService implements MagalieService {
@@ -60,9 +58,6 @@
log.info("will restore database with fixture set");
}
- EntityManager entityManager =
- ((DefaultMagalieServiceContext) serviceContext).getEntityManager();
-
MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
if (cleanDatabase) {
1
0
r68 - in trunk: magalie-persistence/src/main/java/com/franciaflex/magalie/persistence magalie-services/src/main/java/com/franciaflex/magalie/services/service magalie-web/src/main/java/com/franciaflex/magalie/web magalie-web/src/main/java/com/franciaflex/magalie/web/action
by bleny@users.forge.codelutin.com 04 Apr '13
by bleny@users.forge.codelutin.com 04 Apr '13
04 Apr '13
Author: bleny
Date: 2013-04-04 11:13:13 +0200 (Thu, 04 Apr 2013)
New Revision: 68
Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revision…
Log:
add clearDatabase in magaliePersistenceContext
Modified:
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/JpaMagaliePersistenceContext.java
trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/MagaliePersistenceContext.java
trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FixturesService.java
trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieInterceptor.java
trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/RestoreFixturesAction.java
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/JpaMagaliePersistenceContext.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/JpaMagaliePersistenceContext.java 2013-04-03 10:20:27 UTC (rev 67)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/JpaMagaliePersistenceContext.java 2013-04-04 09:13:13 UTC (rev 68)
@@ -85,4 +85,14 @@
entityTransaction = entityManager.getTransaction();
entityTransaction.begin();
}
+
+ @Override
+ public void clearDatabase() {
+ entityTransaction.rollback();
+ entityTransaction = entityManager.getTransaction();
+ entityTransaction.begin();
+ JpaUtil.cleanDatabase(entityManager);
+ entityTransaction.commit();
+ entityTransaction.begin();
+ }
}
Modified: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/MagaliePersistenceContext.java
===================================================================
--- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/MagaliePersistenceContext.java 2013-04-03 10:20:27 UTC (rev 67)
+++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/MagaliePersistenceContext.java 2013-04-04 09:13:13 UTC (rev 68)
@@ -34,4 +34,6 @@
void rollback();
+ void clearDatabase();
+
}
Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FixturesService.java
===================================================================
--- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FixturesService.java 2013-04-03 10:20:27 UTC (rev 67)
+++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/FixturesService.java 2013-04-04 09:13:13 UTC (rev 68)
@@ -1,6 +1,6 @@
package com.franciaflex.magalie.services.service;
-import com.franciaflex.magalie.persistence.JpaUtil;
+import com.franciaflex.magalie.persistence.MagaliePersistenceContext;
import com.franciaflex.magalie.persistence.dao.ArticleDao;
import com.franciaflex.magalie.persistence.dao.MagalieUserDao;
import com.franciaflex.magalie.persistence.dao.SiteDao;
@@ -32,8 +32,20 @@
this.serviceContext = serviceContext;
}
+ public void cleanDatabaseAndLoadFixtures() {
+
+ loadFixtures(true);
+
+ }
+
public void loadFixtures() {
+ loadFixtures(false);
+
+ }
+
+ protected void loadFixtures(boolean cleanDatabase) {
+
boolean devMode = serviceContext.getMagalieApplicationConfig().isDevMode();
if (devMode) {
@@ -51,12 +63,14 @@
EntityManager entityManager =
((DefaultMagalieServiceContext) serviceContext).getEntityManager();
- // serviceContext.getPersistenceContext();
+ MagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext();
- JpaUtil.cleanDatabase(entityManager);
+ if (cleanDatabase) {
- serviceContext.getPersistenceContext().commit();
+ persistenceContext.clearDatabase();
+ }
+
MagalieUserDao magalieUserDao = serviceContext.getMagalieUserDao();
Collection<MagalieUser> users = fixtures.fixture("users");
@@ -67,7 +81,7 @@
}
- serviceContext.getPersistenceContext().commit();
+ persistenceContext.commit();
SiteDao siteDao = serviceContext.getSiteDao();
@@ -79,7 +93,7 @@
}
- serviceContext.getPersistenceContext().commit();
+ persistenceContext.commit();
ArticleDao articleDao = serviceContext.getArticleDao();
@@ -91,7 +105,7 @@
}
- serviceContext.getPersistenceContext().commit();
+ persistenceContext.commit();
StoredArticleDao storedArticleDao = serviceContext.getStoredArticleDao();
@@ -103,7 +117,7 @@
}
- serviceContext.getPersistenceContext().commit();
+ persistenceContext.commit();
} else {
Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieInterceptor.java
===================================================================
--- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieInterceptor.java 2013-04-03 10:20:27 UTC (rev 67)
+++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieInterceptor.java 2013-04-04 09:13:13 UTC (rev 68)
@@ -74,7 +74,7 @@
FixturesService fixturesService = serviceContext.newService(FixturesService.class);
- fixturesService.loadFixtures();
+ fixturesService.cleanDatabaseAndLoadFixtures();
fixturesLoaded = true;
Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/RestoreFixturesAction.java
===================================================================
--- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/RestoreFixturesAction.java 2013-04-03 10:20:27 UTC (rev 67)
+++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/RestoreFixturesAction.java 2013-04-04 09:13:13 UTC (rev 68)
@@ -19,7 +19,7 @@
@Override
public String execute() throws Exception {
- service.loadFixtures();
+ service.cleanDatabaseAndLoadFixtures();
addActionMessage("Jeu de données initial restauré");
1
0