Merge branch 'develop' into update-disbursment-date
diff --git a/erpnext/config/schools.py b/erpnext/config/schools.py
index b1e0472..7e97602 100644
--- a/erpnext/config/schools.py
+++ b/erpnext/config/schools.py
@@ -29,7 +29,14 @@
 				{
 					"type": "doctype",
 					"name": "Student Group Creation Tool"
+				},
+				{
+					"type": "report",
+					"is_query_report": True,
+					"name": "Student and Guardian Contact Details",
+					"doctype": "Program Enrollment"
 				}
+
 			]
 		},
 		{
diff --git a/erpnext/hr/doctype/employee_loan/employee_loan_dashboard.py b/erpnext/hr/doctype/employee_loan/employee_loan_dashboard.py
new file mode 100644
index 0000000..20ce69e
--- /dev/null
+++ b/erpnext/hr/doctype/employee_loan/employee_loan_dashboard.py
@@ -0,0 +1,19 @@
+from frappe import _
+
+def get_data():
+	return {
+		'fieldname': 'employee',
+		'non_standard_fieldnames': {
+			'Journal Entry': 'reference_name',
+			},
+		'transactions': [
+			{
+				'label': _('Employee'),
+				'items': ['Employee Loan Application', 'Salary Slip']
+			},
+			{
+				'label': _('Account'),
+				'items': ['Journal Entry']
+			}
+		]
+	}
\ No newline at end of file
diff --git a/erpnext/hr/doctype/loan_type/loan_type.json b/erpnext/hr/doctype/loan_type/loan_type.json
index ce93979..e595187 100644
--- a/erpnext/hr/doctype/loan_type/loan_type.json
+++ b/erpnext/hr/doctype/loan_type/loan_type.json
@@ -1,5 +1,6 @@
 {
  "allow_copy": 0, 
+ "allow_guest_to_view": 0, 
  "allow_import": 0, 
  "allow_rename": 0, 
  "autoname": "field:loan_name", 
@@ -189,17 +190,17 @@
    "unique": 0
   }
  ], 
+ "has_web_view": 0, 
  "hide_heading": 0, 
  "hide_toolbar": 0, 
  "idx": 0, 
  "image_view": 0, 
  "in_create": 0, 
- "in_dialog": 0, 
  "is_submittable": 0, 
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2017-03-02 04:26:05.375693", 
+ "modified": "2017-03-29 21:23:08.665245", 
  "modified_by": "Administrator", 
  "module": "HR", 
  "name": "Loan Type", 
@@ -225,6 +226,26 @@
    "share": 1, 
    "submit": 0, 
    "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "email": 0, 
+   "export": 0, 
+   "if_owner": 0, 
+   "import": 0, 
+   "permlevel": 0, 
+   "print": 0, 
+   "read": 1, 
+   "report": 0, 
+   "role": "Employee", 
+   "set_user_permissions": 0, 
+   "share": 0, 
+   "submit": 0, 
+   "write": 0
   }
  ], 
  "quick_entry": 0, 
diff --git a/erpnext/hr/doctype/salary_slip/salary_slip.py b/erpnext/hr/doctype/salary_slip/salary_slip.py
index c629e87..34b729f 100644
--- a/erpnext/hr/doctype/salary_slip/salary_slip.py
+++ b/erpnext/hr/doctype/salary_slip/salary_slip.py
@@ -21,7 +21,9 @@
 		self.status = self.get_status()
 		self.validate_dates()
 		self.check_existing()
-		self.get_date_details()
+		if not self.salary_slip_based_on_timesheet:
+			self.get_date_details()
+
 		if not (len(self.get("earnings")) or len(self.get("deductions"))):
 			# get details from salary structure
 			self.get_emp_and_leave_details()
@@ -121,7 +123,8 @@
 			self.set("earnings", [])
 			self.set("deductions", [])
 
-			self.get_date_details()
+			if not self.salary_slip_based_on_timesheet:
+				self.get_date_details()
 			self.validate_dates()
 			joining_date, relieving_date = frappe.db.get_value("Employee", self.employee,
 				["date_of_joining", "relieving_date"])
@@ -189,7 +192,8 @@
 
 	def process_salary_structure(self):
 		'''Calculate salary after salary structure details have been updated'''
-		self.get_date_details()
+		if not self.salary_slip_based_on_timesheet:
+			self.get_date_details()
 		self.pull_emp_details()
 		self.get_leave_details()
 		self.calculate_net_pay()
diff --git a/erpnext/schools/doctype/program_enrollment_tool/program_enrollment_tool.py b/erpnext/schools/doctype/program_enrollment_tool/program_enrollment_tool.py
index 2e7daa7..1747bad 100644
--- a/erpnext/schools/doctype/program_enrollment_tool/program_enrollment_tool.py
+++ b/erpnext/schools/doctype/program_enrollment_tool/program_enrollment_tool.py
@@ -21,7 +21,7 @@
 				students = frappe.db.sql("select name as student_applicant, title as student_name from \
 					`tabStudent Applicant` where program = %s and academic_year = %s",(self.program, self.academic_year), as_dict=1)
 			else:
-				students = frappe.db.sql("select student, student_name from \
+				students = frappe.db.sql("select student, student_name, student_batch_name from \
 					`tabProgram Enrollment` where program = %s and academic_year = %s",(self.program, self.academic_year), as_dict=1)
 				student_list = [d.student for d in students]
 
@@ -44,6 +44,7 @@
 				prog_enrollment = frappe.new_doc("Program Enrollment")
 				prog_enrollment.student = stud.student
 				prog_enrollment.student_name = stud.student_name
+				prog_enrollment.student_batch_name = stud.student_batch_name
 				prog_enrollment.program = self.new_program
 				prog_enrollment.academic_year = self.new_academic_year
 				prog_enrollment.save()
diff --git a/erpnext/setup/setup_wizard/data/country_wise_tax.json b/erpnext/setup/setup_wizard/data/country_wise_tax.json
index 780b88f..0ac89b4 100644
--- a/erpnext/setup/setup_wizard/data/country_wise_tax.json
+++ b/erpnext/setup/setup_wizard/data/country_wise_tax.json
@@ -448,11 +448,15 @@
 	},
 
 	"France": {
-		"France VAT 19.6%": {
-			"account_name": "VAT 19.6%",
-			"tax_rate": 19.6,
+		"France VAT 20%": {
+			"account_name": "VAT 20%",
+			"tax_rate": 20,
 			"default": 1
 		},
+		"France VAT 10%": {
+			"account_name": "VAT 10%",
+			"tax_rate": 10
+		},
 		"France VAT 5.5%": {
 			"account_name": "VAT 5.5%",
 			"tax_rate": 5.5
@@ -1377,4 +1381,4 @@
 			"tax_rate": 15.00
 		}
 	}
-}
\ No newline at end of file
+}