* feat: add `Has Serial No` and `Has Batch No` fields in SRE
* chore: set `Has Serial No` and `Has Batch No` while creating SRE
* feat: add field `Reserved Serial and Batch` in SRE
* fix(ux): hide `Amend` button on cancelled SRE
* fix: add validation for SRE amended doc
* fix(ux): hide `Reserved Serial and Batch` Table for non-serial/batch item
* fix(ux): set `Display Depends On` for `Has Serial No` and `Has Batch No` in SRE
* fix(ux): make `serial_no` and `batch_no` fields read-only based on `has_serial_no` and `has_batch_no`
* chore: remove table `Serial and Batch Entry` fieldlabel
* fix(ux): set warehouse for new row
* fix(ux): make qty field read-only for serial item
* fix(ux): set rows qty to `1` before making the field read-only
* chore: add filters for serial no
* chore: add filters for batch no
* chore: don't show Serial NO if already selected
* chore: hide rate related fields
* feat: add field `Reservation Based On` in SRE
* chore: make `Reserved Qty` field editable in SCR
* chore: add method to get total reserved qty against a voucher
* fix: add validation for `Reserved Qty`
* fix: update SRE status and Voucher's Reserved Qty
* chore: enable `Track Changes` in SRE
* fix: add validation to prevent delivered SRE to get updated
* fix(ux): make fields `Reserved Qty` and `Reservation Based On` read-only for delivered SRE
* fix: consider voucher's delivered qty while calculating max reserved qty
* fix: add UOM validation for SRE Reserved Qty
* fix: SRE warehouse mismatch error in DN
* fix: auto cancel SRE on update if item is fully delivered for the SO
* fix: skip SRE creation for group warehouse
* feat: add `Set Warehouse` field in SO stock reservation dialog
* fix(ux): hide `Add Row` button in SO stock reservation dialog
* fix: group warehouse validation in SO
* fix(ux): don't show Batch No if already selected
* feat: add field `Auto Reserve Serial and Batch Nos` in `Stock Settings`
* refactor: SRE reserved qty validation
* feat: auto serial and batch reservation
* chore: add section for `Serial and Batch Reservation` in `Stock Settings`
* fix: make SRE sb_entries warehouse mandatory
* fix(ux): unreserved qty calculation
* fix: add validation for `Reserved Qty` against `Batch`
* refactor: combine `get_available_qty_to_reserve()` and `get_available_qty_to_reserve_batch()`
* fix: validate disabled batch
* fix: add validation to validate serial nos availability
* fix: update row qty if `Partial Reservation` is enabled
* fix: ignore reserved serial nos while getting available serial nos
* fix: add validation to prevent repeat batches
* fix(ux): add validation for duplicate Serial No
* fix: don't allow to update SRE with delivered stock
* fix: ignore reserved serial and batch if reservation based on is not Serial and Batch
* fix(ux): stock un-reservation confirmation before `Update Items`
* chore: return list instead os set
* feat: add field `Delivered Qty` in `Serial and Batch Entry`
* feat: option to get SO reserved stock in Delivery Note
* fix: ignore reserved batches while getting available batches
* chore: `conflicts`
* fix: incorrect available qty
* fix: 'str' object has no attribute 'nodes_'
* fix: `linter`
* fix(ux): hide `Get Items From > Stock Reservation` if Stock Reservation is disabled
* fix(ux): add `depends_on` for `Auto Reserve Serial and Batch Nos`
* fix(ux): hide Stock Reservation field description in submitted SO
* fix(ux): confirm before unreserve stock
* feat: option to create DN for reserved stock from SO
* fix: update delivered qty in SRE sb_entries
* fix: Delivery Note (Reserved Stock) based on Delivery Date
* fix(ux): SO `Update Items` confirmation on `Update` button click
* feat: add dialog box to select SRE to unreserve
* fix: `ZeroDivisionError` while saving the DN (Reserved Stock)
* fix: don't allow to create Pick List if stock is reserved against SO
* fix(ux): hide Create > Pick List button for SO with reserved stock
* refactor: map reserved stock by default in DN
* refactor: code cleanup and comments
* fix: don't allow Stock Reservation against SO having Pick List
* refactor: `create_stock_reservation_entries()`
* feat: add fields to hold Pick List ref in SRE
* feat: add field `Stock Reserved Qty` in Pick List Item
* feat: provision to reserve stock from Pick List against Sales Order
* fix: don't allow to update SRE if created against a Pick List
* fix(ux): confirm before unreserve stock in Pick List
* fix: don't allow to update Pick List having reserved stock
* fix: circular dependency while cancelling the DN created from Pick List with Reserved Stock
* chore: update `Max Reserve Qty` err msg to be more descriptive
* refactor: rename field `Reserve Stock on Sales Order Submission`
* fix: msg on partial reservation if disabled in stock settings
* chore: add field description for `Enable Stock Reservation`
* fix(test): `test_stock_reservation_against_sales_order`
* fix(test): `test_stock_reservation_against_sales_order`
* test: add test cases for serial and batch reservation
* fix: batch stock levels qty
* refactor: method `get_sre_reserved_qty_for_item_and_warehouse`
* feat: show `Reserved Stock` in item master stock levels
* feat: Reserved Stock Report
* fix(ux): SO stock reservation dialogs width
* refactor: get previous values from `_doc_before_save` instead of db
* fix(ux): make `Reservation Based On` read-only if created against Pick List
* feat: option to open `Reserved Stock` report from Sales Order
* fix(ux): Sales Order - Reserve and Unreserve dialog box
* fix: decrease SRE Delivered Qty on DN cancel
* fix(ux): hide `Unreserve` button once reserved stock is delivered
* chore: `linter`
* fix(test): `test_reserved_stock_report`
* test: add test case for DN cancellation
* chore: rename field `Auto Reserve Stock on Sales Order Submission`
* fix: `Insufficient Stock` error msg
Huge size of string gets blasted to everyone on site. Due to some memory
leak (cause unknown) till sockets are open the strings are also in
process' memory.
related https://github.com/frappe/frappe/issues/21863