diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 22180065b3f..eb69d19fd36 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals import frappe -__version__ = '8.0.33' +__version__ = '8.0.34' def get_default_company(user=None): diff --git a/erpnext/crm/doctype/opportunity/opportunity.py b/erpnext/crm/doctype/opportunity/opportunity.py index 8c695ed4c0d..eebf464047a 100644 --- a/erpnext/crm/doctype/opportunity/opportunity.py +++ b/erpnext/crm/doctype/opportunity/opportunity.py @@ -75,7 +75,7 @@ class Opportunity(TransactionBase): self.lead = lead_name def declare_enquiry_lost(self,arg): - if not self.has_lost_quotation(): + if not self.has_active_quotation(): frappe.db.set(self, 'status', 'Lost') frappe.db.set(self, 'order_lost_reason', arg) else: diff --git a/erpnext/patches/v8_0/merge_student_batch_and_student_group.py b/erpnext/patches/v8_0/merge_student_batch_and_student_group.py index 742457f154a..3eb8e80340a 100644 --- a/erpnext/patches/v8_0/merge_student_batch_and_student_group.py +++ b/erpnext/patches/v8_0/merge_student_batch_and_student_group.py @@ -11,43 +11,55 @@ def execute(): # for converting student batch into student group frappe.reload_doctype("Student Group") - student_batches = frappe.db.sql('''select name as student_group_name, student_batch_name as batch, - program, academic_year, academic_term from `tabStudent Batch`''', as_dict=1) - for student_batch in student_batches: - # create student batch name if does not exists !! - if student_batch.get("batch") and not frappe.db.exists("Student Batch Name", student_batch.get("batch")): - frappe.get_doc({ - "doctype": "Student Batch Name", - "batch_name": student_batch.get("batch") - }).insert(ignore_permissions=True) + if frappe.db.table_exists("Student Batch"): + student_batches = frappe.db.sql('''select name as student_group_name, student_batch_name as batch, + program, academic_year, academic_term from `tabStudent Batch`''', as_dict=1) - student_batch.update({"doctype":"Student Group", "group_based_on": "Batch"}) - doc = frappe.get_doc(student_batch) - student_list = frappe.db.sql('''select student, student_name, active from `tabStudent Batch Student` - where parent=%s''', (doc.name), as_dict=1) - for i, student in enumerate(student_list): - student.update({"group_roll_number": i+1}) + for student_batch in student_batches: + # create student batch name if does not exists !! + if student_batch.get("batch") and not frappe.db.exists("Student Batch Name", student_batch.get("batch")): + frappe.get_doc({ + "doctype": "Student Batch Name", + "batch_name": student_batch.get("batch") + }).insert(ignore_permissions=True) - if student_list: - doc.extend("students", student_list) + student_batch.update({"doctype":"Student Group", "group_based_on": "Batch"}) + doc = frappe.get_doc(student_batch) - instructor_list = frappe.db.sql('''select instructor, instructor_name from `tabStudent Batch Instructor` - where parent=%s''', (doc.name), as_dict=1) - if instructor_list: - doc.extend("instructors", instructor_list) - doc.save() + if frappe.db.sql("SHOW COLUMNS FROM `tabStudent Batch Student` LIKE 'active'"): + cond = ", active" + else: + cond = " " + student_list = frappe.db.sql('''select student, student_name {cond} from `tabStudent Batch Student` + where parent=%s'''.format(cond=cond), (doc.name), as_dict=1) + + if student_list: + for i, student in enumerate(student_list): + student.update({"group_roll_number": i+1}) + doc.extend("students", student_list) + + instructor_list = frappe.db.sql('''select instructor, instructor_name from `tabStudent Batch Instructor` + where parent=%s''', (doc.name), as_dict=1) + if instructor_list: + doc.extend("instructors", instructor_list) + doc.save() # delete the student batch and child-table - frappe.delete_doc("DocType", "Student Batch", force=1) - frappe.delete_doc("DocType", "Student Batch Student", force=1) - frappe.delete_doc("DocType", "Student Batch Instructor", force=1) + if frappe.db.table_exists("Student Batch"): + frappe.delete_doc("DocType", "Student Batch", force=1) + if frappe.db.table_exists("Student Batch Student"): + frappe.delete_doc("DocType", "Student Batch Student", force=1) + if frappe.db.table_exists("Student Batch Instructor"): + frappe.delete_doc("DocType", "Student Batch Instructor", force=1) # delete the student batch creation tool - frappe.delete_doc("DocType", "Student Batch Creation Tool", force=1) + if frappe.db.table_exists("Student Batch Creation Tool"): + frappe.delete_doc("DocType", "Student Batch Creation Tool", force=1) # delete the student batch creation tool - frappe.delete_doc("DocType", "Attendance Tool Student", force=1) + if frappe.db.table_exists("Attendance Tool Student"): + frappe.delete_doc("DocType", "Attendance Tool Student", force=1) # change the student batch to student group in the student attendance frappe.reload_doctype("Student Attendance") diff --git a/erpnext/schools/doctype/student_group/student_group.py b/erpnext/schools/doctype/student_group/student_group.py index 81e0ed946f0..e86142106ef 100644 --- a/erpnext/schools/doctype/student_group/student_group.py +++ b/erpnext/schools/doctype/student_group/student_group.py @@ -33,7 +33,7 @@ class StudentGroup(Document): program_enrollment = get_program_enrollment(self.academic_year, self.academic_term, self.program, self.batch, self.course) students = [d.student for d in program_enrollment] if program_enrollment else None for d in self.students: - if self.group_based_on != "Activity" and d.student not in students and d.active == 1: + if self.group_based_on != "Activity" and students and d.student not in students and d.active == 1: frappe.throw(_("{0} - {1} is not enrolled in the given {2}".format(d.group_roll_number, d.student_name, self.group_based_on))) if not frappe.db.get_value("Student", d.student, "enabled") and d.active: frappe.throw(_("{0} - {1} is inactive student".format(d.group_roll_number, d.student_name))) diff --git a/erpnext/templates/generators/item_group.html b/erpnext/templates/generators/item_group.html index d710cb0739f..a2368a4be02 100644 --- a/erpnext/templates/generators/item_group.html +++ b/erpnext/templates/generators/item_group.html @@ -33,14 +33,14 @@
{% else %} -