Author: bleny Date: 2013-08-01 10:27:29 +0200 (Thu, 01 Aug 2013) New Revision: 354 Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revisions... Log: fixes #3006 don't show next location if confirm, if one location is not used or if quantity withdraw > expected Modified: trunk/magalie-web/src/main/webapp/js/withdraw-item-input.js Modified: trunk/magalie-web/src/main/webapp/js/withdraw-item-input.js =================================================================== --- trunk/magalie-web/src/main/webapp/js/withdraw-item-input.js 2013-07-31 16:15:32 UTC (rev 353) +++ trunk/magalie-web/src/main/webapp/js/withdraw-item-input.js 2013-08-01 08:27:29 UTC (rev 354) @@ -44,31 +44,42 @@ } model.newEmptyStorageMovementForNextLocation = function() { - var storageMovement; - $.ajax({ - dataType: "json", - url: getRealTimeStorageMovementTaskJsonUrl, - data: { articleId: this.articleId }, - async: false, - success: function(data) { - storageMovement = data.realTimeStorageMovementTask; - }, - fail: function(jqXHR, textStatus, errorThrown) { - console.error(jqXHR); - console.error(textStatus); - console.error(errorThrown); - } - }); - if (storageMovement.articleUnavailable) { - alert('Plus de stock'); - } else { - if (this.expectedQuantity) { - storageMovement.expectedQuantity = Math.min(model.remaining(), storageMovement.storedArticle.quantity); + var quantityIsRemaining = ! model.expectedQuantity // pas de quantité demandée précisée au départ donc on ne sait pas s'il faut s'arrêter donc on propose au cas où + || model.withdrawn() < model.expectedQuantity // on a une quantité demandée mais on ne l'a pas encore atteinte + var allIsUsed = true; + for (var i = 0; i < this.storageMovements.length; i++) { + if ( ! this.storageMovements[i].used) { + allIsUsed = false; + } + } + var proposeAnotherLocation = quantityIsRemaining && allIsUsed; + if (proposeAnotherLocation) { + var storageMovement; + $.ajax({ + dataType: "json", + url: getRealTimeStorageMovementTaskJsonUrl, + data: { articleId: this.articleId }, + async: false, + success: function(data) { + storageMovement = data.realTimeStorageMovementTask; + }, + fail: function(jqXHR, textStatus, errorThrown) { + console.error(jqXHR); + console.error(textStatus); + console.error(errorThrown); + } + }); + if (storageMovement.articleUnavailable) { + alert('Plus de stock'); } else { - storageMovement.expectedQuantity = storageMovement.storedArticle.quantity; + if (this.expectedQuantity) { + storageMovement.expectedQuantity = Math.min(model.remaining(), storageMovement.storedArticle.quantity); + } else { + storageMovement.expectedQuantity = storageMovement.storedArticle.quantity; + } + this.storageMovements.push(storageMovement); + this.storageMovementsIndex += 1; } - this.storageMovements.push(storageMovement); - this.storageMovementsIndex += 1; } } @@ -233,14 +244,6 @@ view.refresh(); - var proposeAnotherLocation = ! model.expectedQuantity // pas de quantité demandée précisée au départ donc on ne sait pas s'il faut s'arrêter donc on propose au cas où - || model.withdrawn() < model.expectedQuantity // on a une quantité demandée mais on ne l'a pas encore atteinte - if (proposeAnotherLocation) { - model.newEmptyStorageMovementForNextLocation(); - } - - view.refresh(); - }, onNext : function() { @@ -249,6 +252,10 @@ controller.next(false); + model.newEmptyStorageMovementForNextLocation(); + + view.refresh(); + } catch (ex) { if (ex instanceof ValidationError) { @@ -266,6 +273,10 @@ controller.next(true); + model.newEmptyStorageMovementForNextLocation(); + + view.refresh(); + } catch (ex) { if (ex instanceof ValidationError) { @@ -306,6 +317,12 @@ $('#withdraw-item').submit(); + } else { + + model.newEmptyStorageMovementForNextLocation(); + + view.refresh(); + } }
participants (1)
-
bleny@users.forge.codelutin.com