-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Keep backorders when splitting part of variant to new shipment with same SL #5670
base: main
Are you sure you want to change the base?
Keep backorders when splitting part of variant to new shipment with same SL #5670
Commits on Mar 7, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 319cb6e - Browse repository at this point
Copy the full SHA 319cb6eView commit details -
Move let statements inside context block
These are already overridden in all other first-level context blocks so it makes sense to move them in the single block that relies on these values.
Configuration menu - View commit details
-
Copy full SHA for 9062828 - Browse repository at this point
Copy the full SHA 9062828View commit details -
Also, a couple of useless `let!` are removed (these records already exist).
Configuration menu - View commit details
-
Copy full SHA for 57c62ab - Browse repository at this point
Copy the full SHA 57c62abView commit details -
The removed spec can be replaced by the shared example, which includes one further test so it slightly improves coverage.
Configuration menu - View commit details
-
Copy full SHA for 2ff1bf4 - Browse repository at this point
Copy the full SHA 2ff1bf4View commit details -
This helps keeping things in sync just in the case that numbers change.
Configuration menu - View commit details
-
Copy full SHA for 0d1e747 - Browse repository at this point
Copy the full SHA 0d1e747View commit details -
Extract shared example for later reuse
These specs don't really require a specific first level scenario, so we're first extracting them to a shared example, and with the following commit we're going to use it in other existing scenarios.
Configuration menu - View commit details
-
Copy full SHA for 0079208 - Browse repository at this point
Copy the full SHA 0079208View commit details -
Rework and reuse inventory units shared example
The existing scenario is reworked in order to expose an issue when moving a few items of a variant (not all of them) to a shipment with same stock location as the original one.
Configuration menu - View commit details
-
Copy full SHA for 67e609b - Browse repository at this point
Copy the full SHA 67e609bView commit details -
Refactor Quantifier initialization
This is propedeutic for the following commit.
Configuration menu - View commit details
-
Copy full SHA for 0524dcd - Browse repository at this point
Copy the full SHA 0524dcdView commit details -
Add Quantifier#positive_stock method
When the quantifier is initialized with a stock location or its ID, the new method returns the positive amount of stock on hand or zero, if the stock for the variant is negative. Otherwise, it returns nil.
Configuration menu - View commit details
-
Copy full SHA for 2e17aeb - Browse repository at this point
Copy the full SHA 2e17aebView commit details -
Properly calculate inventory item quantities to be moved
The backordered quantity count should differ depending on whether moving to the same or a different stock location. For this reason, the way we calculate `available_quantity` changes as follows: * when the stock location differs: the stock on hand at the new shipment stock location; * when the stock location is the same: the sum of the stock on hand at the shipment stock location plus the number of on_hand inventory items from the shipment The explicit `backordered_quantity` variable is introduced to track the number of backordered items for the target shipment. The value is calculated as follows: * when the stock location differs: the quantity to be moved minus the positive available quantity at the stock location; * when the stock location is the same: the shipment total quantity for the variant minus the positive available quantity at the stock location. Also, we start the process by moving backordered items first to to make sure no pending backordered item remains. If the backordered count decreased, we're going to leave a few to be later moved and transformed to on hand, while if the backordered count increased, we are going to move also some previously on hand items.
Configuration menu - View commit details
-
Copy full SHA for a1bb98e - Browse repository at this point
Copy the full SHA a1bb98eView commit details