Merge branch 'hotfix'
diff --git a/.travis.yml b/.travis.yml
index 9cad59f..8f2febd 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -13,6 +13,7 @@
install:
- sudo apt-get purge -y mysql-common mysql-server mysql-client
+ - nvm install v7.10.0
# - wget https://raw.githubusercontent.com/frappe/bench/master/install_scripts/setup_frappe.sh
# - sudo bash setup_frappe.sh --skip-setup-bench --mysql-root-password travis --bench-branch develop
- wget https://raw.githubusercontent.com/frappe/bench/master/playbooks/install.py
diff --git a/erpnext/__init__.py b/erpnext/__init__.py
index e6f65d0..915d97b 100644
--- a/erpnext/__init__.py
+++ b/erpnext/__init__.py
@@ -2,7 +2,7 @@
from __future__ import unicode_literals
import frappe
-__version__ = '8.0.42'
+__version__ = '8.0.43'
def get_default_company(user=None):
diff --git a/erpnext/controllers/sales_and_purchase_return.py b/erpnext/controllers/sales_and_purchase_return.py
index d2f894a..45447d7 100644
--- a/erpnext/controllers/sales_and_purchase_return.py
+++ b/erpnext/controllers/sales_and_purchase_return.py
@@ -144,7 +144,8 @@
}))
item_dict = valid_items[ref_item_row.item_code]
item_dict["qty"] += ref_item_row.qty
- item_dict["rate"] = ref_item_row.get("rate", 0)
+ if ref_item_row.get("rate", 0) > item_dict["rate"]:
+ item_dict["rate"] = ref_item_row.get("rate", 0)
if ref_item_row.parenttype in ['Purchase Invoice', 'Purchase Receipt']:
item_dict["received_qty"] += ref_item_row.received_qty
diff --git a/erpnext/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py b/erpnext/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py
index 60bb02c..59f56d7 100644
--- a/erpnext/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py
+++ b/erpnext/hr/report/employees_working_on_a_holiday/employees_working_on_a_holiday.py
@@ -25,11 +25,10 @@
]
def get_employees(filters):
- holiday_filter = {"holiday_date": (">=", filters.from_date),
- "holiday_date": ("<=", filters.to_date)}
+ holiday_filter = [["holiday_date", ">=", filters.from_date], ["holiday_date", "<=", filters.to_date]]
if filters.holiday_list:
- holiday_filter["parent"] = filters.holiday_list
-
+ holiday_filter.append(["parent", "=", filters.holiday_list])
+
holidays = frappe.get_all("Holiday", fields=["holiday_date", "description"],
filters=holiday_filter)
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 3eb8e80..7cfdf60 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
@@ -8,9 +8,9 @@
def execute():
-
# for converting student batch into student group
- frappe.reload_doctype("Student Group")
+ for doctype in ["Student Group", "Student Group Student", "Student Group Instructor", "Student Attendance"]:
+ frappe.reload_doc("schools", "doctype", doctype)
if frappe.db.table_exists("Student Batch"):
student_batches = frappe.db.sql('''select name as student_group_name, student_batch_name as batch,
@@ -32,7 +32,7 @@
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)
+ where parent=%s'''.format(cond=cond), (doc.student_group_name), as_dict=1)
if student_list:
for i, student in enumerate(student_list):
@@ -40,7 +40,7 @@
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)
+ where parent=%s''', (doc.student_group_name), as_dict=1)
if instructor_list:
doc.extend("instructors", instructor_list)
doc.save()
@@ -62,8 +62,6 @@
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")
-
table_columns = frappe.db.get_table_columns("Student Attendance")
if "student_batch" in table_columns:
rename_field("Student Attendance", "student_batch", "student_group")
diff --git a/erpnext/patches/v8_0/update_student_groups_from_student_batches.py b/erpnext/patches/v8_0/update_student_groups_from_student_batches.py
new file mode 100644
index 0000000..ae24fe4
--- /dev/null
+++ b/erpnext/patches/v8_0/update_student_groups_from_student_batches.py
@@ -0,0 +1,38 @@
+# Copyright (c) 2017, Frappe and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.model.utils.rename_field import *
+from frappe.model.mapper import get_mapped_doc
+
+
+def execute():
+ if frappe.db.table_exists("Student Batch"):
+ student_batches = frappe.db.sql('''select name from `tabStudent Batch`''', as_dict=1)
+
+ for student_batch in student_batches:
+ if frappe.db.exists("Student Group", student_batch.get("name")):
+ student_group = frappe.get_doc("Student Group", student_batch.get("name"))
+
+ if frappe.db.table_exists("Student Batch Student"):
+ current_student_list = frappe.db.sql_list('''select student from `tabStudent Group Student`
+ where parent=%s''', (student_group.name))
+ batch_student_list = frappe.db.sql_list('''select student from `tabStudent Batch Student`
+ where parent=%s''', (student_group.name))
+
+ student_list = list(set(batch_student_list)-set(current_student_list))
+ if student_list:
+ student_group.extend("students", [{"student":d} for d in student_list])
+
+ if frappe.db.table_exists("Student Batch Instructor"):
+ current_instructor_list = frappe.db.sql_list('''select instructor from `tabStudent Group Instructor`
+ where parent=%s''', (student_group.name))
+ batch_instructor_list = frappe.db.sql_list('''select instructor from `tabStudent Batch Instructor`
+ where parent=%s''', (student_group.name))
+
+ instructor_list = list(set(batch_instructor_list)-set(current_instructor_list))
+ if instructor_list:
+ student_group.extend("instructors", [{"instructor":d} for d in instructor_list])
+
+ student_group.save()
diff --git a/erpnext/stock/doctype/material_request/material_request_list.js b/erpnext/stock/doctype/material_request/material_request_list.js
index b6ceeac..6611a20 100644
--- a/erpnext/stock/doctype/material_request/material_request_list.js
+++ b/erpnext/stock/doctype/material_request/material_request_list.js
@@ -6,7 +6,7 @@
} else if(doc.docstatus==1 && flt(doc.per_ordered, 2) == 0) {
return [__("Pending"), "orange", "per_ordered,=,0"];
} else if(doc.docstatus==1 && flt(doc.per_ordered, 2) < 100) {
- return [__("Partially ordred"), "yellow", "per_ordered,<,100"];
+ return [__("Partially ordered"), "yellow", "per_ordered,<,100"];
} else if(doc.docstatus==1 && flt(doc.per_ordered, 2) == 100) {
if (doc.material_request_type == "Purchase") {
return [__("Ordered"), "green", "per_ordered,=,100"];