From 45328f77295c34c9a438d23395df9d81bad5ba05 Mon Sep 17 00:00:00 2001 From: Neil Trini Lasrado Date: Fri, 27 May 2016 12:58:53 +0530 Subject: [PATCH 1/3] Fixed error in bom autoname --- erpnext/manufacturing/doctype/bom/bom.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py index 24a21d96abb..52dae154f54 100644 --- a/erpnext/manufacturing/doctype/bom/bom.py +++ b/erpnext/manufacturing/doctype/bom/bom.py @@ -15,13 +15,21 @@ form_grid_templates = { class BOM(Document): def autoname(self): - last_name = frappe.db.sql("""select max(name) from `tabBOM` - where name like "BOM/{0}/%%" and item=%s - """.format(frappe.db.escape(self.item, percent=False)), self.item) - if last_name: - idx = cint(cstr(last_name[0][0]).split('/')[-1].split('-')[0]) + 1 + names = frappe.db.sql_list("""select name from `tabBOM` where item=%s""", self.item) + + if names: + # name can be BOM/ITEM/001, BOM/ITEM/001-1, BOM-ITEM-001, BOM-ITEM-001-1 + + # split by item + names = [name.split(self.item)[-1][1:] for name in names] + + # split by (-) if cancelled + names = [cint(name.split('-')[-1]) for name in names] + + idx = max(names) + 1 else: idx = 1 + self.name = 'BOM/' + self.item + ('/%.3i' % idx) def validate(self): From 2bb845e53f16fdab6b561c6ee7f053afa6a82861 Mon Sep 17 00:00:00 2001 From: shreyas Date: Tue, 31 May 2016 17:15:28 +0530 Subject: [PATCH 2/3] [Fix] User allowed to delete the root account in Chart of Accounts --- erpnext/accounts/doctype/account/account.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/erpnext/accounts/doctype/account/account.py b/erpnext/accounts/doctype/account/account.py index 03bd5873cca..acc4884daee 100644 --- a/erpnext/accounts/doctype/account/account.py +++ b/erpnext/accounts/doctype/account/account.py @@ -193,9 +193,6 @@ class Account(Document): def validate_trash(self): """checks gl entries and if child exists""" - if not self.parent_account: - throw(_("Root account can not be deleted")) - if self.check_gle_exists(): throw(_("Account with existing transaction can not be deleted")) if self.check_if_child_exists(): From ef7b6ab8ef53d27d0e888dc5b2a0d4fa29f72cf3 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 3 Jun 2016 12:20:19 +0600 Subject: [PATCH 3/3] bumped to version 6.27.22 --- 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 f8019591cf3..c27ae20f2a1 100644 --- a/erpnext/__version__.py +++ b/erpnext/__version__.py @@ -1,2 +1,2 @@ from __future__ import unicode_literals -__version__ = '6.27.21' +__version__ = '6.27.22' diff --git a/erpnext/hooks.py b/erpnext/hooks.py index 1eb22039052..a94acffb763 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.27.21" +app_version = "6.27.22" 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 a1088bd4bbc..d592c5f3cde 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.27.21" +version = "6.27.22" requirements = parse_requirements("requirements.txt", session="") setup(