From 175d604f5ffd98df2ee46da1592babb807bc433d Mon Sep 17 00:00:00 2001 From: Himanshu Warekar Date: Wed, 4 Dec 2019 23:08:51 +0530 Subject: [PATCH] chore: commonize function --- erpnext/projects/doctype/project/project.js | 77 ++++++--------------- 1 file changed, 21 insertions(+), 56 deletions(-) diff --git a/erpnext/projects/doctype/project/project.js b/erpnext/projects/doctype/project/project.js index 069e3dc6fe..3570a0f2be 100644 --- a/erpnext/projects/doctype/project/project.js +++ b/erpnext/projects/doctype/project/project.js @@ -4,68 +4,16 @@ frappe.ui.form.on("Project", { setup(frm) { frm.make_methods = { 'Timesheet': () => { - let doctype = 'Timesheet'; - frappe.model.with_doctype(doctype, () => { - let new_doc = frappe.model.get_new_doc(doctype); - - // add a new row and set the project - let time_log = frappe.model.get_new_doc('Timesheet Detail'); - time_log.project = frm.doc.name; - time_log.parent = new_doc.name; - time_log.parentfield = 'time_logs'; - time_log.parenttype = 'Timesheet'; - new_doc.time_logs = [time_log]; - - frappe.ui.form.make_quick_entry(doctype, null, null, new_doc); - }); + open_form(frm, "Timesheet", "Timesheet Detail", "time_logs"); }, 'Purchase Order': () => { - let doctype = 'Purchase Order'; - frappe.model.with_doctype(doctype, () => { - let new_doc = frappe.model.get_new_doc(doctype); - - // add a new row and set the project - let purchase_order_item = frappe.model.get_new_doc('Purchase Order Item'); - purchase_order_item.project = frm.doc.name; - purchase_order_item.parent = new_doc.name; - purchase_order_item.parentfield = 'items'; - purchase_order_item.parenttype = 'Purchase Order'; - new_doc.items = [purchase_order_item]; - - frappe.ui.form.make_quick_entry(doctype, null, null, new_doc); - }); + open_form(frm, "Purchase Order", "Purchase Order Item", "items"); }, 'Purchase Receipt': () => { - let doctype = 'Purchase Receipt'; - frappe.model.with_doctype(doctype, () => { - let new_doc = frappe.model.get_new_doc(doctype); - - // add a new row and set the project - let purchase_receipt_item = frappe.model.get_new_doc('Purchase Receipt Item'); - purchase_receipt_item.project = frm.doc.name; - purchase_receipt_item.parent = new_doc.name; - purchase_receipt_item.parentfield = 'items'; - purchase_receipt_item.parenttype = 'Purchase Receipt'; - new_doc.items = [purchase_receipt_item]; - - frappe.ui.form.make_quick_entry(doctype, null, null, new_doc); - }); + open_form(frm, "Purchase Receipt", "Purchase Receipt Item", "items"); }, 'Purchase Invoice': () => { - let doctype = 'Purchase Invoice'; - frappe.model.with_doctype(doctype, () => { - let new_doc = frappe.model.get_new_doc(doctype); - - // add a new row and set the project - let purchase_invoice_item = frappe.model.get_new_doc('Purchase Invoice Item'); - purchase_invoice_item.project = frm.doc.name; - purchase_invoice_item.parent = new_doc.name; - purchase_invoice_item.parentfield = 'items'; - purchase_invoice_item.parenttype = 'Purchase Invoice'; - new_doc.items = [purchase_invoice_item]; - - frappe.ui.form.make_quick_entry(doctype, null, null, new_doc); - }); + open_form(frm, "Purchase Invoice", "Purchase Invoice Item", "items"); }, }; }, @@ -171,3 +119,20 @@ frappe.ui.form.on("Project", { }, }); + +function open_form(frm, doctype, child_doctype, parentfield) { + frappe.model.with_doctype(doctype, () => { + let new_doc = frappe.model.get_new_doc(doctype); + + // add a new row and set the project + let new_child_doc = frappe.model.get_new_doc(child_doctype); + new_child_doc.project = frm.doc.name; + new_child_doc.parent = new_doc.name; + new_child_doc.parentfield = parentfield; + new_child_doc.parenttype = doctype; + new_doc[parentfield] = [new_child_doc]; + + frappe.ui.form.make_quick_entry(doctype, null, null, new_doc); + }); + +} \ No newline at end of file