r210 - 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 magalie-web/src/main/webapp/js
Author: Bavencoff Date: 2013-05-29 14:30:22 +0200 (Wed, 29 May 2013) New Revision: 210 Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revisions... Log: refs #2164 : change radio set to link for choice of article Removed: trunk/magalie-web/src/main/webapp/js/storage-transfer-input.js Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/StorageTransferAction.java 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/ArticleStorageService.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java 2013-05-29 09:21:35 UTC (rev 209) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/ArticleStorageService.java 2013-05-29 12:30:22 UTC (rev 210) @@ -408,6 +408,10 @@ } + // Warning : + // this function don't add a new StoredArticle + // if exist a storage movement with new article in location + Iterable<StoredArticle> result = Iterables.filter(storedArticles, StoredArticles.notEmpty()); return result; 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-05-29 09:21:35 UTC (rev 209) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/StorageTransferAction.java 2013-05-29 12:30:22 UTC (rev 210) @@ -9,8 +9,6 @@ import org.apache.commons.logging.LogFactory; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; -import org.apache.struts2.json.JSONException; -import org.apache.struts2.json.JSONUtil; import java.util.List; @@ -19,7 +17,7 @@ */ @Results({ - @Result(name="success", type="redirectAction", params = { "actionName", "storage-transfer-location!input"}) + @Result(name="success", type="redirectAction", params = { "actionName", "storage-transfer-location!input"}) }) public class StorageTransferAction extends MagalieActionSupport { @@ -37,6 +35,8 @@ protected String storedArticleId; + protected StoredArticle storedArticle; + protected String destinationBarCode; protected double quantity; @@ -56,10 +56,20 @@ @Override public String input() { + if (log.isDebugEnabled()) { + log.debug("originId : " + originId + "\n" + + "storedArticleId : " + storedArticleId); + } + origin = service.getLocationById(originId); storedArticles = service.getStoredArticlesInLocation(origin); + if (storedArticleId != null) { + storedArticle = service.findStoredArticle(storedArticleId); + quantity = storedArticle.getQuantity(); + } + return INPUT; } @@ -71,22 +81,22 @@ return storedArticles; } - public String getModelAsJson() throws JSONException { - - String json = JSONUtil.serialize(getStoredArticles()); - - return json; - - } - public String getStoredArticleId() { return storedArticleId; } + public StoredArticle getStoredArticle() { + return storedArticle; + } + public double getQuantity() { return quantity; } + public String getDestinationBarCode (){ + return destinationBarCode; + } + public void setStoredArticleId(String storedArticleId) { this.storedArticleId = storedArticleId; } @@ -112,15 +122,8 @@ origin = service.getLocationById(originId); - storedArticles = service.getStoredArticlesInLocation(origin); + storedArticle = service.findStoredArticle(storedArticleId); - if (storedArticleId == null) { - addFieldError("storedArticleId", "Sélectionnez un article"); - return INPUT; - } - - StoredArticle storedArticle = service.findStoredArticle(storedArticleId); - if (quantity == 0) { addFieldError("quantity", "la quantité ne doit pas être nulle"); return INPUT; 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-05-29 09:21:35 UTC (rev 209) +++ trunk/magalie-web/src/main/webapp/WEB-INF/content/storage-transfer-input.jsp 2013-05-29 12:30:22 UTC (rev 210) @@ -5,9 +5,15 @@ <head> <title>Transfert de stock</title> <script type="text/javascript"> - var model = <s:property value="modelAsJson" escapeHtml="false" />; + $(document).ready(function () { + bindKey("Esc", function(){ redirectTo($('#CancelLink'));}); + <s:if test="storedArticle != null" > + $('#storage-transfer_destinationBarCode').focus(); + </s:if> + }); + + </script> - <script src="<s:url value='/js/storage-transfer-input.js' />"></script> <link rel="stylesheet" href="<s:url value='/css/magalie-ck3x-reduced.css' />"/> </head> @@ -17,22 +23,67 @@ <dl class="dl-horizontal"> <dt>Source</dt> <dd><s:property value="origin.warehouse.code + origin.code" /></dd> + <s:if test="storedArticle != null" > + <dt>Article</dt> + <dd><s:property value="storedArticle.article.description" /></dd> + <dt>Réf</dt> + <dd><s:property value="storedArticle.article.code" /></dd> + <dt>Qté disponible</dt> + <dd><s:property value="storedArticle.quantity + ' ' + storedArticle.article.unit" /></dd> + </s:if> </dl> </header> -<s:form cssClass="form-horizontal"> - <s:hidden name="originId" value="%{origin.id}" /> +<s:if test="storedArticle == null" > + <s:iterator value="storedArticles" status="stat"> + <li> + <s:set var="elementStoredArticleId">storedArticleId<s:property value="#stat.index" /></s:set> + <s:url namespace="/" action="storage-transfer!input" id="storageTransferNextStepUrl"> + <s:param name="originId" value="%{origin.id}" /> + <s:param name="storedArticleId" value="%{id}" /> + </s:url> + <s:if test="#stat.index < shortcuts.size()"> + <script type="text/javascript"> + $(document).ready(function () { + var id = '<s:property value="elementStoredArticleId" />'; + bindKey(<s:property value="shortcuts.get(#stat.index)" />, function(){ redirectTo($('#' + id));}); + }); + </script> + <s:a href="%{storageTransferNextStepUrl}" id="%{elementStoredArticleId}"> + <s:property value="article.description" /> + (<s:property value="article.code" />) + (<s:property value="quantity" /> + <s:property value="article.unit" />) + (<s:property value="shortcuts.get(#stat.index)" />) + </s:a> + </s:if> + <s:else> + <s:a href="%{storageTransferNextStepUrl}" > + <s:property value="article.description" /> + (<s:property value="article.code" />) + (<s:property value="quantity" /> + <s:property value="article.unit" />) + </s:a> + </s:else> + </li> + </s:iterator> - <s:radio name="storedArticleId" list="storedArticles" listKey="id" listValue="article.description + ' (' + article.code + ')'" cssClass="radio" /> + <s:a href="%{cancelUrl}" cssClass="btn" id="CancelLink" >Quitter (Esc)</s:a> - <s:textfield name="quantity" label="Qté" inputAppend="" type="number" step="any" min="0" cssClass="input-mini" /> +</s:if> +<s:else> + <s:form cssClass="form-horizontal"> + <s:hidden name="originId" value="%{origin.id}" /> + <s:hidden name="storedArticleId" value="%{storedArticle.id}" /> - <s:textfield key="destinationBarCode" label="Destination" inputAppendIcon="barcode" cssClass="input-small" /> + <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" /> - <div class="btn-group"> - <s:a href="%{cancelUrl}" cssClass="btn" id="CancelLink" >Quitter (Esc)</s:a> - <s:submit name="" value="Valider" cssClass="btn btn-primary" /> - </div> -</s:form> \ No newline at end of file + <div class="btn-group"> + <s:a href="%{cancelUrl}" cssClass="btn" id="CancelLink" >Quitter (Esc)</s:a> + <s:submit name="" value="Valider" cssClass="btn btn-primary" /> + </div> + </s:form> +</s:else> Deleted: trunk/magalie-web/src/main/webapp/js/storage-transfer-input.js =================================================================== --- trunk/magalie-web/src/main/webapp/js/storage-transfer-input.js 2013-05-29 09:21:35 UTC (rev 209) +++ trunk/magalie-web/src/main/webapp/js/storage-transfer-input.js 2013-05-29 12:30:22 UTC (rev 210) @@ -1,58 +0,0 @@ - -model.storedArticleIndex = 0; - -model.setArticle = function(StorageArticleId) { - for (var i = 0; i < this.length; i++) { - if (this[i].id == StorageArticleId) { - model.storedArticleIndex = i; - } - } - return this.storedArticleIndex; -}; - -model.getQuantity = function() { - return this[this.storedArticleIndex].quantity; -}; - -model.getUnit = function() { - return this[this.storedArticleIndex].article.unit; - -}; - -var view = { - - refreshQuantity : function() { - $('#storage-transfer_quantity').val(model.getQuantity()); - $('#storage-transfer_quantity').next('span').text(model.getUnit()); - }, - - refreshLocation : function() { - $('#storage-transfer_destinationBarCode').val(''); - } - - -}; - -var controller = { - - onChangeArticle : function () { - var StoredArticleId = $('input[type=radio][name=storedArticleId]:checked').attr('value'); - model.setArticle(StoredArticleId); - view.refreshQuantity(); - view.refreshLocation(); - $('#storage-transfer_destinationBarCode').focus(); - } - -}; - -$(document).ready(function () { - var inputRadios = $("input[name='storedArticleId']") ; - $.each(inputRadios, function(index, radio) { - if (index < SHORTCUTS.length) { - $(radio).parent().append(" (" + SHORTCUTS[index] + ")") - bindKey(SHORTCUTS[index], function(){ $(radio).click();}); - } - }); - $('input[type=radio][name=storedArticleId]').change(controller.onChangeArticle); - bindKey('Esc', function(){ redirectTo($('#CancelLink'));}); -}); \ No newline at end of file
participants (1)
-
Bavencoff@users.forge.codelutin.com