Merge pull request #23728 from marination/prod-plan-status

feat: Close Production Plan
This commit is contained in:
rohitwaghchaure 2020-10-30 14:23:25 +05:30 committed by GitHub
commit 2160050c82
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 57 additions and 34 deletions

View File

@ -56,23 +56,35 @@ frappe.ui.form.on('Production Plan', {
refresh: function(frm) { refresh: function(frm) {
if (frm.doc.docstatus === 1) { if (frm.doc.docstatus === 1) {
frm.trigger("show_progress"); frm.trigger("show_progress");
if (frm.doc.status !== "Completed") {
if (frm.doc.po_items && frm.doc.status !== "Closed") {
frm.add_custom_button(__("Work Order"), ()=> {
frm.trigger("make_work_order");
}, __('Create'));
}
if (frm.doc.mr_items && !in_list(['Material Requested', 'Closed'], frm.doc.status)) {
frm.add_custom_button(__("Material Request"), ()=> {
frm.trigger("make_material_request");
}, __('Create'));
}
if (frm.doc.status === "Closed") {
frm.add_custom_button(__("Re-open"), function() {
frm.events.close_open_production_plan(frm, false);
}, __("Status"));
} else {
frm.add_custom_button(__("Close"), function() {
frm.events.close_open_production_plan(frm, true);
}, __("Status"));
}
}
} }
if (frm.doc.docstatus === 1 && frm.doc.po_items if (frm.doc.status !== "Closed") {
&& frm.doc.status != 'Completed') { frm.page.set_inner_btn_group_as_primary(__('Create'));
frm.add_custom_button(__("Work Order"), ()=> {
frm.trigger("make_work_order");
}, __('Create'));
} }
if (frm.doc.docstatus === 1 && frm.doc.mr_items
&& !in_list(['Material Requested', 'Completed'], frm.doc.status)) {
frm.add_custom_button(__("Material Request"), ()=> {
frm.trigger("make_material_request");
}, __('Create'));
}
frm.page.set_inner_btn_group_as_primary(__('Create'));
frm.trigger("material_requirement"); frm.trigger("material_requirement");
const projected_qty_formula = ` <table class="table table-bordered" style="background-color: #f9f9f9;"> const projected_qty_formula = ` <table class="table table-bordered" style="background-color: #f9f9f9;">
@ -121,6 +133,18 @@ frappe.ui.form.on('Production Plan', {
set_field_options("projected_qty_formula", projected_qty_formula); set_field_options("projected_qty_formula", projected_qty_formula);
}, },
close_open_production_plan: (frm, close=false) => {
frappe.call({
method: "set_status",
freeze: true,
doc: frm.doc,
args: {close : close},
callback: function() {
frm.reload_doc();
}
});
},
make_work_order: function(frm) { make_work_order: function(frm) {
frappe.call({ frappe.call({
method: "make_work_order", method: "make_work_order",

View File

@ -275,7 +275,7 @@
"fieldtype": "Select", "fieldtype": "Select",
"label": "Status", "label": "Status",
"no_copy": 1, "no_copy": 1,
"options": "\nDraft\nSubmitted\nNot Started\nIn Process\nCompleted\nStopped\nCancelled\nMaterial Requested", "options": "\nDraft\nSubmitted\nNot Started\nIn Process\nCompleted\nClosed\nCancelled\nMaterial Requested",
"print_hide": 1, "print_hide": 1,
"read_only": 1 "read_only": 1
}, },
@ -304,9 +304,10 @@
} }
], ],
"icon": "fa fa-calendar", "icon": "fa fa-calendar",
"index_web_pages_for_search": 1,
"is_submittable": 1, "is_submittable": 1,
"links": [], "links": [],
"modified": "2020-02-03 00:25:25.934202", "modified": "2020-10-26 13:00:54.335319",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Manufacturing", "module": "Manufacturing",
"name": "Production Plan", "name": "Production Plan",

View File

@ -219,13 +219,17 @@ class ProductionPlan(Document):
filters = {'docstatus': 0, 'production_plan': ("=", self.name)}): filters = {'docstatus': 0, 'production_plan': ("=", self.name)}):
frappe.delete_doc('Work Order', d.name) frappe.delete_doc('Work Order', d.name)
def set_status(self): def set_status(self, close=None):
self.status = { self.status = {
0: 'Draft', 0: 'Draft',
1: 'Submitted', 1: 'Submitted',
2: 'Cancelled' 2: 'Cancelled'
}.get(self.docstatus) }.get(self.docstatus)
if close:
self.db_set('status', 'Closed')
return
if self.total_produced_qty > 0: if self.total_produced_qty > 0:
self.status = "In Process" self.status = "In Process"
if self.total_produced_qty == self.total_planned_qty: if self.total_produced_qty == self.total_planned_qty:
@ -235,6 +239,9 @@ class ProductionPlan(Document):
self.update_ordered_status() self.update_ordered_status()
self.update_requested_status() self.update_requested_status()
if close is not None:
self.db_set('status', self.status)
def update_ordered_status(self): def update_ordered_status(self):
update_status = False update_status = False
for d in self.po_items: for d in self.po_items:

View File

@ -1,6 +1,6 @@
frappe.listview_settings['Production Plan'] = { frappe.listview_settings['Production Plan'] = {
add_fields: ["status"], add_fields: ["status"],
filters: [["status", "!=", "Stopped"]], filters: [["status", "!=", "Closed"]],
get_indicator: function(doc) { get_indicator: function(doc) {
if(doc.status==="Submitted") { if(doc.status==="Submitted") {
return [__("Not Started"), "orange", "status,=,Submitted"]; return [__("Not Started"), "orange", "status,=,Submitted"];
@ -10,7 +10,8 @@ frappe.listview_settings['Production Plan'] = {
"In Process": "orange", "In Process": "orange",
"Completed": "green", "Completed": "green",
"Material Requested": "darkgrey", "Material Requested": "darkgrey",
"Cancelled": "darkgrey" "Cancelled": "darkgrey",
"Closed": "grey"
}[doc.status], "status,=," + doc.status]; }[doc.status], "status,=," + doc.status];
} }
} }

View File

@ -11,30 +11,20 @@
{ {
"fieldname": "warehouse", "fieldname": "warehouse",
"fieldtype": "Link", "fieldtype": "Link",
"in_list_view": 1,
"label": "Warehouse", "label": "Warehouse",
"options": "Warehouse" "options": "Warehouse"
} }
], ],
"index_web_pages_for_search": 1,
"istable": 1,
"links": [], "links": [],
"modified": "2020-02-02 10:37:16.650836", "modified": "2020-10-26 12:55:00.778201",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Manufacturing", "module": "Manufacturing",
"name": "Production Plan Material Request Warehouse", "name": "Production Plan Material Request Warehouse",
"owner": "Administrator", "owner": "Administrator",
"permissions": [ "permissions": [],
{
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "System Manager",
"share": 1,
"write": 1
}
],
"quick_entry": 1, "quick_entry": 1,
"sort_field": "modified", "sort_field": "modified",
"sort_order": "DESC", "sort_order": "DESC",