fixes in stock entry
diff --git a/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt b/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt
index 8d7fab1..0833aaa 100644
--- a/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt
+++ b/stock/DocType Mapper/Purchase Order-Purchase Receipt/Purchase Order-Purchase Receipt.txt
@@ -1,189 +1,169 @@
 [
  {
-  "owner": "Administrator", 
+  "creation": "2013-02-22 01:28:05", 
   "docstatus": 0, 
-  "creation": "2010-08-08 17:09:35", 
+  "modified": "2013-03-26 07:58:20", 
   "modified_by": "Administrator", 
-  "modified": "2012-04-02 14:03:39"
+  "owner": "Administrator"
  }, 
  {
+  "doctype": "Table Mapper Detail", 
   "name": "__common__", 
   "parent": "Purchase Order-Purchase Receipt", 
-  "doctype": "Table Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "parentfield": "table_mapper_details"
+  "parentfield": "table_mapper_details", 
+  "parenttype": "DocType Mapper"
  }, 
  {
+  "doctype": "Field Mapper Detail", 
   "map": "Yes", 
   "name": "__common__", 
   "parent": "Purchase Order-Purchase Receipt", 
-  "doctype": "Field Mapper Detail", 
-  "parenttype": "DocType Mapper", 
-  "parentfield": "field_mapper_details"
+  "parentfield": "field_mapper_details", 
+  "parenttype": "DocType Mapper"
  }, 
  {
-  "name": "__common__", 
-  "to_doctype": "Purchase Receipt", 
-  "module": "Stock", 
   "doctype": "DocType Mapper", 
+  "from_doctype": "Purchase Order", 
+  "module": "Stock", 
+  "name": "__common__", 
   "ref_doc_submitted": 1, 
-  "from_doctype": "Purchase Order"
+  "to_doctype": "Purchase Receipt"
  }, 
  {
-  "name": "Purchase Order-Purchase Receipt", 
-  "doctype": "DocType Mapper"
+  "doctype": "DocType Mapper", 
+  "name": "Purchase Order-Purchase Receipt"
  }, 
  {
-  "match_id": 0, 
-  "to_field": "supplier", 
+  "checking_operator": "=", 
   "doctype": "Field Mapper Detail", 
   "from_field": "supplier", 
-  "checking_operator": "="
+  "match_id": 0, 
+  "to_field": "supplier"
  }, 
  {
-  "match_id": 0, 
-  "to_field": "company", 
+  "checking_operator": "=", 
   "doctype": "Field Mapper Detail", 
   "from_field": "company", 
-  "checking_operator": "="
+  "match_id": 0, 
+  "to_field": "company"
  }, 
  {
-  "match_id": 0, 
-  "to_field": "currency", 
+  "checking_operator": "=", 
   "doctype": "Field Mapper Detail", 
   "from_field": "currency", 
-  "checking_operator": "="
+  "match_id": 0, 
+  "to_field": "currency"
  }, 
  {
-  "to_field": "prevdoc_detail_docname", 
   "doctype": "Field Mapper Detail", 
+  "from_field": "name", 
   "match_id": 1, 
-  "from_field": "name"
+  "to_field": "prevdoc_detail_docname"
  }, 
  {
-  "to_field": "prevdoc_docname", 
   "doctype": "Field Mapper Detail", 
+  "from_field": "parent", 
   "match_id": 1, 
-  "from_field": "parent"
+  "to_field": "prevdoc_docname"
  }, 
  {
-  "to_field": "prevdoc_doctype", 
   "doctype": "Field Mapper Detail", 
+  "from_field": "parenttype", 
   "match_id": 1, 
-  "from_field": "parenttype"
+  "to_field": "prevdoc_doctype"
  }, 
  {
-  "match_id": 1, 
-  "to_field": "item_code", 
+  "checking_operator": "=", 
   "doctype": "Field Mapper Detail", 
   "from_field": "item_code", 
-  "checking_operator": "="
- }, 
- {
-  "to_field": "received_qty", 
-  "doctype": "Field Mapper Detail", 
   "match_id": 1, 
-  "from_field": "eval:(flt(obj.qty) - flt(obj.received_qty)) "
+  "to_field": "item_code"
  }, 
  {
-  "to_field": "qty", 
   "doctype": "Field Mapper Detail", 
+  "from_field": "eval:(flt(obj.qty) - flt(obj.received_qty)) ", 
   "match_id": 1, 
-  "from_field": "eval:(flt(obj.qty) - flt(obj.received_qty)) "
+  "to_field": "received_qty"
  }, 
  {
-  "to_field": "stock_qty", 
   "doctype": "Field Mapper Detail", 
+  "from_field": "eval:(flt(obj.qty) - flt(obj.received_qty)) ", 
   "match_id": 1, 
-  "from_field": "eval:(flt(obj.qty) - flt(obj.received_qty)) * flt(obj.conversion_factor)"
+  "to_field": "qty"
  }, 
  {
-  "to_field": "import_amount", 
   "doctype": "Field Mapper Detail", 
+  "from_field": "eval:(flt(obj.qty) - flt(obj.received_qty)) * flt(obj.conversion_factor)", 
   "match_id": 1, 
-  "from_field": "eval:(flt(obj.qty) - flt(obj.received_qty)) * flt(obj.import_rate)"
+  "to_field": "stock_qty"
  }, 
  {
-  "to_field": "amount", 
   "doctype": "Field Mapper Detail", 
+  "from_field": "eval:(flt(obj.qty) - flt(obj.received_qty)) * flt(obj.import_rate)", 
   "match_id": 1, 
-  "from_field": "eval:(flt(obj.qty) - flt(obj.received_qty)) * flt(obj.purchase_rate)"
+  "to_field": "import_amount"
  }, 
  {
-  "to_field": "schedule_date", 
   "doctype": "Field Mapper Detail", 
+  "from_field": "eval:(flt(obj.qty) - flt(obj.received_qty)) * flt(obj.purchase_rate)", 
   "match_id": 1, 
-  "from_field": "schedule_date"
+  "to_field": "amount"
  }, 
  {
-  "to_field": "net_total", 
   "doctype": "Field Mapper Detail", 
+  "from_field": "schedule_date", 
+  "match_id": 1, 
+  "to_field": "schedule_date"
+ }, 
+ {
+  "doctype": "Field Mapper Detail", 
+  "from_field": "net_total", 
   "match_id": 0, 
-  "from_field": "net_total"
+  "to_field": "net_total"
  }, 
  {
-  "to_field": "grand_total", 
   "doctype": "Field Mapper Detail", 
+  "from_field": "grand_total", 
   "match_id": 0, 
-  "from_field": "grand_total"
+  "to_field": "grand_total"
  }, 
  {
-  "to_field": "total_tax", 
   "doctype": "Field Mapper Detail", 
+  "from_field": "total_tax", 
   "match_id": 0, 
-  "from_field": "total_tax"
+  "to_field": "total_tax"
  }, 
  {
-  "to_field": "conversion_rate", 
   "doctype": "Field Mapper Detail", 
+  "from_field": "conversion_rate", 
   "match_id": 0, 
-  "from_field": "conversion_rate"
+  "to_field": "conversion_rate"
  }, 
  {
-  "reference_key": "prevdoc_detail_docname", 
-  "match_id": 1, 
-  "reference_doctype_key": "prevdoc_doctype", 
-  "to_field": "purchase_receipt_details", 
   "doctype": "Table Mapper Detail", 
   "from_field": "po_details", 
   "from_table": "Purchase Order Item", 
+  "match_id": 1, 
+  "reference_doctype_key": "prevdoc_doctype", 
+  "reference_key": "prevdoc_detail_docname", 
+  "to_field": "purchase_receipt_details", 
   "to_table": "Purchase Receipt Item", 
   "validation_logic": "docstatus=1 and qty > ifnull(received_qty,0)"
  }, 
  {
-  "reference_key": "prevdoc_detail_docname", 
-  "match_id": 1, 
-  "reference_doctype_key": "prevdoc_doctype", 
-  "to_field": "purchase_receipt_details", 
-  "doctype": "Table Mapper Detail", 
-  "from_field": "po_details", 
-  "from_table": "Purchase Order Item", 
-  "to_table": "Purchase Receipt Item", 
-  "validation_logic": "docstatus=1 and qty > ifnull(received_qty,0)"
- }, 
- {
-  "reference_key": "prevdoc_docname", 
-  "match_id": 0, 
   "doctype": "Table Mapper Detail", 
   "from_table": "Purchase Order", 
+  "match_id": 0, 
+  "reference_key": "prevdoc_docname", 
   "to_table": "Purchase Receipt", 
   "validation_logic": "docstatus = 1"
  }, 
  {
-  "match_id": 2, 
-  "to_field": "purchase_tax_details", 
   "doctype": "Table Mapper Detail", 
   "from_field": "purchase_tax_details", 
   "from_table": "Purchase Taxes and Charges", 
-  "to_table": "Purchase Taxes and Charges", 
-  "validation_logic": "docstatus = 1"
- }, 
- {
   "match_id": 2, 
   "to_field": "purchase_tax_details", 
-  "doctype": "Table Mapper Detail", 
-  "from_field": "purchase_tax_details", 
-  "from_table": "Purchase Taxes and Charges", 
   "to_table": "Purchase Taxes and Charges", 
   "validation_logic": "docstatus = 1"
  }
diff --git a/stock/doctype/stock_entry/stock_entry.py b/stock/doctype/stock_entry/stock_entry.py
index d89d95b..c437135 100644
--- a/stock/doctype/stock_entry/stock_entry.py
+++ b/stock/doctype/stock_entry/stock_entry.py
@@ -55,6 +55,7 @@
 		self.validate_finished_goods()
 		self.validate_return_reference_doc()
 		self.validate_with_material_request()
+		self.validate_fiscal_year()
 		
 	def on_submit(self):
 		self.update_serial_no(1)
@@ -68,6 +69,11 @@
 		self.update_production_order(0)
 		self.make_gl_entries()
 		
+	def validate_fiscal_year(self):
+		import accounts.utils
+		accounts.utils.validate_fiscal_year(self.doc.posting_date, self.doc.fiscal_year,
+			self.meta.get_label("posting_date"))
+		
 	def validate_purpose(self):
 		valid_purposes = ["Material Issue", "Material Receipt", "Material Transfer", 
 			"Manufacture/Repack", "Subcontract", "Sales Return", "Purchase Return"]
diff --git a/stock/doctype/stock_entry/stock_entry.txt b/stock/doctype/stock_entry/stock_entry.txt
index df5b613..91f9bb4 100644
--- a/stock/doctype/stock_entry/stock_entry.txt
+++ b/stock/doctype/stock_entry/stock_entry.txt
@@ -1,8 +1,8 @@
 [
  {
-  "creation": "2013-03-11 12:34:40", 
+  "creation": "2013-03-26 06:51:17", 
   "docstatus": 0, 
-  "modified": "2013-03-19 17:48:29", 
+  "modified": "2013-03-26 07:24:53", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -543,6 +543,16 @@
   "search_index": 0
  }, 
  {
+  "doctype": "DocField", 
+  "fieldname": "fiscal_year", 
+  "fieldtype": "Select", 
+  "in_filter": 0, 
+  "label": "Fiscal Year", 
+  "options": "link:Fiscal Year", 
+  "print_hide": 1, 
+  "reqd": 1
+ }, 
+ {
   "allow_on_submit": 0, 
   "doctype": "DocField", 
   "fieldname": "company", 
@@ -610,13 +620,5 @@
  {
   "doctype": "DocPerm", 
   "role": "Manufacturing User"
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "Manufacturing Manager"
- }, 
- {
-  "doctype": "DocPerm", 
-  "role": "Material Manager"
  }
 ]
\ No newline at end of file
diff --git a/stock/doctype/stock_entry/test_stock_entry.py b/stock/doctype/stock_entry/test_stock_entry.py
index 2501893..3f8012a 100644
--- a/stock/doctype/stock_entry/test_stock_entry.py
+++ b/stock/doctype/stock_entry/test_stock_entry.py
@@ -490,7 +490,7 @@
 	def test_make_return_jv_for_purchase_receipt(self):
 		se, pr_name = self.test_purchase_receipt_return()
 		self._test_purchase_return_jv(se)
-		
+
 		se, pr_name = self._test_purchase_return_return_against_purchase_order()
 		self._test_purchase_return_jv(se)
 		
diff --git a/utilities/transaction_base.py b/utilities/transaction_base.py
index 2dc8c6a..c43a456 100644
--- a/utilities/transaction_base.py
+++ b/utilities/transaction_base.py
@@ -250,4 +250,5 @@
 			
 	def validate_posting_time(self):
 		if not self.doc.posting_time:
-			self.doc.posting_time = now_datetime().strftime('%H:%M:%S')
\ No newline at end of file
+			self.doc.posting_time = now_datetime().strftime('%H:%M:%S')
+	
\ No newline at end of file