fix(ux): no need to select rows to unreserve the stock

This commit is contained in:
s-aga-r 2023-11-21 11:34:53 +05:30
parent 73586fd9b2
commit 2a41da94d4
2 changed files with 11 additions and 7 deletions

View File

@ -304,7 +304,7 @@ frappe.ui.form.on("Sales Order", {
cancel_stock_reservation_entries(frm) { cancel_stock_reservation_entries(frm) {
const dialog = new frappe.ui.Dialog({ const dialog = new frappe.ui.Dialog({
title: __("Stock Unreservation"), title: __("Stock Unreservation"),
size: "large", size: "extra-large",
fields: [ fields: [
{ {
fieldname: "sr_entries", fieldname: "sr_entries",
@ -316,9 +316,9 @@ frappe.ui.form.on("Sales Order", {
data: [], data: [],
fields: [ fields: [
{ {
fieldname: "name", fieldname: "sre",
fieldtype: "Link", fieldtype: "Link",
label: __("SRE"), label: __("Stock Reservation Entry"),
options: "Stock Reservation Entry", options: "Stock Reservation Entry",
reqd: 1, reqd: 1,
read_only: 1, read_only: 1,
@ -362,7 +362,7 @@ frappe.ui.form.on("Sales Order", {
doc: frm.doc, doc: frm.doc,
method: "cancel_stock_reservation_entries", method: "cancel_stock_reservation_entries",
args: { args: {
sre_list: data.sr_entries, sre_list: data.sr_entries.map(item => item.sre),
}, },
freeze: true, freeze: true,
freeze_message: __('Unreserving Stock...'), freeze_message: __('Unreserving Stock...'),
@ -388,7 +388,7 @@ frappe.ui.form.on("Sales Order", {
r.message.forEach(sre => { r.message.forEach(sre => {
if (flt(sre.reserved_qty) > flt(sre.delivered_qty)) { if (flt(sre.reserved_qty) > flt(sre.delivered_qty)) {
dialog.fields_dict.sr_entries.df.data.push({ dialog.fields_dict.sr_entries.df.data.push({
'name': sre.name, 'sre': sre.name,
'item_code': sre.item_code, 'item_code': sre.item_code,
'warehouse': sre.warehouse, 'warehouse': sre.warehouse,
'qty': (flt(sre.reserved_qty) - flt(sre.delivered_qty)) 'qty': (flt(sre.reserved_qty) - flt(sre.delivered_qty))

View File

@ -1053,12 +1053,14 @@ def cancel_stock_reservation_entries(
from_voucher_type: Literal["Pick List", "Purchase Receipt"] = None, from_voucher_type: Literal["Pick List", "Purchase Receipt"] = None,
from_voucher_no: str = None, from_voucher_no: str = None,
from_voucher_detail_no: str = None, from_voucher_detail_no: str = None,
sre_list: list[dict] = None, sre_list: list = None,
notify: bool = True, notify: bool = True,
) -> None: ) -> None:
"""Cancel Stock Reservation Entries.""" """Cancel Stock Reservation Entries."""
if not sre_list: if not sre_list:
sre_list = {}
if voucher_type and voucher_no: if voucher_type and voucher_no:
sre_list = get_stock_reservation_entries_for_voucher( sre_list = get_stock_reservation_entries_for_voucher(
voucher_type, voucher_no, voucher_detail_no, fields=["name"] voucher_type, voucher_no, voucher_detail_no, fields=["name"]
@ -1082,9 +1084,11 @@ def cancel_stock_reservation_entries(
sre_list = query.run(as_dict=True) sre_list = query.run(as_dict=True)
sre_list = [d.name for d in sre_list]
if sre_list: if sre_list:
for sre in sre_list: for sre in sre_list:
frappe.get_doc("Stock Reservation Entry", sre["name"]).cancel() frappe.get_doc("Stock Reservation Entry", sre).cancel()
if notify: if notify:
msg = _("Stock Reservation Entries Cancelled") msg = _("Stock Reservation Entries Cancelled")