From b73d3f925ded309c327db753ae4193f1a7445748 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 17 Jun 2014 16:13:15 +0530 Subject: [PATCH 1/4] Do not make packing list after submission --- .../doctype/sales_order/sales_order.py | 1 - .../stock/doctype/packed_item/packed_item.py | 24 ++++++++++--------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index 2b60dcd214..1b66c65dac 100644 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -102,7 +102,6 @@ class SalesOrder(SellingController): self.validate_warehouse() from erpnext.stock.doctype.packed_item.packed_item import make_packing_list - make_packing_list(self,'sales_order_details') self.validate_with_previous_doc() diff --git a/erpnext/stock/doctype/packed_item/packed_item.py b/erpnext/stock/doctype/packed_item/packed_item.py index cf208ee87d..44c1a00cc9 100644 --- a/erpnext/stock/doctype/packed_item/packed_item.py +++ b/erpnext/stock/doctype/packed_item/packed_item.py @@ -12,18 +12,18 @@ from frappe.model.document import Document class PackedItem(Document): pass - + def get_sales_bom_items(item_code): - return frappe.db.sql("""select t1.item_code, t1.qty, t1.uom - from `tabSales BOM Item` t1, `tabSales BOM` t2 + return frappe.db.sql("""select t1.item_code, t1.qty, t1.uom + from `tabSales BOM Item` t1, `tabSales BOM` t2 where t2.new_item_code=%s and t1.parent = t2.name""", item_code, as_dict=1) def get_packing_item_details(item): - return frappe.db.sql("""select item_name, description, stock_uom from `tabItem` + return frappe.db.sql("""select item_name, description, stock_uom from `tabItem` where name = %s""", item, as_dict = 1)[0] def get_bin_qty(item, warehouse): - det = frappe.db.sql("""select actual_qty, projected_qty from `tabBin` + det = frappe.db.sql("""select actual_qty, projected_qty from `tabBin` where item_code = %s and warehouse = %s""", (item, warehouse), as_dict = 1) return det and det[0] or '' @@ -55,12 +55,15 @@ def update_packing_list_item(obj, packing_item_code, qty, warehouse, line, packi if not pi.batch_no: pi.batch_no = cstr(line.get("batch_no")) pi.idx = packing_list_idx - + packing_list_idx += 1 def make_packing_list(obj, item_table_fieldname): """make packing list for sales bom item""" + + if obj._action == "update_after_submit": return + packing_list_idx = 0 parent_items = [] for d in obj.get(item_table_fieldname): @@ -68,14 +71,14 @@ def make_packing_list(obj, item_table_fieldname): and d.warehouse or d.warehouse if frappe.db.get_value("Sales BOM", {"new_item_code": d.item_code}): for i in get_sales_bom_items(d.item_code): - update_packing_list_item(obj, i['item_code'], flt(i['qty'])*flt(d.qty), + update_packing_list_item(obj, i['item_code'], flt(i['qty'])*flt(d.qty), warehouse, d, packing_list_idx) if [d.item_code, d.name] not in parent_items: parent_items.append([d.item_code, d.name]) - + cleanup_packing_list(obj, parent_items) - + def cleanup_packing_list(obj, parent_items): """Remove all those child items which are no longer present in main item table""" delete_list = [] @@ -86,10 +89,9 @@ def cleanup_packing_list(obj, parent_items): if not delete_list: return obj - + packing_details = obj.get("packing_details") obj.set("packing_details", []) for d in packing_details: if d not in delete_list: obj.append("packing_details", d) - \ No newline at end of file From ac1a4ed576877e0809fc00f02679328edb049220 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 18 Jun 2014 09:02:21 +0530 Subject: [PATCH 2/4] Field renamed in sms center --- .../selling/doctype/sms_center/sms_center.js | 12 +- .../doctype/sms_center/sms_center.json | 200 +++++++++--------- 2 files changed, 106 insertions(+), 106 deletions(-) diff --git a/erpnext/selling/doctype/sms_center/sms_center.js b/erpnext/selling/doctype/sms_center/sms_center.js index 1c5b92b7ec..ec4d57d8be 100644 --- a/erpnext/selling/doctype/sms_center/sms_center.js +++ b/erpnext/selling/doctype/sms_center/sms_center.js @@ -3,15 +3,15 @@ $.extend(cur_frm.cscript, { message: function () { - var total_words = this.frm.doc.message.length; + var total_characters = this.frm.doc.message.length; var total_msg = 1; - if (total_words > 160) { - total_msg = cint(total_words / 160); - total_msg = (total_words % 160 == 0 ? total_msg : total_msg + 1); + if (total_characters > 160) { + total_msg = cint(total_characters / 160); + total_msg = (total_characters % 160 == 0 ? total_msg : total_msg + 1); } - this.frm.set_value("total_words", total_words); + this.frm.set_value("total_characters", total_characters); this.frm.set_value("total_messages", this.frm.doc.message ? total_msg : 0); } -}); \ No newline at end of file +}); diff --git a/erpnext/selling/doctype/sms_center/sms_center.json b/erpnext/selling/doctype/sms_center/sms_center.json index 8910a2d9b2..b6eb11c23a 100644 --- a/erpnext/selling/doctype/sms_center/sms_center.json +++ b/erpnext/selling/doctype/sms_center/sms_center.json @@ -1,135 +1,135 @@ { - "allow_attach": 0, - "allow_copy": 1, - "creation": "2013-01-10 16:34:22", - "docstatus": 0, - "doctype": "DocType", + "allow_attach": 0, + "allow_copy": 1, + "creation": "2013-01-10 16:34:22", + "docstatus": 0, + "doctype": "DocType", "fields": [ { - "fieldname": "column_break1", - "fieldtype": "Column Break", - "permlevel": 0, + "fieldname": "column_break1", + "fieldtype": "Column Break", + "permlevel": 0, "width": "50%" - }, + }, { - "fieldname": "send_to", - "fieldtype": "Select", - "in_list_view": 1, - "label": "Send To", - "options": "\nAll Contact\nAll Customer Contact\nAll Supplier Contact\nAll Sales Partner Contact\nAll Lead (Open)\nAll Employee (Active)\nAll Sales Person", + "fieldname": "send_to", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Send To", + "options": "\nAll Contact\nAll Customer Contact\nAll Supplier Contact\nAll Sales Partner Contact\nAll Lead (Open)\nAll Employee (Active)\nAll Sales Person", "permlevel": 0 - }, + }, { - "depends_on": "eval:doc.send_to=='All Customer Contact'", - "fieldname": "customer", - "fieldtype": "Link", - "in_list_view": 1, - "label": "Customer", - "options": "Customer", + "depends_on": "eval:doc.send_to=='All Customer Contact'", + "fieldname": "customer", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Customer", + "options": "Customer", "permlevel": 0 - }, + }, { - "depends_on": "eval:doc.send_to=='All Supplier Contact'", - "fieldname": "supplier", - "fieldtype": "Link", - "in_list_view": 1, - "label": "Supplier", - "options": "Supplier", + "depends_on": "eval:doc.send_to=='All Supplier Contact'", + "fieldname": "supplier", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Supplier", + "options": "Supplier", "permlevel": 0 - }, + }, { - "depends_on": "eval:doc.send_to=='All Employee (Active)'", - "fieldname": "department", - "fieldtype": "Link", - "in_list_view": 1, - "label": "Department", - "options": "Department", + "depends_on": "eval:doc.send_to=='All Employee (Active)'", + "fieldname": "department", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Department", + "options": "Department", "permlevel": 0 - }, + }, { - "depends_on": "eval:doc.send_to=='All Employee (Active)'", - "fieldname": "branch", - "fieldtype": "Link", - "label": "Branch", - "options": "Branch", + "depends_on": "eval:doc.send_to=='All Employee (Active)'", + "fieldname": "branch", + "fieldtype": "Link", + "label": "Branch", + "options": "Branch", "permlevel": 0 - }, + }, { - "fieldname": "create_receiver_list", - "fieldtype": "Button", - "label": "Create Receiver List", - "options": "create_receiver_list", + "fieldname": "create_receiver_list", + "fieldtype": "Button", + "label": "Create Receiver List", + "options": "create_receiver_list", "permlevel": 0 - }, + }, { - "fieldname": "receiver_list", - "fieldtype": "Code", - "label": "Receiver List", + "fieldname": "receiver_list", + "fieldtype": "Code", + "label": "Receiver List", "permlevel": 0 - }, + }, { - "fieldname": "column_break9", - "fieldtype": "Column Break", - "permlevel": 0, + "fieldname": "column_break9", + "fieldtype": "Column Break", + "permlevel": 0, "width": "50%" - }, + }, { - "description": "Messages greater than 160 characters will be split into multiple messages", - "fieldname": "message", - "fieldtype": "Text", - "label": "Message", - "permlevel": 0, + "description": "Messages greater than 160 characters will be split into multiple messages", + "fieldname": "message", + "fieldtype": "Text", + "label": "Message", + "permlevel": 0, "reqd": 1 - }, + }, { - "fieldname": "total_words", - "fieldtype": "Int", - "label": "Total Characters", - "permlevel": 0, + "fieldname": "total_characters", + "fieldtype": "Int", + "label": "Total Characters", + "permlevel": 0, "read_only": 1 - }, + }, { - "fieldname": "total_messages", - "fieldtype": "Int", - "label": "Total Message(s)", - "permlevel": 0, + "fieldname": "total_messages", + "fieldtype": "Int", + "label": "Total Message(s)", + "permlevel": 0, "read_only": 1 - }, + }, { - "fieldname": "send_sms", - "fieldtype": "Button", - "label": "Send SMS", - "options": "send_sms", + "fieldname": "send_sms", + "fieldtype": "Button", + "label": "Send SMS", + "options": "send_sms", "permlevel": 0 } - ], - "hide_heading": 0, - "hide_toolbar": 0, - "icon": "icon-mobile-phone", - "idx": 1, - "in_create": 0, - "issingle": 1, - "modified": "2014-05-09 02:17:41.375945", - "modified_by": "Administrator", - "module": "Selling", - "name": "SMS Center", - "owner": "Administrator", + ], + "hide_heading": 0, + "hide_toolbar": 0, + "icon": "icon-mobile-phone", + "idx": 1, + "in_create": 0, + "issingle": 1, + "modified": "2014-06-18 08:59:51.755566", + "modified_by": "Administrator", + "module": "Selling", + "name": "SMS Center", + "owner": "Administrator", "permissions": [ { - "cancel": 0, - "create": 1, - "delete": 0, - "export": 0, - "import": 0, - "permlevel": 0, - "read": 1, - "report": 0, - "role": "System Manager", - "submit": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "export": 0, + "import": 0, + "permlevel": 0, + "read": 1, + "report": 0, + "role": "System Manager", + "submit": 0, "write": 1 } - ], - "read_only": 1, - "sort_field": "modified", + ], + "read_only": 1, + "sort_field": "modified", "sort_order": "DESC" } From 0693937c1ee7dfb06795f1630a363c44a1143f34 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 18 Jun 2014 09:42:27 +0530 Subject: [PATCH 3/4] Fixes in fetching valuation rate in stock entry --- erpnext/stock/doctype/stock_entry/stock_entry.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index d8164f7e21..3df78c8def 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -221,7 +221,7 @@ class StockEntry(StockController): if not d.bom_no: if not flt(d.incoming_rate) or d.s_warehouse or self.purpose == "Sales Return": incoming_rate = self.get_incoming_rate(args) - if incoming_rate: + if flt(incoming_rate) > 0: d.incoming_rate = incoming_rate d.amount = flt(d.transfer_qty) * flt(d.incoming_rate) From 91090042d1a00e32a9956426008040f7d65b993f Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 18 Jun 2014 10:29:53 +0530 Subject: [PATCH 4/4] Patch: update users report view settings for rename fields --- erpnext/patches.txt | 1 + .../v4_0/update_users_report_view_settings.py | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 erpnext/patches/v4_0/update_users_report_view_settings.py diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 761b63c9fd..dd57c60b18 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -61,3 +61,4 @@ erpnext.patches.v4_0.update_custom_print_formats_for_renamed_fields erpnext.patches.v4_0.update_other_charges_in_custom_purchase_print_formats erpnext.patches.v4_0.create_price_list_if_missing execute:frappe.db.sql("update `tabItem` set end_of_life=null where end_of_life='0000-00-00'") #2014-06-16 +erpnext.patches.v4_0.update_users_report_view_settings diff --git a/erpnext/patches/v4_0/update_users_report_view_settings.py b/erpnext/patches/v4_0/update_users_report_view_settings.py new file mode 100644 index 0000000000..8883dc26f5 --- /dev/null +++ b/erpnext/patches/v4_0/update_users_report_view_settings.py @@ -0,0 +1,12 @@ +# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +from __future__ import unicode_literals + +from frappe.model import update_users_report_view_settings +from erpnext.patches.v4_0.fields_to_be_renamed import rename_map + +def execute(): + for dt, field_list in rename_map.items(): + for field in field_list: + update_users_report_view_settings(dt, field[0], field[1])