From 3aa14f54b7413dde91a9e01d04f44c9d91f9b623 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 10 Feb 2016 10:49:22 +0530 Subject: [PATCH 1/6] [fix] installation note item description to Text Editor --- .../installation_note_item.json | 113 ++++++++++-------- 1 file changed, 61 insertions(+), 52 deletions(-) diff --git a/erpnext/selling/doctype/installation_note_item/installation_note_item.json b/erpnext/selling/doctype/installation_note_item/installation_note_item.json index 758c47f61a..5be7ca1dd8 100644 --- a/erpnext/selling/doctype/installation_note_item/installation_note_item.json +++ b/erpnext/selling/doctype/installation_note_item/installation_note_item.json @@ -26,6 +26,7 @@ "options": "Item", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 1, @@ -33,32 +34,6 @@ "set_only_once": 0, "unique": 0 }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "fieldname": "description", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 1, - "label": "Description", - "length": 0, - "no_copy": 0, - "oldfieldname": "description", - "oldfieldtype": "Data", - "permlevel": 0, - "print_hide": 0, - "print_width": "300px", - "read_only": 1, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0, - "width": "300px" - }, { "allow_on_submit": 0, "bold": 0, @@ -76,6 +51,7 @@ "oldfieldtype": "Small Text", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "print_width": "180px", "read_only": 0, "report_hide": 0, @@ -85,6 +61,58 @@ "unique": 0, "width": "180px" }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "qty", + "fieldtype": "Float", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 1, + "label": "Installed Qty", + "length": 0, + "no_copy": 0, + "oldfieldname": "qty", + "oldfieldtype": "Currency", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "description", + "fieldtype": "Text Editor", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 1, + "label": "Description", + "length": 0, + "no_copy": 0, + "oldfieldname": "description", + "oldfieldtype": "Data", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "print_width": "300px", + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, + "width": "300px" + }, { "allow_on_submit": 0, "bold": 0, @@ -102,6 +130,7 @@ "oldfieldtype": "Data", "permlevel": 0, "print_hide": 1, + "print_hide_if_no_value": 0, "print_width": "150px", "read_only": 1, "report_hide": 0, @@ -128,6 +157,7 @@ "oldfieldtype": "Data", "permlevel": 0, "print_hide": 1, + "print_hide_if_no_value": 0, "print_width": "150px", "read_only": 1, "report_hide": 0, @@ -154,6 +184,7 @@ "oldfieldtype": "Data", "permlevel": 0, "print_hide": 1, + "print_hide_if_no_value": 0, "print_width": "150px", "read_only": 1, "report_hide": 0, @@ -162,30 +193,6 @@ "set_only_once": 0, "unique": 0, "width": "150px" - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "fieldname": "qty", - "fieldtype": "Float", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 1, - "label": "Installed Qty", - "length": 0, - "no_copy": 0, - "oldfieldname": "qty", - "oldfieldtype": "Currency", - "permlevel": 0, - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0 } ], "hide_heading": 0, @@ -197,12 +204,14 @@ "issingle": 0, "istable": 1, "max_attachments": 0, - "modified": "2015-11-16 06:29:47.713471", + "menu_index": 0, + "modified": "2016-02-10 00:18:55.558356", "modified_by": "Administrator", "module": "Selling", "name": "Installation Note Item", "owner": "Administrator", "permissions": [], "read_only": 0, - "read_only_onload": 0 + "read_only_onload": 0, + "sort_order": "ASC" } \ No newline at end of file From e1f6e60cea7bafec42ced215560dbc5ed1ca5d19 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 10 Feb 2016 13:05:11 +0530 Subject: [PATCH 2/6] [fix] Payment Request Fixes --- .../payment_gateway_account.py | 7 +- .../payment_request/payment_request.py | 66 ++++++++++--------- 2 files changed, 41 insertions(+), 32 deletions(-) diff --git a/erpnext/accounts/doctype/payment_gateway_account/payment_gateway_account.py b/erpnext/accounts/doctype/payment_gateway_account/payment_gateway_account.py index dd971ad5d2..468f8778c4 100644 --- a/erpnext/accounts/doctype/payment_gateway_account/payment_gateway_account.py +++ b/erpnext/accounts/doctype/payment_gateway_account/payment_gateway_account.py @@ -11,6 +11,8 @@ class PaymentGatewayAccount(Document): self.name = self.gateway + " - " + self.currency def validate(self): + self.currency = frappe.db.get_value("Account", self.payment_account, "account_currency") + self.update_default_payment_gateway() self.set_as_default_if_not_set() @@ -20,5 +22,6 @@ class PaymentGatewayAccount(Document): where is_default = 1 """) def set_as_default_if_not_set(self): - if not frappe.db.get_value("Payment Gateway Account", {"is_default": 1, "name": ("!=", self.name)}, "name"): - self.is_default = 1 + if not frappe.db.get_value("Payment Gateway Account", + {"is_default": 1, "name": ("!=", self.name)}, "name"): + self.is_default = 1 diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py index 9e296973d1..ba7413d886 100644 --- a/erpnext/accounts/doctype/payment_request/payment_request.py +++ b/erpnext/accounts/doctype/payment_request/payment_request.py @@ -23,7 +23,7 @@ class PaymentRequest(Document): def validate_payment_request(self): if frappe.db.get_value("Payment Request", {"reference_name": self.reference_name, "name": ("!=", self.name), "status": ("not in", ["Initiated", "Paid"]), "docstatus": 1}, "name"): - frappe.throw(_("Payment Request already exists {0}".fomart(self.reference_name))) + frappe.throw(_("Payment Request already exists {0}".format(self.reference_name))) def validate_currency(self): ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name) @@ -150,37 +150,43 @@ def make_payment_request(**args): ref_doc = frappe.get_doc(args.dt, args.dn) gateway_account = get_gateway_details(args) - pr = frappe.new_doc("Payment Request") - pr.update({ - "payment_gateway": gateway_account.name, - "gateway": gateway_account.gateway, - "payment_account": gateway_account.payment_account, - "currency": ref_doc.currency, - "make_sales_invoice": args.cart or 0, - "amount": get_amount(ref_doc, args.dt), - "mute_email": args.mute_email or 0, - "email_to": args.recipient_id or "", - "subject": "Payment Request for %s"%args.dn, - "message": gateway_account.message, - "payment_url_message": gateway_account.payment_url_message, - "payment_success_url": gateway_account.payment_success_url, - "reference_doctype": args.dt, - "reference_name": args.dn - }) + existing_payment_request = frappe.db.get_value("Payment Request", + {"reference_doctype": args.dt, "reference_name": args.dn}) + if existing_payment_request: + pr = frappe.get_doc("Payment Request", existing_payment_request) + else: + pr = frappe.new_doc("Payment Request") + + pr.update({ + "payment_gateway": gateway_account.name, + "gateway": gateway_account.gateway, + "payment_account": gateway_account.payment_account, + "currency": ref_doc.currency, + "make_sales_invoice": args.cart or 0, + "amount": get_amount(ref_doc, args.dt), + "mute_email": args.mute_email or 0, + "email_to": args.recipient_id or "", + "subject": "Payment Request for %s"%args.dn, + "message": gateway_account.message, + "payment_url_message": gateway_account.payment_url_message, + "payment_success_url": gateway_account.payment_success_url, + "reference_doctype": args.dt, + "reference_name": args.dn + }) - if args.return_doc: - return pr - - if args.submit_doc: - pr.insert(ignore_permissions=True) - pr.submit() - - if args.cart: - generate_payment_request(pr.name) - frappe.db.commit() - - if not args.cart: + if args.return_doc: return pr + + if args.submit_doc: + pr.insert(ignore_permissions=True) + pr.submit() + + if args.cart: + generate_payment_request(pr.name) + frappe.db.commit() + + if not args.cart: + return pr return pr.as_dict() From 3070deb295388e0535e387ac1b05e3e292a4c08e Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 10 Feb 2016 13:05:32 +0530 Subject: [PATCH 3/6] Packing Slip layout changes --- .../packing_slip_item/packing_slip_item.json | 157 +++++++++++++++--- 1 file changed, 131 insertions(+), 26 deletions(-) diff --git a/erpnext/stock/doctype/packing_slip_item/packing_slip_item.json b/erpnext/stock/doctype/packing_slip_item/packing_slip_item.json index be92998f9d..f8e50415f9 100644 --- a/erpnext/stock/doctype/packing_slip_item/packing_slip_item.json +++ b/erpnext/stock/doctype/packing_slip_item/packing_slip_item.json @@ -7,6 +7,7 @@ "custom": 0, "docstatus": 0, "doctype": "DocType", + "document_type": "Document", "fields": [ { "allow_on_submit": 0, @@ -24,6 +25,7 @@ "options": "Item", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "print_width": "100px", "read_only": 0, "report_hide": 0, @@ -33,6 +35,29 @@ "unique": 0, "width": "100px" }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "column_break_2", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, { "allow_on_submit": 0, "bold": 0, @@ -48,6 +73,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "print_width": "200px", "read_only": 1, "report_hide": 0, @@ -74,6 +100,31 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 1, + "fieldname": "desc_section", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Description", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -97,6 +148,31 @@ "permlevel": 0, "precision": "", "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "quantity_section", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Quantity", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -119,6 +195,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "print_width": "100px", "read_only": 0, "report_hide": 0, @@ -128,31 +205,6 @@ "unique": 0, "width": "100px" }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "fieldname": "stock_uom", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "UOM", - "length": 0, - "no_copy": 0, - "options": "UOM", - "permlevel": 0, - "print_hide": 0, - "print_width": "100px", - "read_only": 1, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0, - "width": "100px" - }, { "allow_on_submit": 0, "bold": 0, @@ -168,6 +220,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "print_width": "100px", "read_only": 0, "report_hide": 0, @@ -177,6 +230,55 @@ "unique": 0, "width": "100px" }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "column_break_10", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "stock_uom", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "UOM", + "length": 0, + "no_copy": 0, + "options": "UOM", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "print_width": "100px", + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, + "width": "100px" + }, { "allow_on_submit": 0, "bold": 0, @@ -193,6 +295,7 @@ "options": "UOM", "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "print_width": "100px", "read_only": 0, "report_hide": 0, @@ -217,6 +320,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -239,6 +343,7 @@ "no_copy": 0, "permlevel": 0, "print_hide": 0, + "print_hide_if_no_value": 0, "read_only": 0, "report_hide": 0, "reqd": 0, @@ -256,7 +361,7 @@ "issingle": 0, "istable": 1, "max_attachments": 0, - "modified": "2015-11-16 06:29:51.313759", + "modified": "2016-02-09 14:46:32.332667", "modified_by": "Administrator", "module": "Stock", "name": "Packing Slip Item", From 8d1c7a2524dcbc466d252c94e0122eb9ea4329d9 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 10 Feb 2016 13:08:42 +0530 Subject: [PATCH 4/6] [fix] call get_party_account only if party is set --- erpnext/public/js/controllers/transaction.js | 34 +++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index 58c68e8d7f..6f36bdb822 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -270,7 +270,7 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({ me.apply_pricing_rule(); } } - + var set_party_account = function(set_pricing) { if (in_list(["Sales Invoice", "Purchase Invoice"], me.frm.doc.doctype)) { if(me.frm.doc.doctype=="Sales Invoice") { @@ -280,25 +280,27 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({ var party_type = "Supplier"; var party_account_field = 'credit_to'; } - - return frappe.call({ - method: "erpnext.accounts.party.get_party_account", - args: { - company: me.frm.doc.company, - party_type: party_type, - party: me.frm.doc[frappe.model.scrub(party_type)] - }, - callback: function(r) { - if(!r.exc && r.message) { - me.frm.set_value(party_account_field, r.message); - set_pricing(); + + if(me.frm.doc[frappe.model.scrub(party_type)]) { + return frappe.call({ + method: "erpnext.accounts.party.get_party_account", + args: { + company: me.frm.doc.company, + party_type: party_type, + party: me.frm.doc[frappe.model.scrub(party_type)] + }, + callback: function(r) { + if(!r.exc && r.message) { + me.frm.set_value(party_account_field, r.message); + set_pricing(); + } } - } - }); + }); + } } else { set_pricing(); } - + } if (this.frm.doc.posting_date) var date = this.frm.doc.posting_date; From 247a8eedce46f5d5a8bf3b66069adb60819a26fc Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Wed, 10 Feb 2016 13:17:25 +0530 Subject: [PATCH 5/6] [minor] fix add_comment --- erpnext/setup/setup_wizard/sample_data.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/erpnext/setup/setup_wizard/sample_data.py b/erpnext/setup/setup_wizard/sample_data.py index 095264f44d..0e9ef064d1 100644 --- a/erpnext/setup/setup_wizard/sample_data.py +++ b/erpnext/setup/setup_wizard/sample_data.py @@ -15,7 +15,7 @@ def make_sample_data(): selling_items = frappe.get_all("Item", filters = {"is_sales_item": 1}) buying_items = frappe.get_all("Item", filters = {"is_purchase_item": 1}) customers = frappe.get_all("Customer") - + if selling_items and customers: for i in range(3): customer = random.choice(customers).name @@ -45,7 +45,7 @@ def make_opportunity(selling_items, customer): b.insert(ignore_permissions=True) - b.add_comment("This is a dummy record") + b.add_comment('Comment', text="This is a dummy record") def make_quote(selling_items, customer): qtn = frappe.get_doc({ @@ -62,7 +62,7 @@ def make_quote(selling_items, customer): qtn.insert(ignore_permissions=True) - qtn.add_comment("This is a dummy record") + qtn.add_comment('Comment', text="This is a dummy record") def make_material_request(buying_items): for i in buying_items: @@ -78,7 +78,7 @@ def make_material_request(buying_items): mr.insert() mr.submit() - mr.add_comment("This is a dummy record") + mr.add_comment('Comment', text="This is a dummy record") def make_issue(): From bec7e79ee86d7e887d1f0d5b9b6d345efab15f07 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Wed, 10 Feb 2016 13:49:17 +0600 Subject: [PATCH 6/6] bumped to version 6.21.1 --- erpnext/__version__.py | 2 +- erpnext/hooks.py | 2 +- setup.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/erpnext/__version__.py b/erpnext/__version__.py index 6cf4b96039..93c1037ea0 100644 --- a/erpnext/__version__.py +++ b/erpnext/__version__.py @@ -1,2 +1,2 @@ from __future__ import unicode_literals -__version__ = '6.21.0' +__version__ = '6.21.1' diff --git a/erpnext/hooks.py b/erpnext/hooks.py index e3a018e01c..759e820116 100644 --- a/erpnext/hooks.py +++ b/erpnext/hooks.py @@ -7,7 +7,7 @@ app_publisher = "Frappe Technologies Pvt. Ltd." app_description = """ERP made simple""" app_icon = "icon-th" app_color = "#e74c3c" -app_version = "6.21.0" +app_version = "6.21.1" app_email = "info@erpnext.com" app_license = "GNU General Public License (v3)" source_link = "https://github.com/frappe/erpnext" diff --git a/setup.py b/setup.py index ff91cb8d66..3754eb5be8 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ from setuptools import setup, find_packages from pip.req import parse_requirements -version = "6.21.0" +version = "6.21.1" requirements = parse_requirements("requirements.txt", session="") setup(