Track Operations removed and Global Switch added to disable capacity planning in manufacturing settings
This commit is contained in:
parent
75ebed815f
commit
2771b7d828
@ -15,6 +15,14 @@
|
|||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
"precision": ""
|
"precision": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"description": "Disables creation of time logs against Production Orders.\nOperations shall not be tracked against Production Order",
|
||||||
|
"fieldname": "disable_capacity_planning",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"label": "Disable Capacity Planning",
|
||||||
|
"permlevel": 0,
|
||||||
|
"precision": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"description": "Plan time logs outside Workstation Working Hours.",
|
"description": "Plan time logs outside Workstation Working Hours.",
|
||||||
"fieldname": "allow_overtime",
|
"fieldname": "allow_overtime",
|
||||||
@ -72,7 +80,7 @@
|
|||||||
"is_submittable": 0,
|
"is_submittable": 0,
|
||||||
"issingle": 1,
|
"issingle": 1,
|
||||||
"istable": 0,
|
"istable": 0,
|
||||||
"modified": "2015-06-15 05:52:22.986958",
|
"modified": "2015-07-21 08:51:01.651774",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Manufacturing",
|
"module": "Manufacturing",
|
||||||
"name": "Manufacturing Settings",
|
"name": "Manufacturing Settings",
|
||||||
|
@ -186,27 +186,16 @@ $.extend(cur_frm.cscript, {
|
|||||||
},
|
},
|
||||||
|
|
||||||
bom_no: function() {
|
bom_no: function() {
|
||||||
if (this.frm.doc.track_operations) {
|
return this.frm.call({
|
||||||
return this.frm.call({
|
doc: this.frm.doc,
|
||||||
doc: this.frm.doc,
|
method: "set_production_order_operations"
|
||||||
method: "set_production_order_operations"
|
});
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
qty: function() {
|
qty: function() {
|
||||||
frappe.ui.form.trigger("Production Order", 'bom_no')
|
frappe.ui.form.trigger("Production Order", 'bom_no')
|
||||||
},
|
},
|
||||||
|
|
||||||
track_operations: function(doc) {
|
|
||||||
if (doc.track_operations) {
|
|
||||||
frappe.ui.form.trigger("Production Order", 'bom_no')
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
doc.operations =[];
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
show_time_logs: function(doc, cdt, cdn) {
|
show_time_logs: function(doc, cdt, cdn) {
|
||||||
var child = locals[cdt][cdn]
|
var child = locals[cdt][cdn]
|
||||||
frappe.route_options = {"operation_id": child.name};
|
frappe.route_options = {"operation_id": child.name};
|
||||||
|
@ -73,14 +73,6 @@
|
|||||||
"label": "Use Multi-Level BOM",
|
"label": "Use Multi-Level BOM",
|
||||||
"permlevel": 0
|
"permlevel": 0
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"default": "1",
|
|
||||||
"fieldname": "track_operations",
|
|
||||||
"fieldtype": "Check",
|
|
||||||
"label": "Track Operations",
|
|
||||||
"permlevel": 0,
|
|
||||||
"precision": ""
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"fieldname": "column_break1",
|
"fieldname": "column_break1",
|
||||||
"fieldtype": "Column Break",
|
"fieldtype": "Column Break",
|
||||||
@ -215,7 +207,7 @@
|
|||||||
"read_only": 1
|
"read_only": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"depends_on": "track_operations",
|
"depends_on": "",
|
||||||
"fieldname": "operations_section",
|
"fieldname": "operations_section",
|
||||||
"fieldtype": "Section Break",
|
"fieldtype": "Section Break",
|
||||||
"label": "Operations",
|
"label": "Operations",
|
||||||
@ -234,7 +226,7 @@
|
|||||||
"read_only": 1
|
"read_only": 1
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"depends_on": "track_operations",
|
"depends_on": "operations",
|
||||||
"fieldname": "section_break_22",
|
"fieldname": "section_break_22",
|
||||||
"fieldtype": "Section Break",
|
"fieldtype": "Section Break",
|
||||||
"label": "Operation Cost",
|
"label": "Operation Cost",
|
||||||
@ -368,7 +360,7 @@
|
|||||||
"idx": 1,
|
"idx": 1,
|
||||||
"in_create": 0,
|
"in_create": 0,
|
||||||
"is_submittable": 1,
|
"is_submittable": 1,
|
||||||
"modified": "2015-07-13 05:28:23.259016",
|
"modified": "2015-07-21 07:45:53.206902",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Manufacturing",
|
"module": "Manufacturing",
|
||||||
"name": "Production Order",
|
"name": "Production Order",
|
||||||
|
@ -174,17 +174,12 @@ class ProductionOrder(Document):
|
|||||||
|
|
||||||
def set_production_order_operations(self):
|
def set_production_order_operations(self):
|
||||||
"""Fetch operations from BOM and set in 'Production Order'"""
|
"""Fetch operations from BOM and set in 'Production Order'"""
|
||||||
if not self.bom_no:
|
if not self.bom_no or cint(frappe.db.get_single_value("Manufacturing Settings", "disable_capacity_planning")):
|
||||||
return
|
return
|
||||||
self.set('operations', [])
|
self.set('operations', [])
|
||||||
operations = frappe.db.sql("""select operation, description, workstation, idx,
|
operations = frappe.db.sql("""select operation, description, workstation, idx,
|
||||||
hour_rate, time_in_mins, "Pending" as status from `tabBOM Operation`
|
hour_rate, time_in_mins, "Pending" as status from `tabBOM Operation`
|
||||||
where parent = %s order by idx""", self.bom_no, as_dict=1)
|
where parent = %s order by idx""", self.bom_no, as_dict=1)
|
||||||
if operations:
|
|
||||||
self.track_operations=1
|
|
||||||
else:
|
|
||||||
self.track_operations=0
|
|
||||||
frappe.msgprint(_("Cannot 'track operations' as selected BOM does not have Operations."))
|
|
||||||
self.set('operations', operations)
|
self.set('operations', operations)
|
||||||
self.calculate_time()
|
self.calculate_time()
|
||||||
|
|
||||||
|
@ -173,7 +173,6 @@ erpnext.patches.v5_0.item_variants
|
|||||||
erpnext.patches.v5_0.update_item_desc_in_invoice
|
erpnext.patches.v5_0.update_item_desc_in_invoice
|
||||||
erpnext.patches.v5_1.fix_against_account
|
erpnext.patches.v5_1.fix_against_account
|
||||||
erpnext.patches.v5_1.fix_credit_days_based_on
|
erpnext.patches.v5_1.fix_credit_days_based_on
|
||||||
erpnext.patches.v5_1.track_operations
|
|
||||||
execute:frappe.rename_doc("DocType", "Salary Manager", "Process Payroll", force=True)
|
execute:frappe.rename_doc("DocType", "Salary Manager", "Process Payroll", force=True)
|
||||||
erpnext.patches.v5_1.rename_roles
|
erpnext.patches.v5_1.rename_roles
|
||||||
erpnext.patches.v5_1.default_bom
|
erpnext.patches.v5_1.default_bom
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe
|
|
||||||
|
|
||||||
def execute():
|
|
||||||
frappe.reload_doctype("Production Order")
|
|
||||||
frappe.db.sql("""Update `tabProduction Order` as po set track_operations=1 where
|
|
||||||
exists(select name from `tabProduction Order Operation` as po_operation where po_operation.parent = po.name )""")
|
|
@ -201,9 +201,7 @@ class StockEntry(StockController):
|
|||||||
def check_if_operations_completed(self):
|
def check_if_operations_completed(self):
|
||||||
"""Check if Time Logs are completed against before manufacturing to capture operating costs."""
|
"""Check if Time Logs are completed against before manufacturing to capture operating costs."""
|
||||||
prod_order = frappe.get_doc("Production Order", self.production_order)
|
prod_order = frappe.get_doc("Production Order", self.production_order)
|
||||||
if not prod_order.track_operations:
|
|
||||||
return
|
|
||||||
|
|
||||||
for d in prod_order.get("operations"):
|
for d in prod_order.get("operations"):
|
||||||
total_completed_qty = flt(self.fg_completed_qty) + flt(prod_order.produced_qty)
|
total_completed_qty = flt(self.fg_completed_qty) + flt(prod_order.produced_qty)
|
||||||
if total_completed_qty > flt(d.completed_qty):
|
if total_completed_qty > flt(d.completed_qty):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user