BeerSmith™ Home Brewing Forum

BeerSmith Software => Suggestions => Topic started by: Baldhead Brewer on October 01, 2013, 01:30:45 PM

Title: Realtime Inventory mangement
Post by: Baldhead Brewer on October 01, 2013, 01:30:45 PM
It would be nice if there were a more dynamic connection between the inventory and a recipe. Once one has opted to remove items from the inventory based on a recipe, the change is permanent with no option to put items back or change quantities. Oftentimes I am trying to develop a recipe, select the option to remove the ingredients from my inventory, but then discover I forgot something or need to make a change. Or I am developing a few recipes simultaneously in order to maximize available ingredients. The one way street of inventory removal makes this cumbersome.

Would it be possible for the link between the recipe and the ingredients be dynamic, so that I can change measurements in the recipe and the appropriate ammount would be added or subtracted from the inventory automatically? Perhaps the inventory could then list quantities based on 'Total Ammount,' 'Claimed' and 'Available.'

Title: Re: Realtime Inventory mangement
Post by: grathan on October 01, 2013, 02:29:14 PM

the ability to designate ingredients to planned batches. I plan to do 2 batches this weekend that use centennial, a quick scan has both recipes showing enough ingredients on hand, but in reality one is gonna be shorted.
Title: Re: Realtime Inventory mangement
Post by: Beer_Tigger on October 02, 2013, 08:24:40 AM

Planned would be good. BUT, from a programmer's point of view, which recipes are "planned" and which are just historical?  Meaning, would the "planned" ones be in a special folder, like a Brew Queue?  Otherwise how would the program identy fy which recipes to use?

As for the "Remove From Inventory", I like the way it works.  It means that I have actually brewed this recipe and these ingredients are gone.
Title: Re: Realtime Inventory mangement
Post by: grathan on October 02, 2013, 11:30:23 AM
Brew Queue, that would work.

Inventory should be more than just a list of names with arbitrary values. They should be actual objects with pointers to those exact objects used in recipes. There could be a recycle bin of sorts where ingredient objects from brewed recipes go.

That way if on brew day I used the wrong bag of centennial hops (newer ones) by mistake I can go back into the recipe and switch out to the other one and restore the other back to inventory.

"Remove from Inventory" should be automatic when used in conjunction with the brew log.

And also an editable 'inventory report' detailing additions and subtractions should be accessible with a click of a button. Or if not directly editable, it should link to the recipe where changes can be made.

Title: Re: Realtime Inventory mangement
Post by: Baldhead Brewer on October 03, 2013, 07:20:56 PM
What if there were a toggle option for "Claim items from inventory" that could be enabled or disabled. When enabled, the recipe has a dynamic link to the inventory and the user could tweak the recipe to their heart's desire and inventory is automatically updated as needed.

If the user unchecks the option, or switches it off, they could be asked "do you want to remove inventory items permanently?" and the program would behave as it does now. This way one could retire the recipe from development.

Some color coding might be nice here too. Items in the recipe with adequate inventory could be marked green, partial quantity yellow, and unavailable red.
Title: Re: Realtime Inventory mangement
Post by: darrellburk on November 23, 2020, 04:36:58 PM
I second the ideas in this post.

Here's my recommendation, as a software engineer and also a user of accounting software:

Brew log:
At the start of brewing a recipe, the brew log gets a copy of that recipe. Session data you capture gets attached to that log copy. The ingredients in that log copy become a permanent part of the inventory history. You can edit the brew log recipe independently of the "master" recipe from which it was copied, in order to make corrections from what you planned to do on brew day vs. what you actually did. You can use the same feature before you start brewing, in order to make substitutions (because you don't have Perle hops on hand...) for this brew, without changing the master recipe.

Inventory history:
Instead of there being "an inventory" that is simply a database of what you have on hand, the inventory is a history of additions and removals. Current inventory is the sum of all additions minus the sum of all removals. You can edit the history if needed, to correct it, and also to establish the "initial balance' of each inventory item. Brew log recipes are part of the history of removals. Inventory addition transactions can record things like "On this date, I added 55lb of Marris Otter pale malt, 1lb of Centennial hops, etc. Because of the history, it's possible to see what your inventory was at any time, not just what it is now. And all history entries are editable, so you can correct mistakes ("I forgot I also bought 5lb flaked maize that day...").

This approach also gives, for free, the ability to make substitutions that apply to this brewing session, while not changing the master recipe, in cases where you're not wanting to evolve the recipe, you're just wanting to brew something close to it using what you have on hand.