[production order] [delivery note] fixes, pull
diff --git a/manufacturing/doctype/production_order/production_order.js b/manufacturing/doctype/production_order/production_order.js
index 4c41d94..77dce03 100644
--- a/manufacturing/doctype/production_order/production_order.js
+++ b/manufacturing/doctype/production_order/production_order.js
@@ -28,8 +28,8 @@
if(doc.docstatus===0 && !doc.__islocal) {
cur_frm.set_intro("Submit this Production Order for further processing.");
} else if(doc.docstatus===1) {
- var percent = flt(doc.produced_qty) / doc.qty * 100;
- cur_frm.dashboard.add_progress(cint(percent) + "% " + wn._("Complete"));
+ var percent = flt(doc.produced_qty) / flt(doc.qty) * 100;
+ cur_frm.dashboard.add_progress(cint(percent) + "% " + wn._("Complete"), percent);
if(doc.status === "Stopped") {
cur_frm.dashboard.set_headline_alert(wn._("Stopped"), "alert-danger", "icon-stop");
diff --git a/manufacturing/doctype/production_order/production_order.py b/manufacturing/doctype/production_order/production_order.py
index c76a87f..2d5b5fa 100644
--- a/manufacturing/doctype/production_order/production_order.py
+++ b/manufacturing/doctype/production_order/production_order.py
@@ -76,9 +76,9 @@
(self.doc.sales_order, self.doc.production_item))[0][0]
# total qty in SO
so_qty = flt(so_item_qty) + flt(dnpi_qty)
-
+
if ordered_qty_against_so > so_qty:
- msgprint("""Total production order qty for item: %s against sales order: %s \
+ webnotes.msgprint("""Total production order qty for item: %s against sales order: %s \
will be %s, which is greater than sales order qty (%s).
Please reduce qty or remove the item.""" %
(self.doc.production_item, self.doc.sales_order,
diff --git a/stock/doctype/delivery_note/delivery_note.js b/stock/doctype/delivery_note/delivery_note.js
index 8756e83..117e77e 100644
--- a/stock/doctype/delivery_note/delivery_note.js
+++ b/stock/doctype/delivery_note/delivery_note.js
@@ -46,15 +46,27 @@
var aii_enabled = cint(sys_defaults.auto_inventory_accounting)
cur_frm.fields_dict[cur_frm.cscript.fname].grid.set_column_disp("expense_account", aii_enabled);
cur_frm.fields_dict[cur_frm.cscript.fname].grid.set_column_disp("cost_center", aii_enabled);
+
+ if (this.frm.doc.docstatus===0) {
+ cur_frm.add_custom_button(wn._('From Sales Order'),
+ function() {
+ wn.model.map_current_doc({
+ method: "selling.doctype.sales_order.sales_order.make_delivery_note",
+ source_doctype: "Sales Order",
+ get_query_filters: {
+ docstatus: 1,
+ status: ["!=", "Stopped"],
+ per_delivered: ["<", 99.99],
+ project_name: cur_frm.doc.project_name || undefined,
+ customer: cur_frm.doc.customer || undefined,
+ company: cur_frm.doc.company
+ }
+ })
+ });
+ }
+
},
- get_items: function() {
- wn.model.map_current_doc({
- method: "selling.doctype.sales_order.sales_order.make_delivery_note",
- source_name: cur_frm.doc.sales_order_no,
- })
- },
-
make_sales_invoice: function() {
wn.model.open_mapped_doc({
method: "stock.doctype.delivery_note.delivery_note.make_sales_invoice",
@@ -67,7 +79,11 @@
method: "stock.doctype.delivery_note.delivery_note.make_installation_note",
source_name: cur_frm.doc.name
});
- }
+ },
+
+ tc_name: function() {
+ this.get_terms();
+ },
});
@@ -96,22 +112,6 @@
ORDER BY `tabProject`.name ASC LIMIT 50', {cond:cond});
}
-
-// *************** Customized link query for SALES ORDER based on customer and currency*****************************
-cur_frm.fields_dict['sales_order_no'].get_query = function(doc) {
- doc = locals[this.doctype][this.docname];
- var cond = '';
-
- if(doc.customer) {
- cond = '`tabSales Order`.customer = "'+doc.customer+'" and';
- }
-
- if(doc.project_name){
- cond += '`tabSales Order`.project_name ="'+doc.project_name+'"';
- }
- return repl('SELECT DISTINCT `tabSales Order`.`name` FROM `tabSales Order` WHERE `tabSales Order`.company = "%(company)s" and `tabSales Order`.`docstatus` = 1 and `tabSales Order`.`status` != "Stopped" and ifnull(`tabSales Order`.per_delivered,0) < 99.99 and %(cond)s `tabSales Order`.%(key)s LIKE "%s" ORDER BY `tabSales Order`.`name` DESC LIMIT 50', {company:doc.company,cond:cond})
-}
-
cur_frm.cscript.serial_no = function(doc, cdt, cdn) {
var d = locals[cdt][cdn];
if (d.serial_no) {
diff --git a/stock/doctype/delivery_note/delivery_note.txt b/stock/doctype/delivery_note/delivery_note.txt
index 3b032ae..1d6072e 100644
--- a/stock/doctype/delivery_note/delivery_note.txt
+++ b/stock/doctype/delivery_note/delivery_note.txt
@@ -2,7 +2,7 @@
{
"creation": "2013-05-24 19:29:09",
"docstatus": 0,
- "modified": "2013-07-06 19:04:46",
+ "modified": "2013-07-08 16:34:21",
"modified_by": "Administrator",
"owner": "Administrator"
},
@@ -34,6 +34,7 @@
"parent": "Delivery Note",
"parentfield": "permissions",
"parenttype": "DocType",
+ "permlevel": 0,
"read": 1,
"report": 1
},
@@ -375,42 +376,6 @@
},
{
"doctype": "DocField",
- "fieldname": "section_break0",
- "fieldtype": "Section Break",
- "read_only": 0
- },
- {
- "description": "You can make a delivery note from multiple sales orders. Select sales orders one by one and click on the button below.",
- "doctype": "DocField",
- "fieldname": "sales_order_no",
- "fieldtype": "Link",
- "in_list_view": 1,
- "label": "Sales Order No",
- "no_copy": 0,
- "oldfieldname": "sales_order_no",
- "oldfieldtype": "Link",
- "options": "Sales Order",
- "print_hide": 0,
- "read_only": 0
- },
- {
- "doctype": "DocField",
- "fieldname": "get_items",
- "fieldtype": "Button",
- "hidden": 0,
- "label": "Get Items",
- "oldfieldtype": "Button",
- "print_hide": 1,
- "read_only": 0
- },
- {
- "doctype": "DocField",
- "fieldname": "col_break24",
- "fieldtype": "Column Break",
- "read_only": 0
- },
- {
- "doctype": "DocField",
"fieldname": "net_total_export",
"fieldtype": "Currency",
"label": "Net Total (Export)",
@@ -666,25 +631,6 @@
},
{
"doctype": "DocField",
- "fieldname": "column_break_59",
- "fieldtype": "Column Break"
- },
- {
- "doctype": "DocField",
- "fieldname": "get_terms",
- "fieldtype": "Button",
- "label": "Get Terms and Conditions",
- "oldfieldtype": "Button",
- "print_hide": 1,
- "read_only": 0
- },
- {
- "doctype": "DocField",
- "fieldname": "section_break_61",
- "fieldtype": "Section Break"
- },
- {
- "doctype": "DocField",
"fieldname": "terms",
"fieldtype": "Text Editor",
"label": "Terms and Conditions Details",
@@ -1125,83 +1071,39 @@
"cancel": 1,
"create": 1,
"doctype": "DocPerm",
- "permlevel": 0,
"role": "Material User",
"submit": 1,
"write": 1
},
{
- "amend": 0,
- "cancel": 0,
- "create": 0,
- "doctype": "DocPerm",
- "permlevel": 1,
- "role": "Material User",
- "submit": 0,
- "write": 0
- },
- {
"amend": 1,
"cancel": 1,
"create": 1,
"doctype": "DocPerm",
- "permlevel": 0,
"role": "Material Manager",
"submit": 1,
"write": 1
},
{
- "amend": 0,
- "cancel": 0,
- "create": 0,
- "doctype": "DocPerm",
- "permlevel": 1,
- "role": "Material Manager",
- "submit": 0,
- "write": 0
- },
- {
"amend": 1,
"cancel": 1,
"create": 1,
"doctype": "DocPerm",
- "permlevel": 0,
"role": "Sales User",
"submit": 1,
"write": 1
},
{
- "amend": 0,
"cancel": 0,
"create": 0,
"doctype": "DocPerm",
- "permlevel": 1,
- "role": "Sales User",
- "submit": 0,
- "write": 0
- },
- {
- "cancel": 0,
- "create": 0,
- "doctype": "DocPerm",
- "permlevel": 0,
"role": "Accounts User",
"submit": 0,
"write": 0
},
{
- "amend": 0,
- "cancel": 0,
- "create": 0,
- "doctype": "DocPerm",
- "permlevel": 1,
- "role": "Accounts User",
- "submit": 0
- },
- {
"doctype": "DocPerm",
"match": "customer_name",
- "permlevel": 0,
"role": "Customer"
}
]
\ No newline at end of file
diff --git a/stock/doctype/stock_entry/stock_entry.py b/stock/doctype/stock_entry/stock_entry.py
index 4e64089..c8babff 100644
--- a/stock/doctype/stock_entry/stock_entry.py
+++ b/stock/doctype/stock_entry/stock_entry.py
@@ -464,16 +464,23 @@
item_dict = self.get_pending_raw_materials(pro_obj)
else:
item_dict = self.get_bom_raw_materials(self.doc.fg_completed_qty)
+ for item in item_dict.values():
+ item["from_warehouse"] = pro_obj.doc.wip_warehouse
+ item["to_warehouse"] = ""
# add raw materials to Stock Entry Detail table
self.add_to_stock_entry_detail(item_dict)
# add finished good item to Stock Entry Detail table -- along with bom_no
if self.doc.production_order and self.doc.purpose == "Manufacture/Repack":
- self.doc.to_warehouse = pro_obj.doc.fg_warehouse
self.add_to_stock_entry_detail({
- cstr(pro_obj.doc.production_item):
- [self.doc.fg_completed_qty, pro_obj.doc.description, pro_obj.doc.stock_uom]
+ cstr(pro_obj.doc.production_item): {
+ "to_warehouse": pro_obj.doc.fg_warehouse,
+ "from_warehouse": "",
+ "qty": self.doc.fg_completed_qty,
+ "description": pro_obj.doc.description,
+ "stock_uom": pro_obj.doc.stock_uom
+ }
}, bom_no=pro_obj.doc.bom_no)
elif self.doc.purpose in ["Material Receipt", "Manufacture/Repack"]: