[fiscal year] automatically set year end date if more than one year
diff --git a/erpnext/accounts/doctype/fiscal_year/fiscal_year.py b/erpnext/accounts/doctype/fiscal_year/fiscal_year.py
index 5d0c20d..1baed41 100644
--- a/erpnext/accounts/doctype/fiscal_year/fiscal_year.py
+++ b/erpnext/accounts/doctype/fiscal_year/fiscal_year.py
@@ -5,12 +5,11 @@
 import frappe
 from frappe import msgprint, _
 from frappe.utils import getdate, add_days, add_years, cstr
-from datetime import timedelta
+from dateutil.relativedelta import relativedelta
 
 from frappe.model.document import Document
 
 class FiscalYear(Document):
-
 	def set_as_default(self):
 		frappe.db.set_value("Global Defaults", None, "current_fiscal_year", self.name)
 		frappe.get_doc("Global Defaults").on_update()
@@ -24,18 +23,21 @@
 		year_start_end_dates = frappe.db.sql("""select year_start_date, year_end_date
 			from `tabFiscal Year` where name=%s""", (self.name))
 
+		self.validate_dates()
+
 		if year_start_end_dates:
 			if getdate(self.year_start_date) != year_start_end_dates[0][0] or getdate(self.year_end_date) != year_start_end_dates[0][1]:
 				frappe.throw(_("Cannot change Fiscal Year Start Date and Fiscal Year End Date once the Fiscal Year is saved."))
 
-	def on_update(self):
-		# validate year start date and year end date
+	def validate_dates(self):
 		if getdate(self.year_start_date) > getdate(self.year_end_date):
 			frappe.throw(_("Fiscal Year Start Date should not be greater than Fiscal Year End Date"))
 
 		if (getdate(self.year_end_date) - getdate(self.year_start_date)).days > 366:
-			frappe.throw(_("Fiscal Year Start Date and Fiscal Year End Date cannot be more than a year apart."))
+			date = getdate(self.year_start_date) + relativedelta(years=1) - relativedelta(days=1)
+			self.year_end_date = date.strftime("%Y-%m-%d")
 
+	def on_update(self):
 		check_duplicate_fiscal_year(self)
 
 @frappe.whitelist()
diff --git a/erpnext/accounts/doctype/fiscal_year/test_fiscal_year.py b/erpnext/accounts/doctype/fiscal_year/test_fiscal_year.py
index 9d524ac..092d34a 100644
--- a/erpnext/accounts/doctype/fiscal_year/test_fiscal_year.py
+++ b/erpnext/accounts/doctype/fiscal_year/test_fiscal_year.py
@@ -3,6 +3,20 @@
 
 from __future__ import unicode_literals
 
-import frappe
+import frappe, unittest
 
-test_records = frappe.get_test_records('Fiscal Year')
\ No newline at end of file
+test_records = frappe.get_test_records('Fiscal Year')
+
+class TestFiscalYear(unittest.TestCase):
+	def test_extra_year(self):
+		if frappe.db.exists("Fiscal Year", "_Test Fiscal Year 2000"):
+			frappe.delete_doc("Fiscal Year", "_Test Fiscal Year 2000")
+		fy = frappe.get_doc({
+			"doctype": "Fiscal Year",
+			"year": "_Test Fiscal Year 2000",
+			"year_end_date": "2002-12-31",
+			"year_start_date": "2000-04-01"
+		})
+		fy.insert()
+		self.assertEquals(fy.year_end_date, '2001-03-31')
+