Purchase in batches but sale as loose items

In wholesales textiles purchase and stock movement till it reaches the shop floor is tracked as batches, UOM as metres but sold as loose/non-batch item with only UOM as metre.

Can this be achieved without having to create a non-batch duplicate item for each item and doing a stock adjustment whenever a batch reaches the shop floor?

Related industry post, seemingly of pre-batch ERPNext era, discussing alternative approaches to solving similar problem -

Can repacking help? Item Repack

@kennethsequeira Already tried repacking. It will work only if I maintain duplicate items for each item - One batch tracked and another non-batch tracked, both with UOM Metres. Repacking has a pre-requisite of source and target items and that is what I wanted to avoid.

The pain with the current process of a single batch tracked item is the need to have to select a batch (a rather slow process for a wholesale business) at the time of selling. Also the batch no. is not being filtered down to what is present in the shop (the selected warehouse) and rather all are being listed. May be some js improvements will fix this.

Sharing this which may hopefully help communicate the pain points -

Each invoice involves entering 10-40 such item lines and the above illustrated process is extremely slow and unacceptable.

A few answers may help me work towards some acceptable improvements with the current process -

  1. Is there a setting I can configure to restrict sales from just one warehouse/location i.e. one can only sell items from batches that have made it to the shop-floor? This will reduce the confusion while choosing a batch.
    Setting up a POS profile seems to be one way to do it. But still the filtration for batch nos. doesn’t work. May need customisation.

  2. How can I ensure that the Qty = Available? This doesn’t seem to be achievable through Customize Form. Is playing with the js files needed for this?

And also the implementation around batches need a lot of, even though minor enhancements/refinements, like -

If my above thought process can be validated, then either I can try and dabble with the code and contribute and/or shall create github issues for them.

Aside: The above gif also highlights the bug referenced herein -