r297 - in trunk: magalie-services/src/main/java/com/franciaflex/magalie/services/service magalie-web/src/main/java/com/franciaflex/magalie/web/action magalie-web/src/main/webapp/WEB-INF/content
Author: bleny Date: 2013-07-09 15:03:54 +0200 (Tue, 09 Jul 2013) New Revision: 297 Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revisions... Log: add possibility to make storage transfer to another building Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/StorageTransferService.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/StorageTransferAction.java trunk/magalie-web/src/main/webapp/WEB-INF/content/report.jsp trunk/magalie-web/src/main/webapp/WEB-INF/content/storage-transfer-input.jsp Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/StorageTransferService.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/StorageTransferService.java 2013-07-09 12:20:41 UTC (rev 296) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/StorageTransferService.java 2013-07-09 13:03:54 UTC (rev 297) @@ -25,12 +25,14 @@ import com.franciaflex.magalie.persistence.JpaMagaliePersistenceContext; +import com.franciaflex.magalie.persistence.dao.BuildingJpaDao; import com.franciaflex.magalie.persistence.dao.LocationJpaDao; import com.franciaflex.magalie.persistence.dao.StorageMovementDao; import com.franciaflex.magalie.persistence.dao.StorageMovementJpaDao; import com.franciaflex.magalie.persistence.dao.StoredArticleDao; import com.franciaflex.magalie.persistence.dao.StoredArticleJpaDao; import com.franciaflex.magalie.persistence.entity.Building; +import com.franciaflex.magalie.persistence.entity.Company; import com.franciaflex.magalie.persistence.entity.Location; import com.franciaflex.magalie.persistence.entity.MagalieUser; import com.franciaflex.magalie.persistence.entity.StorageMovement; @@ -73,6 +75,19 @@ } + public Location getLocation(String buildingId, MagalieUser magalieUser, String barcode) + throws InvalidMagalieBarcodeException, InaccessibleLocationException { + + Preconditions.checkNotNull(buildingId); + + BuildingJpaDao buildingDao = serviceContext.getPersistenceContext().getBuildingDao(); + + Building building = buildingDao.findById(buildingId); + + return getLocation(building, magalieUser, barcode); + + } + public Location getLocationById(String id) { JpaMagaliePersistenceContext persistenceContext = serviceContext.getPersistenceContext(); @@ -154,4 +169,16 @@ } } + + public List<Building> getDestinationBuildings(Company company) { + + BuildingsService buildingsService = + serviceContext.newService(BuildingsService.class); + + List<Building> buildings = buildingsService.getAllBuildingsByCompany(company); + + return buildings; + + } + } Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/StorageTransferAction.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/StorageTransferAction.java 2013-07-09 12:20:41 UTC (rev 296) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/StorageTransferAction.java 2013-07-09 13:03:54 UTC (rev 297) @@ -24,6 +24,7 @@ */ import com.franciaflex.magalie.persistence.entity.Building; +import com.franciaflex.magalie.persistence.entity.Company; import com.franciaflex.magalie.persistence.entity.Location; import com.franciaflex.magalie.persistence.entity.MagalieUser; import com.franciaflex.magalie.persistence.entity.StoredArticle; @@ -72,6 +73,10 @@ protected double quantity; + protected String destinationBuildingId; + + protected List<Building> destinationBuildings; + public void setService(StorageTransferService service) { this.service = service; } @@ -88,12 +93,11 @@ this.originId = originId; } - @Override - public String input() { + protected void prepare() { if (log.isDebugEnabled()) { - log.debug("originId : " + originId + "\n" + - "storedArticleId : " + storedArticleId); + log.debug("originId = " + originId + + ", storedArticleId = " + storedArticleId); } origin = service.getLocationById(originId); @@ -105,9 +109,25 @@ quantity = storedArticle.getQuantity(); } + Company company = session.getBuilding().getCompany(); + + destinationBuildings = service.getDestinationBuildings(company); + + } + + @Override + public String input() { + + prepare(); + return INPUT; + } + public List<Building> getDestinationBuildings() { + return destinationBuildings; + } + public Location getOrigin() { return origin; } @@ -144,21 +164,31 @@ this.quantity = quantity; } + public String getDestinationBuildingId() { + if (destinationBuildingId == null) { + destinationBuildingId = session.getBuilding().getId(); + } + return destinationBuildingId; + } + + public void setDestinationBuildingId(String destinationBuildingId) { + this.destinationBuildingId = destinationBuildingId; + } + @Override public String execute() { if (log.isDebugEnabled()) { - log.debug("originId : " + originId + "\n" + - "storedArticleId : " + storedArticleId + "\n" + - "quantity : " + quantity + "\n" + - "destinationBarcode : " + destinationBarcode); + log.debug("originId = " + originId + + ", storedArticleId = " + storedArticleId + + ", quantity = " + quantity + + ", destinationBuildingId = " + destinationBuildingId + + ", destinationBarcode = " + destinationBarcode); } - origin = service.getLocationById(originId); + prepare(); - storedArticle = service.findStoredArticle(storedArticleId); - - if (quantity == 0) { + if ( ! (quantity > 0.)) { addFieldError("quantity", "la quantité ne doit pas être nulle"); return INPUT; } @@ -173,15 +203,13 @@ return INPUT; } - Building building = session.getBuilding(); - MagalieUser magalieUser = session.getMagalieUser(); Location destination; try { - destination = service.getLocation(building, magalieUser, destinationBarcode); + destination = service.getLocation(getDestinationBuildingId(), magalieUser, destinationBarcode); } catch (InvalidMagalieBarcodeException e) { Modified: trunk/magalie-web/src/main/webapp/WEB-INF/content/report.jsp =================================================================== --- trunk/magalie-web/src/main/webapp/WEB-INF/content/report.jsp 2013-07-09 12:20:41 UTC (rev 296) +++ trunk/magalie-web/src/main/webapp/WEB-INF/content/report.jsp 2013-07-09 13:03:54 UTC (rev 297) @@ -145,12 +145,14 @@ <s:property value="originLocation.warehouse.code" /> - <s:property value="originLocation.code" /> + (<s:property value="originLocation.warehouse.building.code" />) </td> <td> <s:if test="destinationLocation"> <s:property value="destinationLocation.warehouse.code" /> - <s:property value="destinationLocation.code" /> + (<s:property value="destinationLocation.warehouse.building.code" />) </s:if> </td> <td> Modified: trunk/magalie-web/src/main/webapp/WEB-INF/content/storage-transfer-input.jsp =================================================================== --- trunk/magalie-web/src/main/webapp/WEB-INF/content/storage-transfer-input.jsp 2013-07-09 12:20:41 UTC (rev 296) +++ trunk/magalie-web/src/main/webapp/WEB-INF/content/storage-transfer-input.jsp 2013-07-09 13:03:54 UTC (rev 297) @@ -101,8 +101,17 @@ <s:textfield name="quantity" label="Qté" inputAppend="%{storedArticle.article.unit}" type="number" step="any" min="0" cssClass="input-mini" /> - <s:textfield key="destinationBarcode" label="Destination" inputAppendIcon="barcode" cssClass="input-small" /> + <s:select label="Bât. dest." + key="destinationBuildingId" + list="destinationBuildings" + listKey="id" + listValue="code" + required="true" + cssClass="input-small" + /> + <s:textfield key="destinationBarcode" label="Empl. dest." inputAppendIcon="barcode" cssClass="input-small" /> + <div class="btn-group"> <s:a href="%{cancelUrl}" cssClass="btn btn-small" id="cancelLink">Quitter (Esc)</s:a>
participants (1)
-
bleny@users.forge.codelutin.com