50 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
 | |
| # License: GNU General Public License v3. See license.txt
 | |
| 
 | |
| 
 | |
| import frappe
 | |
| from frappe import _
 | |
| from frappe.utils import flt
 | |
| 
 | |
| 
 | |
| def get_context(context):
 | |
| 	context.no_cache = 1
 | |
| 	context.show_sidebar = True
 | |
| 	context.doc = frappe.get_doc(frappe.form_dict.doctype, frappe.form_dict.name)
 | |
| 	if hasattr(context.doc, "set_indicator"):
 | |
| 		context.doc.set_indicator()
 | |
| 
 | |
| 	context.parents = frappe.form_dict.parents
 | |
| 	context.title = frappe.form_dict.name
 | |
| 
 | |
| 	if not frappe.has_website_permission(context.doc):
 | |
| 		frappe.throw(_("Not Permitted"), frappe.PermissionError)
 | |
| 
 | |
| 	default_print_format = frappe.db.get_value('Property Setter', dict(property='default_print_format', doc_type=frappe.form_dict.doctype), "value")
 | |
| 	if default_print_format:
 | |
| 		context.print_format = default_print_format
 | |
| 	else:
 | |
| 		context.print_format = "Standard"
 | |
| 	context.doc.items = get_more_items_info(context.doc.items, context.doc.name)
 | |
| 
 | |
| def get_more_items_info(items, material_request):
 | |
| 	for item in items:
 | |
| 		item.customer_provided = frappe.get_value('Item', item.item_code, 'is_customer_provided_item')
 | |
| 		item.work_orders = frappe.db.sql("""
 | |
| 			select
 | |
| 				wo.name, wo.status, wo_item.consumed_qty
 | |
| 			from
 | |
| 				`tabWork Order Item` wo_item, `tabWork Order` wo
 | |
| 			where
 | |
| 				wo_item.item_code=%s
 | |
| 				and wo_item.consumed_qty=0
 | |
| 				and wo_item.parent=wo.name
 | |
| 				and wo.status not in ('Completed', 'Cancelled', 'Stopped')
 | |
| 			order by
 | |
| 				wo.name asc""", item.item_code, as_dict=1)
 | |
| 		item.delivered_qty = flt(frappe.db.sql("""select sum(transfer_qty)
 | |
| 						from `tabStock Entry Detail` where material_request = %s
 | |
| 						and item_code = %s and docstatus = 1""",
 | |
| 						(material_request, item.item_code))[0][0])
 | |
| 	return items
 |