# 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