fixes in Production Order

This commit is contained in:
Neil Trini Lasrado 2015-03-10 17:30:39 +05:30
parent 1ca0b74e03
commit 6f272f2f53
7 changed files with 238 additions and 232 deletions

View File

@ -59,12 +59,12 @@ erpnext.production_order = {
var doc = frm.doc;
if (doc.docstatus === 1) {
if (flt(doc.material_transferred_for_qty) < flt(doc.qty)) {
if (flt(doc.material_transferred_for_manufacturing) < flt(doc.qty)) {
frm.add_custom_button(__('Transfer Materials for Manufacture'),
cur_frm.cscript['Transfer Raw Materials'], frappe.boot.doctype_icons["Stock Entry"]);
}
if (flt(doc.produced_qty) < flt(doc.material_transferred_for_qty)) {
if (flt(doc.produced_qty) < flt(doc.material_transferred_for_manufacturing)) {
frm.add_custom_button(__('Update Finished Goods'),
cur_frm.cscript['Update Finished Goods'], frappe.boot.doctype_icons["Stock Entry"]);
}
@ -160,8 +160,8 @@ $.extend(cur_frm.cscript, {
make_se: function(purpose) {
var me = this;
var max = (purpose === "Manufacture") ?
flt(this.frm.doc.material_transferred_for_qty) - flt(this.frm.doc.produced_qty) :
flt(this.frm.doc.qty) - flt(this.frm.doc.material_transferred_for_qty);
flt(this.frm.doc.qty) - flt(this.frm.doc.produced_qty) :
flt(this.frm.doc.qty) - flt(this.frm.doc.material_transferred_for_manufacturing);
frappe.prompt({fieldtype:"Int", label: __("Qty for {0}", [purpose]), fieldname:"qty",
description: __("Max: {0}", [max]) },

View File

@ -94,10 +94,13 @@
"reqd": 1
},
{
"default": "0",
"depends_on": "eval:doc.docstatus==1",
"description": "",
"fieldname": "material_transferred_for_qty",
"fieldtype": "Int",
"label": "Material Transferred for Qty",
"fieldname": "material_transferred_for_manufacturing",
"fieldtype": "Float",
"label": "Material Transferred for Manufacturing",
"no_copy": 1,
"permlevel": 0,
"precision": "",
"read_only": 1
@ -351,8 +354,8 @@
"icon": "icon-cogs",
"idx": 1,
"in_create": 0,
"is_submittable": 1,
"modified": "2015-03-09 15:28:12.535414",
"is_submittable": 1,
"modified": "2015-03-10 17:02:28.401930",
"modified_by": "Administrator",
"module": "Manufacturing",
"name": "Production Order",

View File

@ -124,8 +124,9 @@ class ProductionOrder(Document):
def update_production_order_qty(self):
"""Update **Manufactured Qty** and **Material Transferred for Qty** in Production Order
based on Stock Entry"""
print "call"
for purpose, fieldname in (("Manufacture", "produced_qty"),
("Material Transfer for Manufacture", "material_transferred_for_qty")):
("Material Transfer for Manufacture", "material_transferred_for_manufacturing")):
qty = flt(frappe.db.sql("""select sum(fg_completed_qty)
from `tabStock Entry` where production_order=%s and docstatus=1
and purpose=%s""", (self.name, purpose))[0][0])

View File

@ -118,7 +118,7 @@ erpnext.patches.v5_0.rename_customer_issue
erpnext.patches.v5_0.update_material_transfer_for_manufacture
erpnext.patches.v5_0.manufacturing_activity_type
erpnext.patches.v5_0.update_item_description_and_image
erpnext.patches.v5_0.update_material_transferred_for_qty
erpnext.patches.v5_0.update_material_transferred_for_manufacturing
erpnext.patches.v5_0.stock_entry_update_value
erpnext.patches.v5_0.convert_stock_reconciliation
erpnext.patches.v5_0.update_projects

View File

@ -2,7 +2,7 @@ import frappe
def execute():
frappe.reload_doctype("Production Order")
frappe.db.sql("""update `tabProduction Order` set material_transferred_for_qty=
frappe.db.sql("""update `tabProduction Order` set material_transferred_for_manufacturing=
(select sum(fg_completed_qty) from `tabStock Entry`
where docstatus=1
and production_order=`tabProduction Order`.name

View File

@ -1,283 +1,285 @@
{
"allow_import": 1,
"autoname": "naming_series:",
"creation": "2013-04-03 16:38:41",
"description": "Log of Activities performed by users against Tasks that can be used for tracking time, billing.",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Master",
"allow_import": 1,
"autoname": "naming_series:",
"creation": "2013-04-03 16:38:41",
"description": "Log of Activities performed by users against Tasks that can be used for tracking time, billing.",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Master",
"fields": [
{
"fieldname": "naming_series",
"fieldtype": "Select",
"label": "Series",
"options": "TL-",
"permlevel": 0,
"read_only": 0,
"fieldname": "naming_series",
"fieldtype": "Select",
"label": "Series",
"options": "TL-",
"permlevel": 0,
"read_only": 0,
"reqd": 1
},
},
{
"fieldname": "from_time",
"fieldtype": "Datetime",
"in_list_view": 0,
"label": "From Time",
"permlevel": 0,
"read_only": 0,
"fieldname": "from_time",
"fieldtype": "Datetime",
"in_list_view": 0,
"label": "From Time",
"permlevel": 0,
"read_only": 0,
"reqd": 1
},
},
{
"fieldname": "to_time",
"fieldtype": "Datetime",
"in_list_view": 0,
"label": "To Time",
"permlevel": 0,
"read_only": 0,
"fieldname": "to_time",
"fieldtype": "Datetime",
"in_list_view": 0,
"label": "To Time",
"permlevel": 0,
"read_only": 0,
"reqd": 1
},
},
{
"fieldname": "hours",
"fieldtype": "Float",
"in_list_view": 1,
"label": "Hours",
"permlevel": 0,
"fieldname": "hours",
"fieldtype": "Float",
"in_list_view": 1,
"label": "Hours",
"permlevel": 0,
"read_only": 0
},
},
{
"fieldname": "billable",
"fieldtype": "Check",
"in_list_view": 0,
"label": "Billable",
"permlevel": 0,
"fieldname": "billable",
"fieldtype": "Check",
"in_list_view": 0,
"label": "Billable",
"permlevel": 0,
"read_only": 0
},
},
{
"fieldname": "user",
"fieldtype": "Link",
"label": "User",
"options": "User",
"permlevel": 0,
"fieldname": "user",
"fieldtype": "Link",
"label": "User",
"options": "User",
"permlevel": 0,
"precision": ""
},
},
{
"fieldname": "column_break_3",
"fieldtype": "Column Break",
"permlevel": 0,
"fieldname": "column_break_3",
"fieldtype": "Column Break",
"permlevel": 0,
"read_only": 0
},
},
{
"fieldname": "status",
"fieldtype": "Select",
"in_list_view": 0,
"label": "Status",
"options": "Draft\nSubmitted\nBatched for Billing\nBilled\nCancelled",
"permlevel": 0,
"read_only": 1,
"fieldname": "status",
"fieldtype": "Select",
"in_list_view": 0,
"label": "Status",
"options": "Draft\nSubmitted\nBatched for Billing\nBilled\nCancelled",
"permlevel": 0,
"read_only": 1,
"reqd": 0
},
},
{
"default": "Project",
"fieldname": "time_log_for",
"fieldtype": "Select",
"label": "Time Log For",
"options": "Project\nManufacturing",
"permlevel": 0,
"precision": "",
"read_only": 1,
"default": "Project",
"fieldname": "time_log_for",
"fieldtype": "Select",
"label": "Time Log For",
"options": "Project\nManufacturing",
"permlevel": 0,
"precision": "",
"read_only": 1,
"reqd": 0
},
},
{
"depends_on": "",
"fieldname": "activity_type",
"fieldtype": "Link",
"in_list_view": 0,
"label": "Activity Type",
"options": "Activity Type",
"permlevel": 0,
"read_only": 0,
"depends_on": "",
"fieldname": "activity_type",
"fieldtype": "Link",
"in_list_view": 0,
"label": "Activity Type",
"options": "Activity Type",
"permlevel": 0,
"read_only": 0,
"reqd": 1
},
},
{
"depends_on": "eval:doc.time_log_for != 'Manufacturing'",
"fieldname": "task",
"fieldtype": "Link",
"label": "Task",
"options": "Task",
"permlevel": 0,
"depends_on": "eval:doc.time_log_for != 'Manufacturing'",
"fieldname": "task",
"fieldtype": "Link",
"label": "Task",
"options": "Task",
"permlevel": 0,
"read_only": 0
},
},
{
"depends_on": "eval:doc.time_log_for == 'Manufacturing'",
"fieldname": "section_break_11",
"fieldtype": "Section Break",
"permlevel": 0,
"depends_on": "eval:doc.time_log_for == 'Manufacturing'",
"fieldname": "section_break_11",
"fieldtype": "Section Break",
"permlevel": 0,
"precision": ""
},
},
{
"depends_on": "eval:doc.time_log_for == 'Manufacturing'",
"fieldname": "production_order",
"fieldtype": "Link",
"label": "Production Order",
"options": "Production Order",
"permlevel": 0,
"precision": "",
"depends_on": "eval:doc.time_log_for == 'Manufacturing'",
"fieldname": "production_order",
"fieldtype": "Link",
"label": "Production Order",
"options": "Production Order",
"permlevel": 0,
"precision": "",
"read_only": 1
},
},
{
"depends_on": "eval:doc.time_log_for == 'Manufacturing'",
"fieldname": "operation",
"fieldtype": "Select",
"label": "Operation",
"options": "",
"permlevel": 0,
"precision": "",
"depends_on": "eval:doc.time_log_for == 'Manufacturing'",
"fieldname": "operation",
"fieldtype": "Select",
"label": "Operation",
"options": "",
"permlevel": 0,
"precision": "",
"read_only": 1
},
},
{
"fieldname": "operation_id",
"fieldtype": "Data",
"label": "Operation ID",
"options": "",
"permlevel": 0,
"precision": "",
"fieldname": "operation_id",
"fieldtype": "Data",
"hidden": 1,
"label": "Operation ID",
"options": "",
"permlevel": 0,
"precision": "",
"print_hide": 1,
"read_only": 1
},
},
{
"fieldname": "column_break_14",
"fieldtype": "Column Break",
"permlevel": 0,
"fieldname": "column_break_14",
"fieldtype": "Column Break",
"permlevel": 0,
"precision": ""
},
},
{
"depends_on": "eval:doc.time_log_for == 'Manufacturing'",
"fieldname": "workstation",
"fieldtype": "Link",
"label": "Workstation",
"options": "Workstation",
"permlevel": 0,
"precision": "",
"depends_on": "eval:doc.time_log_for == 'Manufacturing'",
"fieldname": "workstation",
"fieldtype": "Link",
"label": "Workstation",
"options": "Workstation",
"permlevel": 0,
"precision": "",
"read_only": 1
},
},
{
"depends_on": "eval:doc.time_log_for == 'Manufacturing'",
"description": "Operation completed for how many finished goods?",
"fieldname": "completed_qty",
"fieldtype": "Float",
"label": "Completed Qty",
"permlevel": 0,
"depends_on": "eval:doc.time_log_for == 'Manufacturing'",
"description": "Operation completed for how many finished goods?",
"fieldname": "completed_qty",
"fieldtype": "Float",
"label": "Completed Qty",
"permlevel": 0,
"precision": ""
},
},
{
"fieldname": "section_break_7",
"fieldtype": "Section Break",
"permlevel": 0,
"fieldname": "section_break_7",
"fieldtype": "Section Break",
"permlevel": 0,
"read_only": 0
},
},
{
"fieldname": "note",
"fieldtype": "Text Editor",
"label": "Note",
"permlevel": 0,
"fieldname": "note",
"fieldtype": "Text Editor",
"label": "Note",
"permlevel": 0,
"read_only": 0
},
},
{
"fieldname": "section_break_9",
"fieldtype": "Section Break",
"permlevel": 0,
"fieldname": "section_break_9",
"fieldtype": "Section Break",
"permlevel": 0,
"read_only": 0
},
},
{
"depends_on": "eval:doc.time_log_for",
"fieldname": "project",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Project",
"options": "Project",
"permlevel": 0,
"depends_on": "eval:doc.time_log_for",
"fieldname": "project",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Project",
"options": "Project",
"permlevel": 0,
"read_only": 0
},
},
{
"description": "Will be updated when batched.",
"fieldname": "time_log_batch",
"fieldtype": "Link",
"label": "Time Log Batch",
"options": "Time Log Batch",
"permlevel": 0,
"description": "Will be updated when batched.",
"fieldname": "time_log_batch",
"fieldtype": "Link",
"label": "Time Log Batch",
"options": "Time Log Batch",
"permlevel": 0,
"read_only": 1
},
},
{
"description": "Will be updated when billed.",
"fieldname": "sales_invoice",
"fieldtype": "Link",
"label": "Sales Invoice",
"options": "Sales Invoice",
"permlevel": 0,
"description": "Will be updated when billed.",
"fieldname": "sales_invoice",
"fieldtype": "Link",
"label": "Sales Invoice",
"options": "Sales Invoice",
"permlevel": 0,
"read_only": 1
},
},
{
"fieldname": "column_break_16",
"fieldtype": "Column Break",
"permlevel": 0,
"fieldname": "column_break_16",
"fieldtype": "Column Break",
"permlevel": 0,
"read_only": 0
},
},
{
"fieldname": "amended_from",
"fieldtype": "Link",
"ignore_user_permissions": 1,
"label": "Amended From",
"no_copy": 1,
"options": "Time Log",
"permlevel": 1,
"print_hide": 1,
"fieldname": "amended_from",
"fieldtype": "Link",
"ignore_user_permissions": 1,
"label": "Amended From",
"no_copy": 1,
"options": "Time Log",
"permlevel": 1,
"print_hide": 1,
"read_only": 0
},
},
{
"fieldname": "title",
"fieldtype": "Data",
"hidden": 1,
"label": "Title",
"permlevel": 0,
"fieldname": "title",
"fieldtype": "Data",
"hidden": 1,
"label": "Title",
"permlevel": 0,
"precision": ""
}
],
"icon": "icon-time",
"idx": 1,
"is_submittable": 1,
"modified": "2015-02-26 02:22:10.312376",
"modified_by": "Administrator",
"module": "Projects",
"name": "Time Log",
"owner": "Administrator",
],
"icon": "icon-time",
"idx": 1,
"is_submittable": 1,
"modified": "2015-03-10 17:07:35.506886",
"modified_by": "Administrator",
"module": "Projects",
"name": "Time Log",
"owner": "Administrator",
"permissions": [
{
"amend": 1,
"apply_user_permissions": 1,
"cancel": 1,
"create": 1,
"delete": 1,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Projects User",
"share": 1,
"submit": 1,
"amend": 1,
"apply_user_permissions": 1,
"cancel": 1,
"create": 1,
"delete": 1,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Projects User",
"share": 1,
"submit": 1,
"write": 1
},
},
{
"amend": 1,
"cancel": 1,
"delete": 1,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Projects Manager",
"share": 1,
"submit": 1,
"amend": 1,
"cancel": 1,
"delete": 1,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Projects Manager",
"share": 1,
"submit": 1,
"write": 1
}
],
],
"title_field": "title"
}
}

View File

@ -470,7 +470,7 @@ class StockEntry(StockController):
pro_doc = frappe.get_doc("Production Order", self.production_order)
_validate_production_order(pro_doc)
pro_doc.run_method("update_status")
if self.purpose in "Manufacture":
if self.purpose in ["Material Transfer for Manufacture","Manufacture"]:
pro_doc.run_method("update_production_order_qty")
self.update_planned_qty(pro_doc)