mirror of
https://github.com/frappe/erpnext.git
synced 2026-04-14 04:15:10 +00:00
fix: child item picker picking all items when creating PI from PR
(cherry picked from commit 738c1e0d0a)
This commit is contained in:
@@ -599,6 +599,9 @@ erpnext.buying.PurchaseOrderController = class PurchaseOrderController extends (
|
|||||||
docstatus: 1,
|
docstatus: 1,
|
||||||
status: ["not in", ["Stopped", "Expired"]],
|
status: ["not in", ["Stopped", "Expired"]],
|
||||||
},
|
},
|
||||||
|
allow_child_item_selection: true,
|
||||||
|
child_fieldname: "items",
|
||||||
|
child_columns: ["item_code", "item_name", "qty", "rate", "amount"],
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
__("Get Items From")
|
__("Get Items From")
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
# License: GNU General Public License v3. See license.txt
|
# License: GNU General Public License v3. See license.txt
|
||||||
|
|
||||||
|
|
||||||
|
import json
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe import _
|
from frappe import _
|
||||||
from frappe.model.mapper import get_mapped_doc
|
from frappe.model.mapper import get_mapped_doc
|
||||||
@@ -235,7 +237,12 @@ def get_list_context(context=None):
|
|||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def make_purchase_order(source_name, target_doc=None):
|
def make_purchase_order(source_name, target_doc=None, args=None):
|
||||||
|
if args is None:
|
||||||
|
args = {}
|
||||||
|
if isinstance(args, str):
|
||||||
|
args = json.loads(args)
|
||||||
|
|
||||||
def set_missing_values(source, target):
|
def set_missing_values(source, target):
|
||||||
target.run_method("set_missing_values")
|
target.run_method("set_missing_values")
|
||||||
target.run_method("get_schedule_dates")
|
target.run_method("get_schedule_dates")
|
||||||
@@ -244,6 +251,11 @@ def make_purchase_order(source_name, target_doc=None):
|
|||||||
def update_item(obj, target, source_parent):
|
def update_item(obj, target, source_parent):
|
||||||
target.stock_qty = flt(obj.qty) * flt(obj.conversion_factor)
|
target.stock_qty = flt(obj.qty) * flt(obj.conversion_factor)
|
||||||
|
|
||||||
|
def select_item(d):
|
||||||
|
filtered_items = args.get("filtered_children", [])
|
||||||
|
child_filter = d.name in filtered_items if filtered_items else True
|
||||||
|
return child_filter
|
||||||
|
|
||||||
doclist = get_mapped_doc(
|
doclist = get_mapped_doc(
|
||||||
"Supplier Quotation",
|
"Supplier Quotation",
|
||||||
source_name,
|
source_name,
|
||||||
@@ -265,6 +277,7 @@ def make_purchase_order(source_name, target_doc=None):
|
|||||||
["sales_order", "sales_order"],
|
["sales_order", "sales_order"],
|
||||||
],
|
],
|
||||||
"postprocess": update_item,
|
"postprocess": update_item,
|
||||||
|
"condition": select_item,
|
||||||
},
|
},
|
||||||
"Purchase Taxes and Charges": {
|
"Purchase Taxes and Charges": {
|
||||||
"doctype": "Purchase Taxes and Charges",
|
"doctype": "Purchase Taxes and Charges",
|
||||||
|
|||||||
@@ -1322,8 +1322,8 @@ def make_purchase_invoice(source_name, target_doc=None, args=None):
|
|||||||
"postprocess": update_item,
|
"postprocess": update_item,
|
||||||
"filter": lambda d: (
|
"filter": lambda d: (
|
||||||
get_pending_qty(d)[0] <= 0 if not doc.get("is_return") else get_pending_qty(d)[0] > 0
|
get_pending_qty(d)[0] <= 0 if not doc.get("is_return") else get_pending_qty(d)[0] > 0
|
||||||
)
|
),
|
||||||
and select_item(d),
|
"condition": select_item,
|
||||||
},
|
},
|
||||||
"Purchase Taxes and Charges": {
|
"Purchase Taxes and Charges": {
|
||||||
"doctype": "Purchase Taxes and Charges",
|
"doctype": "Purchase Taxes and Charges",
|
||||||
|
|||||||
Reference in New Issue
Block a user