feat: Add option to create pick list from material request
This commit is contained in:
parent
8b4d604cfd
commit
9209570937
@ -502,3 +502,24 @@ def raise_work_orders(material_request):
|
||||
frappe.throw(_("Productions Orders cannot be raised for:") + '\n' + new_line_sep(errors))
|
||||
|
||||
return work_orders
|
||||
|
||||
@frappe.whitelist()
|
||||
def create_pick_list(source_name, target_doc=None):
|
||||
doc = get_mapped_doc('Material Request', source_name, {
|
||||
'Material Request': {
|
||||
'doctype': 'Pick List',
|
||||
'validation': {
|
||||
'docstatus': ['=', 1]
|
||||
}
|
||||
},
|
||||
'Material Request Item': {
|
||||
'doctype': 'Pick List Reference Item',
|
||||
'field_map': {
|
||||
'name': 'material_request_item',
|
||||
'qty': 'stock_qty'
|
||||
},
|
||||
# 'condition': lambda doc: abs(doc.transferred_qty) < abs(doc.required_qty)
|
||||
},
|
||||
}, target_doc)
|
||||
|
||||
return doc
|
@ -19,6 +19,13 @@ frappe.ui.form.on('Pick List', {
|
||||
}
|
||||
};
|
||||
});
|
||||
frm.set_query('material_request', () => {
|
||||
return {
|
||||
filters: {
|
||||
'material_request_type': ['=', frm.doc.purpose]
|
||||
}
|
||||
};
|
||||
});
|
||||
},
|
||||
refresh: (frm) => {
|
||||
frm.trigger('add_get_items_button');
|
||||
@ -70,6 +77,15 @@ frappe.ui.form.on('Pick List', {
|
||||
}, __("Select Quantity"), __('Get Items'));
|
||||
});
|
||||
},
|
||||
material_request: (frm) => {
|
||||
frm.clear_table('items');
|
||||
frm.clear_table('locations');
|
||||
erpnext.utils.map_current_doc({
|
||||
method: 'erpnext.stock.doctype.material_request.material_request.create_pick_list',
|
||||
target: frm,
|
||||
source_name: frm.doc.material_request
|
||||
});
|
||||
},
|
||||
purpose: (frm) => {
|
||||
frm.clear_table('items');
|
||||
frm.clear_table('locations');
|
||||
@ -116,14 +132,4 @@ frappe.ui.form.on('Pick List', {
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// frappe.ui.form.on('Pick List Reference Item', {
|
||||
// item_code: (frm, cdt, cdn) => {
|
||||
// let row = locals[cdt][cdn];
|
||||
// if (row.item_code) {
|
||||
// frappe.xcall('');
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
});
|
@ -8,6 +8,7 @@
|
||||
"purpose",
|
||||
"customer",
|
||||
"work_order",
|
||||
"material_request",
|
||||
"for_qty",
|
||||
"column_break_4",
|
||||
"parent_warehouse",
|
||||
@ -97,10 +98,17 @@
|
||||
"fieldtype": "Select",
|
||||
"label": "Purpose",
|
||||
"options": "Material Transfer for Manufacture\nMaterial Issue\nMaterial Transfer\nDelivery against Sales Order"
|
||||
},
|
||||
{
|
||||
"depends_on": "eval:['Material Transfer', 'Material Issue'].includes(doc.purpose)",
|
||||
"fieldname": "material_request",
|
||||
"fieldtype": "Link",
|
||||
"label": "Material Request",
|
||||
"options": "Material Request"
|
||||
}
|
||||
],
|
||||
"is_submittable": 1,
|
||||
"modified": "2019-08-22 16:58:07.270447",
|
||||
"modified": "2019-08-23 12:34:00.223445",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Stock",
|
||||
"name": "Pick List",
|
||||
|
@ -41,6 +41,8 @@ class PickList(Document):
|
||||
'item_code': item_code,
|
||||
'sales_order': item_doc.sales_order,
|
||||
'sales_order_item': item_doc.sales_order_item,
|
||||
'material_request': item_doc.material_request,
|
||||
'material_request_item': item_doc.material_request_item,
|
||||
'uom': item_doc.uom,
|
||||
'stock_uom': item_doc.stock_uom,
|
||||
'conversion_factor': item_doc.conversion_factor,
|
||||
@ -231,7 +233,6 @@ def set_delivery_note_missing_values(target):
|
||||
target.run_method('set_po_nos')
|
||||
target.run_method('calculate_taxes_and_totals')
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def create_stock_entry(pick_list):
|
||||
pick_list = frappe.get_doc(json.loads(pick_list))
|
||||
@ -282,6 +283,28 @@ def create_stock_entry(pick_list):
|
||||
|
||||
return stock_entry.as_dict()
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def create_stock_entry_with_material_request_items(pick_list):
|
||||
stock_entry = frappe.new_doc('Stock Entry')
|
||||
stock_entry.pick_list = pick_list.get('name')
|
||||
stock_entry.purpose = pick_list.get('purpose')
|
||||
stock_entry.set_stock_entry_type()
|
||||
|
||||
doc = get_mapped_doc("Work Order", source_name, {
|
||||
"Work Order": {
|
||||
"doctype": "Pick List",
|
||||
"validation": {
|
||||
"docstatus": ["=", 1]
|
||||
}
|
||||
},
|
||||
"Work Order Item": {
|
||||
"doctype": "Pick List Reference Item",
|
||||
"postprocess": update_item_quantity,
|
||||
"condition": lambda doc: abs(doc.transferred_qty) < abs(doc.required_qty)
|
||||
},
|
||||
}, target_doc)
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_pending_work_orders(doctype, txt, searchfield, start, page_length, filters, as_dict):
|
||||
return frappe.db.sql("""
|
||||
|
@ -24,7 +24,9 @@
|
||||
"batch_no",
|
||||
"column_break_15",
|
||||
"sales_order",
|
||||
"sales_order_item"
|
||||
"sales_order_item",
|
||||
"material_request",
|
||||
"material_request_item"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
@ -152,10 +154,21 @@
|
||||
{
|
||||
"fieldname": "column_break_20",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "material_request",
|
||||
"fieldtype": "Link",
|
||||
"label": "Material Request",
|
||||
"options": "Material Request"
|
||||
},
|
||||
{
|
||||
"fieldname": "material_request_item",
|
||||
"fieldtype": "Data",
|
||||
"label": "Material Request Item"
|
||||
}
|
||||
],
|
||||
"istable": 1,
|
||||
"modified": "2019-08-14 18:41:37.727388",
|
||||
"modified": "2019-08-23 14:13:11.088354",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Stock",
|
||||
"name": "Pick List Item",
|
||||
|
Loading…
x
Reference in New Issue
Block a user