-
Notifications
You must be signed in to change notification settings - Fork 27
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
Stocktake, adjusts based on snapshot quantity difference not on real quantity difference #638
Comments
A correction (while talking to @ujwalSussol), he explained, and I tested. mSupply Desktop adjusts stocktake based on 'difference' between snapshot and counted quantity. (and as explained above mobile sets real quantity = counted quantity).
This is makes sense if stocktake counted/actual quantity is entered before the customer invoice (i.e. most places when doing stocktake, a printout is given to the store-man, who does a 'snapshot' stocktake, and data entry may 'lag' behind stocktake's finalisation). Makes a little less sense when we assume that at the time of finalisation, counted quantity is the actual, real quantity of the stock. (which maybe what happens in mobile ?) I am happy with replicating mSupply logic of adjustments. |
Replicating mSupply desktop logic is probably the best approach. This way our documentation will be the same….
… On 26 Mar 2018, at 18:07, Andrei ***@***.***> wrote:
A correction (while talking to @ujwalSussol <https://github.com/ujwalSussol>), he explained, and I tested. mSupply Desktop adjusts stocktake based on 'difference' between snapshot and counted quantity. (and as explained above mobile sets real quantity = counted quantity).
Scenario:
Stock adjusted in stocktake, -100
Customer invoice is created, -100
Stocktake is finalised, total reduction of real quantity = -200
This is makes sense if stocktake counted/actual quantity is entered before the customer invoice (i.e. most places when doing stocktake, a printout is given to the store-man, who does a 'snapshot' stocktake, and data entry may 'lag' behind stocktake's finalisation).
Makes a little less sense when we assume that at the time of finalisation, counted quantity is the actual, real quantity of the stock. (which maybe what happens in mobile ?)
I am happy with replicating mSupply logic of adjustments.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub <#638 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AGc26iGXIDFdLQYW7QLXPneB_fcghbRKks5tiN2fgaJpZM4S67xZ>.
|
@GaryWilletts I detect has 2 cents given a comment on cerb. @sussol/msupplyadmin in general probably have some wisdom on the matter. |
Aye, I do! Changing the snapshot is a bad idea. The assumed way of working in mSupply desktop is that you stop all normal warehouse activity after the snapshot is taken, make the physical count, finalise the stocktake then resume normal warehouse activities. On average, this will be easier in mobile stores because they're smaller. But whichever way you work it, you have to assume the operators are behaving one way or another, you can't read their minds to know what's been counted. So best to keep it simple and prescribe what most people expect and understand - no transactions while the stock is being counted after the snapshot is taken. |
@Chris-Petty I think I confused you re how mSupply desktop applies the adjustments, it doesn't actually look at the counted quantity vs actual quantity, it looks at counted quantity vs snapshot quantity and tried to apply the difference to actual quantity. |
I am quite keen to reduce user error / confusion that results from stocktake (not by telling user not to do something, but by removing the possibility of that something being done). For desktop I can only see one issue, when stocktake is finalised, the counted quantity is not necessary what the quantity will be adjusted to.. This maybe confusing for the user Mobile, as outlined above will always adjust quantity to be counted quantity on finalisation, but mobile may create inventory adjustments that lead to ledger discrepancies (even thought the counted/actual quantity should stay correct) |
Are you still arguing your case for in your original comment? In mobile it can only make ledger issues if you abuse that bug we know about right? I agree it'd be better if mobile and desktop did the same by applying difference. Going negative stock should be blocked, but if we do (through a bug that allows it) I think mobile should show it. Not sure if silly idea: What if stocktake had a "Refresh" button. It'd have a modal that comes up that warns/confirms. It'd look at past transactions since the creation date of the stocktake and adjust snapshot and counted quantities (don't touch "Not counted") by the same amount. Bring the creation date forward. Though if you've left your stocktake floating around like that to begin with, normal practice would be just to delete it as far as I know. |
@Chris-Petty be sure, the idea is silly ;-) I foresee a world of pain if you allow stocktakes to be updated like that. You're right, normal procedure is to delete the stocktake and start again. @andreievg when you say:
under what circumstances will the quantity the stock has been adjusted to not match the counted quantity? |
@GaryWilletts @Chris-Petty I like the idea of refresh button, I think the solution we discussed yesterday is similar 'auto-refresh'. Anytime a stocktake is opened, we check snapshot quantity vs actual quantity for every stocktake line, if snapshot quantity is different, then we readjust it and set counted quantity field to 'not counted'. Also a modal will pop up, listing items which have been 'refreshed', maybe even a message warning that while stocktake is in progress, one should not make/edit transactions with items in the stocktake. Benefits:
|
Ok I've been testing in mobile and have come to some conclusions. Little bit weird. Just to be clear "Stock on Hand"/"Actual Stock" will be referred to as SOH. Case one Make a stocktake for itemA (increasing) and then customer invoice
Case two - Make a stocktake for itemA (decreasing) and then customer invoice (this is the one Andrei originally described)
Case three - Make a stocktake for itemA and then supplier invoice Mobile is doing a bad between customer invoice and stocktake. Pending me investigating exactly what happens on the mobile side: @GaryWilletts, @craigdrown @adrianwb didn't complain when we talked about refreshing/resetting lines yesterday. I will note that mobile does give us a bit of flexibility to do this because there is only ever one point of data entry for , the tablet. This wouldn't work with desktop due to the multi client environment and tendency to print out stocktake sheets. Actions
|
@andreievg thanks, just checking I was understanding what you were saying - I was :-) @Chris-Petty I'm coming round to the idea of refreshing the snapshot in mobile but I'm still not convinced. Let's see what your investigations show. Someone has to stand up for tradition ;-) |
Sorry to be adding comments to this discussion this late. My suggestion was to reset snapshot and counted quantity (without an option, but with a message) for all items where snapshot quantity != actual quantity (current available quantity), and do this every time a stock take is opened, with a message saying something along those lines: This way we are completely locking the user out of making 'error' or something they will perceive as errors. There is a scenario where there might be a question, will give an example at the very bottom of this comment. @Chris-Petty, I am happy with replicating the adjustment logic as per mSupply.
Would it not be better if the user does not ask us questions, and or thinks that our system is erroneously adjusting the stock ? There is a potential confusion for the user as per my suggestion. They can ask a question
I am still holding strong to resetting all snapshot quantities / counted quantities. Thus all the scenarios. |
Your first 2 examples assume that they press the cancel button, not heeding the warning given to them. The blunt way to resolve that would be to not allow it to be cancelled. It's up to us if we want the new functionality/behaviour as optional. Counted items that are fine have their work preserved but the risk of error on other lines is resolved.
Your suggestion of resetting any lines of Just a note: The current implementation in #655 will prompt every time they look at the stocktake until it's finalised. Could also prompt on editing every line (don't think it'll be much overhead). |
So far training has not helped (I'll telegram you examples shortly), imagine 100+ mobile sites, doing stocktake every month, with possibility of erroneous adjustments. That's a lot of support emails, we can solve this issue for mobile once and for all by reseting as i've suggested, why not do it ? Why allow a possibility of erroneous adjustments ?
With no cancel button and resetting snapshot and counted quantity for all items that had stock movements since stocktake started, we don't need to prompt on every line edit. If we are in disagreement here still by the end of the day, we should ask for some mSupply guru opinions. (it's too much of a blocker atm) |
I agree with making it non optional. I can get on board with resetting all stocktake lines that have had movement (i.e. including those that wouldn't result in negative stock). It should lead to less support for us and possibly a little more rework for them (though they should learn to avoid doing invoices while a stocktake is in progress as you've reiterated). @sussol/managers can interject, but I'll move forward with that until then. |
…tems @Chris-Petty i like it! Thanks for the changes
The same issue applies to mSupply desktop and we should keep the two consistent. Whichever way it's done, the user has to know because it makes a difference to what they count in a stocktake. Other options are to disallow confirming an invoice with an item included in an unfinalised stocktake or to warn the user if they confirm an invoice with an item in an unfinalised stocktake. @craigdrown @craig you have an opinion? |
Mobile customer invoices are confirmed by default, so that's a bit of a paradigm shift on that platform @GaryWilletts . An equivalent would be not allowing confirmed invoices to be edited, though. |
Ah, I'd forgotten that. We just need to make a decision about the way to go and it's not entirely clear which way is best, hence our long discussions. Personally I'd rather prevent someone editing a confirmed customer invoice in mobile if there's an unfinalised stocktake with the edited item on it (or putting the item on a new customer invoice if it's in an unfinalised stocktake). It prevents stock issues and trains the user to use correct stocktaking practice at the same time. Is the check expensive in mobile? |
@GaryWilletts, this type of check is expensive in terms of keeping the code clean. If we do this type of check then it will have to be for Custom Invoices, Supplier Invoices, Customer Requisition (as it generates CI automatically) and for Other Stocktakes. Can you please describe which part of the described solution you don't like or disagree with. Described solution being reseting the items in stocktake that have changed quantity (stock issued or received while stocktake is in progress) Please keep in mind that this solution is aimed at mobile not desktop, where the scale of everything is smaller. |
I'm not in disagreement, just trying to think round the wider issues. It's a pretty radical change and mobile and desktop will be working differently - important we do it the right way. The expensive argument doesn't work I think because your proposed change is more expensive in all ways - you have to have the same checking code as if you were warning/stopping the user but you additionally have to check and update all suggested stocktakes. I'm OK with updating the snapshot, just making sure it's properly thought through. Think of me as the grit that leads to the pearl ;-) |
Current mSupply desktop logic : example 1 : Snapshot = 600 user issues = 100 Now stock take is finalised : 500 [current stock level] - 350 [stocktake difference] = 150 example 2: Snapshot = 600 user issues = 400 Now stock take is finalised : 200 [current stock level] - 350 [stocktake difference] = -150 Instead it used to do : 200 [current stock level] - 200 [stocktake difference] = 0 .... Now we show the excel sheet which has created complication to the user.... Previously the inventory adjustment would be adjusted to bring the stock to zero.... If absolutely no stock was available, mSupply even adjusted the stock take to zero. This was before the excel option..... Now we are having to bring back this feature as our users can't handle the excel sheet. |
In mobile there is only ever a single page interface (no multi window) so we can quite easily adjust snapshot quantity for items where snapshot quantity differs from available quantity. This is done when stocktake is opened, so not expensive at all
Yeah, there will be differences in how mobile and desktop handles stock-takes. Mobile already differs in a few ways from desktop, I think the differences were driven by trying to simplify Mobiles interface and operations. I believe this new change to stocktake reset is the simplest way to avoid user error, user confusion (leading to support tickets). On a side note, it look like one good difference, the requisition modal, is being applied to desktop now. |
@ujwalSussol @GaryWilletts @craigdrown For stocktake table, change And when stocktake row is double clicked, can add extra information. We can even include a little formula here (maybe our interface can be in the
This way the user will know what's actually going on with stocktake adjustments. |
Obligatory "If we had a proper UX team and user testing/feedback system... " |
@ujwalSussol can I ask why there was the move to the excel option to start with? The approach that you're bringing back is pretty simple but... is it gross? What I've implemented on mobile |
I've talked to Chris a little bit, it seems |
I've moved mSupply desktop related discussion to: https://bugs.msupply.org.nz/view.php?id=8811 |
@Chris-Petty : I think we had one client that noticed mSupply making stock take adjustment and ledger adjustment due to lack of stock.... So the excel approach was to stop the process and to allow the users to logically do the maths.... As we have noticed lately this was asking too much of the users..... So the easy option for desktop is to use bring the previous approach back but to have logs mention lack of stock for stock take, so mSupply made stock take and ledger adjustment. For mobile : What every way you have done is fine for now.... as long as we don't have ledger problems. |
Apparently I sleepily closed this issue and commented a half comment haha |
Stock-takes by their nature need to be done synchronously to other actions like receiving/issuing stock. This is explained in training but is not restricted in the app. Sound like we need to handle the cases where users issues/receives stock while stocktake is in progress, to minimise a chance of ledger issues.
Currently when stocktake is finalise we create an inventory adjustment based on difference between snapshot quantity, not actual quantity. This can result in ledger discrepancy.
i.e.
Item A -> Starting Quantity: 1000
So our actual quantity = 900 but our ledger reads:
Starting Quantity = 1000
Transaction Line A -100
Transaction Line B -100
Expected Quantity = 800
Even though Quantity is correct, ledger is not.
This is how this example looks in mSupply Desktop Item->Stock->Ledger:
Prior to #634 with some trickery it was possible to finalise an a stocktake that show a negative ledger.
Solution:
@GaryWilletts @ujwalSussol @Chris-Petty @craigdrown, which one do you prefer ?
The text was updated successfully, but these errors were encountered: